/* 0600 · shared styles (Dawn design system)
   Extracted verbatim from the approved v32/v33 prototypes. Page-specific
   rules live in each page's own style block. Do not add new colors. */

:root{
  --paper:#f5f1e8; --paper-deep:#ebe6d8; --paper-warm:#fdf9ee;
  --ink:#1a2332; --ink-soft:#4d5566; --ink-mute:#8a8f9c;
  --accent:#e57852; --accent-deep:#c4582e; --accent-soft:#fce4d6;
  --edge:#ddd6c4; --edge-soft:#e6dfcd;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);color:var(--ink);
  font-family:'Geist',system-ui,sans-serif;font-size:16px;
  -webkit-font-smoothing:antialiased;line-height:1.5;
}
::selection{background:var(--accent-soft)}
a{color:inherit}

/* ===== type ===== */
h1,h2,h3,h4{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.02em;text-wrap:balance;font-style:normal}
.eyebrow{font-family:'Geist Mono',monospace;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-deep);display:flex;align-items:center;gap:.55rem;margin-bottom:1.6rem}
.eyebrow::before{content:'✦';font-size:.8rem}
.lede{font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.6;color:var(--ink-soft);max-width:62ch;text-wrap:pretty}
.lede strong{color:var(--ink);font-weight:500}
.mono{font-family:'Geist Mono',monospace}

/* ===== layout ===== */
.section{padding:13vh 8vw;position:relative}
.section+.section::before{content:'';position:absolute;top:0;left:8vw;right:8vw;height:1px;background:var(--edge)}
.wrap{max-width:1180px;margin:0 auto}
.sec-h2{font-size:clamp(1.9rem,3.6vw,3rem);font-weight:600;line-height:1.1;margin-bottom:1.2rem;max-width:24ch}

/* ===== reveal on scroll ===== */
.rev{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,.8,.3,1),transform .7s cubic-bezier(.22,.8,.3,1)}
.rev.in{opacity:1;transform:none}
.rev.d1{transition-delay:.08s}.rev.d2{transition-delay:.16s}.rev.d3{transition-delay:.24s}
.rev.d4{transition-delay:.32s}.rev.d5{transition-delay:.4s}

/* ===== nav ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;
  justify-content:space-between;padding:1.1rem 2.4rem;transition:background .35s,border-color .35s,color .35s}
#nav .brand{display:flex;align-items:baseline;gap:.6rem;text-decoration:none}
#nav .brand .g{color:var(--accent);font-size:.95rem}
#nav .brand .wm{font-family:'Bricolage Grotesque',sans-serif;font-weight:500;font-size:1.15rem;letter-spacing:.06em}
#nav .brand .sub{font-family:'Geist Mono',monospace;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;opacity:.55}
#nav .links{display:flex;align-items:center;gap:1.9rem}
#nav .links a{font-family:'Geist Mono',monospace;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;opacity:.75;transition:opacity .2s,color .2s}
#nav .links a:hover{opacity:1;color:var(--accent)}
#nav .links a.active{color:var(--accent-deep);opacity:1}
#nav .cta{font-family:'Geist Mono',monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:var(--ink);background:var(--accent);padding:.62rem 1.15rem;border-radius:4px;
  transition:background .2s;opacity:1!important}
#nav .cta:hover{background:#ef8a66;color:var(--ink)}
#nav.on-dark{color:var(--paper);background:transparent}
#nav.on-dark .cta{color:var(--ink)}
#nav.on-light{color:var(--ink);background:rgba(245,241,232,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--edge-soft)}
@media (max-width:820px){#nav .links a:not(.cta){display:none}}

/* ===== buttons ===== */
.btn{font-family:'Geist Mono',monospace;font-size:.72rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;text-decoration:none;padding:1rem 1.7rem;border-radius:4px;transition:all .2s;display:inline-block}
.btn.solid{background:var(--accent);color:var(--ink)}
.btn.solid:hover{background:#ef8a66}
.btn.ghost{color:var(--paper);border:1px solid rgba(245,241,232,.3)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn.ghost-ink{color:var(--ink);border:1px solid var(--edge)}
.btn.ghost-ink:hover{border-color:var(--accent-deep);color:var(--accent-deep)}

/* ===== hero shared (canvas + corner captions) ===== */
#hero canvas{position:absolute;inset:0;z-index:0;pointer-events:none}
#hero .cap{position:absolute;bottom:28px;font-family:'Geist Mono',monospace;font-size:.62rem;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(245,241,232,.35);z-index:2}
#hero .cap.left{left:40px}#hero .cap.right{right:40px}
@media (max-width:560px){#hero .cap.left{display:none}#hero .cap.right{right:auto;left:50%;transform:translateX(-50%)}}

/* ===== principle callout ===== */
.principle{margin-top:2.4rem;background:var(--paper-warm);border:1px solid var(--edge-soft);border-left:3px solid var(--accent-deep);
  border-radius:8px;padding:1.3rem 1.6rem;font-size:.95rem;line-height:1.6;color:var(--ink);max-width:72ch}
.principle .mono{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);display:block;margin-bottom:.5rem}

/* ===== close (dark) ===== */
#close{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;padding:15vh 8vw 0;min-height:100vh;display:flex}
#close canvas{position:absolute;inset:0;z-index:0;pointer-events:none}
#close .wrap{position:relative;z-index:2;display:flex;flex-direction:column;width:100%;min-height:calc(100vh - 15vh)}
#close .eyebrow{color:var(--accent)}
#close .bigline{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:600;
  line-height:1.08;letter-spacing:-.02em;max-width:20ch;margin-bottom:1.6rem}
#close .lede{color:rgba(245,241,232,.68)}
#close .lede strong{color:var(--paper)}
#close .cta-row{display:flex;gap:1rem;margin-top:2.6rem;flex-wrap:wrap}
.contact{display:flex;gap:3rem;margin-top:3.4rem;flex-wrap:wrap;margin-bottom:16vh}
.contact .c .cl{font-family:'Geist Mono',monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,241,232,.45);margin-bottom:.35rem}
.contact .c .cv{font-family:'Bricolage Grotesque',sans-serif;font-size:1.1rem;font-weight:500}
.contact .c .cv a{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent)}
.contact .c .cv a:hover{color:var(--paper);border-color:var(--paper)}

/* ===== footer (inside close) ===== */
#footer{position:relative;z-index:2;margin-top:auto;border-top:1px solid rgba(245,241,232,.14);
  padding:2.2rem 0 2.6rem;display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}
#footer .fcol{display:flex;flex-direction:column;gap:.55rem}
#footer .fh{font-family:'Geist Mono',monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,232,.4);margin-bottom:.3rem}
#footer a{font-size:.82rem;color:rgba(245,241,232,.7);text-decoration:none}
#footer a:hover{color:var(--accent)}
#footer .fnote{font-size:.78rem;color:rgba(245,241,232,.45);max-width:34ch;line-height:1.6}
#footer .fbrand .wm{font-family:'Bricolage Grotesque',sans-serif;font-weight:500;font-size:1.1rem;letter-spacing:.06em;color:var(--paper)}
#footer .fbrand .g{color:var(--accent);margin-right:.4rem}
#footer .legal{font-family:'Geist Mono',monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,232,.35);margin-top:1rem}
