:root{--color-background: #f7f6f2;--color-surface: #f7f6f2;--color-text: #465064;--color-accent: #4c8dff;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 12px;--space: 16px;color-scheme:dark light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-family);-webkit-font-smoothing:antialiased}.app-shell{display:flex;min-height:100%;flex-direction:column}.app-header,.app-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space);padding:calc(var(--space) * .75) var(--space)}.app-title{margin:0;font-size:1.125rem;font-weight:700;letter-spacing:.01em}.app-nav{display:flex;gap:calc(var(--space) * .75)}.nav-item{font-size:.875rem;opacity:.75}.app-main{display:flex;flex:1;align-items:center;justify-content:center;padding:var(--space)}.app-footer{justify-content:center}.app-debug{margin:0;font-size:.75rem;opacity:.6}.puzzle-stage{width:100%;max-width:960px}.game-surface{position:relative;width:100%;height:min(78vh,900px);overflow:hidden;border-radius:var(--radius);background:var(--color-surface)}.game-mount{width:100%;height:100%;touch-action:none}.game-credit{position:absolute;right:calc(var(--space) * .75);bottom:calc(var(--space) * .5);margin:0;font-size:.6875rem;opacity:.55;pointer-events:none}.level-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space);min-height:7rem;padding:0 var(--space) calc(var(--space) * 1.25)}.level-button{justify-self:end;padding:.45rem .75rem;border:0;border-radius:calc(var(--radius) / 2);background:transparent;color:var(--color-text);font:inherit;cursor:pointer;opacity:.72}.level-button:last-child{justify-self:start}.level-button:disabled{cursor:not-allowed;opacity:.45}.level-label{grid-column:2;min-width:8rem;color:var(--color-text);font-size:clamp(2.5rem,7vw,4.5rem);font-weight:400;line-height:1;text-align:center}.hint-button{position:absolute;right:calc(var(--space) * .75);bottom:calc(var(--space) * 3.25);width:52px;height:52px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgb(255 255 255 / .14);border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffff29,#0009 72%);box-shadow:0 3px 12px #0006;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease}.hint-button:hover:not(:disabled){transform:translateY(-2px)}.hint-button:active:not(:disabled){transform:translateY(0) scale(.94)}.hint-button:disabled{cursor:not-allowed;opacity:.5}.hint-bulb-glass{fill:color-mix(in srgb,var(--color-accent) 22%,transparent);stroke:var(--color-accent);stroke-width:1.4;transition:fill .25s ease,stroke .25s ease}.hint-button:disabled .hint-bulb-glass{fill:#ffffff0d;stroke:#ffffff52}.hint-bulb-neck,.hint-bulb-base,.hint-bulb-foot{fill:#ffffff8c}.hint-button:disabled .hint-bulb-neck,.hint-button:disabled .hint-bulb-base,.hint-button:disabled .hint-bulb-foot{fill:#ffffff40}.hint-count{font:700 12.5px/1 var(--font-family);fill:var(--color-accent);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--color-accent) 70%,transparent));transition:fill .25s ease}.hint-button:disabled .hint-count{fill:#fff6;filter:none}.hint-button-charged{animation:hint-breathe 2.6s ease-in-out infinite}@keyframes hint-breathe{0%,to{box-shadow:0 3px 12px #0006,0 0 color-mix(in srgb,var(--color-accent) 45%,transparent)}50%{box-shadow:0 3px 14px #00000073,0 0 0 9px color-mix(in srgb,var(--color-accent) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.hint-button-charged{animation:none}}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space);padding:calc(var(--space) * 1.5);text-align:center}.screen{padding:var(--space)}.screen-centered{display:flex;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:var(--space)}.screen-label{margin:0;font-size:.875rem;opacity:.75}.notice{max-width:34rem;padding:var(--space);border:1px solid rgb(255 255 255 / .12);border-radius:var(--radius);background:var(--color-surface);text-align:left}.notice-info{border-left:3px solid var(--color-accent)}.notice-warning{border-left:3px solid #f0b429}.notice-error{border-left:3px solid #e5484d}.notice-title{margin:0;font-weight:600}.notice-detail{margin:calc(var(--space) * .5) 0 0;font-size:.875rem;opacity:.8}.notice code{font-size:.8125rem;overflow-wrap:anywhere}.button{margin-top:var(--space);padding:.5rem 1rem;border:0;border-radius:calc(var(--radius) / 2);background:var(--color-accent);color:#fff;font:inherit;font-size:.875rem;cursor:pointer}.spinner{width:28px;height:28px;border:3px solid rgb(255 255 255 / .18);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.home-landing{--home-navy: #13213f;--home-paper: #f6f2e9;--home-yellow: #e7c23d;--home-muted: #687084;--home-line: rgb(19 33 63 / 18%);min-height:100dvh;background:var(--home-paper);color:var(--home-navy);font-family:Plus Jakarta Sans,Trebuchet MS,sans-serif}.home-landing *,.home-landing *:before,.home-landing *:after{box-sizing:border-box}.home-landing a{color:inherit;text-decoration:none}.home-shell{width:min(1120px,calc(100% - 56px));margin:0 auto}.home-display{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:-.045em}.home-nav-wrap{position:fixed;z-index:20;inset:0 0 auto}.home-nav{display:flex;height:62px;width:100%;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100% - 1120px)/2));border-bottom:1px solid var(--home-navy);background:var(--home-navy);color:var(--home-paper)}.home-logo-lockup{display:inline-flex;height:52px;align-items:center;padding:2px 9px 2px 0}.home-logo-lockup img{display:block;width:141px;height:46px;object-fit:contain}.home-nav-links{display:flex;align-items:center;margin-left:auto;margin-right:31px;gap:30px}.home-nav-links a{color:#f6f2e9c7;font:600 10px/1 DM Mono,monospace;letter-spacing:.04em;text-transform:uppercase;transition:color .2s ease}.home-nav-links a:hover{color:var(--home-paper)}.home-nav-cta,.home-button{display:inline-flex;align-items:center;justify-content:center;padding:15px 18px;border:1px solid var(--home-navy);background:var(--home-navy);color:var(--home-paper);cursor:pointer;font:600 11px/1 DM Mono,monospace;gap:18px;letter-spacing:.01em;transition:background-color .2s ease,color .2s ease,transform .2s ease}.home-nav-cta{border-color:var(--home-paper);background:var(--home-paper);color:var(--home-navy)}.home-nav-cta:hover{border-color:var(--home-yellow);background:var(--home-yellow);color:var(--home-navy);transform:translateY(-2px)}.home-button:hover{background:var(--home-yellow);color:var(--home-navy);transform:translateY(-2px)}.home-menu-button{display:none;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--home-paper);background:transparent;color:var(--home-paper);cursor:pointer}.home-hero{position:relative;min-height:720px;padding:180px 0 104px}.home-hero-layout{display:grid;align-items:end;gap:90px;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr)}.home-hero h1{max-width:800px;margin:0;font-size:clamp(4.5rem,7vw,7.8rem);line-height:.83}.home-hero h1 em,.home-section-title em{color:var(--home-yellow);font-style:normal}.home-hero-copy{max-width:455px;margin:44px 0 0 7px;padding-left:20px;border-left:1px solid var(--home-navy)}.home-hero-copy p,.home-section-intro{margin:0;color:#13213fd1;font-size:14px;line-height:1.75}.home-hero-copy p{margin-bottom:24px}.home-note{margin-top:14px;color:var(--home-muted);font:10px/1.5 DM Mono,monospace}.home-hero-motif{position:relative;height:340px;align-self:center;margin-top:8px}.home-hero-motif img{display:block;width:100%;height:100%;object-fit:contain}.home-section{padding:112px 0 120px;border-top:1px solid var(--home-line)}.home-section-content{max-width:860px}.home-section-title{margin:0 0 31px;font-size:clamp(3.8rem,6.4vw,6.3rem);line-height:.84}.home-section-intro{max-width:570px}.home-problem-points{display:grid;margin-top:57px;border-top:1px solid var(--home-line);grid-template-columns:repeat(3,1fr)}.home-problem-point{min-height:128px;padding:18px 24px 0 0;border-right:1px solid var(--home-line)}.home-problem-point+.home-problem-point{padding-left:24px}.home-problem-point:last-child{border-right:0}.home-problem-point strong{display:block;margin-bottom:13px;font:400 25px/1 "Instrument Serif",Georgia,serif}.home-problem-point p{max-width:190px;margin:0;color:var(--home-muted);font-size:12px;line-height:1.6}.home-problem{background:var(--home-navy);color:var(--home-paper)}.home-problem .home-section-intro{color:#f6f2e9ad}.home-problem .home-section-title,.home-problem .home-problem-point strong{color:var(--home-paper)}.home-problem .home-problem-points{border-top-color:#f6f2e94d}.home-problem .home-problem-point{border-right-color:#f6f2e94d}.home-problem .home-problem-point p{color:#f6f2e9ad}.home-implementation{background:var(--home-paper)}.home-implementation-title{max-width:670px}.home-three-steps{display:grid;margin-top:58px;border-top:1px solid var(--home-navy);grid-template-columns:repeat(3,1fr)}.home-step{min-height:205px;padding:19px 26px 20px 0;border-right:1px solid var(--home-line)}.home-step+.home-step{padding-left:26px}.home-step:last-child{border-right:0}.home-step h3{margin:0 0 12px;font:400 27px/1 "Instrument Serif",Georgia,serif}.home-step p{max-width:220px;margin:0;color:#13213fc7;font-size:12px;line-height:1.65}.home-proof{background:var(--home-navy);color:var(--home-paper)}.home-proof .home-section-intro{color:#f6f2e9ad}.home-proof .home-section-title{max-width:650px;color:var(--home-paper)}.home-proof-list{margin-top:59px;border-top:1px solid rgb(246 242 233 / 30%)}.home-proof-item{padding:23px 0;border-bottom:1px solid rgb(246 242 233 / 30%)}.home-proof-item p{max-width:680px;margin:0;color:var(--home-paper);font:400 clamp(1.35rem,2.3vw,2rem) / 1.2 "Instrument Serif",Georgia,serif}.home-final{padding-bottom:96px}.home-final-layout{display:grid;align-items:end;margin-top:60px;gap:100px;grid-template-columns:minmax(0,1fr) 360px}.home-final h2{margin:0;font-size:clamp(5rem,12vw,11.5rem);line-height:.78}.home-final h2 span{display:block;color:var(--home-yellow)}.home-average-note{margin-top:16px;color:var(--home-muted);font:10px/1.5 DM Mono,monospace}.home-footer{padding:18px 0;background:var(--home-navy);color:var(--home-paper)}.home-footer-inner{display:flex;align-items:center;justify-content:space-between;font:10px DM Mono,monospace}.home-footer a{display:inline-flex;align-items:center;gap:6px;transition:color .2s ease}.home-footer a:hover{color:var(--home-yellow)}.home-modal-backdrop{position:fixed;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#13213fb8;inset:0}.home-modal{position:relative;width:100%;max-width:470px;padding:34px;border:1px solid var(--home-navy);background:var(--home-paper);box-shadow:8px 8px 0 var(--home-yellow)}.home-modal-close{position:absolute;top:14px;right:14px;border:0;background:transparent;color:var(--home-navy);cursor:pointer}.home-modal h2{margin:23px 0 17px;font-size:58px;line-height:.8}.home-modal p{margin:0 0 23px;color:#13213fc7;font-size:13px;line-height:1.65}.home-modal form{display:grid;gap:9px}.home-modal label{margin-top:4px;font:10px DM Mono,monospace;letter-spacing:.04em;text-transform:uppercase}.home-modal input,.home-modal textarea{width:100%;padding:13px;border:1px solid var(--home-navy);border-radius:0;background:transparent;color:var(--home-navy);font:12px DM Mono,monospace;resize:vertical}.home-modal input:focus,.home-modal textarea:focus{outline:2px solid var(--home-yellow);outline-offset:2px}.home-modal .home-button{width:100%;margin-top:9px}.home-success{padding:22px;border:1px solid var(--home-navy);background:var(--home-yellow);color:var(--home-navy);font-size:13px;line-height:1.65}.home-success strong{font:400 26px/1 "Instrument Serif",Georgia,serif}@media(max-width:800px){.home-shell{width:min(100% - 34px,620px)}.home-nav{height:58px}.home-logo-lockup img{width:129px;height:42px}.home-nav-links{position:absolute;top:67px;right:0;display:none;width:190px;flex-direction:column;margin:0;padding:24px;border:1px solid var(--home-paper);background:var(--home-navy);gap:22px}.home-nav-links-open{display:flex}.home-nav-cta{display:none}.home-menu-button{display:inline-flex}.home-hero{min-height:auto;padding:137px 0 104px}.home-hero-layout,.home-final-layout{gap:48px;grid-template-columns:1fr}.home-hero h1{font-size:clamp(3.5rem,13.5vw,6.5rem)}.home-hero-motif{height:250px;margin:8px 0 0}.home-section{padding:79px 0 84px}.home-section-title{font-size:clamp(3.4rem,13.5vw,5.8rem)}.home-problem-points,.home-three-steps{grid-template-columns:1fr}.home-problem-point,.home-problem-point+.home-problem-point,.home-step,.home-step+.home-step{min-height:auto;padding:19px 0;border-right:0;border-bottom:1px solid var(--home-line)}.home-problem-point:last-child,.home-step:last-child{border-bottom:0}.home-final-layout{margin-top:42px}.home-final h2{font-size:clamp(5rem,24vw,10rem)}.home-footer-inner{align-items:start;flex-direction:column;gap:12px}}@media(prefers-reduced-motion:reduce){.home-nav-cta,.home-button,.home-footer a,.home-nav-links a{transition:none}.home-nav-cta:hover,.home-button:hover{transform:none}}
