*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--cyan:#38bdf8;--blue:#4a86e8;--indigo:#818cf8;--navy:#1a2d5a;--glass-light:#ffffffe0;--glass-mid:#fff9;--glass-dark:#080e28b8;--blue-primary:#4a86e8;--blue-dark:#1a2d5a;--blue-mid:#2a4a8a;--blue-light:#e8f0fd;--blue-accent:#2f65c4;--bg:#0000;--surface:#fff;--border:#00000014;--border-dark:#00000024;--text:#0f172a;--text-muted:#475569;--radius:10px;--shadow:0 2px 10px #00000014;--shadow-md:0 6px 24px #00000021}html{background:radial-gradient(ellipse at 18% 12%,#38bdf8bf 0,#0000 42%),radial-gradient(ellipse at 82% 88%,#818cf8b3 0,#0000 42%),radial-gradient(ellipse at 82% 8%,#93c5fd80 0,#0000 36%),radial-gradient(ellipse at 15% 90%,#94a3b859 0,#0000 38%),linear-gradient(160deg,#090e24,#0f1d48 35%,#1a2560 60%,#0a0f1e);background-attachment:fixed;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0000;color:#0f172a;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-family:var(--font);font-size:16px;line-height:1.6}a{color:#38bdf8;color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}img{display:block;max-width:100%}ul{list-style:none}code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-family:var(--mono)}.page{margin:0 auto;max-width:900px;min-height:calc(100vh - 64px);padding:28px 16px 48px}.page-title{color:var(--blue-dark);font-size:2rem;font-weight:700;margin-bottom:8px}.page-subtitle{color:var(--text-muted);font-size:1.05rem;margin-bottom:40px}.divider{border:none;border-top:1px solid var(--border);margin:40px 0}.tag{background:var(--blue-light);border-radius:20px;color:var(--blue-accent);display:inline-block;font-size:.78rem;margin:0 4px 4px 0;padding:2px 10px}.btn,.tag{font-weight:600}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:var(--font);font-size:.9rem;gap:6px;padding:8px 18px;transition:background .15s,color .15s,border-color .15s}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--blue-primary);border-color:var(--blue-primary);color:#fff}.btn-primary:hover{background:var(--blue-accent);border-color:var(--blue-accent)}.btn-outline{background:#0000;border-color:var(--blue-primary);color:var(--blue-primary)}.btn-outline:hover{background:var(--blue-light)}.btn-white{background:#fff;border-color:#fff;color:#1a2d5a;transition:background .2s,color .2s,border-color .2s,opacity .2s}.btn-white:hover{background:#ffffffbf;border-color:#ffffffbf;color:#1a2d5a}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;transition:box-shadow .15s,border-color .15s}.card:hover{box-shadow:var(--shadow-md)}.navbar{align-items:center;background:#0000;border-bottom:1px solid #0000;display:flex;height:64px;position:-webkit-sticky;position:sticky;top:0;transition:background .25s,border-color .25s,-webkit-backdrop-filter .25s;transition:background .25s,border-color .25s,backdrop-filter .25s;transition:background .25s,border-color .25s,backdrop-filter .25s,-webkit-backdrop-filter .25s;z-index:100}.navbar-scrolled{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#080e34c7;border-bottom-color:#ffffff1a}.navbar-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:960px;padding:0 16px;width:100%}.navbar-brand{color:#fff;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.navbar-brand:hover{color:#ffffffbf;text-decoration:none}.navbar-links{align-items:center;display:flex;gap:4px}.navbar-links a{border-radius:6px;color:#fffc;font-size:.9rem;font-weight:500;padding:6px 14px;text-decoration:none;transition:background .15s,color .15s}.navbar-links a.active,.navbar-links a:hover{background:#ffffff1f;color:#fff;text-decoration:none}.navbar-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:4px}.navbar-toggle span{background:#fff;border-radius:2px;display:block;height:2px;transition:transform .2s,opacity .2s;width:24px}.navbar-toggle.open span:first-child{transform:translateY(7px) rotate(45deg)}.navbar-toggle.open span:nth-child(2){opacity:0}.navbar-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width:600px){.navbar-toggle{display:flex}.navbar-links{align-items:stretch;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#080e34f2;border-bottom:1px solid #ffffff1a;display:none;flex-direction:column;gap:0;left:0;padding:8px 0;position:absolute;right:0;top:64px}.navbar-links.open{display:flex}.navbar-links a{border-radius:0;padding:12px 20px}}.footer{background:#f1f5f9;border-top:1px solid var(--border);color:var(--text-muted);font-size:.875rem;margin-top:auto;padding:24px 16px}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin:0 auto;max-width:960px}.footer-links{display:flex;gap:20px}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--blue-primary);text-decoration:none}.hero{color:#fff;padding:72px 24px}.hero-inner{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:960px}.hero-text{display:flex;flex-direction:column;gap:20px}.hero h1{color:#fff;font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:0}.hero-tagline{color:#ffffffbf;font-size:1.15rem;line-height:1.5;margin:0}.hero-social{flex-wrap:wrap;gap:16px}.hero-social,.hero-social a{align-items:center;display:flex}.hero-social a{color:#ffffffb3;font-size:.9rem;font-weight:500;gap:6px;text-decoration:none;transition:color .15s}.hero-social a:hover{color:#fff;text-decoration:none}.hero-cta{display:flex;flex-wrap:wrap;gap:12px}.carousel{aspect-ratio:3/4;background:#00000073;border:1px solid #ffffff2e;border-radius:14px;flex-shrink:0;max-height:520px;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.carousel-slide{inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .5s ease}.carousel-slide.active{opacity:1;pointer-events:auto}.carousel-img-wrap{background:#b0b8c4;height:100%;width:100%}.carousel-img-wrap img{display:block;height:100%;object-fit:contain;opacity:0;transition:opacity .3s ease;width:100%}.carousel-img-wrap.loaded img{opacity:1}.carousel-placeholder{align-items:center;color:#ffffff73;display:flex;flex-direction:column;font-size:.85rem;gap:12px;height:100%;justify-content:center;width:100%}.carousel-placeholder svg{opacity:.4}.carousel-btn{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000059;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:background .15s;width:36px;z-index:2}.carousel-btn:hover{background:#0009}.carousel-btn.prev{left:10px}.carousel-btn.next{right:10px}.carousel-counter{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;border-radius:20px;bottom:10px;color:#ffffffd9;font-size:.75rem;font-weight:600;padding:3px 8px;pointer-events:none;position:absolute;right:12px;z-index:2}.home-content{background:#fff}.home-about{grid-gap:28px;align-items:start;display:grid;gap:28px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:900px;padding:32px 16px}.home-about h2{color:var(--blue-dark);font-size:1.5rem;font-weight:700;margin-bottom:12px}.home-about p{color:var(--text-muted);line-height:1.7}.home-sections{background:#f8fafc;border-bottom:1px solid var(--border);border-top:1px solid var(--border)}.home-sections-inner{margin:0 auto;max-width:900px;padding:32px 16px}.home-sections-inner h2{color:var(--blue-dark);font-size:1.4rem;font-weight:700;margin-bottom:24px}.home-cards-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.home-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;padding:20px;transition:box-shadow .15s,border-color .15s}.home-card,.home-card:hover{color:var(--text);text-decoration:none}.home-card:hover{border-color:var(--blue-primary);box-shadow:var(--shadow-md)}.home-card h3{color:var(--blue-dark);font-size:1rem;font-weight:700}.home-card p{color:var(--text-muted);font-size:.875rem;line-height:1.5}@media (max-width:700px){.hero-inner{gap:36px;grid-template-columns:1fr;text-align:center}.hero h1{font-size:2rem}.hero-cta,.hero-social{justify-content:center}.carousel{aspect-ratio:3/4;max-height:none;width:100%}.home-about{gap:28px;grid-template-columns:1fr}}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;padding:24px;transition:box-shadow .15s,border-color .15s}.project-card:hover{border-color:var(--blue-primary);box-shadow:var(--shadow-md)}.project-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.project-badge{background:#fef3c7;border:1px solid #fcd34d;border-radius:20px;color:#b45309;flex-shrink:0;font-size:.72rem;font-weight:700;padding:2px 10px;white-space:nowrap}.project-card h3{color:var(--blue-dark);font-size:1.05rem;font-weight:700;margin:0}.project-card p{color:var(--text-muted);flex:1 1;font-size:.9rem;line-height:1.6}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.project-links{display:flex;gap:10px;margin-top:4px}.project-card-full{grid-column:1/-1}.projects-empty{background:#f8fafc;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.95rem;padding:40px 24px;text-align:center}.spinwheel-download{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px;padding-top:16px}.spinwheel-buttons{display:flex;flex-wrap:wrap;gap:10px}.spinwheel-note{color:var(--text-muted);font-size:.82rem;line-height:1.5}.spinwheel-note kbd{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:4px;display:inline-block;font-family:var(--mono);font-size:.8rem;padding:1px 6px}.blog-list{display:flex;flex-direction:column;gap:12px}.blog-post-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.blog-post-header{padding:18px 20px 10px}.blog-post-card h2{color:var(--blue-dark);font-size:1.1rem;font-weight:700;margin:0 0 6px}.blog-post-meta{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:10px}.blog-post-abstract{padding:0 20px 16px}.blog-post-abstract p{color:var(--text);font-size:.95rem;font-weight:600;line-height:1.65;margin:0}.blog-post-footer{border-top:1px solid var(--border);padding:10px 20px}.blog-details-btn{align-items:center;background:none;border:none;color:var(--blue-primary);cursor:pointer;display:inline-flex;font-family:var(--font);font-size:.8rem;font-weight:600;gap:5px;padding:2px 0}.blog-details-btn:hover{color:var(--blue-accent)}.blog-chevron{align-items:center;display:flex;transition:transform .2s}.blog-chevron-open{transform:rotate(180deg)}.blog-details-body{display:flex;flex-direction:column;gap:10px;padding-top:10px}.blog-post-body{padding-top:10px}.blog-post-body p{color:var(--text-muted);font-size:.85rem;font-weight:400;line-height:1.7;margin:0}.blog-tags{display:flex;flex-wrap:wrap;gap:6px}.blog-read-more{color:var(--blue-primary);display:inline-block;font-size:.875rem;font-weight:600;text-decoration:none}.blog-read-more:hover{text-decoration:underline}.blog-empty{background:#f8fafc;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.95rem;padding:40px 24px;text-align:center}.resume-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:8px}.resume-section{margin-bottom:40px}.resume-section-title{border-bottom:2px solid var(--blue-primary);color:var(--blue-dark);font-size:1.1rem;font-weight:700;letter-spacing:.02em;margin-bottom:20px;padding-bottom:8px;text-transform:uppercase}.resume-entry{margin-bottom:24px}.resume-entry-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between;margin-bottom:4px}.resume-entry-title{color:var(--text);font-size:1rem;font-weight:700}.resume-entry-date{color:var(--text-muted);font-size:.85rem;white-space:nowrap}.resume-entry-org{color:var(--blue-primary);font-size:.95rem;font-weight:600;margin-bottom:6px}.resume-entry ul{list-style:disc;padding-left:20px}.resume-entry li{color:var(--text-muted);font-size:.92rem;line-height:1.65;margin-bottom:4px}.skills-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.skills-group h4{color:var(--text-muted);font-size:.85rem;font-weight:700;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.skills-group .tag{margin-bottom:6px}.contact-grid{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:1fr 1fr}.contact-info h2{color:var(--blue-dark);font-size:1.25rem;font-weight:700;margin-bottom:20px}.contact-item{align-items:center;display:flex;font-size:.95rem;gap:12px;margin-bottom:16px}.contact-item-icon{align-items:center;background:var(--blue-light);border-radius:8px;color:var(--blue-primary);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.contact-item a{color:var(--blue-primary);font-weight:500}.contact-item span{color:var(--text-muted)}.contact-social{margin-top:32px}.contact-social h3{color:var(--blue-dark);font-size:1rem;font-weight:700;margin-bottom:16px}.social-links{display:flex;flex-direction:column;gap:12px}.social-link{align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);display:flex;font-size:.95rem;font-weight:600;gap:12px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.social-link:hover{border-color:var(--blue-primary);box-shadow:var(--shadow-md);color:var(--blue-primary);text-decoration:none}.social-link svg{flex-shrink:0}.contact-note{background:var(--blue-light);border:1px solid #93c5fd;border-radius:var(--radius);color:var(--blue-accent);font-size:.9rem;margin-top:32px;padding:16px 20px}@media (max-width:640px){.contact-grid{grid-template-columns:1fr}}.wheel-back{color:var(--blue-primary);display:inline-block;font-size:.875rem;font-weight:600;margin-bottom:24px;text-decoration:none}.wheel-back:hover{text-decoration:underline}.wheel-dl-row{margin-bottom:32px}.wheel-instructions{display:flex;flex-direction:column;gap:16px}.wheel-block{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:24px}.wheel-block-title{color:var(--blue-dark);font-size:1.1rem;font-weight:700;margin-bottom:16px}.wheel-steps{display:flex;flex-direction:column;gap:12px;padding-left:20px}.wheel-steps li{color:var(--text-muted);font-size:.9rem;line-height:1.65}.wheel-steps a{color:var(--blue-primary)}.wheel-steps pre{border-radius:6px;margin:8px 0 2px;overflow-x:auto;padding:8px 12px}.wheel-steps code,.wheel-steps pre{background:#e2e8f0;font-family:var(--mono);font-size:.82rem}.wheel-steps code{border-radius:4px;padding:1px 5px}.wheel-note{background:var(--blue-light);border:1px solid #bfdbfe;border-radius:var(--radius);color:var(--blue-accent);font-size:.88rem;line-height:1.6;margin-top:28px;padding:14px 18px}.wheel-note kbd{background:#fff;border:1px solid #cbd5e1;border-radius:4px;color:var(--text);display:inline-block;font-family:var(--mono);font-size:.8rem;padding:1px 6px}*{box-sizing:border-box;margin:0;padding:0}@keyframes page-in{0%{opacity:0}to{opacity:1}}.games-page{align-items:center;animation:page-in .7s cubic-bezier(.22,1,.36,1) both;background:#fff;color:#111;display:flex;flex-direction:column;font-family:var(--font);gap:1rem;justify-content:center;min-height:100vh;padding:4rem 2rem 2rem;text-align:center}.games-page h1{color:#111;font-size:2.5rem;font-weight:700;letter-spacing:2px}.status{color:#555;font-size:1.2rem;font-weight:600;min-height:2rem}.status.won{color:#1a7f37;font-size:1.4rem}.status.draw{color:#555;font-size:1.4rem}.status.lost{color:#cf222e;font-size:1.4rem}.back-btn{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:.9rem;font-weight:600;left:1.25rem;padding:.4rem 1rem;position:fixed;top:1.25rem;transition:background .15s,color .15s}.back-btn:hover{background:#111;color:#fff}.reset-btn{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:1px;margin-top:.5rem;padding:.6rem 2.2rem;transition:background .15s,color .15s}.reset-btn:hover{background:#111;color:#fff}.board{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,clamp(80px,calc(33.33333vw - 1.33333rem),110px));grid-template-rows:repeat(3,clamp(80px,calc(33.33333vw - 1.33333rem),110px))}.square{background:#fff;border:3px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:clamp(1.8rem,8vw,2.8rem);font-weight:700;height:clamp(80px,calc(33.33333vw - 1.33333rem),110px);position:relative;transition:background .1s,transform .1s;width:clamp(80px,calc(33.33333vw - 1.33333rem),110px)}.square.hoverable:hover{background:#f8f8f8;transform:scale(1.03)}.square-value{font-size:clamp(1.8rem,8vw,2.8rem);font-weight:700}.move-number{bottom:6px;color:#111;font-size:.7rem;font-weight:600;opacity:.35;position:absolute;right:8px}.square.highlight .move-number{color:#fff}.hover-preview{align-items:center;display:flex;font-size:clamp(1.8rem,8vw,2.8rem);font-weight:700;inset:0;justify-content:center;opacity:0;pointer-events:none;position:absolute;transition:opacity .15s}.square.hover-x .hover-preview{color:#0969da}.square.hover-o .hover-preview{color:#cf222e}.square.hoverable:hover .hover-preview{opacity:.25}.square.x{color:#0969da}.square.o{color:#cf222e}.square.highlight{background:#1a7f37;border-color:#1a7f37;color:#fff}.difficulty{align-items:center;display:flex;gap:.75rem}.diff-label{color:#888;font-size:.9rem;font-weight:600;min-width:44px}.diff-label.diff-active{color:#111}.diff-slider{-webkit-appearance:none;appearance:none;background:#111;border-radius:2px;cursor:pointer;height:4px;outline:none;width:140px}.diff-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#111;border:1.5px solid #111;border-radius:50%;cursor:pointer;height:18px;width:18px}.diff-slider::-moz-range-thumb{background:#111;border:1.5px solid #111;border-radius:50%;cursor:pointer;height:18px;width:18px}.diff-slider:disabled{cursor:not-allowed;opacity:.3}.hangman-svg{stroke:#111;height:220px;width:200px}.word-display{flex-wrap:wrap;gap:8px}.letter-box,.word-display{display:flex;justify-content:center}.letter-box{align-items:center;border-bottom:2px solid #111;font-size:1.5rem;font-weight:700;height:44px;text-transform:uppercase;width:36px}.letter-box.revealed{color:#cf222e}.keyboard{align-items:center;display:flex;flex-direction:column;gap:6px;width:min(400px,calc(100vw - 3rem))}.keyboard-row{display:flex;gap:5px;width:100%}.key{-webkit-tap-highlight-color:transparent;background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;flex:1 1;font-size:clamp(.7rem,2.2vw,.9rem);font-weight:600;height:40px;min-width:0;text-transform:uppercase;transition:background .1s,color .1s,border-color .1s}.key:hover:not(:disabled){background:#f0f0f0}.key:disabled{cursor:default}.key.key-wrong{background:#cf222e;border-color:#cf222e;color:#fff;opacity:.75}.key.key-correct{background:#1a7f37;border-color:#1a7f37;color:#fff}.ms-page{gap:.75rem;justify-content:center;max-height:100vh;min-height:100vh;overflow:hidden}.ms-hud-actions{gap:.4rem}.ms-content,.ms-hud-actions{align-items:center;display:flex;flex-direction:column}.ms-content{animation:ui-in .55s cubic-bezier(.22,1,.36,1) both;gap:.75rem}.ms-hud{border:1.5px solid #111;border-radius:6px;justify-content:space-between;max-width:360px;padding:.6rem 1.2rem;width:100%}.ms-hud,.ms-hud-item{align-items:center;display:flex}.ms-hud-item{flex-direction:column;gap:2px;min-width:60px}.ms-hud-label{color:#888;font-size:.7rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.ms-hud-value{color:#111;font-size:1.2rem;font-weight:700}.ms-timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ms-reset{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:.4rem 1rem;transition:background .15s,color .15s}.ms-reset:hover:not(:disabled){background:#111;color:#fff}.ms-reset:disabled{cursor:not-allowed;opacity:.3}@keyframes board-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes ui-in{0%{opacity:0}to{opacity:1}}.ms-board{grid-gap:3px;display:grid;gap:3px}.ms-cell{align-items:center;background:#fff;border:1.5px solid #111;border-radius:4px;cursor:pointer;display:flex;justify-content:center;padding:0;transition:background .1s,transform .1s;-webkit-user-select:none;user-select:none}.ms-cell:hover:not([disabled]){background:#f0f0f0;transform:scale(1.08)}.ms-revealed{background:#f8f8f8;border-color:#ddd;cursor:default}.ms-revealed:hover{background:#f8f8f8!important;transform:none!important}.ms-mine{background:#f8f8f8;border-color:#ddd;cursor:default}.ms-mine:hover{transform:none!important}.ms-exploded{background:#cf222e!important;border-color:#cf222e!important;cursor:default}.ms-exploded:hover{transform:none!important}.ms-exploded svg circle,.ms-exploded svg line{fill:#fff;stroke:#fff}.snake-page{gap:.65rem;overflow:hidden}.snake-settings{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.snake-setting{align-items:center;display:flex;flex-direction:column;gap:4px}.snake-setting-label{color:#555;font-size:.8rem;letter-spacing:.5px}.snake-setting .diff-slider{width:110px}.snake-hud{align-items:center;display:flex;gap:1.5rem}.snake-score{color:#555;font-size:1rem;min-width:80px}.snake-score strong{color:#111}.snake-hint{color:#aaa;font-size:.85rem;letter-spacing:.5px}.snake-board{grid-gap:1px;animation:board-in .5s cubic-bezier(.22,1,.36,1) both;background:#e8e8e8;border:1.5px solid #111;border-radius:4px;display:grid;gap:1px;padding:2px}.snake-cell{background:#fff;border-radius:1px}.snake-body,.snake-head{background:#111;border-radius:3px}.snake-apple{background:#cf222e;border-radius:50%;transform:scale(.75)}.snake-number-input{-moz-appearance:textfield;background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;font-family:inherit;font-size:1rem;font-weight:700;padding:.3rem .4rem;text-align:center;width:60px}.snake-number-input::-webkit-inner-spin-button,.snake-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.snake-number-input:disabled{cursor:not-allowed;opacity:.3}.main-nav{align-items:center;background:#fff;border-bottom:1.5px solid #111;display:flex;gap:.5rem;justify-content:center;left:0;padding:.6rem 1rem;position:fixed;right:0;top:0;z-index:100}.nav-btn{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:.35rem .9rem;transition:background .15s,color .15s}.nav-btn:not(:disabled):hover{background:#f0f0f0}.nav-btn.nav-active{background:#111;color:#fff}.nav-btn:disabled{cursor:not-allowed;opacity:.3}.nav-divider{background:#ccc;flex-shrink:0;height:1.2rem;margin:0 .25rem;width:2px}.player-btn{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:.9rem;font-weight:600;padding:.35rem 1.2rem;transition:background .15s,color .15s}.player-btn:hover{background:#f0f0f0}.player-btn.active{background:#111;color:#fff}.nav-back-link{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:.35rem .9rem;text-decoration:none;transition:background .15s,color .15s}.nav-back-link:hover{background:#f0f0f0}@keyframes c4-drop{0%{transform:translateY(var(--c4-drop-from))}75%{transform:translateY(6px)}88%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes flag-remove{0%{opacity:1;transform:scale(1) rotate(0deg)}40%{opacity:1;transform:scale(1.2) rotate(-18deg)}to{opacity:0;transform:scale(0) rotate(-35deg)}}@keyframes mine-pop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.25)}80%{opacity:1;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.c4-container{align-items:center;display:flex;flex-direction:column}.c4-arrows{display:flex;gap:6px;margin-bottom:2px;padding:0 12px}.c4-arrow{align-items:center;color:#0000;cursor:pointer;display:flex;font-size:.85rem;height:22px;justify-content:center;transition:color .1s,transform .12s;-webkit-user-select:none;user-select:none;width:50px;width:var(--c4-cell,50px)}.c4-arrow.c4-arrow-active{transform:translateY(4px)}.c4-arrow.c4-arrow-active.c4-arrow-p1{color:#0969da}.c4-arrow.c4-arrow-active.c4-arrow-p2{color:#cf222e}.c4-arrow.c4-arrow-full{opacity:0;pointer-events:none}.c4-board{grid-gap:6px;background:#111;border-radius:8px;cursor:pointer;display:grid;gap:6px;grid-template-columns:repeat(7,50px);grid-template-columns:repeat(7,var(--c4-cell,50px));grid-template-rows:repeat(6,50px);grid-template-rows:repeat(6,var(--c4-cell,50px));overflow:hidden;padding:12px;-webkit-user-select:none;user-select:none}.c4-cell{background:#fff;border-radius:50%;height:50px;height:var(--c4-cell,50px);position:relative;transition:background .12s;width:50px;width:var(--c4-cell,50px)}.c4-cell.c4-p1{background:#0969da}.c4-cell.c4-p2{background:#cf222e}.c4-cell.c4-win{animation:c4-win-ring .3s ease forwards;animation-delay:0ms;animation-delay:var(--c4-win-delay,0ms)}@keyframes c4-win-ring{0%{box-shadow:0 0 0 0 #0000}to{box-shadow:0 0 0 4px #1a7f37}}.c4-cell.c4-dropping{animation:c4-drop .38s cubic-bezier(.25,.8,.4,1) forwards;position:relative;z-index:2}.status.c4-turn-1{color:#0969da}.status.c4-turn-2{color:#cf222e}.nav-left{flex-shrink:0}.nav-games-desktop,.nav-left{align-items:center;display:flex;gap:.5rem}.nav-game-select{background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;display:none;font-family:inherit;font-size:.85rem;font-weight:600;padding:.32rem .6rem}@media (max-width:640px){.main-nav{gap:0;justify-content:space-between;padding:.5rem .75rem}.nav-left{gap:.4rem}.nav-left .nav-divider{display:none}.nav-game-select{display:block;margin-left:0}.nav-games-desktop{display:none}.player-btn{font-size:.82rem;padding:.3rem .85rem}.nav-back-link{font-size:.78rem;padding:.3rem .65rem}.games-page{gap:.5rem;height:100dvh;height:100vh;justify-content:flex-start;overflow:hidden;padding:4.5rem .75rem .5rem}.games-page h1{font-size:1.6rem}.hangman-svg{height:143px;width:130px}.ms-page{justify-content:flex-start}.ms-content,.ms-page{gap:.5rem}.ms-hud-actions{flex-direction:row;gap:.5rem}.snake-page{gap:.4rem}.snake-dpad{gap:4px;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);margin-top:0}.dpad-btn{font-size:1.2rem}}.snake-dpad{display:none;gap:6px;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);margin-top:.25rem}@media (hover:none){.snake-dpad{display:grid}}.dpad-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#fff;border:1.5px solid #111;border-radius:8px;color:#111;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;touch-action:manipulation;-webkit-user-select:none;user-select:none}.dpad-btn:active{background:#f0f0f0}.dpad-center{background:#0000;border:none;cursor:default}.snake-board{touch-action:none}.ms-flag-btn{-webkit-tap-highlight-color:transparent;background:#fff;border:1.5px solid #111;border-radius:4px;color:#111;cursor:pointer;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:.4rem 1rem;transition:background .15s,color .15s}.ms-flag-btn:hover{background:#f0f0f0}.ms-flag-btn.ms-flag-active{background:#cf222e;border-color:#cf222e;color:#fff}.ms-board{touch-action:manipulation}@media (max-width:640px){.ms-hud{flex-wrap:wrap;gap:.5rem;justify-content:center}}
/*# sourceMappingURL=main.a25640de.css.map*/