:root{color-scheme:light;--paper: #f5ebcf;--paper-high: #fff9e8;--ink: #172f2b;--ink-soft: #52635c;--teal: #087a70;--teal-dark: #07564f;--tomato: #c8432f;--tomato-dark: #8f2d20;--gold: #d99a24;--night: #102a31;--rule: #a89879;font-family:Arial,Helvetica,sans-serif;font-size:16px;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--paper);background-image:radial-gradient(rgba(23,47,43,.11) .6px,transparent .6px);background-size:5px 5px}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background:repeating-linear-gradient(91deg,transparent 0 11px,rgba(255,255,255,.3) 12px,transparent 13px 26px);mix-blend-mode:multiply;z-index:20}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--teal-dark);text-underline-offset:.2em;text-decoration-thickness:2px}img{max-width:100%;display:block}p,li{line-height:1.55}h1,h2,h3{font-family:Georgia,Times New Roman,serif;line-height:1.03;margin:0 0 16px;text-wrap:balance}h1{font-size:clamp(2.5rem,7vw,4.75rem);letter-spacing:-.045em}h2{font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.025em}h3{font-size:1.35rem}em{color:var(--tomato-dark);font-weight:400}:focus-visible{outline:3px solid var(--tomato);outline-offset:4px}.skip-link{position:fixed;z-index:99;top:8px;left:8px;padding:12px 16px;background:var(--night);color:#fff;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,main,footer{width:min(1120px,calc(100% - 40px));margin-inline:auto}.site-header{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink)}.wordmark{min-height:44px;display:inline-flex;gap:8px;align-items:center;color:var(--ink);font-family:Georgia,serif;font-weight:700;font-size:1.15rem;text-decoration:none}.wordmark span{color:var(--tomato)}nav{display:flex;align-items:center;gap:24px}nav a,.text-button{color:var(--ink);font-weight:700}.text-button{min-height:44px;border:0;padding:8px 2px;background:transparent;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em;cursor:pointer}.text-button:hover,nav a:hover{color:var(--tomato-dark)}.hero{min-height:650px;display:grid;grid-template-columns:6fr 5fr;align-items:center;gap:clamp(32px,6vw,80px);padding:72px 0 80px}.hero-copy{position:relative;z-index:2}.eyebrow{margin:0 0 16px;color:var(--teal-dark);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lede{max-width:58ch;font-size:clamp(1.1rem,2vw,1.3rem);color:var(--ink)}.hero-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:32px 0}.button{min-height:48px;display:inline-flex;justify-content:center;align-items:center;gap:8px;border:2px solid var(--ink);border-radius:5px;padding:11px 20px;font-weight:800;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.button.primary{background:var(--night);color:var(--paper-high);box-shadow:5px 5px 0 var(--tomato)}.button.secondary{background:var(--tomato-dark);color:#fff;box-shadow:5px 5px 0 var(--night)}.button.paper{background:var(--paper-high);color:var(--ink);box-shadow:3px 3px 0 var(--rule)}.button:hover{transform:translate(-1px,-1px);box-shadow:7px 7px 0 var(--tomato)}.button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--tomato)}.button:disabled{opacity:.65;cursor:progress}.trust-strip{display:flex;flex-wrap:wrap;gap:10px 24px;padding:0;margin:32px 0 0;list-style:none;font-size:.9rem;font-weight:700}.trust-strip li:before{content:"✓";color:var(--teal-dark);margin-right:7px}.hero-art{margin:0;position:relative;transform:rotate(1.2deg)}.hero-art img{width:100%;border:3px solid var(--ink);box-shadow:11px 11px 0 var(--teal-dark);aspect-ratio:3 / 2;object-fit:cover}.hero-art figcaption{position:absolute;right:-14px;bottom:-20px;max-width:210px;padding:9px 12px;background:var(--paper-high);border:2px solid var(--ink);font-size:.85rem;font-weight:700;transform:rotate(-3deg)}.play-start{display:grid;grid-template-columns:1.2fr 1fr;gap:24px 64px;padding:clamp(48px,8vw,96px);margin:24px 0 96px;color:var(--paper-high);background-color:var(--night);background-image:radial-gradient(rgba(245,235,207,.17) 1px,transparent 1px);background-size:7px 7px;box-shadow:10px 10px 0 var(--tomato)}.play-start .eyebrow,.play-start a{color:#89d9d0}.play-start p{max-width:50ch}.create-form,.join-form{display:grid;gap:10px;align-content:start}.create-form label,.join-form label,#license-form label{font-weight:800}input,select{min-height:48px;width:100%;border:2px solid var(--ink);border-radius:4px;background:var(--paper-high);color:var(--ink);padding:10px 12px}.join-form{grid-column:2}.inline-form{display:flex;align-items:stretch;gap:10px}.form-status{min-height:25px;grid-column:1 / -1;margin:0;font-weight:700}.how{padding:0 0 96px}.control-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;list-style:none;margin:40px 0 0;padding:0;counter-reset:cards}.control-cards li{position:relative;min-height:250px;padding:32px 24px;border-top:3px solid var(--ink);background:#fff9e88c}.control-cards li:nth-child(2){transform:translateY(18px) rotate(-1deg);border-color:var(--tomato)}.control-cards li:nth-child(3){border-color:var(--teal-dark)}.card-number{position:absolute;right:16px;top:16px;font:700 1rem Georgia,serif}.control-icon{display:block;min-height:72px;color:var(--tomato-dark);font-size:3.6rem;line-height:1}.control-cards p{color:var(--ink-soft)}.purchase{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-bottom:96px;padding:56px;border:3px solid var(--ink);background:var(--gold);box-shadow:9px 9px 0 var(--teal-dark)}.purchase .eyebrow,.purchase .stamp.success{color:var(--ink)}.purchase details{margin-top:24px}summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}#license-form{display:grid;gap:8px;margin-top:8px}.stamp{display:inline-block;padding:12px 16px;border:3px double var(--ink);font-weight:800;transform:rotate(-2deg)}.stamp.success{color:var(--teal-dark)}footer{display:grid;grid-template-columns:1fr auto;gap:8px 32px;padding:40px 0 max(40px,env(safe-area-inset-bottom));border-top:2px solid var(--ink)}footer p{margin:0}footer .fine-print{grid-column:1 / -1;max-width:78ch}.fine-print{color:var(--ink-soft);font-size:.83rem}.room-loading,.legal{min-height:60vh;padding:80px 0}.legal{max-width:760px}.legal h1{margin-bottom:24px}.legal h2{margin:48px 0 12px;font-size:1.8rem}.legal p{font-size:1.05rem}.room-head{display:flex;justify-content:space-between;gap:32px;align-items:end;padding:48px 0 24px}.room-head h1{font-size:clamp(2.35rem,6vw,4.2rem)}.room-marks{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.room-marks span{display:inline-flex;min-height:36px;align-items:center;padding:6px 10px;border:2px solid var(--ink);background:var(--paper-high);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.network-mark:before{content:"○";margin-right:6px}.network-mark.online:before{content:"●";color:var(--teal)}.game-sheet{min-height:480px;padding:clamp(28px,6vw,64px);background:var(--paper-high);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--teal-dark)}.puzzle-instructions{max-width:750px}.puzzle-instructions h2{font-size:clamp(1.6rem,3.5vw,2.6rem);line-height:1.18}.clue-strip{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.clue-strip span{min-width:112px;display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 10px;padding:12px;border:2px solid var(--ink);background:var(--paper);font-weight:800}.clue-strip small{grid-row:1 / 3;color:var(--tomato-dark);font-weight:800}.clue-strip b{font:700 1.8rem Georgia,serif;line-height:1}.role-label{display:inline-block;margin:0 0 14px;padding:7px 11px;color:#fff;font-weight:800;transform:rotate(-1deg)}.role-label.lantern{background:var(--tomato-dark)}.role-label.moth{background:var(--teal-dark)}.invite-sheet{max-width:720px;margin:32px 0;padding:24px;background:var(--paper);border-left:6px solid var(--tomato)}.invite-sheet code{display:block;margin-bottom:16px;overflow-wrap:anywhere;font-size:.92rem}.signal-window{display:grid;place-items:center;min-height:150px;margin:32px 0 24px;padding:24px;color:var(--paper-high);background-color:var(--night);background-image:radial-gradient(rgba(245,235,207,.16) 1px,transparent 1px);background-size:8px 8px;text-align:center}.signal-window p{margin:0}.signal-window strong{font:bold clamp(2rem,7vw,4rem) Georgia,serif}.empty-signal span{font-size:3rem;letter-spacing:.3em}.signal-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,2vw,20px);margin:40px 0 28px}.symbol-button{min-height:130px;border:3px solid var(--ink);border-radius:5px;color:var(--ink);background:var(--paper);cursor:pointer;box-shadow:5px 5px 0 var(--rule);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.symbol-button:nth-child(2n){background:#f1d99f}.symbol-button span{display:block;font:bold clamp(2.6rem,6vw,4.5rem) Georgia,serif;line-height:1}.symbol-button small{display:block;margin-top:10px;font-size:.9rem;font-weight:800}.symbol-button:hover{background:#d9eee6;transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--teal-dark)}.symbol-button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--teal-dark)}.progress-row{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;gap:12px;align-items:center;color:var(--ink-soft);font-size:.85rem;font-weight:800}.progress-track{height:12px;border:2px solid var(--ink);background:var(--paper)}.progress-track span{display:block;height:100%;background:var(--teal);transition:width .24s ease}.end-note{min-height:360px;display:grid;align-content:center;justify-items:center;max-width:720px;margin:auto;text-align:center}.end-note p{max-width:52ch}.big-symbol{color:var(--tomato-dark);font:700 6rem Georgia,serif;line-height:1}.celebration .big-symbol{animation:stamp-in .36s ease-out both}.waiting-mark{color:var(--ink-soft);font-weight:700}.room-controls{margin:32px 0 64px;border-bottom:2px solid var(--ink)}.room-controls>div{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:0 0 24px}.room-controls p{flex-basis:100%;margin:0}.danger{color:var(--tomato-dark)}.room-live{min-height:24px;font-weight:700}dialog{width:min(800px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:3px solid var(--ink);border-radius:4px;padding:clamp(24px,5vw,48px);color:var(--ink);background:var(--paper);box-shadow:12px 12px 0 var(--teal-dark)}dialog::backdrop{background:#102a31c7}.dialog-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:2rem;cursor:pointer}.how-dialog .control-cards{margin:24px 0 36px}.how-dialog .control-cards li{min-height:190px;padding:20px}.how-dialog .control-icon{min-height:54px;font-size:2.7rem}@keyframes stamp-in{0%{opacity:0;transform:scale(1.7) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(max-width:760px){.site-header,main,footer{width:min(100% - 28px,620px)}.site-header{min-height:68px}.site-header nav{gap:14px}.site-header nav a{font-size:.85rem}.hero{grid-template-columns:1fr;min-height:auto;padding:48px 0 72px}.hero-art{order:-1;width:calc(100% - 8px)}.hero-art figcaption{right:-6px}.hero-actions .button{width:100%}.play-start{grid-template-columns:1fr;padding:36px 24px;margin-bottom:72px}.join-form{grid-column:auto;padding-top:18px;border-top:1px solid rgba(245,235,207,.5)}.control-cards{grid-template-columns:1fr}.control-cards li{min-height:180px}.control-cards li:nth-child(2){transform:rotate(-1deg)}.purchase{grid-template-columns:1fr;gap:24px;padding:32px 24px}footer{grid-template-columns:1fr}footer .fine-print{grid-column:auto}.room-head{align-items:start;flex-direction:column;padding-top:32px}.room-marks{justify-content:start}.game-sheet{padding:28px 18px}.signal-pad{grid-template-columns:repeat(2,1fr)}.symbol-button{min-height:112px}.progress-row{grid-template-columns:1fr}.inline-form{flex-direction:column}.inline-form .button{width:100%}.how-dialog .control-cards li{min-height:auto}.how-dialog .control-cards p{margin-bottom:0}}@media(max-width:430px){.wordmark{font-size:1rem}.wordmark span{display:none}.site-header nav a:last-child{display:none}.hero h1{font-size:2.65rem}.hero-art{transform:none}.play-start{width:calc(100% + 12px);margin-left:-6px}.room-marks span{font-size:.7rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
