/* Alder & Finch Law — FICTIONAL practice, style-family practice build (LIGHT-1284). */
:root{
  --ink:#0d121a;--ink-2:#141b26;--ink-3:#1c2533;
  --paper:#eef0f3;--steel:#8fb0c9;--steel-2:#c3d8e8;
  --dim:color-mix(in srgb,var(--paper) 68%,transparent);
  --line:color-mix(in srgb,var(--paper) 16%,transparent);
  --line-2:color-mix(in srgb,var(--paper) 8%,transparent);
  --ease:cubic-bezier(.16,.7,.2,1);
  --pad:clamp(20px,5vw,64px);
  --serif:Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;background:var(--ink)}
body{background:var(--ink);color:var(--paper);font:300 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;padding-bottom:64px}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--steel-2);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;background:var(--steel);color:var(--ink);padding:10px 16px;z-index:2000;border-radius:4px}
.skip:focus{top:12px}
/* atmosphere: CSS-only grain + vignette (move 8) */
.grain,.vignette{position:fixed;inset:0;pointer-events:none;z-index:50}
.grain{opacity:.05;mix-blend-mode:overlay;background-image:url("grain.svg")}
.vignette{background:radial-gradient(120% 90% at 50% 42%,transparent 55%,rgba(0,0,0,.5) 100%)}
/* type (move 3) */
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.015em}
h1 em,h2 em{font-style:italic;color:var(--steel-2)}
h1{font-size:clamp(2.9rem,8.2vw,8rem);max-width:15ch}
h2{font-size:clamp(2.1rem,5vw,4.4rem);max-width:18ch}
h3{font-size:1.5rem;line-height:1.15}
/* micro labels (move 4) */
.sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:clamp(30px,5vh,60px)}
.idx,.lbl,.eyebrow{font:500 .75rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase}
.idx,.eyebrow{color:var(--steel)}
.lbl{color:var(--dim)}
.eyebrow::before{content:"";display:inline-block;width:46px;height:1px;background:var(--steel);margin-right:14px;vertical-align:middle}
/* nav (move 9) */
.nav{position:fixed;inset:0 0 auto 0;z-index:900;display:flex;justify-content:space-between;align-items:center;padding:20px var(--pad);transition:background .4s,backdrop-filter .4s}
.nav.scrolled{background:rgba(13,18,26,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2)}
.logo{font:400 1rem var(--serif);letter-spacing:.34em;text-transform:uppercase;text-decoration:none}
.nav ul{display:flex;gap:30px;list-style:none;padding:0;align-items:center}
.nav ul a{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;position:relative;padding:8px 0;display:inline-block}
.nav ul a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:var(--steel-2);transition:width .35s}
.nav ul a:hover::after,.nav ul a:focus-visible::after{width:100%}
.nav .pill{border:1px solid var(--dim);border-radius:100px;padding:10px 20px}
.nav .pill::after{display:none}
.menu-btn{display:none;background:none;border:1px solid var(--dim);color:var(--paper);border-radius:100px;padding:10px 18px;font:500 .75rem var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;min-height:44px}
/* hero (move 1) */
.hero{position:relative;height:100svh;min-height:680px;display:flex;align-items:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:-4%;will-change:transform}
.hero-media svg{width:100%;height:100%}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,18,26,.96) 4%,rgba(13,18,26,.45) 40%,rgba(13,18,26,.2) 66%,rgba(13,18,26,.6) 100%)}
.hero-inner{position:relative;z-index:3;width:100%;padding:0 var(--pad) clamp(48px,8vh,90px)}
.hero .eyebrow{display:block;margin-bottom:26px}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;border-top:1px solid var(--line);padding-top:24px;margin-top:clamp(26px,4vh,44px)}
.hero-sub{max-width:48ch;color:var(--dim);font-size:1.05rem}
.cue{font:500 .75rem var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--dim);text-decoration:none;white-space:nowrap}
/* buttons */
.btn{display:inline-block;background:var(--steel);color:var(--ink);padding:16px 32px;border-radius:100px;font:500 .78rem var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer;min-height:48px;transition:background .3s}
.btn:hover{background:var(--steel-2)}
/* sections */
section{padding:clamp(80px,13vh,160px) var(--pad);position:relative}
.alt{background:var(--ink-2)}
.statement{font:400 clamp(1.6rem,3.6vw,3.2rem)/1.25 var(--serif);max-width:30ch;letter-spacing:-.01em}
.statement .lines{display:block}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);margin-top:clamp(40px,7vh,80px);color:var(--dim);max-width:1100px}
/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line-2);padding:26px 0;white-space:nowrap;background:var(--ink)}
.marquee-track{display:inline-flex;gap:48px;animation:slide 40s linear infinite}
.marquee span{font:300 clamp(1.8rem,4vw,3.4rem) var(--serif);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--paper) 40%,transparent)}
.marquee span:nth-child(even){color:var(--paper);-webkit-text-stroke:0}
@keyframes slide{to{transform:translateX(-50%)}}
/* hairline grid (move 5) */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--ink-2);padding:40px 32px;transition:background .3s}
.card:hover{background:var(--ink-3)}
.card .n{font:500 .72rem var(--sans);letter-spacing:.2em;color:var(--steel);margin-bottom:28px;display:block}
.card p{color:var(--dim);font-size:.95rem;margin-top:14px}
/* scenarios gallery (move 6, native scroll-snap variant) */
.rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) 24px;margin:0 calc(-1 * var(--pad));scroll-padding:0 var(--pad);scrollbar-color:var(--steel) var(--ink-3)}
.rail:focus-visible{outline-offset:-3px}
.panel{flex:0 0 min(78vw,720px);scroll-snap-align:start;position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line)}
.panel svg{position:absolute;inset:-6%;width:112%;height:112%;transition:transform .9s var(--ease)}
.panel:hover svg{transform:scale(1.05)}
.panel .cap{position:absolute;inset:auto 0 0 0;padding:28px;background:linear-gradient(to top,rgba(13,18,26,.95),transparent)}
.panel .cap p{color:var(--dim);font-size:.92rem;margin-top:8px;max-width:44ch}
.tag{display:inline-block;font:500 .66rem var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--line);margin:0 6px 12px 0;color:var(--paper)}
/* spec rows (move 10) */
.row{display:grid;grid-template-columns:1fr 1fr;min-height:460px;border-top:1px solid var(--line-2)}
.row:last-child{border-bottom:1px solid var(--line-2)}
.row-visual{position:relative;overflow:hidden;min-height:300px}
.row-visual svg{position:absolute;inset:0;width:100%;height:100%;transition:transform .7s ease}
.row:hover .row-visual svg{transform:scale(1.05)}
.row-info{padding:clamp(32px,5vw,64px);display:flex;flex-direction:column;justify-content:center;background:var(--ink-2)}
.row:nth-child(even) .row-visual{order:2}
.row-info p{color:var(--dim);margin:16px 0 22px;max-width:46ch}
dl.spec{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;padding-top:24px;border-top:1px solid var(--line-2)}
dl.spec dt{font:500 .7rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--steel)}
dl.spec dd{color:var(--dim);font-size:.92rem}
/* people / faq / form */
.faq details{border-top:1px solid var(--line);padding:22px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font:400 1.35rem var(--serif);list-style:none;display:flex;justify-content:space-between;gap:20px;min-height:44px;align-items:center}
.faq summary::after{content:"+";color:var(--steel);font-size:1.6rem}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--dim);max-width:62ch;margin-top:12px}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px)}
form{display:grid;gap:20px}
label{font:500 .72rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);display:grid;gap:8px}
input,select,textarea{background:var(--ink-3);border:1px solid var(--line);color:var(--paper);padding:14px;font:300 1rem var(--sans);border-radius:2px;width:100%;min-height:48px}
textarea{min-height:130px;resize:vertical}
.note{font-size:.85rem;color:var(--dim)}
#formMsg{color:var(--steel-2);min-height:1.6em}
.disclaimer{background:var(--ink-3);border:1px solid var(--line);padding:18px 22px;color:var(--dim);font-size:.9rem;max-width:80ch;margin-bottom:40px}
footer{padding:60px var(--pad) 40px;border-top:1px solid var(--line-2);color:var(--dim);font-size:.9rem}
.foot-word{font:300 clamp(3rem,13vw,12rem)/.9 var(--serif);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--paper) 25%,transparent);letter-spacing:-.02em;margin-bottom:40px}
.foot-cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
/* sticky bar */
.bar{position:fixed;inset:auto 0 0 0;z-index:800;display:flex;justify-content:center;align-items:center;gap:28px;padding:10px;background:rgba(13,18,26,.94);border-top:1px solid var(--line)}
.bar span{font:italic 1rem var(--serif);color:var(--dim)}
.bar .btn{padding:12px 26px}
/* reveals: hidden state only when JS adds html.anim (move 7) */
.ln-wrap{display:block;overflow:hidden;padding-bottom:.08em}
html.anim .ln-inner{display:block;transform:translateY(110%)}
html.anim .lines.in .ln-inner{transform:none;transition:transform 1.1s var(--ease)}
html.anim .lines.in .ln-wrap:nth-child(2) .ln-inner{transition-delay:.08s}
html.anim .lines.in .ln-wrap:nth-child(3) .ln-inner{transition-delay:.16s}
html.anim .lines.in .ln-wrap:nth-child(4) .ln-inner{transition-delay:.24s}
html.anim .reveal{opacity:0;transform:translateY(42px)}
html.anim .reveal.in{opacity:1;transform:none;transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marquee-track{animation:none;flex-wrap:wrap;white-space:normal}
  .marquee{white-space:normal}
  *{transition-duration:.01ms!important}
}
@media(max-width:860px){
  .menu-btn{display:inline-block}
  .nav ul{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:rgba(13,18,26,.98);padding:12px var(--pad) 24px;border-bottom:1px solid var(--line)}
  .nav ul.open{display:flex}
  .nav ul a{padding:14px 0;font-size:.85rem}
  .two,.contact,.row{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .row:nth-child(even) .row-visual{order:0}
  .hero{height:auto;min-height:max(680px,100svh)}
  .hero-inner{padding-top:112px}
  .hero .eyebrow{letter-spacing:.2em}
  .hero .eyebrow::before{display:none}
  .hero-foot{flex-direction:column;align-items:flex-start}
  .bar span{display:none}
  .panel{flex-basis:84vw}
}
