@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Outfit Variable,Trebuchet MS,sans-serif;color:#243c3b;background:#f4efdf;font-synthesis:none;--ink: #243c3b;--teal: #267e79;--paper: #f4efdf;--coral: #e77962;--muted: #7c8580;--line: #dcdccf}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #dd9c30;outline-offset:4px}button{border:0}button:active:not(:disabled){transform:translateY(2px)}a{color:inherit}#scene{position:fixed;top:0;right:0;bottom:0;left:38%;z-index:0}canvas{display:block;width:100%;height:100%}#app{position:relative;z-index:1;pointer-events:none;min-height:100dvh}#app>*{pointer-events:auto}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:20px}.brand{font-size:35px;font-weight:900;letter-spacing:-2px;text-decoration:none;display:flex;align-items:center;gap:9px}.brand svg{width:32px;height:32px}.brand .dot{color:var(--coral)}.toplinks{display:flex;align-items:center;gap:24px;font-size:13px;font-weight:600}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:9px 13px;border-radius:100px;font-size:11px;letter-spacing:1.2px;font-weight:700;text-transform:uppercase;background:#f4efdfd9}.live-dot{height:6px;width:6px;border-radius:100%;background:#4d9c79}.icon-btn{border:1px solid var(--line);background:var(--paper);border-radius:50%;width:37px;height:37px;display:inline-grid;place-items:center}.hero{padding:6vh 0 100px 7%;width:43%;max-width:620px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:var(--teal);display:flex;align-items:center;gap:10px;margin-bottom:23px}.eyebrow:before{content:"";width:25px;height:2px;background:currentColor}h1{font-size:clamp(52px,5.4vw,84px);line-height:.99;letter-spacing:-4px;margin:0 0 25px;font-weight:850}h1 em{font-style:normal;color:var(--teal)}.scribble{display:inline-block;position:relative}.scribble:after{content:"";position:absolute;bottom:-6px;left:0;width:95%;height:6px;border-top:3px solid var(--coral);border-radius:50%;transform:rotate(-3deg)}.lead{font-size:17px;line-height:1.6;color:#77817a;max-width:350px;margin-bottom:27px}.gate{max-width:350px}.field-label{display:block;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;font-weight:700;margin:19px 0 9px}input{width:100%;padding:15px 16px;border:1px solid #d5d9cc;border-radius:12px;background:#fffdf6;color:var(--ink);outline:none}input:focus{border-color:var(--teal)}input::placeholder{color:#9aa299}.primary{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--teal);color:#fff9e9;border-radius:13px;padding:16px 24px;font-size:14px;font-weight:650;box-shadow:0 4px #1b625e;min-height:49px}.primary .arrow{margin-left:auto;font-size:21px;line-height:14px}.gate .primary{width:100%;margin-top:12px}.small{font-size:12px;line-height:1.5;color:var(--muted)}.locknote{display:flex;align-items:center;gap:8px;margin-top:18px}.error{color:#b65546;font-size:13px;min-height:16px}.hero-footer{display:flex;gap:22px;margin-top:36px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;font-weight:600;color:#7b857c}.hero-footer span{display:flex;gap:7px;align-items:center}.bottom{position:fixed;bottom:24px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;color:#849085;letter-spacing:.5px;pointer-events:none!important}.scene-caption{position:fixed;left:50%;right:6%;bottom:15%;display:flex;justify-content:center;gap:10px;align-items:center;pointer-events:none!important}.scene-caption .pill{background:#fffbedb0}.floating-note{position:fixed;right:7%;top:22%;font-size:12px;transform:rotate(8deg);border:1px solid #d4d7be;border-radius:12px;padding:12px 18px;background:#fff9dc;box-shadow:3px 4px #e3dcc4;pointer-events:none!important}.floating-note strong{display:block;font-size:18px}.content{margin:30px 0 85px 6%;width:35%;max-width:495px}.content h1{font-size:45px;letter-spacing:-2px;margin-bottom:12px}.content .lead{font-size:14px;margin-bottom:20px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.secondary{border:1px solid #ced5c9;background:#fffaf0;border-radius:11px;padding:11px 15px;font-size:12px;font-weight:650;color:var(--ink)}.text-btn{background:transparent;color:var(--teal);font-size:12px;padding:8px}.panel{background:#fffaf0d9;border:1px solid #dedfd0;border-radius:18px;padding:19px;margin:15px 0}.section-title{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;margin:0 0 13px}.room-item{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;gap:10px}.room-item:first-of-type{border-top:0}.room-item strong{display:block;font-size:14px}.room-item small{font-size:11px;color:var(--muted)}.inline-form input{min-width:0;font-size:13px;padding:11px}.inline-form button{flex-shrink:0}.animal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.animal-btn{border:1px solid var(--line);background:#fbf8ed;border-radius:12px;padding:12px 2px;color:var(--ink);font-size:11px;text-transform:capitalize}.animal-btn span{display:block;font-size:25px;margin-bottom:5px}.animal-btn.selected{border:2px solid var(--teal);background:#e1eee3;padding:11px 1px}.game-card{width:100%;text-align:left;color:inherit;border:2px solid var(--teal);border-radius:14px;background:#e9efdb;padding:15px;display:flex;align-items:center;gap:15px}.game-icon{width:51px;height:51px;border:8px solid #edb94e;border-radius:50%;background:#4d9d91;position:relative;flex-shrink:0}.game-icon:after{content:"";position:absolute;left:-3px;right:-3px;top:15px;background:#ed7963;height:5px;transform:rotate(-30deg);border-radius:3px}.game-card strong{font-size:17px}.game-card:disabled{opacity:1;cursor:default}.game-card p{font-size:11px;margin:4px 0;color:#6b7f73}.roster{margin-top:14px;max-height:190px;overflow-y:auto;scrollbar-width:thin}.player-row{display:flex;align-items:center;gap:9px;font-size:12px;padding:8px 0;border-bottom:1px solid #e5e5d6}.player-row .status{margin-left:auto;font-size:10px;color:#6d8972}.player-dot{width:10px;height:10px;display:inline-block;border-radius:50%;flex-shrink:0}.code{font-family:monospace;letter-spacing:3px;font-size:17px;font-weight:700}.room-bottom{display:flex;gap:8px;margin-top:18px}.room-bottom button{flex:1}.room-bottom .primary{padding:12px}.hint{margin-top:16px;font-size:11px;color:var(--muted);line-height:1.7}.kbd{display:inline-grid;place-items:center;min-width:23px;height:23px;border:1px solid #ccd2c1;border-bottom:3px solid #ccd2c1;border-radius:5px;background:#fff8e9;font-size:10px;color:var(--ink);padding:0 5px}.game-mode #scene{top:0;right:0;bottom:0;left:0}.game-mode .topbar{height:75px;pointer-events:none}.game-mode .topbar>*{pointer-events:auto}.game-mode .brand{font-size:25px}.game-mode .brand svg{width:25px}.game-mode .toplinks .pill{display:none}.hud{position:fixed;top:23px;left:50%;transform:translate(-50%);background:#fff9e8ed;border:1px solid #d3d9c9;border-radius:15px;padding:11px 23px;display:flex;align-items:center;gap:22px;box-shadow:0 4px #d7ddc6}.hud strong{font-size:20px}.hud small{display:block;font-size:9px;letter-spacing:1px;color:#7d8c7d}.hud-divider{width:1px;height:28px;background:#d7ddc6}.hud-bottom{position:fixed;bottom:26px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;background:#fff9e8e8;border:1px solid #d5dccc;border-radius:12px;padding:10px 17px;font-size:11px;white-space:nowrap}.cooldown{width:65px;height:5px;background:#d8decf;border-radius:4px;overflow:hidden}.cooldown>i{display:block;height:100%;background:var(--teal);transition:width .05s linear}.score-strip{position:fixed;left:25px;top:100px;background:#fff9e8cf;border-radius:12px;padding:10px 14px;max-width:175px}.score-line{display:flex;align-items:center;gap:7px;font-size:11px;padding:5px 0}.score-line strong{margin-left:auto;padding-left:15px}.score-line.out{opacity:.45}.center-message{position:fixed;top:35%;left:50%;transform:translate(-50%);text-align:center;pointer-events:none!important}.center-message h2{font-size:60px;margin:0;color:var(--ink);letter-spacing:-2px;text-shadow:0 3px 0 #fff6e0}.center-message p{background:#fff9e8e8;border-radius:30px;padding:9px 20px;font-size:13px}.warning{position:fixed;top:102px;left:50%;transform:translate(-50%);background:#efb850;color:#614922;padding:10px 22px;border-radius:100px;font-size:12px;font-weight:600}.name-label{position:absolute;transform:translate(-50%,-100%);font-size:11px;font-weight:650;background:#fff8e8e6;padding:4px 8px;border-radius:7px;white-space:nowrap;pointer-events:none}.results-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(430px,90vw);text-align:center;background:#fff8e9f5;border:1px solid #d6d9c7;border-radius:24px;padding:30px;box-shadow:0 12px #d5dcc370}.results-panel h2{font-size:35px;margin:10px 0;letter-spacing:-1px}.results-panel .primary{width:100%;margin-top:20px}.results-panel .score-line{font-size:14px;padding:9px 0}.connection{position:fixed;top:80px;right:25px;background:#eea984;color:#512f20;padding:10px 15px;border-radius:10px;font-size:12px;z-index:10}#toast{position:fixed;bottom:30px;right:30px;z-index:20;background:var(--ink);color:#fff9e9;padding:14px 20px;border-radius:12px;max-width:350px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none}#toast.show{opacity:1}.settings{position:fixed;right:5%;top:78px;width:230px;background:#fffaf0;border:1px solid var(--line);border-radius:15px;padding:18px;z-index:15;box-shadow:0 8px 25px #243c3b15}.settings label{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:15px 0;gap:15px}.settings input{width:auto}.settings h3{font-size:15px;margin:0}.empty{padding:14px 0;font-size:12px;color:var(--muted)}.loading{position:fixed;bottom:60px;right:6%;font-size:12px;color:var(--teal)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-height:800px){.content h1{margin-top:10px!important;font-size:30px!important}.content .animal-btn{padding-top:7px;padding-bottom:7px}.content .animal-btn span{font-size:20px}.roster{max-height:120px}.hero{padding-top:3vh}.hero h1{font-size:64px}.lead{margin-bottom:17px}.hero-footer{margin-top:24px}.content{margin-top:10px}.panel{margin:10px 0;padding:14px}.player-row{padding:5px 0}.topbar{height:85px}.scene-caption{bottom:10%}}@media(max-width:1000px){.hero{width:48%;padding-left:5%}h1{font-size:60px;letter-spacing:-3px}.content{width:42%;margin-left:4%}#scene{left:42%}.toplinks{gap:10px}.floating-note{right:4%;top:19%}.scene-caption{left:49%;right:2%}.hero-footer{gap:10px}.topbar{padding:0 4%}.hud{gap:10px;padding:10px 15px}.score-strip{left:12px;max-width:135px}}@media(max-width:700px){#scene{inset:75px 0 auto 37%;height:260px;opacity:.65}.hero,.content{width:auto;max-width:none;padding:20px 25px 80px;margin:0}.hero h1{font-size:52px;max-width:350px}.hero .lead{margin-top:120px}.gate{max-width:none}.toplinks .pill,.floating-note,.scene-caption,.bottom{display:none}.topbar{height:75px}.brand{font-size:28px}.game-mode #scene{top:0;right:0;bottom:0;left:0;height:100%;opacity:1}.content{padding-top:260px}.game-mode .brand{display:none}.hud{left:15px;transform:none;top:17px}.score-strip{top:82px}.hud-bottom{font-size:10px;gap:7px}.center-message h2{font-size:40px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}body.reduced *{transition:none!important;animation:none!important}
