:root{--paper:#fffdfa;--cream:#f9f4ee;--ink:#0b2a3b;--ink-soft:#3d5868;--deep:#06618e;--cyan:#00bcd6;--pistachio:#b8ec86;--lime:#e8f871;--border:#e9e1d6;--text:"Plus Jakarta Sans",system-ui,sans-serif;--display:"Bricolage Grotesque","Plus Jakarta Sans",system-ui,sans-serif;--u:min(1vw,1.778vh)}*{box-sizing:border-box}html,body{overflow:hidden;background:var(--ink);color:var(--ink);font-family:var(--text);cursor:none;height:100%;margin:0}#cam{position:fixed;opacity:0;pointer-events:none;width:1px;height:1px}#gl,#hud{position:fixed;display:block;width:100vw;height:100vh;inset:0}#ui{position:fixed;inset:0}.wordmark{height:calc(var(--u)*6);display:block;object-fit:contain;align-self: flex-start;width:auto}.h1{font-family:var(--display);letter-spacing:-.03em;font-weight:600;font-size:calc(var(--u)*5.6);margin:0;line-height:1.04}.h2{font-family:var(--display);letter-spacing:-.02em;font-weight:600;font-size:calc(var(--u)*3.4);margin:0;line-height:1.1}.body{font-size:calc(var(--u)*1.6);color:var(--ink-soft);margin:0;line-height:1.45}.idle{position:absolute;background:var(--paper);padding:calc(var(--u)*2.5)calc(var(--u)*3.5);display:flex;justify-content:space-between;align-items: center;gap:calc(var(--u)*3);border-top:1px solid var(--border);bottom:0;left:0;right:0}.idle-copy{display:flex;gap:calc(var(--u)*1.2);flex-direction:column;min-width:0}.samples{display:flex;gap:calc(var(--u)*1.2);flex:none}.samples img{width:calc(var(--u)*13);height:calc(var(--u)*13);border-radius:calc(var(--u)*1);border:1px solid var(--border);display:block}.corner{position:absolute;top:calc(var(--u)*2);left:calc(var(--u)*2.5);background:var(--paper);border-radius:calc(var(--u)*1);padding:calc(var(--u)*.8)calc(var(--u)*1.2)}.corner .wordmark{height:calc(var(--u)*3.6)}.hints{position:absolute;left:0;right:0;bottom:calc(var(--u)*2.2);display:flex;justify-content:center;gap:calc(var(--u)*1);padding:0 calc(var(--u)*2);flex-wrap:wrap}.hint{background:var(--paper);padding:calc(var(--u)*.8)calc(var(--u)*1.6);font-size:calc(var(--u)*1.3);display:flex;gap:calc(var(--u)*.6);white-space:nowrap;border-radius:9999px;align-items:baseline;font-weight:600}.hint b{color:var(--deep);font-weight:700}.count{position:absolute;width:calc(var(--u)*22);height:calc(var(--u)*22);background:var(--paper);display:grid;font-family:var(--display);font-weight:600;font-size:calc(var(--u)*13);color:var(--deep);animation:pop 1s ease-out infinite;border-radius:50%;place-items: center;line-height:1;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pop{0%{transform:translate(-50%,-50%)scale(1.15)}30%{transform:translate(-50%,-50%)scale(1)}}.result{position:absolute;background:var(--paper);display:grid;grid-template-columns:auto 1fr;align-items: center;gap:calc(var(--u)*5);padding:calc(var(--u)*3.5)calc(var(--u)*5);animation:in .45s ease-out;inset:0}@keyframes in{0%{opacity:0}to{opacity:1}}.square{position:relative;aspect-ratio:1;border-radius:calc(var(--u)*1.2);overflow:hidden;border:1px solid var(--border);background:var(--paper);width:min(84vh,44vw)}.square img{position:absolute;display:block;width:100%;height:100%;inset:0}.square .disc{position:absolute;border-radius:50%;width:71.5%;height:71.5%;top:14.25%;left:14.25%}.side{display:flex;gap:calc(var(--u)*2.2);flex-direction:column;min-width:0}.bar{height:calc(var(--u)*.8);background:var(--cream);overflow:hidden;border-radius:9999px}.bar i{display:block;background:var(--deep);border-radius:9999px;height:100%;transition:width .6s ease-out}.qr{width:calc(var(--u)*20);height:calc(var(--u)*20);background:var(--paper);border:1px solid var(--border);border-radius:calc(var(--u)*1.2);padding:calc(var(--u)*1.4);flex:none}.qr svg{display:block;width:100%;height:100%}.qr-row{display:flex;gap:calc(var(--u)*2.4);align-items: center}.qr-row>.side{flex:1}.small{font-size:calc(var(--u)*1.2);color:var(--ink-soft);margin:0}.toast{position:absolute;top:calc(var(--u)*2.2);background:var(--paper);padding:calc(var(--u)*1)calc(var(--u)*2.2);font-size:calc(var(--u)*1.6);text-align:center;border-radius:9999px;max-width:80vw;font-weight:600;left:50%;transform:translate(-50%)}.debug{position:absolute;top:calc(var(--u)*2);right:calc(var(--u)*2);background:var(--paper);border-radius:calc(var(--u)*.8);padding:calc(var(--u)*1);font-variant-numeric:tabular-nums;font-size:13px;line-height:20px}.fatal{position:absolute;background:var(--paper);display:grid;text-align:center;place-items: center;padding:32px;inset:0}.loading{position:absolute;background:var(--paper);display:grid;place-items: center;inset:0}.hint-shot{background:var(--pistachio)}.insight{position:absolute;top:calc(var(--u)*2.5);right:calc(var(--u)*2.5);width:calc(var(--u)*22);height:calc(var(--u)*15);box-sizing:border-box;background:var(--paper);border:1px solid var(--border);border-radius:calc(var(--u)*1.1);padding:calc(var(--u)*1.1)calc(var(--u)*1.3);display:flex;gap:calc(var(--u)*.55);overflow:hidden;animation:card-in .38s cubic-bezier(.2,.8,.2,1);flex-direction:column}@keyframes card-in{0%{opacity:0;transform:translateX(calc(var(--u)*2))}to{opacity:1;transform:none}}.insight-trigger{font-size:calc(var(--u)*.9);color:var(--deep);background:var(--cream);padding:calc(var(--u)*.25)calc(var(--u)*.8);border-radius:9999px;align-self: flex-start;font-weight:600}.insight-title{font-family:var(--display);letter-spacing:-.02em;font-weight:600;font-size:calc(var(--u)*1.75);margin:0;line-height:1.1}.insight-viz{display:flex;flex:1;align-items: center;min-height:0}.insight-note{font-size:calc(var(--u)*.9);color:var(--ink-soft);margin:0;line-height:1.35}.viz{display:block;overflow:visible;width:100%;height:100%}.viz-num{font-family:var(--display);fill:var(--ink);font-size:24px;font-weight:600}.viz-label{fill:var(--ink);font-size:13px;font-weight:600}.chat{display:flex;gap:calc(var(--u)*.6);flex-direction:column;width:100%}.bubble{padding:calc(var(--u)*.4)calc(var(--u)*.8);border-radius:calc(var(--u)*.8);font-size:calc(var(--u)*.9);max-width:90%}.bubble.q{background:var(--cream);align-self: flex-end}.bubble.a{background:var(--deep);color:var(--paper);align-self: flex-start}.rank{display:flex;gap:calc(var(--u)*.25);flex-direction:column;width:100%}.rank-row{display:flex;gap:calc(var(--u)*.8);padding:calc(var(--u)*.18)calc(var(--u)*.7);border-radius:calc(var(--u)*.5);background:var(--cream);font-size:calc(var(--u)*.85);align-items: center;font-weight:600}.rank-row.me{background:var(--pistachio)}.rank-n{font-variant-numeric:tabular-nums;color:var(--deep);width:calc(var(--u)*1.2)}.stack{display:flex;gap:calc(var(--u)*.6);flex-wrap:wrap}.stack-pill{padding:calc(var(--u)*.35)calc(var(--u)*.8);background:var(--cream);font-size:calc(var(--u)*.9);border-radius:9999px;font-weight:600}.stack-pill:first-child{background:var(--pistachio)}.anim-grow-x{transform-box:fill-box;transform-origin:left center;animation:grow-x .7s cubic-bezier(.2,.8,.2,1)both}@keyframes grow-x{0%{transform:scaleX(0)}}.anim-pop{animation:pop-in .5s cubic-bezier(.3,1.6,.5,1)both}@keyframes pop-in{0%{transform:scale(0);opacity:0}}.anim-fade{animation:fade-up .45s ease-out both}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}}.anim-dash{animation:dash 1s cubic-bezier(.2,.8,.2,1).1s forwards}@keyframes dash{to{stroke-dashoffset:var(--to)}}.anim-climb{animation:climb .8s cubic-bezier(.2,.8,.2,1).2s both}@keyframes climb{0%{transform:translateY(220%)}}.anim-drop{animation:drop .8s cubic-bezier(.2,.8,.2,1).2s both}@keyframes drop{0%{transform:translateY(-110%)}}.d1{animation-delay:80ms}.d2{animation-delay:.22s}.d3{animation-delay:.36s}.d4{animation-delay:.5s}.d5{animation-delay:.64s}.toast{top:auto;bottom:calc(var(--u)*7.5);max-width:40vw}.insight.left{right:auto;left:calc(var(--u)*2.5);top:calc(var(--u)*9.5);animation-name:card-in-left}@keyframes card-in-left{0%{opacity:0;transform:translateX(calc(var(--u)*-2))}to{opacity:1;transform:none}}.anim-grow-y{transform-box:fill-box;transform-origin:center bottom;animation:grow-y .7s cubic-bezier(.2,.8,.2,1)both}@keyframes grow-y{0%{transform:scaleY(0)}}.insight.leaving{animation:card-out .32s ease-in forwards}@keyframes card-out{to{opacity:0;transform:translateX(calc(var(--u)*6))rotate(4deg)}}.insight.left.leaving{animation-name:card-out-left}@keyframes card-out-left{to{opacity:0;transform:translateX(calc(var(--u)*-6))rotate(-4deg)}}.hint-in{animation:fade-up .4s ease-out both}.poll{justify-content:center;gap:calc(var(--u)*1.4)}.poll-q{font-family:var(--display);font-weight:600;font-size:calc(var(--u)*1.5);letter-spacing:-.01em;margin:0;line-height:1.2}.poll-bar{display:flex;height:calc(var(--u)*.8);overflow:hidden;background:var(--cream);border-radius:9999px}.poll-bar i{display:block;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}.poll-yes{background:var(--pistachio)}.poll-no{background:var(--teal,#40cebb)}.poll-row{display:flex;font-size:calc(var(--u)*.9);font-variant-numeric:tabular-nums;justify-content:space-between;font-weight:600}.poll-total{color:var(--ink-soft);font-weight:500}.poll-hit{animation:hit .6s ease-out;color:var(--deep)}@keyframes hit{0%{transform:scale(1.25)}to{transform:scale(1)}}.back-row{display:flex;align-items: center;gap:calc(var(--u)*1.6)}.back-btn{position:relative;overflow:hidden;min-height:calc(var(--u)*4.4);padding:0 calc(var(--u)*3);background:var(--cream);color:var(--ink);font:600 calc(var(--u)*1.6)/1 var(--text);cursor:pointer;border:0;border-radius:9999px;flex:none}.back-btn:focus-visible{outline:3px solid var(--deep);outline-offset:2px}.back-fill{position:absolute;background:var(--pistachio);transform-origin:left center;transform:scaleX(var(--p,0));transition:transform .12s linear;inset:0}.back-label{position:relative}.pin{position:absolute;background:var(--paper);display:flex;cursor:auto;flex-direction:column;justify-content:center;align-items: center;gap:16px;padding:24px;inset:0}.pin .wordmark{align-self: center;height:56px}.pin-label{font-size:14px;font-weight:600}.pin-input{border:1px solid var(--border);font:600 22px var(--text);letter-spacing:.3em;text-align:center;color:var(--ink);background:var(--paper);border-radius:12px;width:min(320px,90vw);min-height:52px;padding:0 16px}.pin-input:focus{outline:2px solid var(--deep);outline-offset:1px}.pin-btn{background:var(--deep);color:var(--paper);font:600 18px var(--text);cursor:pointer;border:0;border-radius:9999px;width:min(320px,90vw);min-height:52px}.pin-btn:disabled{opacity:.6}.pin-err{color:#b42318;min-height:20px;margin:0;font-size:14px;font-weight:600}
