/* Shared styles for the landing page and the About page */
:root{
  color-scheme:dark;
  --sea:#0d1824; --sea-2:#122233; --deep:#070d14;
  --ink:#e9e4d8; --ink-2:#aab3ba; --ink-3:#76828c;
  --line:#26394c; --panel:#0e1823; --raise:#152434;
  --brass:#3ea6ff; --brass-2:#2379c9;
  --bar:#0a131ce6; --on-accent:#04111f; --accent-hi:#74bfff; --hero1:#1b3a58; --hero2:#0f2134; --band:#12202d; --card1:#172a3c;
  --display:"IM Fell English","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sc:"IM Fell English SC","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sea);color:var(--ink);font:16px/1.6 var(--sans)}
a{color:var(--brass)}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.wrap{max-width:1140px;margin:0 auto;padding-inline:20px}

/* top bar */
.top{position:sticky;top:0;z-index:5;background:var(--bar);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:10px}
.mark{display:flex;align-items:center;gap:10px;font-family:var(--sc);font-size:18px;letter-spacing:.04em;color:var(--ink);text-decoration:none;white-space:nowrap}
.mark svg{width:28px;height:28px;flex:none}
.links{display:flex;gap:4px;align-items:center}
.links a{color:var(--ink-2);text-decoration:none;font-size:14.5px;padding:8px 12px;border-radius:6px}
.links a:hover,.links a[aria-current="page"]{color:var(--ink);background:var(--raise)}
.links a.btn{color:var(--on-accent);background:var(--brass);margin-left:6px}
.links a.btn:hover{background:var(--accent-hi)}

.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brass);color:var(--on-accent);border:0;font:600 15px var(--sans);padding:12px 20px;border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--accent-hi)}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--brass-2);background:var(--raise)}
.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
h1{font:400 clamp(44px,6.4vw,82px)/.95 var(--display);margin:14px 0 18px;text-wrap:balance}
h1 em{color:var(--brass);font-style:italic}
h2{font:400 clamp(32px,4vw,46px)/1.05 var(--display);margin:0 0 12px;text-wrap:balance}
h3{font:400 23px/1.15 var(--display);margin:0 0 6px}
.lede{font-size:18px;color:var(--ink-2);max-width:34em;margin:0 0 26px}
.intro{color:var(--ink-2);max-width:40em;margin:0 0 34px;font-size:17px}
.small{font-size:13.5px;color:var(--ink-3);margin:12px 0 0}
.ctaRow{display:flex;gap:10px;flex-wrap:wrap}
section{padding-block:72px}

/* landing hero */
.hero{background:radial-gradient(ellipse 70% 80% at 72% 40%,var(--hero1) 0,var(--hero2) 45%,var(--sea) 75%);border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:center;padding-block:48px 64px}
.shot{position:relative}
.shot img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:0 30px 80px #000c,0 0 0 1px #0006}
.shot .tag{position:absolute;left:14px;bottom:-14px;background:var(--brass);color:var(--on-accent);font:600 12px var(--sans);padding:6px 10px;border-radius:6px}
.hero .shot{transform:perspective(1400px) rotateY(-7deg) rotateX(2deg)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);background:var(--panel)}
.stats div{padding:22px 20px;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font:400 40px/1 var(--display);color:var(--ink)}
.stats span{font-size:13px;color:var(--ink-3)}

/* how it works: a real sequence, so it is numbered */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.steps li{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px 20px 20px;counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brass);color:var(--on-accent);font:600 15px var(--sans);margin-bottom:14px}
.steps p{margin:0;color:var(--ink-2);font-size:14.5px}
.steps kbd{font:12px var(--mono);background:var(--raise);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--ink)}

.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.features div{background:var(--panel);padding:24px 22px}
.features svg{width:30px;height:30px;stroke:var(--brass);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.features h3{margin-top:12px}
.features p{margin:0;color:var(--ink-2);font-size:14.5px}

.gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px}
.gallery figure{margin:0}
.gallery figure:first-child{grid-column:1/-1}
.gallery img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}
.gallery figcaption{font-size:14px;color:var(--ink-3);margin-top:10px}

