:root{
  --paper:#ffffff;
  --paper-2:#f6f4f0;
  --ink:#1b1813;
  --ink-soft:#544c40;
  --line:rgba(27,24,19,.14);
  --cyan:#0093c9;
  --magenta:#c8226f;
  --yellow:#f2be00;
  --key:#1b1813;
  --accent:#b01c62;          /* magenta, darkened for text on white: 6.3:1 */
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif;
  --maxw:1120px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.08;letter-spacing:-.015em;margin:0;}
p{margin:0 0 1em;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:4px;z-index:99;}
.skip:focus{left:8px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* the four inks, as a mark */
.inks{display:inline-flex;gap:5px;vertical-align:middle;}
.inks i{display:block;width:10px;height:10px;border-radius:50%;}
.inks i:nth-child(1){background:var(--cyan);}
.inks i:nth-child(2){background:var(--magenta);}
.inks i:nth-child(3){background:var(--yellow);}
.inks i:nth-child(4){background:var(--key);}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px;}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;}
.brand .name{font-family:var(--font-display);font-size:22px;letter-spacing:-.01em;}
.brand .name em{font-style:italic;color:var(--accent);}
nav.main{display:flex;gap:26px;font-size:15px;}
nav.main a{text-decoration:none;color:var(--ink-soft);}
nav.main a:hover{color:var(--ink);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-body);font-size:15px;letter-spacing:.04em;text-decoration:none;padding:13px 24px;border-radius:999px;border:1px solid var(--ink);transition:background .25s var(--ease),color .25s var(--ease),border-color .25s;}
.btn--solid{background:var(--ink);color:#fff;}
.btn--solid:hover{background:var(--accent);border-color:var(--accent);}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent);}

/* hero */
.hero{padding:96px 0 84px;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-120px;top:40px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle at 30% 35%,rgba(0,147,201,.16),transparent 58%),radial-gradient(circle at 68% 40%,rgba(200,34,111,.14),transparent 58%),radial-gradient(circle at 50% 72%,rgba(242,190,0,.18),transparent 58%);pointer-events:none;}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);margin:0 0 20px;display:flex;align-items:center;gap:12px;}
.hero h1{font-size:clamp(46px,8vw,96px);font-weight:300;max-width:12ch;}
.hero h1 em{color:var(--accent);font-weight:400;}
.hero .lede{max-width:560px;font-size:19px;color:var(--ink-soft);margin:30px 0 0;}
.hero .lede b{color:var(--ink);font-weight:400;}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}

/* sections */
section{padding:88px 0;}
.alt{background:var(--paper-2);}
.sec-head{max-width:640px;margin-bottom:44px;}
.sec-head h2{font-size:clamp(32px,4.4vw,50px);}
.sec-head p{color:var(--ink-soft);margin-top:16px;}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s;}
.steps li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px 26px;position:relative;}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);font-size:15px;color:var(--ink-soft);display:block;margin-bottom:14px;}
.steps li::after{content:"";position:absolute;left:26px;top:0;width:44px;height:3px;border-radius:0 0 3px 3px;}
.steps li:nth-child(1)::after{background:var(--cyan);}
.steps li:nth-child(2)::after{background:var(--magenta);}
.steps li:nth-child(3)::after{background:var(--yellow);}
.steps h3{font-size:25px;margin-bottom:10px;}
.steps p{color:var(--ink-soft);margin:0;font-size:16px;}

.kind{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.kind h2{font-size:clamp(32px,4.4vw,50px);}
.kind p{color:var(--ink-soft);}
.rule{font-family:var(--font-display);font-style:italic;font-size:clamp(28px,3.4vw,40px);color:var(--accent);line-height:1.2;border-left:3px solid var(--magenta);padding-left:24px;margin:0;}
.tlink{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px;}
.tlink:hover{color:var(--accent);}

.visit{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.card{border:1px solid var(--line);border-radius:8px;padding:30px;}
.card h3{font-size:26px;margin-bottom:14px;}
.card address{font-style:normal;line-height:1.7;margin-bottom:16px;}
.card .route{color:var(--ink-soft);font-size:15.5px;}
.contact{list-style:none;margin:0 0 20px;padding:0;}
.contact li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);}
.contact li:last-child{border-bottom:0;}
.contact span{color:var(--ink-soft);font-size:14px;letter-spacing:.06em;text-transform:uppercase;}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:44px 0 50px;font-size:15px;color:var(--ink-soft);}
.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end;}
.foot .term{font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--ink);}
.foot a{color:var(--ink);}

.page-404{min-height:60vh;display:flex;align-items:center;}
.page-404 h1{font-size:clamp(36px,6vw,64px);font-weight:300;}
.page-404 p{margin-top:20px;color:var(--ink-soft);}

@media (max-width:860px){
  nav.main{display:none;}
  .steps,.visit,.kind{grid-template-columns:1fr;}
  .kind{gap:30px;}
  section{padding:68px 0;}
  .hero{padding:64px 0 60px;}
}
@media (max-width:420px){
  .wrap{padding:0 18px;}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none!important;}}
