:root{--ink: #F3EBDD;--dim: #B3A794;--panel: rgba(22, 17, 13, .84);--line: rgba(255, 238, 210, .13);--accent: #F0B44C;--good: #9CCB8A;--meh: #E5C46B;--bad: #E38A76;--serif: Fraunces, Georgia, serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#120e0b;color:var(--ink);font:16px/1.5 Barlow,system-ui,sans-serif}#game{position:fixed;inset:0;width:100%;height:100%;display:block}[hidden]{display:none!important}kbd{display:inline-block;min-width:1.7em;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:#fff5e114;font:600 12px/1.5 Barlow,sans-serif;text-align:center;color:var(--ink)}#hud{position:fixed;inset:0;pointer-events:none}#hud.off>:not(.fade):not(.debug){visibility:hidden}.where{position:absolute;left:20px;top:16px;font:500 13px Barlow,sans-serif;letter-spacing:.06em;color:var(--dim);text-shadow:0 1px 3px rgba(0,0,0,.8)}.crosshair{position:absolute;left:50%;top:50%}.crosshair i{position:absolute;width:4px;height:4px;left:-2px;top:-2px;border-radius:50%;background:#fffaf0d9;box-shadow:0 0 0 1px #00000080;transition:all .12s ease}.crosshair.on i{width:18px;height:18px;left:-9px;top:-9px;background:transparent;border:2px solid var(--accent);box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #00000073}.prompt{position:absolute;left:50%;top:calc(50% + 28px);transform:translate(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;font:500 15px Barlow,sans-serif;text-shadow:0 1px 3px rgba(0,0,0,.9)}.prompt kbd{background:#140f0a99}.toast{position:absolute;left:50%;bottom:17%;transform:translate(-50%,8px);max-width:min(640px,90vw);padding:10px 20px;border-radius:10px;background:#120d0ab8;font:italic 400 20px/1.4 var(--serif);text-align:center;opacity:0;transition:opacity .3s ease,transform .3s ease}.toast.in{opacity:1;transform:translate(-50%)}.timer{position:absolute;right:20px;top:12px;text-align:right;text-shadow:0 1px 3px rgba(0,0,0,.8)}.timer b{display:block;font:600 26px/1 var(--serif);font-variant-numeric:tabular-nums}.timer .lost{display:block;margin-top:2px;font:600 15px Barlow,sans-serif;color:var(--bad);opacity:0}.timer .lost.in{animation:lost 2.4s ease forwards}@keyframes lost{0%{opacity:0;transform:translateY(-6px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.items{position:absolute;left:20px;bottom:18px;margin:0;padding:0;list-style:none;display:flex;gap:10px}.items li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:10px;background:#120d0ab8;font:500 14px Barlow,sans-serif;animation:item .35s ease}.items img{width:36px;height:36px}@keyframes item{0%{opacity:0;transform:translateY(10px)}}.page{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;padding:24px 16px;background:#0806048c}.paper{max-width:min(520px,100%);max-height:78vh;overflow:hidden;border-radius:4px;box-shadow:0 24px 60px #0009}.paper.letter{padding:30px 36px;background:#eadfc8 linear-gradient(transparent 33%,rgba(140,110,60,.12) 33.3%,transparent 33.7%,transparent 66.5%,rgba(140,110,60,.12) 66.7%,transparent 67%);color:#2e2a40;font:500 23px/1.25 Caveat,cursive}.paper.letter h3{margin:0 0 10px;font:600 26px var(--serif);color:#4a2a1a}.paper.letter p{margin:0 0 12px}.paper.picture{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:14px;text-align:center}.paper.picture canvas{display:block;width:min(360px,70vw);height:auto;margin:0 auto 10px;border-radius:50%}.paper.picture p{margin:0;font:italic 400 18px var(--serif)}.put{margin:0;font-size:13px;color:var(--dim);text-shadow:0 1px 3px rgba(0,0,0,.9)}.fade{position:absolute;inset:0;background:#000;opacity:0;transition:opacity .45s ease}.fade.in{opacity:1}.debug{position:absolute;left:12px;bottom:12px;margin:0;padding:8px 10px;background:#0000008c;font:12px/1.4 ui-monospace,Menlo,monospace;color:#dfe;border-radius:4px}.menu{position:fixed;inset:0;display:grid;place-items:center;padding:24px 16px;overflow-y:auto;background:radial-gradient(ellipse at center,#0a070540,#0a0705b3);backdrop-filter:blur(3px)}.menu.title{background:radial-gradient(ellipse at center,#0a07051a,#0a070599);backdrop-filter:none}.card{width:min(560px,100%);padding:30px 34px 26px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 30px 80px #00000080}.title .card{text-align:center;padding:40px 34px 28px}.eyebrow{margin:0 0 4px;font:600 12px Barlow,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}h1,h2{margin:0 0 14px;font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.01em}h1{font-size:54px}h2{font-size:32px}.lede{margin:0 auto 26px;max-width:420px;color:var(--dim)}.riddle{margin:0 0 10px;font:400 19px/1.55 var(--serif)}.riddle.small{font-size:16px;color:var(--dim)}.riddle b{color:var(--ink);font-weight:600}.ask{margin:0 0 18px;font:600 21px/1.4 var(--serif);color:var(--accent)}.rules{margin:0 0 18px;padding-left:20px;color:var(--dim)}.rules li{margin:2px 0}.keys{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 22px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--dim)}.keys span{display:inline-flex;align-items:center;gap:4px}.verdict{margin:0 0 18px;font:400 19px/1.55 var(--serif)}.good h2{color:var(--good)}.meh h2{color:var(--meh)}.bad h2{color:var(--bad)}.hints{margin:0 0 18px;padding:12px 16px 12px 34px;border-radius:10px;background:#f0b44c14;border:1px solid rgba(240,180,76,.2)}.hints li{margin:4px 0}.note{margin:14px 0 0;font-size:13px;color:var(--dim)}.time{display:flex;align-items:baseline;gap:14px;margin:-4px 0 16px;font:600 48px/1 var(--serif);font-variant-numeric:tabular-nums}.time span{font:600 13px Barlow,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.summary{list-style:none;margin:0 0 18px;padding:0;border-top:1px solid var(--line)}.summary li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}.summary b{font-weight:600}.summary b.good{color:var(--good)}.summary b.meh{color:var(--meh)}.actions{display:flex;flex-wrap:wrap;gap:10px}.title .actions{justify-content:center}button{cursor:pointer;padding:10px 18px;border:1px solid var(--line);border-radius:10px;background:#fff5e10f;color:var(--ink);font:600 15px Barlow,sans-serif;transition:background .15s,border-color .15s,transform .1s}button:hover{background:#fff5e11f;border-color:#ffeed240}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:#2a1a08}button.primary:hover{background:#f6c46a}.setting{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px;font-size:13px;color:var(--dim)}.setting input{accent-color:var(--accent);width:160px}.rooms{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:8px}.rooms button,.rooms .soon{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:14px 16px;text-align:left}.rooms .soon{border:1px dashed var(--line);border-radius:10px;color:var(--dim)}.rooms .n{font:600 22px var(--serif);color:var(--accent)}.rooms .soon .n{color:var(--dim)}.rooms .name{font:600 18px var(--serif)}.rooms .state{font:500 13px Barlow,sans-serif;color:var(--dim)}.rooms .state.done{color:var(--good)}@media(max-width:520px){.card{padding:24px 20px 20px}h1{font-size:42px}h2{font-size:27px}}.goal{position:absolute;left:20px;top:36px;margin:0;max-width:40vw;font:italic 400 16px var(--serif);color:var(--accent);text-shadow:0 1px 3px rgba(0,0,0,.85)}.goal:before{content:"\2192  ";font-style:normal}.timer small{display:block;font:600 11px Barlow,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.timer.low b{color:var(--bad);animation:low 1s ease infinite}@keyframes low{50%{opacity:.55}}.race{position:absolute;left:50%;top:12px;transform:translate(-50%);margin:0;padding:0;list-style:none;display:flex;gap:8px}.race li{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;border-top:3px solid var(--team);background:#120d0ab8;font:600 13px Barlow,sans-serif;text-shadow:none}.race .pips{display:flex;gap:3px}.race .pips i{width:10px;height:6px;border-radius:2px;background:#ffffff26}.race .pips i.done{background:var(--team)}.race .pips i.now{background:var(--team);opacity:.45}.race em{font-style:normal;font-variant-numeric:tabular-nums}.race em.won{color:var(--good)}.race em.lost{color:var(--bad)}.chat{position:absolute;right:18px;bottom:18px;width:min(360px,40vw);pointer-events:none}.chat ol{margin:0 0 6px;padding:0;list-style:none;display:grid;gap:3px}.chat li{padding:4px 10px;border-radius:8px;background:#120d0aa6;font:400 14px/1.35 Barlow,sans-serif;overflow-wrap:anywhere;transition:opacity 1s}.chat li.old{opacity:0}.chat.open li.old{opacity:1}.chat input{pointer-events:auto;width:100%;padding:8px 12px;border:1px solid var(--accent);border-radius:8px;background:#120d0ae6;color:var(--ink);font:400 15px Barlow,sans-serif;outline:none}.label{margin:16px 0 6px;font:600 12px Barlow,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.blurb{margin:8px 0 0;font-size:14px;color:var(--dim)}.blurb b{color:var(--ink)}.seg{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#0003}.seg button{flex:1;padding:8px 10px;border:0;border-radius:8px;background:transparent;font-size:14px;color:var(--dim)}.seg button.on{background:var(--accent);color:#2a1a08}.intro .keys,.intro .actions{margin-top:18px}.error{margin:10px 0 0;min-height:1em;font-size:14px;color:var(--bad)}.error:empty{display:none}.lede.left{margin:0 0 18px;max-width:none}.field{display:grid;gap:6px;margin:0 0 12px;font-size:13px;color:var(--dim)}.field input,.join input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#00000040;color:var(--ink);font:500 16px Barlow,sans-serif;outline:none}.field input:focus,.join input:focus{border-color:var(--accent)}.check{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:14px;color:var(--dim)}.check input{accent-color:var(--accent);width:18px;height:18px}.join{display:flex;gap:8px;margin:14px 0 0}.join input[name=code]{flex:0 0 96px;text-transform:uppercase;letter-spacing:.2em;text-align:center;font-weight:700}.join button{flex:none}.online .actions,.host .actions,.find .actions,.room .actions{margin-top:16px}.games{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:8px;max-height:46vh;overflow-y:auto}.games button{width:100%;display:grid;gap:2px;padding:12px 14px;text-align:left}.games .name{font:600 17px var(--serif)}.games .meta{font:500 13px Barlow,sans-serif;color:var(--dim)}.games .lock{font-style:normal;font-size:13px}.invite{display:flex;align-items:center;gap:10px;margin:0 0 4px}.invite code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 10px;border-radius:8px;background:#00000040;font:13px ui-monospace,Menlo,monospace;color:var(--dim)}.teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:10px}.teams section{padding:10px 12px;border:1px solid var(--line);border-top:3px solid var(--team);border-radius:10px;background:#0000002e}.teams h3{display:flex;justify-content:space-between;margin:0 0 8px;font:600 15px var(--serif)}.teams h3 small{font:500 12px Barlow,sans-serif;color:var(--dim)}.teams ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}.teams li{display:flex;align-items:center;gap:6px;font-size:14px}.teams li.me{font-weight:600;color:var(--accent)}.teams li.away{opacity:.5}.teams li.empty{color:var(--dim);font-style:italic}.teams li i{font-style:normal;font-size:11px;padding:1px 5px;border-radius:4px;background:#ffffff14;color:var(--dim)}.teams .x{margin-left:auto;padding:0 7px;border-radius:6px;font-size:14px;line-height:1.4}.teams section>button{width:100%;padding:6px;font-size:13px}.lobbychat{margin-top:14px}.lobbychat ol{list-style:none;margin:0;padding:0;max-height:96px;overflow-y:auto;display:grid;gap:2px;font-size:14px;color:var(--dim)}.lobbychat b{color:var(--ink)}.lobbychat .join{margin-top:8px}.note.wait{margin:0;align-self:center}.rooms .chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.rooms .chip{font:600 11px Barlow,sans-serif;font-style:normal;padding:2px 7px;border-radius:6px;background:#ffffff14;color:var(--dim)}.rooms .chip.star{color:var(--good)}.rooms .name{display:flex;flex-direction:column}.standings{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}.standings li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;padding:8px 12px;border-left:4px solid var(--team);border-radius:8px;background:#0003}.standings li.mine{background:#f0b44c1a}.standings span{font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standings em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}.end .verdict{font-size:17px}.card{max-height:calc(100vh - 48px);overflow-y:auto}:root{--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px)}html,body{overscroll-behavior:none}button{touch-action:manipulation}body.touch{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body.touch input{-webkit-user-select:text;user-select:text}body:not(.touch) .touch-only{display:none!important}body.touch .keys-only{display:none!important}@media(orientation:landscape){.portrait-only{display:none!important}}#touch{position:fixed;inset:0;display:none}body.touch.playing #touch{display:block}.t-stick,.t-look{position:absolute;top:0;bottom:0;width:50%;touch-action:none}.t-stick{left:0}.t-look{right:0}.stick-base{position:absolute;left:calc(96px + var(--safe-l));top:calc(100% - 96px - var(--safe-b));width:128px;height:128px;margin:-64px 0 0 -64px;border:2px solid rgba(255,238,210,.3);border-radius:50%;background:#120d0a59;opacity:.55;pointer-events:none;transition:opacity .15s}.stick-base.on{opacity:1;transition:none}.stick-knob{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border:2px solid var(--accent);border-radius:50%;background:#f0b44c59}.t-tools{position:absolute;right:calc(16px + var(--safe-r));top:calc(68px + var(--safe-t));display:flex;gap:8px}.t-tool{width:44px;height:44px;padding:0;border-radius:50%;background:#120d0ab8;font-size:20px;line-height:1}.t-tool[hidden]{display:none}.t-tool.on{border-color:var(--accent);color:var(--accent)}.t-use{position:absolute;right:calc(24px + var(--safe-r));bottom:calc(24px + var(--safe-b));width:92px;height:92px;padding:0;border-radius:50%;border:3px solid var(--accent);background:#f0b44ce0;color:#2a1a08}.t-use b{font:700 15px Barlow,sans-serif;letter-spacing:.06em}.t-use:disabled{background:#120d0a8c;border-color:var(--line);color:var(--dim)}body.touch .where{left:calc(20px + var(--safe-l));top:calc(14px + var(--safe-t))}body.touch .goal{left:calc(20px + var(--safe-l));top:calc(34px + var(--safe-t))}body.touch .timer{right:calc(20px + var(--safe-r));top:calc(10px + var(--safe-t))}body.touch .race{top:calc(10px + var(--safe-t))}body.touch .items{left:calc(20px + var(--safe-l));top:calc(66px + var(--safe-t));bottom:auto;flex-direction:column;align-items:flex-start;gap:6px}body.touch .items li{padding:4px 10px 4px 4px;font-size:13px}body.touch .items img{width:28px;height:28px}body.touch .chat{left:calc(18px + var(--safe-l));right:auto;bottom:auto;top:36%;width:min(320px,44vw)}body.touch .toast{bottom:calc(26% + var(--safe-b));max-width:54vw;font-size:17px}body.touch .page{pointer-events:auto}body.touch .paper.letter{font-size:20px;padding:20px 24px}.menu{padding:calc(16px + var(--safe-t)) calc(12px + var(--safe-r)) calc(16px + var(--safe-b)) calc(12px + var(--safe-l))}.card{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px - var(--safe-t) - var(--safe-b))}@media(max-height:520px){.card{padding:18px 24px}.title .card{padding:22px 24px 18px}h1{font-size:38px;margin-bottom:8px}h2{font-size:24px;margin-bottom:8px}.lede{margin-bottom:14px;font-size:14px}.riddle{font-size:16px}.ask{font-size:18px;margin-bottom:10px}.rules{margin-bottom:10px;font-size:14px}.keys{margin-bottom:12px;padding-top:10px}.setting{margin-top:14px}.label{margin-top:10px}}.keys b{color:var(--ink);font-weight:600}.steps{margin:0 0 14px;padding-left:22px;display:grid;gap:8px}.steps .share{display:inline-block;width:16px;height:20px;vertical-align:-3px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' fill='none' stroke='%23F0B44C' stroke-width='1.6'%3E%3Cpath d='M5 7H2v12h12V7h-3M8 13V1M4.5 4.5 8 1l3.5 3.5'/%3E%3C/svg%3E")}@media(max-height:520px){.card .actions{position:sticky;bottom:-18px;z-index:1;margin:12px -24px -18px;padding:12px 24px 18px;background:linear-gradient(#16110d00,#16110d 30%)}.title .card .actions{position:static;margin:0;padding:0;background:none}}@media(max-height:520px)and (min-width:640px){.intro .card{width:min(860px,100%)}.intro .cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.intro .cols .rules{margin-top:4px}.intro .cols .keys{margin-bottom:4px}}body.touch .prompt kbd{display:none}
