:root{--background:#fff;--text:#122033;--text-muted:#516072;--accent:#1f5fd6;--font-system:"SF Pro Display","SF Pro Text",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--safe-top:env(safe-area-inset-top,0);--safe-bottom:env(safe-area-inset-bottom,0)}*,*::before,*::after{box-sizing:border-box}html{font-size:16px}body{margin:0;min-width:17.5rem;background:var(--background);color:var(--text);font-family:var(--font-system);line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}:focus-visible{outline:.16rem solid var(--accent);outline-offset:.18rem}.page-shell{height:100dvh;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem calc(1.1rem + var( -  - safe - top));border-bottom:1px solid rgba(219,227,238,0.9);background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);flex-shrink:0}.site-brand{color:var(--text);font-weight:700;font-size:1.02rem;letter-spacing:-0.02em;text-decoration:none}.header-actions{display:flex;gap:.5rem}.header-btn{background:0;border:1px solid rgba(81,96,114,0.35);border-radius:.4rem;color:var(--text-muted);cursor:pointer;font-family:var(--font-system);font-size:.82rem;font-weight:500;padding:.18rem .7rem;transition:border-color .15s,color .15s}.header-btn:hover{border-color:var(--accent);color:var(--accent)}.site-footer{display:flex;align-items:center;justify-content:space-between;padding:.3rem 1.25rem calc(0.3rem + var( -  - safe - bottom));border-top:1px solid rgba(219,227,238,0.9);background:rgba(255,255,255,0.96);font-size:.72rem;color:var(--text-muted);flex-shrink:0;letter-spacing:.01em}main{flex:1;display:flex;flex-direction:column;min-height:0}.game-wrapper{flex:1;min-height:300px;position:relative;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;background:var(--background)}#game-canvas{display:block;position:absolute;inset:0;touch-action:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}