@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#1a1a2e;background-color:#f8fafc;--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-strong: #1d4ed8;--color-primary-light: #60a5fa;--color-secondary: #8b5cf6;--color-system: #0d9488;--color-system-dark: #0f766e;--color-system-light: #14b8a6;--color-accent: #f59e0b;--color-accent-dark: #d97706;--color-success: #10b981;--color-success-dark: #059669;--color-success-strong: #047857;--color-success-light: #34d399;--color-success-soft: rgba(16, 185, 129, .12);--color-success-border: rgba(16, 185, 129, .35);--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-600: #475569;--color-player1: #3b82f6;--color-player2: #ef4444;--color-player1-text: #1d4ed8;--color-player2-text: #b91c1c;--color-player1-on-dark: #60a5fa;--color-player2-on-dark: #f87171;--color-ai: #8b5cf6;--color-ai-dark: #7c3aed;--color-ai-soft: rgba(139, 92, 246, .15);--color-ai-soft-strong: rgba(139, 92, 246, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;display:flex;justify-content:center;align-items:flex-start;min-width:320px;min-height:100vh;min-height:100dvh}.skip-link{position:absolute;top:0;left:0;z-index:10000;padding:.75rem 1.25rem;background:#1a1a2e;color:#fff;font-weight:600;text-decoration:none;border-radius:0 0 var(--radius-sm) 0;transform:translateY(-120%);transition:transform var(--transition-fast)}.skip-link:focus{transform:translateY(0);outline:2px solid var(--color-primary-light);outline-offset:2px}#main-content{width:100%;max-width:100%}#app{max-width:700px;margin:0 auto;padding:2rem;text-align:center}h1{font-size:2rem;margin:0 0 1rem;color:#1a1a2e}.game-selector{max-width:1200px;margin:0 auto;padding:0;min-height:min(720px,calc(100vh - 4rem));min-height:min(720px,calc(100dvh - 4rem))}.game-selector-hero{background:linear-gradient(135deg,#1e3a8a,#3b82f6,#60a5fa);color:#fff;padding:3.5rem 2rem 3rem;text-align:center;margin-bottom:0;position:relative;overflow:hidden}.game-selector-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.05) 50%,transparent 70%);animation:shimmer 8s infinite linear}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.hero-content{max-width:800px;margin:0 auto;position:relative;z-index:1}.hero-actions{display:flex;justify-content:center;margin-top:1.5rem}.hero-progress-link{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;min-height:44px;border-radius:var(--radius-md);background:#ffffff2e;border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.hero-progress-link:hover{background:#ffffff47;border-color:#ffffff8c;transform:translateY(-1px)}.hero-progress-link:focus{outline:none}.hero-progress-link:focus-visible{box-shadow:0 0 0 3px #ffffff73}.hero-logo{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-bottom:1.75rem}.logo-icon{font-size:4rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.logo-text h1{font-size:2.75rem;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.2);font-weight:700;letter-spacing:-.5px}.logo-text .tagline{font-size:1.05rem;opacity:.9;margin:.35rem 0 0;font-weight:400;letter-spacing:.5px}.hero-description{font-size:1.15rem;opacity:.95;max-width:580px;margin:0 auto 2.25rem;line-height:1.7;font-weight:400}.hero-stats{display:flex;justify-content:center;gap:4rem;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.15)}.stat{text-align:center;transition:transform var(--transition-fast)}.stat:hover{transform:scale(1.05)}.stat-number{display:block;font-size:2.75rem;font-weight:700;line-height:1;text-shadow:0 2px 4px rgba(0,0,0,.1)}.stat-label{font-size:.9rem;opacity:.85;text-transform:uppercase;letter-spacing:1px;font-weight:500;margin-top:.25rem}.division-tabs{display:flex;justify-content:center;gap:.75rem;padding:1.25rem 1rem;background:#fff;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-md);border-bottom:1px solid rgba(0,0,0,.05)}.division-tab{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.875rem 1.75rem;border:2px solid #e5e7eb;border-radius:var(--radius-lg);background:#fafafa;cursor:pointer;transition:all var(--transition-base);position:relative}.division-tab:hover{background:#f3f4f6;border-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.division-tab:focus{outline:none}.division-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.division-tab.active{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-color:transparent;color:#fff;box-shadow:var(--shadow-md);transform:translateY(-2px)}.tab-name{font-weight:600;font-size:.95rem;letter-spacing:-.2px}.tab-grade{font-size:.8rem;color:var(--color-neutral-600);font-weight:500}.division-tab.active .tab-grade{color:#fff}.aria-grid-row{display:contents}.accordion-container{padding:1.5rem 2rem 2.5rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.division-accordion{margin-bottom:1rem;scroll-margin-top:90px;border-radius:var(--radius-xl);overflow:hidden;background:#fff;box-shadow:var(--shadow-md);transition:box-shadow var(--transition-base),transform var(--transition-base)}.division-accordion:hover{box-shadow:var(--shadow-lg)}.accordion-header{width:100%;display:flex;align-items:center;text-align:left;padding:1.5rem 1.75rem;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:none;cursor:pointer;transition:background var(--transition-base);gap:1.25rem}.accordion-header:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1)}.accordion-header:focus{outline:none}.accordion-header:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #3b82f666}.accordion-header-content{flex:1}.division-title-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.division-title{font-size:1.5rem;color:#1e3a8a;margin:0;font-weight:700;letter-spacing:-.3px}.division-grade{font-size:.85rem;color:#475569;background:#fff;padding:.3rem .85rem;border-radius:var(--radius-md);font-weight:500;box-shadow:var(--shadow-sm)}.division-game-count{font-size:.8rem;color:#fff;background:linear-gradient(135deg,var(--color-primary-strong),var(--color-primary-dark));padding:.3rem .85rem;border-radius:var(--radius-md);font-weight:600}.division-description{margin:.6rem 0 0;color:#64748b;font-size:.95rem;line-height:1.5}.accordion-chevron{flex-shrink:0;color:#64748b;transition:transform var(--transition-slow);display:flex;align-items:center}.accordion-open .accordion-chevron{transform:rotate(180deg)}.accordion-panel{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1)}.accordion-panel-inner{padding:1.75rem;background:#fafbfc}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.game-card{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-base);display:flex;gap:1.25rem;position:relative;border:2px solid #e5e7eb}.game-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:var(--color-primary);background:linear-gradient(135deg,#fff,#f0f7ff)}.game-card:focus{outline:none}.game-card:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #3b82f633}.game-card:active{transform:translateY(-3px)}.game-card-disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.3)}.game-card-disabled:hover{transform:none;box-shadow:var(--shadow-sm);border-color:#e5e7eb;background:#fff}.game-card-icon{font-size:2.75rem;line-height:1;flex-shrink:0;width:68px;height:68px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:var(--radius-lg);transition:transform var(--transition-fast),background var(--transition-base)}.game-card:hover .game-card-icon{transform:scale(1.1) rotate(3deg);background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.game-card-content{flex:1;text-align:left;min-width:0}.game-card-title{font-size:1.2rem;margin:0 0 .35rem;color:#1e293b;font-weight:700;letter-spacing:-.2px}.game-card-description{font-size:.9rem;color:#64748b;margin:0 0 .85rem;line-height:1.5}.game-card-meta{display:flex;gap:.65rem;font-size:.8rem;align-items:center}.game-card-players{color:#64748b;display:flex;align-items:center;gap:.25rem}.game-card-difficulty{padding:.25rem .65rem;border-radius:var(--radius-sm);font-weight:600;font-size:.75rem;letter-spacing:.3px}.difficulty-beginner{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857}.difficulty-intermediate{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#b45309}.difficulty-advanced{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.game-card-badge{position:absolute;top:.75rem;right:.75rem;background:linear-gradient(135deg,#6b7280,#475569);color:#fff;font-size:.65rem;padding:.35rem .65rem;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.game-selector-footer{text-align:center;color:#64748b;font-size:.95rem;padding:2.5rem 2rem;background:linear-gradient(180deg,#f1f5f9,#e2e8f0);border-top:1px solid rgba(0,0,0,.05)}.game-selector-footer p{margin:0 0 .75rem}.footer-note{font-size:.8rem;color:#475569;line-height:1.5}@media(prefers-reduced-motion:reduce){.skip-link{transition:none}.division-tab,.division-accordion,.accordion-header,.accordion-chevron,.accordion-panel,.game-card,.game-card-icon{transition:none!important}.division-tab:hover,.division-tab.active,.game-card:hover,.game-card:hover .game-card-icon,.game-card:active{transform:none}}html[data-reduced-motion=true] .skip-link{transition:none}html[data-reduced-motion=true] .division-tab,html[data-reduced-motion=true] .division-accordion,html[data-reduced-motion=true] .accordion-header,html[data-reduced-motion=true] .accordion-chevron,html[data-reduced-motion=true] .accordion-panel,html[data-reduced-motion=true] .game-card,html[data-reduced-motion=true] .game-card-icon{transition:none!important}html[data-reduced-motion=true] .division-tab:hover,html[data-reduced-motion=true] .division-tab.active,html[data-reduced-motion=true] .game-card:hover,html[data-reduced-motion=true] .game-card:hover .game-card-icon,html[data-reduced-motion=true] .game-card:active{transform:none}@media(max-width:768px){.game-selector-hero{padding:2.5rem 1.25rem 2rem}.hero-logo{flex-direction:column;gap:.75rem}.logo-icon{font-size:3rem}.logo-text h1{font-size:2rem}.hero-stats{gap:2rem}.stat-number{font-size:2rem}.division-tabs{flex-wrap:wrap;gap:.5rem;padding:1rem}.division-tab{padding:.65rem 1.25rem;flex:1;min-width:110px}.accordion-container{padding:1rem 1rem 1.5rem}.division-title-row{flex-direction:column;align-items:flex-start;gap:.5rem}.division-title{font-size:1.35rem}.accordion-header,.accordion-panel-inner{padding:1.25rem}.game-grid{grid-template-columns:1fr;gap:1rem}.game-card{padding:1.25rem}.game-card-icon{width:56px;height:56px;font-size:2.25rem}}@media(max-width:480px){.game-selector-hero{padding:2rem 1rem 1.5rem}.logo-icon{font-size:2.5rem}.logo-text h1{font-size:1.75rem}.hero-description{font-size:1rem}.hero-stats{flex-direction:row;gap:1.5rem}.stat-number{font-size:1.75rem}.stat-label{font-size:.75rem}.division-tabs{justify-content:stretch;gap:.5rem}.division-tab{flex:1 1 45%;min-width:0;padding:.5rem .75rem}.tab-name{font-size:.85rem}.tab-grade{display:none}.game-card-title{font-size:1.1rem}.game-card-description{font-size:.85rem}}.game-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.game-header h1{flex:1;margin:0}.back-button{background:#fff;border:1px solid var(--color-neutral-200);padding:8px 14px;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--color-primary-dark);box-shadow:var(--shadow-sm);min-height:44px;touch-action:manipulation;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.back-button:hover{background:var(--color-neutral-50);border-color:var(--color-primary-light);color:var(--color-primary-dark);box-shadow:var(--shadow-md)}.back-button:focus{outline:none}.back-button:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f659}.button-row button:focus-visible,#new-game-btn:focus-visible,#help-btn:focus-visible,#tutorial-btn:focus-visible,.modal-close:focus-visible,.difficulty-btn:focus-visible,.start-game-btn:focus-visible,.collapse-toggle:focus-visible,.mode-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}@media(max-width:640px){.game-selector{padding:1rem}.game-grid{grid-template-columns:1fr}.game-card{padding:1rem}.game-card-icon{font-size:2rem;width:48px;height:48px}.game-header{flex-direction:column;align-items:stretch;text-align:center}.back-button{align-self:flex-start}}@media(hover:none),(pointer:coarse){button,.back-button,.difficulty-btn,.start-game-btn,.mode-option,.accordion-header,.division-tab,.hero-progress-link,.game-card[role=button]{min-height:44px}.difficulty-btn{min-width:44px;padding:10px 18px}.collapse-toggle{min-width:44px;min-height:44px;touch-action:manipulation}.owl-bubble-dismiss,.owl-minimize-btn{width:44px;height:44px;min-width:44px;min-height:44px}.owl-minimize-btn{opacity:1}.game-loading-actions .btn{min-height:44px;min-width:44px;padding:10px 18px}}.game-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:40vh;padding:2rem 1.25rem;text-align:center;color:var(--text-primary, #102a43)}.game-loading-spinner{width:2.25rem;height:2.25rem;border:3px solid rgba(16,42,67,.15);border-top-color:#1b6ca8;border-radius:50%;animation:game-loading-spin .8s linear infinite}.game-loading-text{margin:0;font-size:1.05rem;font-weight:600}.game-loading-hint{margin:0;font-size:.95rem;opacity:.8}.game-loading-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.5rem}@keyframes game-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){:root{--transition-fast: .01ms;--transition-base: .01ms;--transition-slow: .01ms}}html[data-reduced-motion=true]{--transition-fast: .01ms;--transition-base: .01ms;--transition-slow: .01ms}@media(prefers-reduced-motion:reduce){.game-selector,.game-loading-spinner,.owl-body,.owl-wing,.owl-pupil,.owl-bubble,.owl-notification-dot,.owl-clicked,.cell-king,.cell-selected,.cell-valid-move:after,.cell-trapped,.cell-invalid,#new-game-btn.game-over-active,.status-winner,.status-ai-thinking:after,.star-track-winner,.hex-a-gone-winner,.hex-a-gone-cell-valid,.hex-a-gone-cell-filled,.hex-a-gone-block-btn.placing,.hex-a-gone-placing-info,.game-winner-banner,.sd-winner-banner,.contig-winner-banner,.qg-winner-banner,.fiar-winner-banner,.stars-winner-banner,.calla-pit-valid .calla-pit-circle,.tutorial-highlight,.hero-logo .logo-icon{animation:none!important;transition:opacity .2s ease!important}.hex-a-gone-cell:hover,.hex-a-gone-cell-valid:hover,.hex-a-gone-block-btn:hover:not(.empty),.hex-a-gone-confirm-btn:hover,.calla-pit-valid:hover .calla-pit-circle,.calla-score.active{transform:none}.sd-roll-btn:hover:not(:disabled),.contig-roll-btn:hover:not(:disabled),.sd-pass-btn:hover{transform:none}.game-loading-spinner{border-top-color:#102a4359}}html[data-reduced-motion=true] .game-selector,html[data-reduced-motion=true] .game-loading-spinner,html[data-reduced-motion=true] .owl-body,html[data-reduced-motion=true] .owl-wing,html[data-reduced-motion=true] .owl-pupil,html[data-reduced-motion=true] .owl-bubble,html[data-reduced-motion=true] .owl-notification-dot,html[data-reduced-motion=true] .owl-clicked,html[data-reduced-motion=true] .cell-king,html[data-reduced-motion=true] .cell-selected,html[data-reduced-motion=true] .cell-valid-move:after,html[data-reduced-motion=true] #new-game-btn.game-over-active,html[data-reduced-motion=true] .status-winner,html[data-reduced-motion=true] .star-track-winner,html[data-reduced-motion=true] .hex-a-gone-winner,html[data-reduced-motion=true] .game-winner-banner,html[data-reduced-motion=true] .sd-winner-banner,html[data-reduced-motion=true] .contig-winner-banner,html[data-reduced-motion=true] .qg-winner-banner,html[data-reduced-motion=true] .fiar-winner-banner,html[data-reduced-motion=true] .stars-winner-banner,html[data-reduced-motion=true] .tutorial-highlight,html[data-reduced-motion=true] .hero-logo .logo-icon{animation:none!important;transition:opacity .2s ease!important}html[data-reduced-motion=true] .sd-roll-btn:hover:not(:disabled),html[data-reduced-motion=true] .contig-roll-btn:hover:not(:disabled){transform:none}html[data-reduced-motion=true] .game-loading-spinner{border-top-color:#102a4359}html[data-offline=true] body:before{content:"Offline — games already opened on this device still work";display:block;position:sticky;top:0;z-index:1000;padding:.4rem .75rem;text-align:center;font-size:.85rem;font-weight:600;color:#102a43;background:#fef3c7;border-bottom:1px solid #f59e0b}@media(max-width:480px){.owl-bubble{font-size:13px}.owl-mini-icon{font-size:24px}}
