:root{color-scheme:light;--paper: #f3ead9;--paper-deep: #ece0c9;--ink: #2b2622;--ink-soft: #6b5f51;--rule: #c8b896;--x-color: #c0392b;--o-color: #1f6f8b;--accent: #d9a441;--win: #3a7d44;--surface: rgba(255, 255, 255, .28);--surface-strong: rgba(255, 255, 255, .32);--label-tint: rgba(0, 0, 0, .03);--scrim: rgba(27, 23, 20, .42)}.dark{color-scheme:dark;--paper: #1b1714;--paper-deep: #13100d;--ink: #ece3d1;--ink-soft: #a99c86;--rule: #4b4234;--x-color: #e8695b;--o-color: #5cb4d0;--accent: #e6b85f;--win: #6cc079;--surface: rgba(255, 255, 255, .05);--surface-strong: rgba(255, 255, 255, .06);--label-tint: rgba(255, 255, 255, .05);--scrim: rgba(0, 0, 0, .62)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background-color:var(--paper);background-image:radial-gradient(circle at 20% 18%,rgba(217,164,65,.1),transparent 38%),radial-gradient(circle at 84% 80%,rgba(31,111,139,.08),transparent 42%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");color:var(--ink);font-family:Spline Sans Mono,monospace;transition:background-color .35s ease,color .35s ease}#root{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px 18px 40px}[dir=rtl] body{font-family:Cairo,sans-serif}[dir=rtl] h1{font-family:Reem Kufi,sans-serif;font-weight:700;letter-spacing:0}[dir=rtl] .subtitle{letter-spacing:.18em;padding:0}[dir=rtl] .score .who,[dir=rtl] .status{font-family:Reem Kufi,sans-serif;font-style:normal}[dir=rtl] .score{box-shadow:-3px 3px 0 var(--ink)}[dir=rtl] .score.is-turn{box-shadow:-5px 5px 0 var(--ink);transform:translate(2px,-2px)}[dir=rtl] .board{box-shadow:-6px 6px 0 var(--ink)}[dir=rtl] .seg{box-shadow:-2px 2px 0 var(--ink)}[dir=rtl] .btn{box-shadow:-2px 2px 0 var(--accent)}[dir=rtl] .btn:hover{transform:translate(1px,-1px);box-shadow:-3px 3px 0 var(--accent)}header{text-align:center;line-height:1}h1{font-family:Fraunces,serif;font-weight:900;font-size:clamp(2.6rem,9vw,4.4rem);margin:0;letter-spacing:-.02em}.subtitle{font-size:.78rem;letter-spacing:.42em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;padding-left:.42em}.scores{display:flex;gap:14px;align-items:stretch}.score{min-width:104px;text-align:center;padding:10px 14px 12px;border:2px solid var(--ink);border-radius:14px;background:var(--surface);box-shadow:3px 3px 0 var(--ink);transition:transform .18s ease,box-shadow .18s ease,background-color .35s ease,border-color .35s ease}.score.is-turn{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}.score .who{font-family:Fraunces,serif;font-style:italic;font-size:.85rem;color:var(--ink-soft)}.score .mark{font-family:Fraunces,serif;font-weight:900;font-size:1.3rem}.score.x .mark{color:var(--x-color)}.score.o .mark{color:var(--o-color)}.score .num{font-size:1.9rem;font-weight:600;margin-top:2px}.board-wrap{position:relative}.board{position:relative;direction:ltr;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:min(82vw,360px);height:min(82vw,360px);background:var(--surface-strong);border:2.5px solid var(--ink);border-radius:16px;box-shadow:6px 6px 0 var(--ink);overflow:hidden;transition:background-color .35s ease,border-color .35s ease,box-shadow .35s ease}.cell{position:relative;border:none;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;outline:none;-webkit-tap-highlight-color:transparent}.cell:nth-child(-n+6){border-bottom:2px solid var(--rule)}.cell:not(:nth-child(3n)){border-right:2px solid var(--rule)}.cell:hover:not(:disabled){background:var(--label-tint)}.cell:disabled{cursor:default}.cell svg{width:62%;height:62%;overflow:visible}.stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:9}.x-stroke{stroke:var(--x-color)}.o-stroke{stroke:var(--o-color)}.drawn .stroke{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw .42s ease forwards}.drawn .stroke.s2{animation-delay:.16s}@keyframes draw{to{stroke-dashoffset:0}}.strike{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.strike line{stroke:var(--win);stroke-width:7;stroke-linecap:round;stroke-dasharray:var(--slen);stroke-dashoffset:var(--slen);filter:drop-shadow(2px 2px 0 rgba(58,125,68,.25))}.strike.show line{animation:draw .4s ease .12s forwards}.status{font-family:Fraunces,serif;font-style:italic;font-size:1.25rem;min-height:1.5em;text-align:center;transition:color .2s}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}.seg{display:inline-flex;border:2px solid var(--ink);border-radius:10px;overflow:hidden;box-shadow:2px 2px 0 var(--ink);transition:border-color .35s ease,box-shadow .35s ease}.seg .label{display:inline-flex;align-items:center;padding:0 10px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border-right:2px solid var(--ink);background:var(--label-tint)}[dir=rtl] .seg .label{border-right:none;border-left:2px solid var(--ink);letter-spacing:0}.seg button{border:none;background:transparent;cursor:pointer;font-family:Spline Sans Mono,monospace;font-weight:600;font-size:.9rem;padding:8px 14px;color:var(--ink);transition:background .15s,color .15s}[dir=rtl] .seg button{font-family:Cairo,sans-serif}.seg button+button{border-left:2px solid var(--ink)}[dir=rtl] .seg button+button{border-left:none;border-right:2px solid var(--ink)}.seg button.active{background:var(--ink);color:var(--paper)}.btn{font-family:Spline Sans Mono,monospace;font-weight:600;font-size:.92rem;cursor:pointer;padding:9px 20px;color:var(--paper);background:var(--ink);border:2px solid var(--ink);border-radius:10px;box-shadow:2px 2px 0 var(--accent);transition:transform .12s,box-shadow .12s,background-color .35s ease,color .35s ease}[dir=rtl] .btn{font-family:Cairo,sans-serif}.btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--accent)}.btn:active{transform:translate(1px,1px);box-shadow:0 0 0 var(--accent)}.credit{font-size:.68rem;color:var(--ink-soft);letter-spacing:.05em;text-align:center}[dir=rtl] .credit{font-family:Cairo,sans-serif;letter-spacing:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.setup-card{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:360px;padding:24px 24px 26px;text-align:center;background:var(--paper);color:var(--ink);border:2.5px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--ink)}[dir=rtl] .setup-card{box-shadow:-6px 6px 0 var(--ink)}.setup-title{font-family:Fraunces,serif;font-weight:900;font-size:1.7rem;margin:2px 0;letter-spacing:-.01em;line-height:1.15}[dir=rtl] .setup-title{font-family:Reem Kufi,sans-serif;font-weight:700;letter-spacing:0}.setup-group{display:flex;flex-direction:column;align-items:center;gap:8px}.setup-label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}[dir=rtl] .setup-label{letter-spacing:0;font-family:Cairo,sans-serif}.btn-lg{width:100%;padding:13px 20px;font-size:1.02rem;margin-top:4px}