.homes{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.home{display:block;border:1px solid var(--line);border-radius:12px;padding:24px;background:linear-gradient(160deg,var(--card1),var(--panel) 70%);color:var(--ink);text-decoration:none;transition:border-color .2s}
.home:hover{border-color:var(--brass-2)}
.home .flag{width:34px;height:23px;border-radius:3px;box-shadow:0 0 0 1px #0008}
.home h3{font-size:32px;line-height:1;margin:14px 0 8px}
.home p{margin:0 0 14px;color:var(--ink-2);font-size:15px}
.home ol{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px}
.home li{font:12.5px var(--mono);color:var(--ink-2);background:var(--raise);border:1px solid var(--line);padding:3px 8px;border-radius:12px}
.home .go{color:var(--brass);font-weight:600;font-size:14.5px}

.band{background:var(--band);border-block:1px solid var(--line)}
.band .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start}
blockquote{margin:0;font:400 italic clamp(22px,2.6vw,29px)/1.35 var(--display);color:var(--ink)}
.band p{color:var(--ink-2);margin:0 0 14px}
.linkedin{display:inline-flex;align-items:center;gap:10px;background:#0a66c2;color:#fff;text-decoration:none;font-weight:600;padding:11px 16px;border-radius:8px}
.linkedin:hover{background:#0b74dc}
.linkedin svg{width:18px;height:18px;fill:#fff}
.cta{text-align:center}
.cta .intro{margin-inline:auto}

/* about page */
.abouthead{padding-block:56px 40px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 60% 90% at 80% 20%,var(--hero1) 0,var(--sea) 70%)}
.me{display:grid;grid-template-columns:200px minmax(0,1fr);gap:36px;align-items:center}
.me img{width:200px;height:200px;border-radius:50%;object-fit:cover;border:3px solid var(--brass-2);box-shadow:0 20px 50px #0009}
.me h1{font-size:clamp(40px,5vw,64px);margin:10px 0 10px}
.me .role{font-family:var(--display);font-style:italic;font-size:21px;color:var(--ink-2);margin:0 0 18px}
.cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
.prose p{color:var(--ink-2);margin:0 0 14px;max-width:62ch}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}
.card + .card{margin-top:16px}
.list{list-style:none;margin:0;padding:0}
.list li{padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:15px}
.list li:last-child{border-bottom:0}
.list b{color:var(--ink);font-weight:500}

footer{border-top:1px solid var(--line);padding-block:28px 40px;font-size:13.5px;color:var(--ink-3)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px}
footer a{color:var(--ink-2)}

@media (max-width:980px){
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .hero .wrap,.band .wrap,.cols{grid-template-columns:1fr;gap:36px}
  .hero .shot{transform:none}
  .features{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(2){border-right:0}
  .stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:640px){
  .features,.gallery,.homes,.steps{grid-template-columns:1fr}
  .me{grid-template-columns:1fr;gap:20px}
  .me img{width:132px;height:132px}
  section{padding-block:52px}
  .mark span{display:none}
  .links a{padding:8px 9px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* light theme */
:root[data-theme="light"]{
  color-scheme:light;
  --sea:#f3f6f9; --sea-2:#a8d0f0; --deep:#ffffff;
  --ink:#13212e; --ink-2:#3b4d5e; --ink-3:#627487;
  --line:#d6dee7; --panel:#ffffff; --raise:#edf2f7;
  --brass:#1270d6; --brass-2:#0f5fb6;
  --bar:#ffffffe6; --on-accent:#ffffff; --accent-hi:#3a8ee8; --hero1:#cfe6fa; --hero2:#e4f0fb; --band:#e9f1f8; --card1:#eef5fb;
}
:root[data-theme="light"] .shot img{box-shadow:0 24px 60px #13212e33}
.themebtn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;margin-left:2px}
.themebtn:hover{background:var(--raise)}
.themebtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

@media (max-width:640px){ .links a[href="#how"],.links a[href="/#how"]{display:none} }
