@import url("/fonts/fonts.css");
/* Age Signal Ready. Direction: "The quiet instrument" (tasteskill), hero "Two doors on a dark wall".
   Type Young Serif / Source Serif 4. Palette stone and blueprint. Motion: stillness + exact feedback (Emil Kowalski). */
:root{
  --bg:#dfdedb;--surface:#d3d2ce;--ink:#26251e;--muted:#4f4d46;--accent:#2456d6;--accent-ink:#ffffff;--wall:#1b1a16;
  --font-display:"Young Serif",Georgia,serif;--font-text:"Source Serif 4",Georgia,serif;
  --step-small:clamp(.875rem,.85rem + .1vw,.9375rem);--step-body:clamp(1.125rem,1.05rem + .3vw,1.3125rem);
  --step-head:clamp(2rem,1.3rem + 2vw,2.75rem);--margin:clamp(1.25rem,2.4vw,2rem);
  --ease-out:cubic-bezier(.23,1,.32,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-text);font-size:var(--step-body);line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,dl,dd,pre{margin:0}
img{display:block;max-width:100%;height:auto}a{color:inherit}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:10}.skip:focus{top:1rem}
h1,h2,h3{font-family:var(--font-display);font-weight:400;text-wrap:balance;letter-spacing:-.02em}
.head{font-size:var(--step-head);line-height:1.05;margin-bottom:1.5rem}
.nums{font-variant-numeric:tabular-nums}
p{max-width:62ch;text-wrap:pretty}
a,button{touch-action:manipulation}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.25rem;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:1.0625rem;font-weight:600;text-decoration:none;border-radius:8px;user-select:none;-webkit-user-select:none;transition:transform 140ms var(--ease-out),background-color 180ms ease}
.button:active{transform:scale(.97)}
.link{text-decoration:underline;text-decoration-color:rgba(38,37,30,.35);text-underline-offset:.2em;transition:text-decoration-color 180ms ease}
.link-plain{text-underline-offset:.2em}
@media (hover:hover) and (pointer:fine){.link:hover{text-decoration-color:currentColor}.button:hover{background:#1c47b8}}

/* hero: two doors on a dark wall */
.hero{background:var(--wall);color:#ecebe6;min-height:100svh;padding:var(--margin);display:grid;grid-template-rows:auto auto auto 1fr;justify-items:center;text-align:center}
.hero-bar{justify-self:stretch;display:flex;justify-content:space-between;font-size:var(--step-small)}
.hero .link{text-decoration-color:rgba(236,235,230,.4)}
.wordmark{font-family:var(--font-display)}
.hero-title{font-size:clamp(2.25rem,3.4vw,3.25rem);line-height:1.05;max-width:22ch;margin-top:clamp(3rem,9svh,6.5rem)}
.hero-sub{margin-top:1.25rem;max-width:46ch;color:#c9c7bf;font-size:1.0625rem}
.doors{display:flex;gap:5rem;margin-top:clamp(2rem,6svh,4rem);align-self:start}
.door{display:grid;gap:.4rem;justify-items:start;text-align:left;text-decoration:none;width:17.5rem}
.door img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 200ms var(--ease-out)}
.door:active img{transform:scale(.98)}
.door-name{font-family:var(--font-display);font-size:1.375rem;margin-top:.6rem}
.door-line{font-size:1rem;color:#c9c7bf}
@media (hover:hover) and (pointer:fine){.door:hover .door-name{text-decoration:underline;text-underline-offset:.2em}}

/* the column */
.column{width:min(35rem,100% - 2*var(--margin));margin-left:max(var(--margin),22vw)}
.column section{padding:clamp(5rem,9vw,8.75rem) 0 0}
.column section p+p{margin-top:1rem}
.actions{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;margin-top:2rem}
.module{display:grid;grid-template-columns:22.5rem 1fr;gap:1.25rem;margin-top:4rem;width:min(40rem,calc(100vw - 2*var(--margin)))}
.panel{background:var(--surface);border-radius:8px;padding:1rem 1.1rem;overflow:hidden;align-self:start}
pre.panel{font-size:.875rem;line-height:1.5;white-space:pre;overflow-x:auto}
.panel-pic{padding:0;height:10rem}
.panel-pic img{width:100%;height:100%;object-fit:cover}
.module-text h3{font-family:var(--font-text);font-weight:600;font-size:1.125rem;letter-spacing:0}
.module-text p{font-size:1rem;color:var(--muted);margin-top:.4rem}
.menu{display:grid;gap:.25rem}
.item{display:flex;justify-content:space-between;gap:1rem;margin-top:1.25rem}
.desc{color:var(--muted);font-size:1rem;max-width:36ch}
.qa{display:grid;gap:.25rem}
.qa dt{font-weight:600;margin-top:1.25rem}
.qa dd{color:var(--ink)}
.column section:last-child>p{margin-top:2rem}

.footer{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:baseline;padding:30svh var(--margin) 1.9rem;font-size:var(--step-small);color:var(--muted)}
.foot-links{display:flex;gap:1.5rem;color:var(--ink)}
.foot-right{justify-self:end}
.credits{grid-column:1/-1;max-width:70ch;font-size:.875rem}

/* inner pages */
.doc-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:var(--margin);background:var(--wall);color:#ecebe6}
.doc-top .wordmark{text-decoration:none}
.doc{padding:clamp(2.5rem,7vw,6rem) var(--margin) 6rem;max-width:40rem;margin-left:max(var(--margin),22vw)}
.doc h1{font-size:clamp(2rem,1.3rem + 2vw,2.75rem);line-height:1.05;margin-bottom:1.5rem}
.doc h2{font-size:1.375rem;margin:2rem 0 .5rem}
.doc p,.doc li{margin-bottom:.75rem}
.doc-foot{padding:2rem var(--margin);font-size:var(--step-small);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;color:var(--muted)}

@media (max-width:720px){
  .column,.doc{margin-left:var(--margin)}
  .hero-title{font-size:8vw;margin-top:4rem}
  .doors{gap:.875rem}.door{width:10.5rem}
  .door-name{font-size:1.0625rem}
  .module{grid-template-columns:1fr;width:auto}
  .footer{grid-template-columns:1fr;padding-top:20svh;gap:.5rem}.foot-right{justify-self:start}
}
/* focal point: the headline carries the first screen */
.hero-title{font-size:clamp(2.25rem,5vw,4.75rem);max-width:18ch}
@media (max-width:1024px){.module{grid-template-columns:1fr;width:auto}}
/* reveal: small, once, transform+opacity only */
[data-reveal]{opacity:0;transform:translateY(10px);transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out)}
[data-reveal].in{opacity:1;transform:none}
.door img{animation:settle 900ms var(--ease-out) both}
.door+.door img{animation-delay:120ms}
@keyframes settle{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}.door img{animation:none}}
.hero-more{margin-top:1.5rem}
.item span:first-child{min-width:0;overflow-wrap:anywhere}
.item span:last-child{flex:none;text-align:right}
.module-text code{font-size:.875em;overflow-wrap:anywhere}
@media (min-width:1100px){
  .column{width:min(52rem,100% - 2*var(--margin));margin-left:max(var(--margin),18vw)}
  .column section{padding-top:5.5rem}
  .module{width:100%;grid-template-columns:24rem 1fr;gap:2rem;margin-top:2.5rem}
  .column p{font-size:1.25rem}
  .footer{padding-top:14svh}
}
.menu+p{margin-top:1.75rem}
@media (max-width:720px){pre.panel{font-size:.75rem}}
