
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,300;0,400;0,500;0,700;1,300&family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@400;500&display=swap');
:root{--white:#ffffff;--off:#f4f8f8;--panel:#e8f4f4;--border:#b8d8d8;--teal:#1a7878;--mid:#2898a8;--sky:#40c0c0;--dark:#0a2828;--text:#1a3838;--muted:#508080;--red:#c03040;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--off);color:var(--text);}
#prog{position:fixed;top:0;left:0;height:3px;background:linear-gradient(to right,var(--teal),var(--sky));z-index:1000;width:0%;}
#bt{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--teal);color:white;font-size:.9rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .25s;z-index:999;text-decoration:none;border:none;}
#bt.on{opacity:1;pointer-events:auto;}#bt:hover{transform:translateY(-3px);}
.nav{background:var(--dark);border-bottom:3px solid var(--sky);padding:10px 28px;display:flex;align-items:center;justify-content:space-between;}
.nav .bc{font-family:'DM Mono',monospace;font-size:.6rem;color:rgba(64,192,192,.6);letter-spacing:.12em;}
.nav .bc .s{color:rgba(64,192,192,.2);margin:0 8px;}
.nav .dept{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;color:var(--sky);letter-spacing:.1em;}
.hero{background:white;border-bottom:3px solid var(--border);padding:44px;display:flex;gap:44px;align-items:flex-start;flex-wrap:wrap;}
.hero-diagram{flex:0 0 auto;width:min(400px,100%);}
.hero-content{flex:1;min-width:260px;}
.hero-eyebrow{font-family:'DM Mono',monospace;font-size:.62rem;color:var(--mid);letter-spacing:.18em;margin-bottom:10px;}
.hero h1{font-family:'DM Serif Display',serif;font-size:clamp(2.4rem,5.5vw,4rem);color:var(--dark);line-height:.92;}
.hero h1 em{display:block;font-style:italic;font-size:.42em;color:var(--mid);margin-bottom:7px;}
.hero-sub{margin-top:12px;font-size:1.02rem;color:var(--muted);max-width:480px;line-height:1.78;font-weight:300;}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.chip{padding:4px 13px;border:1.5px solid;font-family:'DM Mono',monospace;font-size:.6rem;letter-spacing:.08em;border-radius:3px;}
.ch-t{border-color:rgba(26,120,120,.45);color:var(--teal);}
.main{max-width:1100px;margin:0 auto;padding:32px 24px 80px;}
.intro{background:white;border:2px solid var(--border);border-left:5px solid var(--teal);padding:22px 36px;margin-bottom:28px;}
.intro p{font-size:1.03rem;line-height:1.85;}
.intro strong{color:var(--teal);}
.grid{display:grid;grid-template-columns:1fr 310px;gap:28px;}
.sh{font-family:'DM Serif Display',serif;font-size:1.4rem;color:var(--teal);margin:36px 0 12px;padding-bottom:7px;border-bottom:2px solid var(--border);}
.sh:first-child{margin-top:0;}
.mc p{font-size:.99rem;line-height:1.85;margin-bottom:12px;}
.mc strong{font-weight:600;}
.foncs{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:12px 0;}
.fn{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--teal);padding:12px;opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s;}
.fn.on{opacity:1;transform:translateY(0);}
.fn h4{font-size:.93rem;font-weight:700;color:var(--teal);margin-bottom:3px;}
.fn p{font-size:.81rem!important;color:var(--muted)!important;margin:0!important;line-height:1.48!important;}
.dt{width:100%;border-collapse:collapse;margin:14px 0;font-size:.86rem;}
.dt thead th{background:var(--teal);color:white;padding:8px 12px;text-align:left;font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.08em;}
.dt td{padding:7px 12px;border-bottom:1px solid var(--border);}
.dt tr:nth-child(even) td{background:var(--panel);}
.dt td:first-child{font-family:'DM Mono',monospace;color:var(--teal);font-size:.77rem;}
.tl{position:relative;padding-left:24px;margin:12px 0;}
.tl::before{content:'';position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--teal),var(--sky),transparent);}
.tl-item{position:relative;margin-bottom:15px;opacity:0;transform:translateX(-8px);transition:opacity .45s,transform .45s;}
.tl-item.on{opacity:1;transform:translateX(0);}
.tl-item::before{content:'';position:absolute;left:-20px;top:5px;width:8px;height:8px;background:var(--teal);border-radius:50%;border:2px solid var(--off);}
.tl-yr{font-family:'DM Mono',monospace;font-size:.64rem;color:var(--mid);letter-spacing:.12em;margin-bottom:1px;}
.tl-item p{font-size:.96rem!important;margin:0!important;line-height:1.58!important;}
.vocab{list-style:none;}
.vocab li{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .4s;}
.vocab li.on{opacity:1;transform:translateX(0);}
.vocab li:last-child{border-bottom:none;}
.vt{font-family:'DM Mono',monospace;font-size:.69rem;color:var(--teal);min-width:130px;flex-shrink:0;}
.vd{font-size:.91rem;}
.scard{background:white;border:1.5px solid var(--border);border-radius:4px;padding:16px;margin-bottom:14px;position:relative;}
.scard::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--teal),var(--sky));border-radius:4px 4px 0 0;}
.scard h3{font-size:.93rem;font-weight:700;color:var(--teal);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.kl{list-style:none;}
.kl li{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(184,216,216,.5);}
.kl li:last-child{border-bottom:none;}
.kk{font-size:.79rem;color:var(--muted);}
.kv{font-family:'DM Mono',monospace;font-size:.81rem;color:var(--teal);}
footer{background:var(--dark);padding:18px 44px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.fb{font-family:'DM Serif Display',serif;font-style:italic;font-size:.9rem;color:var(--sky);}
.fm{font-family:'DM Mono',monospace;font-size:.59rem;color:rgba(64,192,192,.35);text-align:right;line-height:1.8;}
@media(max-width:820px){.grid{grid-template-columns:1fr;}.foncs{grid-template-columns:1fr;}.hero{flex-direction:column;padding:28px 22px;}}
