:root { color-scheme: dark; --bg:#121714; --text:#f1f4ec; --muted:#acb8ad; --accent:#bbec83; --line:#354138; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font:1rem/1.7 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:inherit; text-underline-offset:.3em; }
a:hover { color:var(--accent); }
a:focus-visible { outline:3px solid var(--accent); outline-offset:6px; }
.skip { position:absolute; top:-6rem; left:1rem; padding:.7rem 1rem; background:var(--accent); color:var(--bg); z-index:2; }
.skip:focus { top:1rem; }
.wrap { width:min(1160px,calc(100% - 96px)); margin:auto; }
header { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:2rem 0; border-bottom:1px solid var(--line); }
.brand { text-decoration:none; font-size:1.4rem; font-weight:750; letter-spacing:-.04em; }
.brand span { color:var(--accent); }
nav { display:flex; flex-wrap:wrap; gap:1.7rem; font-size:.9rem; }
nav a { text-decoration:none; color:var(--muted); }
.eyebrow { display:block; color:var(--accent); font: .875rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.04em; }
.intro { padding:5.5rem 0 4.5rem; display:grid; grid-template-columns:1.75fr 1fr; gap:4rem; align-items:end; }
h1 { margin:1.35rem 0 0; font-size:clamp(2.7rem,5.6vw,4.8rem); line-height:1.08; font-weight:650; letter-spacing:-.055em; }
h1 span { color:var(--accent); }
.intro p { color:var(--muted); margin:0 0 .3rem; font-size:1.1rem; max-width:30rem; }
.disciplines { border-top:1px solid var(--line); padding:0 0 4rem; }
.discipline { display:grid; grid-template-columns:70px 1fr 1.1fr; gap:2rem; padding:2.75rem 0; border-bottom:1px solid var(--line); }
.number { color:var(--accent); font:.875rem/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; padding-top:.3rem; }
h2 { margin:0; font-size:1.65rem; font-weight:600; line-height:1.25; letter-spacing:-.035em; }
.english { display:block; margin-top:.6rem; color:var(--muted); font-size:.875rem; }
.discipline p { margin:0; color:var(--muted); }
.terms { margin-top:1.1rem; color:var(--text); font-size:.875rem; }
.project { padding:3rem; background:var(--accent); color:var(--bg); display:grid; grid-template-columns:1fr 1.1fr; gap:3rem; align-items:start; }
.project .eyebrow { color:#364d28; }
.project h2 { font-size:2.9rem; margin:.8rem 0 0; letter-spacing:-.055em; }
.project p { margin:0 0 1.6rem; color:#293d24; }
.button { display:inline-flex; align-items:center; gap:1.5rem; padding:.8rem 1.15rem; border:1px solid var(--bg); color:var(--bg); font-weight:650; text-decoration:none; }
.button:hover { background:var(--bg); color:var(--accent); }
.button:focus-visible { outline-color:var(--bg); }
.contact { padding:4rem 0; display:flex; align-items:start; justify-content:space-between; gap:2rem; }
.contact h2 { font-size:1.5rem; }
.contact p { color:var(--muted); max-width:32rem; margin:.8rem 0 0; }
.links { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; padding-top:.3rem; }
.pending { color:var(--muted); }
footer { border-top:1px solid var(--line); padding:1.6rem 0; display:flex; justify-content:space-between; gap:1rem; color:var(--muted); font-size:.875rem; }
@media(max-width:800px) { .wrap { width:calc(100% - 48px); } .intro { grid-template-columns:1fr; gap:2rem; padding:3.8rem 0 3rem; } .intro p { max-width:36rem; } .discipline { grid-template-columns:36px 1fr; gap:1rem; padding:2rem 0; } .discipline .description { grid-column:2; } .project { grid-template-columns:1fr; gap:1.7rem; padding:2rem; } .contact { flex-direction:column; padding:3rem 0; } }
@media(max-width:480px) { .wrap { width:calc(100% - 36px); } header { align-items:start; padding:1.5rem 0; } nav { gap:.55rem 1rem; justify-content:end; max-width:11rem; } h1 { font-size:2.65rem; } h2 { font-size:1.4rem; } .project { padding:1.7rem; } .project h2 { font-size:2.4rem; } footer { flex-direction:column; gap:.3rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.error-page { min-height:100vh; display:grid; place-items:center; padding:3rem 0; }
.error-inner { max-width:44rem; }
.error-inner h1 { margin:1.5rem 0; font-size:clamp(2.5rem,6vw,4rem); }
.error-inner p { color:var(--muted); }
.error-inner .button { color:var(--accent); border-color:var(--accent); margin-top:1rem; }
.error-inner .button:hover { background:var(--accent); color:var(--bg); }
