:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07080d;--surface:#11131b;--surface-raised:#171a24;--line:#2b3040;--line-bright:#42495e;--text:#f6f3ee;--muted:#969cab;--x:#5ee7f7;--o:#ff5bd5;--focus:#ffe66d;--radius:clamp(15px, 2vw, 22px)}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{background:var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{color:inherit;font:inherit}button:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.game-shell{isolation:isolate;min-height:100svh;padding:max(28px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));background:linear-gradient(#ffffff04 1px, transparent 1px), linear-gradient(90deg, #ffffff04 1px, transparent 1px), radial-gradient(circle at 50% 40%, #111522 0, var(--bg) 58%);background-size:32px 32px,32px 32px,auto;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.game-shell:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(112deg,#0000 30%,#5ee7f706 50%,#0000 70%);position:absolute;inset:0}.ambient{z-index:-2;aspect-ratio:1;filter:blur(100px);opacity:.13;pointer-events:none;border-radius:50%;width:min(34vw,460px);position:absolute}.ambient-one{background:var(--o);top:-18%;right:-8%}.ambient-two{background:var(--x);bottom:-24%;left:-8%}.experience{grid-template-columns:minmax(250px,.78fr) minmax(390px,480px);align-items:center;gap:clamp(56px,9vw,128px);width:min(100%,1040px);margin:auto;display:grid}.brand-panel{flex-direction:column;align-items:flex-start;gap:clamp(56px,9vh,94px);min-width:0;display:flex}.wordmark{color:#dfe3ec;text-transform:uppercase;letter-spacing:.2em;align-items:center;gap:11px;font-size:.72rem;font-weight:800;display:inline-flex}.wordmark-dot{border:2px solid var(--x);border-radius:50%;width:13px;height:13px;position:relative;box-shadow:0 0 14px #5ee7f7b8}.wordmark-dot:after{content:"";background:var(--o);border-radius:99px;width:5px;height:2px;position:absolute;bottom:-2px;right:-5px;transform:rotate(-45deg);box-shadow:0 0 10px #ff5bd5e6}.brand-copy{max-width:470px}.eyebrow{color:var(--x);text-transform:uppercase;letter-spacing:.18em;margin:0 0 21px;font-size:.66rem;font-weight:800}.brand-copy h1{color:var(--text);letter-spacing:-.07em;margin:0;font-size:clamp(3.9rem,7vw,6.35rem);font-weight:760;line-height:.88}.brand-copy h1 span{color:#0000;background:linear-gradient(95deg, var(--x) 3%, #c4c9ff 48%, var(--o) 96%);-webkit-background-clip:text;background-clip:text;margin-top:.11em;font-weight:420;display:block}.intro{max-width:390px;color:var(--muted);margin:29px 0 0;font-size:.94rem;line-height:1.72}.keyboard-hint{color:#737989;letter-spacing:.03em;margin:0;font-size:.68rem}.keyboard-hint span{color:#afb4c0}.play-panel{background:linear-gradient(145deg,#171a24f5,#0c0e15f7);border:1px solid #ffffff17;border-radius:32px;width:100%;padding:clamp(18px,3vw,28px);position:relative;box-shadow:0 32px 90px #00000075,inset 0 1px #ffffff0e}.play-panel:before{content:"";z-index:-1;filter:blur(42px);background:linear-gradient(135deg,#5ee7f729,#ff5bd521);border-radius:28px;position:absolute;inset:12% 8%}.status-bar{grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:54px;margin-bottom:19px;display:grid}.turn-chip{background:#ffffff06;border:1px solid;border-radius:13px;place-items:center;width:43px;height:43px;font-size:.94rem;font-weight:850;display:grid}.turn-x{color:var(--x);box-shadow:inset 0 0 20px #5ee7f714,0 0 18px #5ee7f714}.turn-o{color:var(--o);box-shadow:inset 0 0 20px #ff5bd514,0 0 18px #ff5bd514}.status-copy{min-width:0;margin:0}.status-copy strong,.status-copy span{display:block}.status-copy strong{color:#f0f1f5;letter-spacing:-.01em;font-size:.9rem}.status-copy span{color:#858b9a;margin-top:3px;font-size:.68rem}.round-label{color:#777e8e;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:750}.board-frame{border-radius:calc(var(--radius) + 9px);background:#0405098a;border:1px solid #ffffff12;padding:8px;position:relative}.board-frame:after{content:"";pointer-events:none;opacity:0;filter:blur(28px);background:#ffffff14;border-radius:50%;transition:opacity .4s;position:absolute;inset:18%}.board-frame.is-finished:after{opacity:1}.board-frame.is-draw:after{background:#aeb5c71a}.board{z-index:1;gap:clamp(8px,1.5vw,12px);width:100%;display:grid;position:relative}.board-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.5vw,12px);display:grid}.grid-cell{aspect-ratio:1;min-width:0}.cell{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg, var(--surface-raised), #0e1017);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;place-items:center;width:100%;height:100%;transition:transform .14s,border-color .18s,background .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff09,0 8px 18px #0000002e}.cell:after{content:"";opacity:0;background:#747b8c;border-radius:50%;width:5px;height:5px;transition:opacity .14s,transform .14s;position:absolute;box-shadow:0 0 12px}.cell:active:not(.is-filled){transform:scale(.96)}.cell.is-filled,.board-frame.is-finished .cell{cursor:default}.mark{aspect-ratio:1;width:66%;animation:.18s cubic-bezier(.18,.88,.35,1.32) both mark-in;display:block;position:relative}.mark-x{color:var(--x);filter:drop-shadow(0 0 8px #5ee7f773)}.mark-x:before,.mark-x:after{content:"";background:currentColor;border-radius:999px;width:14%;height:80%;position:absolute;top:10%;left:43%;box-shadow:0 0 10px #5ee7f747}.mark-x:before{transform:rotate(45deg)}.mark-x:after{transform:rotate(-45deg)}.mark-o{border:clamp(6px, 1.15vw, 10px) solid var(--o);filter:drop-shadow(0 0 8px #ff5bd566);border-radius:50%;width:57%}.cell.is-winning{z-index:1;background:linear-gradient(145deg,#222638,#11141e);border-color:#ffffff9e;animation:.62s ease-out both winning-cell;box-shadow:inset 0 0 32px #ffffff0f,0 0 24px #a4b3ff38}.cell.is-winning .mark{filter:brightness(1.18)drop-shadow(0 0 12px)}.restart-button{border:1px solid var(--line);color:#c8ccd5;letter-spacing:.035em;cursor:pointer;touch-action:manipulation;background:0 0;border-radius:14px;justify-content:space-between;align-items:center;width:100%;min-height:50px;margin-top:18px;padding:0 17px;font-size:.73rem;font-weight:750;transition:color .16s,border-color .16s,background .16s;display:flex}.restart-arrow{color:var(--x);font-size:1rem;transition:transform .16s}.site-footer{color:#555b69;text-transform:uppercase;letter-spacing:.13em;justify-content:space-between;gap:20px;width:min(100%,1040px);margin:clamp(20px,5vh,48px) auto 0;font-size:.58rem;font-weight:700;display:flex}@keyframes mark-in{0%{opacity:0;transform:scale(.56)rotate(-7deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes winning-cell{0%{transform:scale(1)}46%{transform:scale(1.035)}to{transform:scale(1)}}@media (hover:hover) and (pointer:fine){.cell:not(.is-filled):hover{border-color:var(--line-bright);background:linear-gradient(145deg,#1b1f2b,#11131b);transform:translateY(-2px);box-shadow:inset 0 1px #ffffff0d,0 12px 25px #00000042}.cell:not(.is-filled):hover:after{opacity:.52;transform:scale(1.3)}.board-frame.is-finished .cell:hover{transform:none}.restart-button:hover{color:var(--text);border-color:var(--line-bright);background:#ffffff09}.restart-button:hover .restart-arrow{transform:translate(2px,-2px)}}@media (max-width:760px){.game-shell{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right));justify-content:flex-start;overflow-y:auto}.experience{grid-template-columns:1fr;gap:34px;width:min(100%,470px)}.brand-panel{gap:28px}.brand-copy h1{max-width:430px;font-size:clamp(3.35rem,15vw,5.2rem)}.keyboard-hint{display:none}.play-panel{border-radius:25px}.site-footer{width:min(100%,470px)}}@media (max-width:390px){.brand-panel{gap:24px}.brand-copy h1{font-size:3.25rem}.intro{margin-top:20px;font-size:.86rem}.play-panel{padding:15px}.status-bar{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;margin-bottom:14px}.turn-chip{width:40px;height:40px}.round-label{font-size:.55rem}.board-frame{padding:6px}}@media (max-width:760px) and (max-height:720px) and (orientation:portrait){.game-shell{padding-top:max(15px, env(safe-area-inset-top));padding-bottom:max(14px, env(safe-area-inset-bottom))}.experience{gap:15px}.brand-panel{gap:10px}.wordmark{font-size:.62rem}.eyebrow,.intro{display:none}.brand-copy h1{font-size:clamp(2.75rem,13vw,3.4rem)}.play-panel{padding:12px}.status-bar{min-height:42px;margin-bottom:10px}.turn-chip{width:38px;height:38px}.board-frame{width:min(100%,16rem);margin-inline:auto}.restart-button{min-height:42px;margin-top:10px}.site-footer{display:none}}@media (orientation:landscape) and (max-height:600px) and (min-width:600px){.game-shell{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom));justify-content:center}.experience{grid-template-columns:minmax(190px,.75fr) minmax(270px,340px);gap:clamp(28px,7vw,78px);width:min(100%,870px)}.brand-panel{gap:clamp(18px,5vh,30px)}.wordmark{font-size:.6rem}.eyebrow{margin-bottom:12px}.brand-copy h1{font-size:clamp(2.8rem,9.5vh,4rem)}.intro{margin-top:16px;font-size:.78rem;line-height:1.5}.keyboard-hint,.site-footer{display:none}.play-panel{border-radius:22px;padding:12px}.status-bar{grid-template-columns:36px minmax(0,1fr) auto;gap:9px;min-height:38px;margin-bottom:9px}.turn-chip{border-radius:10px;width:36px;height:36px}.status-copy span{display:none}.board-frame{width:min(57vh,19rem);margin-inline:auto;padding:5px}.board,.board-row{gap:6px}.restart-button{min-height:38px;margin-top:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.game-shell,.play-panel,.board-frame,.cell,.restart-button{background:canvas}.play-panel,.board-frame,.cell,.restart-button,.turn-chip{box-shadow:none;border:1px solid canvastext}.mark-x,.mark-o,.turn-chip,.restart-arrow{color:canvastext;filter:none;forced-color-adjust:auto}.mark-o{border-color:canvastext}.cell.is-winning{outline-offset:-5px;outline:3px solid highlight}}
