@font-face{font-family:"Cormorant Garamond";src:url(/fonts/cormorant-500.woff) format("woff");font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/fonts/cormorant-400i.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}
:root{--ink:#fbefe0;--mute:#c9b3c9;--pink:#ff5fb8;--teal:#43e6d8;--amber:#ffb84d;--plum:#1a0f24;--serif:"Cormorant Garamond",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#120a1a;color:var(--ink);font:15px/1.4 var(--sans);-webkit-text-size-adjust:100%;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
#bg{position:fixed;inset:-4%;background:#120a1a center/cover no-repeat;animation:kb 50s ease-in-out infinite alternate;z-index:0;will-change:transform}
#bg::after{content:'';position:absolute;inset:0;background:rgba(14,6,22,.42)}
#bg2{position:fixed;inset:-6%;background:center/cover no-repeat;opacity:.14;will-change:transform;animation:drift 34s ease-in-out infinite alternate;z-index:0;pointer-events:none}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.08) translate3d(-1%,-.6%,0)}}
@keyframes drift{from{transform:scale(1.06) translate3d(1.5%,0,0)}to{transform:scale(1.1) translate3d(-1.5%,.8%,0)}}
canvas#game{position:fixed;inset:0;width:100%;height:100%;z-index:1;touch-action:none;display:block;cursor:crosshair}
.rhud{position:fixed;z-index:5;left:0;right:0;top:0;display:flex;align-items:center;gap:8px;padding:calc(6px + env(safe-area-inset-top)) 46px 6px calc(8px + env(safe-area-inset-left));min-height:46px;background:linear-gradient(rgba(18,8,26,.82),rgba(18,8,26,0));pointer-events:none}
.rhud>*{pointer-events:auto}
.rback{display:flex;align-items:center;gap:2px;color:var(--ink);text-decoration:none;font:600 13px var(--sans);opacity:.8;padding:6px 8px 6px 2px;border-radius:9px}
.rback svg,.rbtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rback:hover,.rback:focus-visible{opacity:1;outline:none;background:rgba(255,255,255,.08)}
.rtitle{font:italic 600 21px var(--serif);letter-spacing:.04em;color:#ffe8c8;text-shadow:0 0 12px rgba(255,95,184,.55);white-space:nowrap}
.rstat{flex:1;min-width:0;text-align:center;font:600 12.5px/1.25 var(--sans);color:#f3e2f2;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rstat b{color:var(--amber)}.rstat i{font-style:normal;color:var(--teal)}
.rbtns{display:flex;gap:4px}
.rbtn{width:36px;height:36px;border:1px solid rgba(255,220,240,.18);border-radius:11px;background:rgba(30,14,40,.55);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;touch-action:manipulation}
.rbtn:hover,.rbtn:focus-visible{border-color:rgba(255,184,77,.7);outline:none}
.rbtn[aria-pressed="true"]{background:rgba(255,95,184,.25)}
.rover{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(12,4,18,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fin .2s ease-out}
.rover[hidden]{display:none}
@keyframes fin{from{opacity:0}}
.rcard{width:min(380px,100%);max-height:calc(100dvh - 40px);overflow:auto;text-align:center;padding:22px 20px 18px;border-radius:22px;background:linear-gradient(160deg,rgba(52,22,62,.96),rgba(22,10,34,.96));border:1px solid rgba(255,184,77,.35);box-shadow:0 0 0 1px rgba(255,95,184,.15),0 0 40px rgba(255,95,184,.25),0 20px 60px rgba(0,0,0,.5);animation:pop .28s cubic-bezier(.2,1.5,.4,1)}
@keyframes pop{from{transform:scale(.9);opacity:0}}
.rcard h2{margin:0 0 6px;font:italic 600 30px var(--serif);color:#ffe2b8;text-shadow:0 0 14px rgba(255,184,77,.5)}
.rq,.rbody{margin:0 0 14px;color:#ecdcec;font-size:15px}
.rbody table{width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 4px;font-variant-numeric:tabular-nums}
.rbody td,.rbody th{padding:3px 2px;border-bottom:1px solid rgba(255,255,255,.08)}
.rbody th{color:#c9b3c9;font-weight:600}
.rbody .big{font:600 34px var(--serif);color:var(--amber);display:block;margin:2px 0}
.rbody .nb{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:99px;background:rgba(67,230,216,.16);color:var(--teal);font-size:12.5px;font-weight:700;letter-spacing:.06em}
.rcol{display:flex;flex-direction:column;gap:8px}
.rb{display:block;min-height:46px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,220,240,.2);background:rgba(255,255,255,.06);color:var(--ink);font:600 15px var(--sans);cursor:pointer;text-decoration:none;touch-action:manipulation}
.rb:hover,.rb:focus-visible{background:rgba(255,255,255,.12);outline:none;border-color:rgba(255,184,77,.6)}
.rb1{background:linear-gradient(135deg,#ff5fb8,#ff9f4d);border-color:transparent;color:#2a0c22}
.rb1:hover,.rb1:focus-visible{background:linear-gradient(135deg,#ff7cc6,#ffb36e);color:#2a0c22}
.rbl{opacity:.85}
.rhelp{margin:14px 0 0;font-size:12.5px;color:#b9a3bb;line-height:1.45}
.rtoast{position:fixed;z-index:8;left:50%;top:calc(58px + env(safe-area-inset-top));transform:translate(-50%,-10px);padding:8px 16px;border-radius:99px;background:rgba(30,12,40,.86);border:1px solid rgba(255,184,77,.45);color:#ffe8c8;font:600 14px var(--sans);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:calc(100vw - 30px);text-align:center;box-shadow:0 0 22px rgba(255,95,184,.3)}
.rtoast.on{opacity:1;transform:translate(-50%,0)}
.rtray{position:fixed;z-index:4;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 10px calc(10px + env(safe-area-inset-bottom));pointer-events:none;font:600 12.5px var(--sans);color:#e9d6ea}
.rtray>*{pointer-events:auto}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border-radius:99px;border:1px solid rgba(255,220,240,.22);background:rgba(30,14,40,.6);color:var(--ink);font:600 13px var(--sans);cursor:pointer;touch-action:manipulation}
.chip:focus-visible,.chip:hover{border-color:rgba(255,184,77,.7);outline:none}
@media (prefers-reduced-motion:reduce){#bg,#bg2{animation:none}.rcard,.rover{animation:none}}
@media (max-width:380px){.rback span{display:none}.rtitle{font-size:18px}}
.g-pool #bg{background-image:url(art/lounge-far.webp)}.g-pool #bg2{background-image:url(art/lounge-far.webp)}
.g-pong #bg{background-image:url(art/lounge-far.webp)}.g-pong #bg2{background-image:url(art/lounge-far.webp)}
.g-putt #bg{background:#16301a}.g-putt #bg2{display:none}
@media (min-aspect-ratio:1/1){.g-pool #bg,.g-pong #bg,.g-pool #bg2,.g-pong #bg2{background-image:url(art/lounge-far-w.webp)}}
/* talk bubble: a character answers the inner critic (tap to dismiss) */
.rtalk{position:fixed;z-index:9;left:50%;top:calc(54px + env(safe-area-inset-top));width:max-content;max-width:min(420px,calc(100vw - 24px));transform:translate(-50%,-8px);padding:9px 14px 10px;border-radius:16px;background:rgba(30,12,40,.92);border:1px solid rgba(67,230,216,.45);box-shadow:0 0 22px rgba(67,230,216,.22),0 10px 30px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;text-align:left;cursor:pointer}
.rtalk.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.rtalk p{margin:0;font:600 14px/1.35 var(--sans);color:#ffe8c8}
.rtalk p span{display:block;font:700 10px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:1px}
.rtalk .rtc{margin-bottom:6px;padding-bottom:6px;border-bottom:1px dashed rgba(255,255,255,.14)}
.rtalk .rtc span{color:#b9a3bb}
.rtalk .rtc s{color:#b9a3bb;font-weight:500;text-decoration-color:rgba(255,95,184,.85);text-decoration-thickness:2px}
.rtalk .rtr b{font:italic 600 18px/1.25 var(--serif);color:#fff2dc}
/* mood check */
.rmood{margin:12px 0 2px;padding-top:10px;border-top:1px solid rgba(255,255,255,.09)}
.rmq{margin:0 0 7px;font:600 13px var(--sans);color:#ecdcec}
.rmq span{font-weight:500;font-size:11px;color:#9d879f;letter-spacing:.04em}
.rmc{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.mchip{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:52px;padding:5px 2px 4px;border-radius:12px;border:1px solid rgba(255,220,240,.18);background:rgba(255,255,255,.05);color:#e9d6ea;font:600 11px var(--sans);cursor:pointer;touch-action:manipulation}
.mchip span{font-size:21px;line-height:1.1}
.mchip:hover,.mchip:focus-visible{border-color:rgba(255,184,77,.6);outline:none}
.mchip[aria-pressed="true"]{background:rgba(67,230,216,.16);border-color:var(--teal);color:#fff}
.rml{margin:7px 0 0;min-height:1em;font-size:13px;color:#cdeee9;line-height:1.4}
.rml:empty{display:none}
.rml a{color:var(--amber)}
/* putt skill card */
.skill{margin:8px auto 10px;max-width:300px;padding:9px 12px 10px;border-radius:14px;background:linear-gradient(140deg,rgba(67,230,216,.14),rgba(255,95,184,.08));border:1px solid rgba(67,230,216,.4);text-align:center}
.skill small{display:block;font:700 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.skill b{display:block;font:italic 600 23px/1.15 var(--serif);color:#fff2dc;margin:1px 0 3px}
.skill p{margin:0;font-size:13.5px;color:#ecdcec}
.skill i{display:block;margin-top:5px;font-style:normal;font-size:12px;color:#b9a3bb}
.kit{font-size:12.5px;color:#cdeee9}
/* breathe chip + tilt meter */
.chip.br{position:relative;overflow:hidden}
.chip.br .fill{position:absolute;inset:0;transform-origin:left;transform:scaleX(var(--f,0));background:linear-gradient(90deg,rgba(67,230,216,.35),rgba(67,230,216,.12));pointer-events:none}
.chip.br>svg,.chip.br>em{position:relative}
.chip.br em{font-style:normal}
.chip.br svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.chip.br.nudge{border-color:rgba(255,95,184,.8);animation:nudge 1.6s ease-in-out infinite}
.chip.br.ok{border-color:var(--teal);color:#cffff9}
@keyframes nudge{50%{box-shadow:0 0 14px rgba(255,95,184,.55)}}
.tilt{display:flex;align-items:center;gap:6px;padding:6px 10px;min-height:40px;border-radius:99px;background:rgba(30,14,40,.6);border:1px solid rgba(255,220,240,.16)}
.tilt>span{font:700 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#c9b3c9}
.tilt i{width:9px;height:14px;border-radius:3px;background:rgba(255,255,255,.12);transition:background .3s}
.tilt i.on{background:var(--c,#43e6d8);box-shadow:0 0 6px var(--c,#43e6d8)}
@media (prefers-reduced-motion:reduce){.chip.br.nudge{animation:none}.rtalk{transition:none}}
@media (max-width:380px){.mchip{font-size:10px}.mchip span{font-size:19px}}
.rtray2{flex-wrap:wrap;row-gap:4px}
.rtray2 #hint{flex-basis:100%;order:-1;text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.rtray2 #hint:empty{display:none}
/* pool: who has which group */
.prack{position:fixed;z-index:5;left:50%;top:calc(46px + env(safe-area-inset-top));transform:translateX(-50%);display:flex;gap:6px;max-width:calc(100vw - 12px);pointer-events:none;font:600 11px var(--sans);color:#e9d6ea}
.prack[hidden]{display:none}
.prack .ps,.prack .popen{display:flex;align-items:center;gap:3px;padding:4px 9px;border-radius:99px;background:rgba(30,14,40,.78);border:1px solid rgba(255,220,240,.14);white-space:nowrap}
.prack .ps b{font-weight:700;margin-right:1px}
.prack .ps em{font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#b9a3bb;margin-right:3px}
.prack .ps.act{border-color:rgba(255,184,77,.85);box-shadow:0 0 12px rgba(255,184,77,.35);color:#ffe8c8}
.prack .ps.act b{color:var(--amber)}
.prack .popen{border-color:rgba(67,230,216,.55);color:#cffff9;font-size:12px}
.prack .popen b{color:var(--teal);text-transform:uppercase;letter-spacing:.08em;font-size:11px;margin-right:4px}
.mb{display:inline-block;width:13px;height:13px;border-radius:50%;box-shadow:inset -2px -2px 3px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.25);position:relative;flex:none}
.mb.eight{background:#141414!important;box-shadow:0 0 0 1.5px var(--amber),0 0 8px rgba(255,184,77,.7)}
.mb.gone{opacity:.28;filter:grayscale(.5)}
.mb.gone::after{content:'✓';position:absolute;inset:-3px 0 0;text-align:center;font:800 11px var(--sans);color:#7dffb0;opacity:1}
.pbig{position:fixed;z-index:15;left:50%;top:42%;transform:translate(-50%,-50%);padding:16px 26px 14px;border-radius:22px;text-align:center;background:linear-gradient(160deg,rgba(52,22,62,.95),rgba(22,10,34,.95));border:1px solid rgba(255,184,77,.6);box-shadow:0 0 40px rgba(255,184,77,.35),0 20px 50px rgba(0,0,0,.5);pointer-events:none;animation:pop .35s cubic-bezier(.2,1.5,.4,1);transition:opacity .45s;max-width:calc(100vw - 24px)}
.pbig.out{opacity:0}
.pbig p{margin:0;font:italic 600 20px var(--serif);color:#ffe2b8}
.pbig b{display:block;font:700 40px/1.05 var(--sans);letter-spacing:.06em;color:#fff2dc;text-shadow:0 0 18px rgba(255,184,77,.7)}
.pbig div{display:flex;justify-content:center;gap:5px;margin:10px 0 8px}
.pbig .mb{width:24px;height:24px}
.pbig small{font-size:12.5px;color:#c9b3c9}
.g-pool .rtalk,.g-pool .rtoast{top:calc(84px + env(safe-area-inset-top))}
@media (max-width:380px){.prack .ps{padding:4px 6px}.mb{width:11px;height:11px}.prack .ps em{display:none}}
.rtalk .rti{float:left;width:38px;height:38px;border-radius:50%;object-fit:cover;margin:1px 10px 0 0;border:1px solid rgba(67,230,216,.5)}
@media (max-width:559px){.prack{flex-direction:column;align-items:center;gap:3px}.prack .ps,.prack .popen{padding:3px 9px}}
@media (max-width:559px){.g-pool .rtalk,.g-pool .rtoast{top:calc(104px + env(safe-area-inset-top))}}
/* turn banner */
.rbanner{position:fixed;z-index:14;left:50%;top:34%;transform:translate(-50%,-50%) translateX(-60px);opacity:0;pointer-events:none;padding:12px 26px 12px;border-radius:18px;text-align:center;background:linear-gradient(160deg,rgba(52,22,62,.94),rgba(22,10,34,.94));border:1px solid rgba(255,184,77,.6);box-shadow:0 0 34px rgba(255,184,77,.3),0 16px 40px rgba(0,0,0,.45);transition:opacity .28s,transform .35s cubic-bezier(.2,1.3,.4,1);max-width:calc(100vw - 30px)}
.rbanner.on{opacity:1;transform:translate(-50%,-50%)}
.rbanner b{display:block;font:700 30px/1.1 var(--sans);letter-spacing:.03em;color:#fff2dc;text-shadow:0 0 16px rgba(255,184,77,.6);white-space:nowrap}
.rbanner small{display:block;margin-top:4px;font:600 13.5px/1.3 var(--sans);color:#e9d6ea}
.rbanner.them{border-color:rgba(255,95,184,.65);box-shadow:0 0 34px rgba(255,95,184,.3),0 16px 40px rgba(0,0,0,.45)}
.rbanner.them b{text-shadow:0 0 16px rgba(255,95,184,.7)}
.rbanner.foul small{color:#ffc2a8}
@media (max-width:420px){.rbanner b{font-size:25px}}
@media (prefers-reduced-motion:reduce){.rbanner{transition:opacity .2s;transform:translate(-50%,-50%)}}
/* power bar */
.pwr{position:fixed;z-index:6;left:-200px;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;width:50px;pointer-events:auto;touch-action:none}
.pwr .pv{font:700 14px var(--sans);color:#ffe8c8;font-variant-numeric:tabular-nums;text-shadow:0 1px 6px rgba(0,0,0,.8);min-width:3ch;text-align:center}
.pwr:not(.live):not(.locked) .pv{color:#9d879f}
.pwr .pt{position:relative;width:22px;height:220px;border-radius:12px;background:rgba(20,8,30,.75);border:1px solid rgba(255,220,240,.3);box-shadow:inset 0 2px 8px rgba(0,0,0,.6);overflow:hidden;cursor:ns-resize}
.pwr .pt:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.pwr .pt::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 calc(10% - 1px),rgba(255,255,255,.18) calc(10% - 1px) 10%);pointer-events:none}
.pwr .pf{position:absolute;left:0;right:0;bottom:0;height:0;border-radius:0 0 11px 11px;box-shadow:0 0 12px rgba(255,184,77,.5)}
.pwr .pl{font:700 9.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#c9b3c9}
.pwr.locked .pt{border-color:var(--amber);box-shadow:inset 0 2px 8px rgba(0,0,0,.6),0 0 10px rgba(255,184,77,.45)}
.pwr .pshoot{min-width:54px;min-height:40px;padding:6px 8px;border-radius:12px;border:0;background:linear-gradient(135deg,#ff5fb8,#ff9f4d);color:#2a0c22;font:700 13px var(--sans);cursor:pointer;touch-action:manipulation}
.pwr .punl{min-height:28px;padding:2px 8px;border-radius:99px;border:1px solid rgba(255,220,240,.22);background:rgba(30,14,40,.7);color:#c9b3c9;font:600 11px var(--sans);cursor:pointer}
.phint{position:fixed;z-index:6;transform:translate(-100%,-50%);padding:7px 12px;border-radius:99px;background:rgba(30,12,40,.9);border:1px solid rgba(255,184,77,.6);color:#ffe8c8;font:600 13px var(--sans);white-space:nowrap;pointer-events:none;animation:phn 1.4s ease-in-out infinite}
.phint[hidden]{display:none}
@keyframes phn{50%{margin-left:-6px}}
@media (prefers-reduced-motion:reduce){.phint{animation:none}}
.rbody tr.sub td{color:#ffd9a0;font-weight:700;border-top:1px solid rgba(255,184,77,.35)}
/* difficulty chips */
.rdiff{display:flex;align-items:center;justify-content:center;gap:5px;margin:0 0 12px}
.rdiff button{flex:1;max-width:100px;min-height:38px;padding:6px 10px;border-radius:99px;border:1px solid rgba(255,220,240,.2);background:rgba(255,255,255,.05);color:#e9d6ea;font:600 13px var(--sans);cursor:pointer;touch-action:manipulation}
.rdiff button:hover,.rdiff button:focus-visible{border-color:rgba(255,184,77,.6);outline:none}
.rdiff button[aria-pressed="true"]{background:rgba(255,184,77,.2);border-color:var(--amber);color:#fff2dc}
.rdiff button[data-d="hard"][aria-pressed="true"]{background:rgba(255,95,184,.22);border-color:var(--pink)}
.rdiff .rdr{padding:6px 16px;border-radius:99px;background:rgba(255,95,184,.2);border:1px solid var(--pink);color:#fff2dc;font:700 13px var(--sans);letter-spacing:.06em}
.rdtag{display:inline-block;margin:2px 0 4px;padding:2px 10px;border-radius:99px;border:1px solid rgba(255,220,240,.25);font:700 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#e9d6ea}

.rback .rbl{font-style:normal}
@media (max-width:430px){.rback .rbl{display:none}}
