*{box-sizing:border-box;margin:0}body{color:#d5d9e0;background:#16181d;flex-direction:column;min-height:100vh;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;display:flex}#hud{align-items:baseline;gap:1.25rem;width:100%;max-width:52rem;margin:0 auto;padding:.75rem 1rem;font-size:.9rem;display:flex}#hud a{color:#7aa2f7;text-decoration:none}#hud button{font:inherit;color:#7aa2f7;cursor:pointer;background:0 0;border:none;padding:0}#hud a strong{color:#d5d9e0}#loader{color:#9aa1ad;display:none}body.loading #loader{display:flex}body.loading #hud{visibility:hidden}body.loading #board{display:none}#loader span{animation:1.2s ease-in-out infinite loader-pulse}@keyframes loader-pulse{0%,to{opacity:.35}50%{opacity:1}}#door{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:none}body.at-door #door{display:flex}body.at-door #hud,body.at-door #stage{display:none}#door h1{letter-spacing:.35em;margin-left:.35em;font-size:3rem}.door-tag{color:#f5a524}.door-how{color:#9aa1ad;max-width:34rem;line-height:1.6}#door-logo{animation:24s linear infinite door-spin;position:relative}#door-logo .cell{transition:none}@keyframes door-spin{to{transform:rotate(360deg)}}#door-continue{color:#7aa2f7;background:0 0;border:1px solid #7aa2f7;border-radius:4px;margin-top:.5rem;padding:.6rem 2.2rem;text-decoration:none;display:inline-block}#door-continue:hover{background:#7aa2f726}#door-continue[hidden]{display:none}#door-form{gap:.75rem;margin-top:.5rem;display:flex}#door-play{font:inherit;color:#16181d;cursor:pointer;background:#7aa2f7;border:none;border-radius:4px;padding:.6rem 2.2rem}#door-play:hover{background:#9ab8ff}#door-seed{font:inherit;color:#d5d9e0;background:0 0;border:1px solid #3a3f4b;border-radius:4px;width:11rem;padding:.6rem .9rem}#door-seed:focus{border-color:#7aa2f7;outline:none}#hud .spacer{flex:1}#cascade{color:#f5a524;transform-origin:0;display:inline-block}#cascade.pulse{animation:.3s ease-out combo-pulse}@keyframes combo-pulse{0%{transform:scale(1.6)}to{transform:scale(1)}}#stage{flex:1;justify-content:center;align-items:center;display:flex}#board{cursor:pointer;transform-origin:50%;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;flex:none;position:relative;overflow:hidden}#stage{overflow:hidden}.cell{transition:left var(--move-ms,.18s) ease-in, top var(--move-ms,.18s) ease-in, opacity .12s ease-out, transform .12s ease-out;position:absolute}.cell.clearing{opacity:0;transform:scale(.45)}#vertex-dot{z-index:1;pointer-events:none;background:#fff;border:2px solid #16181d;border-radius:50%;width:12px;height:12px;display:none;position:absolute;transform:translate(-50%,-50%)}#vertex-dot.ring-dot{background:0 0;border:3px solid #fff;width:22px;height:22px}body.shapes .cell[data-color]:after{color:#0000008c;pointer-events:none;justify-content:center;align-items:center;font-size:1.05rem;display:flex;position:absolute;inset:0}body.shapes .cell[data-color="0"]:after{content:"▲"}body.shapes .cell[data-color="1"]:after{content:"◆"}body.shapes .cell[data-color="2"]:after{content:"●"}body.shapes .cell[data-color="3"]:after{content:"■"}body.shapes .cell[data-color="4"]:after{content:"✚"}body.shapes .cell[data-color="5"]:after{content:"★"}.cell.rosette{filter:saturate(.8)}.cell.rosette.blooming{animation:.5s ease-out bloom-pop}.cell.onyx{filter:drop-shadow(0 0 7px #7aa2f78c)}.cell.onyx.forging{animation:.9s ease-out onyx-forge}@keyframes onyx-forge{0%{filter:drop-shadow(0 0 26px #fffffff2)brightness(3);transform:scale(.2)}55%{filter:drop-shadow(0 0 14px #7aa2f7cc)brightness(1.6);transform:scale(1.25)}to{filter:drop-shadow(0 0 7px #7aa2f78c)brightness();transform:scale(1)}}@keyframes bloom-pop{0%{filter:saturate(.8)brightness(2.6);transform:scale(.3)}60%{filter:saturate(.8)brightness(1.4);transform:scale(1.18)}to{filter:saturate(.8)brightness();transform:scale(1)}}.floater{z-index:2;pointer-events:none;color:#ffe629;text-shadow:0 1px 3px #000c;font-weight:700;animation:1.5s ease-out forwards floater-up;position:absolute;transform:translate(-50%,-50%)}.floater-chain{color:#f5a524;font-size:1.15rem}@keyframes floater-up{0%{opacity:1;transform:translate(-50%,-50%)}55%{opacity:1;transform:translate(-50%,calc(-50% - 34px))}to{opacity:0;transform:translate(-50%,calc(-50% - 68px))}}.ring{z-index:2;pointer-events:none;border:3px solid #ffffffe6;border-radius:50%;animation:.4s ease-out forwards ring-out;position:absolute;transform:translate(-50%,-50%)}@keyframes ring-out{0%{opacity:.9;width:14px;height:14px}to{opacity:0;width:86px;height:86px}}#victory{z-index:10;text-align:center;background:#0a0b0fd1;justify-content:center;align-items:center;padding:2rem;display:none;position:fixed;inset:0}body.won #victory{display:flex}body.won.loading #victory{display:none}.victory-card{flex-direction:column;align-items:center;gap:.8rem;display:flex}.victory-glyph{color:#7aa2f7;text-shadow:0 0 24px #7aa2f7b3;font-size:3.2rem}#victory h2{letter-spacing:.3em;margin-left:.3em;font-size:2rem}.victory-sub{color:#9aa1ad;max-width:30rem;line-height:1.6}.victory-line{color:#d5d9e0}.victory-line strong{color:#f5a524}.victory-nav{gap:1rem;margin-top:.6rem;display:flex}.victory-nav a{color:#16181d;background:#7aa2f7;border-radius:4px;padding:.6rem 1.6rem;text-decoration:none}.victory-nav a:hover{background:#9ab8ff}.victory-nav a#victory-door{color:#7aa2f7;background:0 0;border:1px solid #7aa2f7}.victory-nav button{font:inherit;color:#16181d;cursor:pointer;background:#f5a524;border:none;border-radius:4px;padding:.6rem 1.6rem}.victory-nav button:hover{background:#ffc25c}a:focus-visible,button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #7aa2f7}@media (prefers-reduced-motion:reduce){.cell{transition-duration:10ms!important}.floater,.ring,.cell.blooming,#cascade.pulse{animation-duration:50ms!important}#door-logo,#loader span{animation:none}}@media (width<=520px){#hud{flex-wrap:wrap;gap:.6rem .9rem;padding:.6rem .75rem;font-size:.8rem}#door h1{font-size:2.1rem}#door-form{flex-direction:column;align-items:stretch}#door-seed{width:auto}}
