@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#f3f5f0;--ink:#142c26;--muted:#64736b;--line:#d8ded5;--lime:#bafa68;--green:#1c493d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #5c9f28;outline-offset:4px}header{height:94px;margin:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:11px;font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:700;letter-spacing:-1px}.brand-icon{background:var(--ink);color:var(--lime);padding:7px 10px;border-radius:7px}.brand-icon span{font-size:15px}.year{font-size:13px;letter-spacing:0;border:1px solid var(--line);border-radius:20px;padding:5px 9px;margin-left:4px}.school,.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.6px}.school b{margin:0 15px;color:#97a497}.quiet{background:none;border:1px solid var(--line);padding:10px 14px;border-radius:7px;color:var(--ink);font-size:14px}main{display:flex;min-height:calc(100dvh - 174px)}aside{width:223px;flex-shrink:0;margin:38px 0 28px 44px;padding-right:28px;border-right:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{color:var(--muted)}nav{margin-top:25px;display:grid;gap:7px}nav button{display:flex;gap:13px;text-align:left;background:none;border:0;padding:13px 10px;border-radius:6px;color:var(--muted);font-size:14px}nav button span{font-size:12px;opacity:.65}nav button.active{background:#e3e9dd;color:var(--ink);font-weight:700}.aside-bottom{margin-top:auto;padding-top:40px;font-size:10px;letter-spacing:1px;line-height:2;color:var(--muted)}.aside-bottom span{font-size:12px;letter-spacing:0}#stage{width:calc(100% - 267px);padding:40px 44px 28px 42px;display:flex;flex-direction:column}.slide{animation:enter .35s ease;flex:1;display:flex;flex-direction:column}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.kicker{display:flex;gap:10px;align-items:center;font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase}.kicker:before{content:'';height:7px;width:7px;background:#629e38;border-radius:50%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Space Grotesk',sans-serif}h1{font-size:clamp(42px,4.7vw,74px);line-height:1.03;letter-spacing:-3.6px;font-weight:500;margin:25px 0}h1 em{font-style:normal;color:#5a8061}h2{font-size:clamp(30px,3.1vw,49px);line-height:1.1;letter-spacing:-2px;font-weight:500;margin:20px 0 14px}h3{font-size:21px;line-height:1.3;font-weight:500}.lead{color:var(--muted);font-size:17px;line-height:1.65;max-width:590px}.hero{display:grid;grid-template-columns:1fr 1.07fr;gap:28px;flex:1;align-items:center}.hero .lead{max-width:400px}.tag{display:inline-flex;margin-top:25px;padding:8px 11px;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--muted)}.scene{position:relative;min-height:370px;border-radius:12px;background:#dfe6db;overflow:hidden}.scene canvas{display:block;width:100%;height:100%;touch-action:none}.scene-label{position:absolute;left:19px;top:18px;font-size:11px;letter-spacing:1.4px;pointer-events:none;color:#4b6655}.scene-hint{position:absolute;left:0;bottom:15px;text-align:center;width:100%;font-size:12px;color:#51695a;pointer-events:none}.hero-stats{display:flex;gap:40px;border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.hero-stats strong{display:block;font-family:'Space Grotesk';font-size:27px;font-weight:500}.hero-stats span{font-size:12px;color:var(--muted)}footer{height:80px;border-top:1px solid var(--line);margin:0 44px;display:flex;align-items:center;justify-content:space-between}#chapter{font-size:11px;letter-spacing:1.2px;color:var(--muted)}#dots{display:flex;gap:7px}#dots button{height:5px;width:18px;border:0;background:#cbd5c6;border-radius:5px;padding:0}#dots button.active{background:var(--green);width:34px}.pagination{display:flex;align-items:center;gap:9px}.pagination span{font-family:'Space Grotesk';font-size:14px;margin-right:14px}.pagination i{font-style:normal;color:#879187}.pagination button{background:none;border:1px solid var(--line);width:40px;height:38px;border-radius:6px;font-size:20px;color:var(--ink)}.pagination button:last-child{background:var(--ink);color:white}.pagination button:disabled{opacity:.3;cursor:default}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.card{border:1px solid var(--line);border-radius:10px;padding:25px}.card .number{font-family:'Space Grotesk';font-size:40px;color:#779b63;display:block;margin-bottom:30px}.card p{margin-top:13px;color:var(--muted);line-height:1.65;font-size:16px}.bottom-note{font-size:12px;color:var(--muted);margin-top:auto;padding-top:23px;line-height:1.6}.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;flex:1;margin-top:24px;align-items:center}.steps{display:grid;gap:20px;margin:25px 0}.step{display:flex;gap:13px;align-items:flex-start}.step b{flex:none;background:#e2eadb;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:12px}.step p{font-size:15px;color:var(--muted);line-height:1.55}.step strong{display:block;font-size:16px;color:var(--ink);margin-bottom:3px}.action{border:0;border-radius:6px;background:var(--ink);color:white;font-size:14px;padding:13px 19px}.status{font-size:13px;color:var(--muted);margin-top:12px}.components{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.components button{border:1px solid var(--line);background:none;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--ink)}.components button.active{background:var(--ink);color:#fff}.component-detail{margin-top:17px}.component-detail p{font-size:16px;line-height:1.6;color:var(--muted);margin-top:12px}.budget{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-size:12px;font-weight:500;padding:13px 0}td{border-top:1px solid var(--line);padding:10px 0}th:last-child,td:last-child{text-align:right}.total{background:var(--ink);color:var(--bg);padding:22px 25px;display:flex;justify-content:space-between;align-items:center;border-radius:8px;margin-top:20px}.total strong{font-family:'Space Grotesk';font-size:32px;font-weight:500}.photo-layout{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:24px;align-items:center}.photo-layout img{height:360px;max-width:100%;object-fit:contain;border-radius:8px;background:#e3e7df}.team{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-top:20px}.team div{border-bottom:1px solid var(--line);padding:15px 0}.team strong{font-size:15px}.team p{color:var(--muted);font-size:14px;margin-top:6px;line-height:1.5}.credit{margin-top:20px;color:var(--muted);font-size:13px;line-height:1.7}.source-link{text-decoration:underline;text-underline-offset:3px}.dark-box{margin-top:26px;background:var(--ink);color:var(--bg);padding:32px;border-radius:10px}.dark-box p{font-size:20px;line-height:1.6;max-width:780px}.dark-box small{display:block;color:var(--lime);margin-top:20px;font-size:13px}.fallback{padding:90px 30px;color:var(--ink);line-height:1.7}
@media(min-width:1450px){#stage{padding-top:55px}.scene{min-height:470px}}@media(max-width:1100px){aside{width:175px;margin-left:25px;padding-right:15px}#stage{width:calc(100% - 200px);padding:30px 25px}header,footer{margin:0 25px}.hero{gap:20px;grid-template-columns:1fr 1fr}h1{font-size:46px}.hero-stats{gap:20px}.scene{min-height:330px}.school{font-size:10px}.grid{gap:12px}.card{padding:18px}}@media(max-width:800px){header{height:75px;margin:0 20px}.school{display:none}.brand{font-size:17px}.quiet span{display:none}main{min-height:calc(100dvh - 145px)}aside{display:none}#stage{width:100%;padding:28px 20px}h1{font-size:49px;letter-spacing:-2.5px}h2{font-size:35px}.hero,.split,.photo-layout{grid-template-columns:1fr}.hero{gap:26px}.hero .lead{max-width:none}.scene{min-height:340px}.hero-stats{margin-top:22px}.grid{grid-template-columns:1fr}.card .number{font-size:27px;margin-bottom:12px}.budget{grid-template-columns:1fr}.team{grid-template-columns:1fr}footer{margin:0 20px;height:70px}#dots{display:none}#chapter{font-size:10px}.photo-layout img{height:300px}.total strong{font-size:26px}.lead{font-size:16px}.split{gap:20px}.card p{font-size:16px}}@media(prefers-reduced-motion:reduce){.slide{animation:none}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#101917;--ink:#e5eee5;--muted:#a5b6ab;--line:#2e4137;--green:#bafa68}
[data-theme="dark"] .brand-icon{background:#263c2b;color:var(--lime)}
[data-theme="dark"] nav button.active,[data-theme="dark"] .step b{background:#263c2b;color:var(--lime)}
[data-theme="dark"] h1 em{color:#bafa68}
[data-theme="dark"] .scene{background:#192821}
[data-theme="dark"] .scene-label,[data-theme="dark"] .scene-hint{color:#b6c6b8}
[data-theme="dark"] .action,[data-theme="dark"] .pagination button:last-child,[data-theme="dark"] .components button.active{background:#bafa68;color:#142318}
[data-theme="dark"] .dark-box,[data-theme="dark"] .total{background:#20342a;color:#e5eee5;border:1px solid #35503c}
[data-theme="dark"] #dots button{background:#35483b}[data-theme="dark"] #dots button.active{background:#bafa68}
[data-theme="dark"] .card .number{color:#bafa68}[data-theme="dark"] .photo-layout img{background:#203027}
.header-actions{display:flex;align-items:center;gap:9px}.theme-icon{font-size:17px;margin-right:5px}.model-loading{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center;padding:30px;color:var(--muted);font-size:14px;background:var(--bg);z-index:2}.model-loading:before{content:'';width:23px;height:23px;margin:auto;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.model-loading:before{animation:none}}@media(max-width:800px){.header-actions{gap:6px}.header-actions .quiet{padding:9px 10px}.theme-icon{margin:0}}
