/* Inner pages (About, Websites, Freelance, Contact) — builds on home-v2.css
   tokens/chrome (nav, veil, cursor, hero, footer). Only adds inner-page bits. */

/* shorter hero for inner pages */
.v2-hero--inner { height: auto; min-height: 80vh; padding-top: 120px; padding-bottom: 9vh; }
.v2-hero--inner .v2-hero-title .row.thin .ch { color: var(--red); }

/* optional hero photo bed (left or right side), faded into the bone */
.v2-hero-bed2 { position: absolute; top: 0; bottom: 0; width: 46%; z-index: 1; margin: 0; overflow: hidden; opacity: 0; }
.v2-hero-bed2--right { right: 0; }
.v2-hero-bed2--left { left: 0; }
.v2-hero-bed2 img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; filter: grayscale(1) contrast(1.05) brightness(1.05); mix-blend-mode: multiply; }
.v2-hero-bed2--right::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, var(--bone) 0, rgba(244, 241, 234, .72) 20%, rgba(244, 241, 234, 0) 62%),
              linear-gradient(180deg, var(--bone) 0, rgba(244, 241, 234, 0) 20%, rgba(244, 241, 234, 0) 78%, var(--bone) 100%);
}
.v2-hero-bed2--left::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(270deg, var(--bone) 0, rgba(244, 241, 234, .72) 20%, rgba(244, 241, 234, 0) 62%),
              linear-gradient(180deg, var(--bone) 0, rgba(244, 241, 234, 0) 20%, rgba(244, 241, 234, 0) 78%, var(--bone) 100%);
}
@media (max-width: 820px) { .v2-hero-bed2 { display: none; } }

/* content pushed to the right when the photo sits on the left */
.v2-hero--right { align-items: flex-end; text-align: right; }
.v2-hero--right .v2-hero-kicker { left: auto; right: 3.2vw; }
.v2-hero--right .v2-hero-cue { left: auto; right: 3.2vw; }
.v2-hero--right .v2-hero-sub { margin-left: auto; }
.v2-hero--right .v2-hero-actions { justify-content: flex-end; }

/* manifesto — big statement whose words brighten as you scroll (like the homepage) */
.v2-mani-sec { padding: 18vh 3.2vw; }
.v2-mani { max-width: 1040px; margin-top: 5vh; }
.v2-mani-p { font-size: clamp(22px, min(3.4vw, 5.2vh), 44px); line-height: 1.22; font-weight: 700; letter-spacing: -.02em; }
.v2-mani-p + .v2-mani-p { margin-top: 3.6vh; }
.v2-mani-p .w { opacity: .16; display: inline-block; transition: opacity .4s linear; }
.v2-mani-p .w.on { opacity: 1; }
.v2-sec--ink .v2-mani-p { color: var(--bone); }

/* how I work — four moves that assemble on scroll (adapted from the cinema "ritual") */
.moves-sec { min-height: 300svh; background: var(--ink); color: var(--bone); overflow: clip; isolation: isolate; }
.moves-pin { position: sticky; top: 0; height: 100svh; overflow: hidden; display: grid; place-items: center; padding: 96px 3.2vw 52px; isolation: isolate; }
.moves-pin::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--red); clip-path: inset(calc(100% - var(--moves-final, 0%)) 0 0); will-change: clip-path; }
.moves-head { position: absolute; left: 3.2vw; right: 3.2vw; top: 96px; display: flex; justify-content: space-between; align-items: center; font-family: var(--mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--bone); }
.moves-head b { font-weight: 500; }
.moves-head span { opacity: .55; }
.moves-stack { position: relative; width: 100%; height: min(56vh, 540px); }
.move { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; opacity: 0; transform: translate3d(0, 62%, 0) scale(.82); filter: blur(9px); will-change: transform, opacity, filter; }
.move .n { position: absolute; left: 1%; top: 50%; font-family: var(--mono); font-size: 11px; letter-spacing: .18em; opacity: .5; }
.move-word { font-weight: 900; text-transform: uppercase; font-size: clamp(84px, 17vw, 280px); line-height: .82; letter-spacing: -.03em; font-variation-settings: 'wght' 900, 'wdth' 100; }
.move-value { margin-top: 26px; font-family: var(--mono); font-size: clamp(10px, 1.2vw, 14px); letter-spacing: .22em; text-transform: uppercase; color: rgba(244, 241, 234, .7); }
.moves-track { position: absolute; left: 3.2vw; right: 3.2vw; bottom: 38px; height: 1px; background: rgba(244, 241, 234, .2); }
.moves-track i { display: block; height: 100%; width: 100%; background: var(--bone); transform: scaleX(var(--moves-progress, 0)); transform-origin: left; }
.moves-markers { position: absolute; left: 3.2vw; right: 3.2vw; bottom: 50px; display: grid; grid-template-columns: repeat(4, 1fr); font-family: var(--mono); font-size: 9px; letter-spacing: .17em; text-transform: uppercase; color: var(--bone); }
.moves-markers span { text-align: center; opacity: .28; }
.moves-markers span.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .moves-sec { min-height: auto; }
  .moves-pin { position: static; height: auto; display: block; padding: 14vh 3.2vw; }
  .moves-pin::after { display: none; }
  .moves-stack { height: auto; display: grid; gap: 6vh; }
  .move { position: relative; inset: auto; opacity: 1; transform: none; filter: none; place-items: start; text-align: left; }
  .move .n { position: static; display: block; margin-bottom: 8px; }
  .move-word { font-size: clamp(48px, 10vw, 110px); }
  .moves-track, .moves-markers, .moves-head span { display: none; }
}

/* section shell */
.v2-sec { padding: 13vh 3.2vw; background: var(--bone); position: relative; }
.v2-sec--ink { background: var(--ink); color: var(--bone); }
.v2-sec__label { color: rgba(22, 21, 19, .5); display: block; margin-bottom: 2.4vh; }
.v2-sec--ink .v2-sec__label { color: rgba(244, 241, 234, .5); }
.v2-sec h2 { font-weight: 900; font-size: clamp(26px, 3.6vw, 48px); letter-spacing: -.02em; max-width: 20ch; }
.v2-sec__lead { margin-top: 2.6vh; font-size: clamp(15px, 1.5vw, 18px); line-height: 1.65; color: rgba(22, 21, 19, .7); max-width: 64ch; }
.v2-sec--ink .v2-sec__lead { color: rgba(244, 241, 234, .62); }

/* prose (multi-paragraph) */
.v2-prose { margin-top: 4vh; max-width: 66ch; }
.v2-prose p { font-size: clamp(15px, 1.5vw, 18px); line-height: 1.75; color: rgba(22, 21, 19, .72); }
.v2-prose p + p { margin-top: 2.4vh; }
.v2-sec--ink .v2-prose p { color: rgba(244, 241, 234, .66); }

/* card grid (expertise, freelance services) */
.v2-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 6vh; }
@media (max-width: 900px) { .v2-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .v2-cards { grid-template-columns: 1fr; } }
.v2-card {
  position: relative; overflow: hidden; border: 1px solid var(--hair-ink); border-radius: 20px; padding: 28px;
  background: var(--bone); transition: transform .5s var(--ease), border-color .5s var(--ease), background .5s var(--ease);
}
.v2-card:hover { transform: translateY(-6px); border-color: rgba(217, 51, 63, .4); }
.v2-card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(135deg, rgba(22, 21, 19, .06), transparent 44%); transition: opacity .5s var(--ease);
}
.v2-card:hover::after { opacity: 1; }
.v2-card .n { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; color: rgba(22, 21, 19, .4); }
.v2-card h3 { margin-top: 18px; font-weight: 800; font-size: clamp(18px, 2vw, 24px); letter-spacing: -.01em; }
.v2-card p { margin-top: 10px; font-size: 13.5px; line-height: 1.6; color: rgba(22, 21, 19, .62); }
/* cards on a dark section */
.v2-sec--ink .v2-card { background: #1c1b18; border-color: var(--hair-bone); }
.v2-sec--ink .v2-card::after { background: linear-gradient(135deg, rgba(244, 241, 234, .1), transparent 44%); }
.v2-sec--ink .v2-card .n { color: rgba(244, 241, 234, .4); }
.v2-sec--ink .v2-card p { color: rgba(244, 241, 234, .62); }

/* numbered / dated row list (journey, work experience) */
.v2-tl { margin-top: 7vh; }
.v2-tl__item {
  display: grid; grid-template-columns: clamp(120px, 16vw, 220px) 1fr; gap: 3vw;
  border-top: 1px solid var(--hair-ink); padding: 36px 0;
}
.v2-tl__item:last-child { border-bottom: 1px solid var(--hair-ink); }
.v2-tl__date { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.v2-tl__item h3 { font-weight: 800; font-size: clamp(18px, 2.2vw, 27px); letter-spacing: -.01em; }
.v2-tl__item p { margin-top: 12px; font-size: 14px; line-height: 1.65; color: rgba(22, 21, 19, .65); max-width: 62ch; }
.v2-sec--ink .v2-tl__item { border-color: var(--hair-bone); }
.v2-sec--ink .v2-tl__item p { color: rgba(244, 241, 234, .6); }
@media (max-width: 640px) { .v2-tl__item { grid-template-columns: 1fr; gap: 10px; } }

/* contact pills */
.v2-pills { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 5vh; }
.v2-pill {
  display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--hair-ink); padding: 12px 18px;
  border-radius: 999px; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(22, 21, 19, .75); transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.v2-pill:not(.v2-pill--static):hover { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.v2-pill svg { width: 15px; height: 15px; flex: none; }

/* contact form */
.v2-form { margin-top: 6vh; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 4vw; max-width: 820px; }
.v2-field { display: flex; flex-direction: column; }
.v2-field--full { grid-column: 1 / -1; }
.v2-field label { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(22, 21, 19, .55); margin-bottom: 10px; }
.v2-field input, .v2-field select, .v2-field textarea {
  background: transparent; border: 0; border-bottom: 1px solid var(--hair-ink); padding: 12px 2px; font: inherit;
  color: var(--ink); outline: none; transition: border-color .3s var(--ease); font-size: 16px; border-radius: 0;
}
.v2-field textarea { min-height: 130px; resize: vertical; }
.v2-field input:focus, .v2-field select:focus, .v2-field textarea:focus { border-color: var(--red); }
.v2-form .v2-btn { grid-column: 1 / -1; justify-self: start; cursor: pointer; }
.v2-form .v2-btn[disabled] { opacity: .5; cursor: default; }
@media (max-width: 640px) { .v2-form { grid-template-columns: 1fr; } }

.alert { padding: 16px 20px; border-radius: 12px; font-size: 14px; line-height: 1.5; margin-top: 3vh; max-width: 640px; }
.alert--success { background: rgba(22, 21, 19, .05); border: 1px solid var(--hair-ink); color: var(--ink); }
.alert--error { background: rgba(217, 51, 63, .1); border: 1px solid var(--red); color: var(--ink); }

/* contact — project inquiry: form on the left, photo on the right (dark section) */
.contact-inquiry { display: grid; grid-template-columns: 1.1fr .9fr; gap: 5vw; align-items: stretch; }
@media (max-width: 900px) { .contact-inquiry { grid-template-columns: 1fr; } .contact-inquiry__media { display: none; } }
.contact-inquiry__form { min-width: 0; }
.contact-inquiry .v2-form { grid-template-columns: 1fr; max-width: none; }
.contact-inquiry__media { margin: 0; border-radius: 14px; overflow: hidden; background: #111; min-height: 62vh; }
.contact-inquiry__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.25) contrast(1.03); }

/* form fields need light colours on a dark section, otherwise they're invisible */
.v2-sec--ink .v2-field label { color: rgba(244, 241, 234, .55); }
.v2-sec--ink .v2-field input, .v2-sec--ink .v2-field select, .v2-sec--ink .v2-field textarea { color: var(--bone); border-bottom-color: var(--hair-bone); }
.v2-sec--ink .v2-field input:focus, .v2-sec--ink .v2-field select:focus, .v2-sec--ink .v2-field textarea:focus { border-color: var(--red); }
/* dark dropdown list: ink background, bone text, red highlight (instead of the OS white/blue) */
.v2-sec--ink .v2-field select { accent-color: var(--red); }
.v2-sec--ink .v2-field select option { background: #1c1b18; color: var(--bone); }
.v2-sec--ink .v2-field select option:checked { background: var(--red); color: #fff; }
/* stop the browser autofill from painting fields light blue on the dark form */
.v2-sec--ink .v2-field input:-webkit-autofill,
.v2-sec--ink .v2-field input:-webkit-autofill:hover,
.v2-sec--ink .v2-field input:-webkit-autofill:focus,
.v2-sec--ink .v2-field input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--bone);
  -webkit-box-shadow: 0 0 0 1000px #161513 inset;
  box-shadow: 0 0 0 1000px #161513 inset;
  caret-color: var(--bone);
  transition: background-color 9999s ease-in-out 0s;
}
.v2-sec--ink .v2-form .v2-btn--primary { background: var(--bone); color: var(--ink); }
.v2-sec--ink .v2-form .v2-btn--primary:hover { background: var(--red); color: var(--bone); }
.v2-sec--ink .alert--success { background: rgba(244, 241, 234, .06); border-color: var(--hair-bone); color: var(--bone); }
.v2-sec--ink .alert--error { color: var(--bone); }

/* websites: filters + project grid */
.v2-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5vh; }
.v2-filters button {
  font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; padding: 8px 14px;
  border: 1px solid var(--hair-ink); color: rgba(22, 21, 19, .7); transition: .25s var(--ease);
}
.v2-filters button:hover { border-color: var(--ink); }
.v2-filters button.is-active { background: var(--ink); color: var(--bone); border-color: var(--ink); }

.v2-work-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 6vh; }
@media (max-width: 1000px) { .v2-work-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .v2-work-grid { grid-template-columns: 1fr; } }
.v2-proj {
  position: relative; border: 1px solid var(--hair-ink); border-radius: 18px; overflow: hidden; background: var(--bone);
  display: flex; flex-direction: column; transition: transform .5s var(--ease), border-color .5s var(--ease);
}
.v2-proj:hover { transform: translateY(-6px); border-color: rgba(217, 51, 63, .4); }
.v2-proj__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #dedacf; }
.v2-proj__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.v2-proj:hover .v2-proj__media img { transform: scale(1.05); }
.v2-proj__ph { width: 100%; height: 100%; display: grid; place-items: center; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: rgba(22, 21, 19, .4); }
.v2-proj__badge { position: absolute; left: 12px; top: 12px; z-index: 2; font-family: var(--mono); font-size: 9px; letter-spacing: .14em; background: var(--red); color: var(--bone); padding: 4px 8px; }
.v2-proj__body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.v2-proj__body h3 { font-weight: 800; font-size: clamp(17px, 1.8vw, 22px); letter-spacing: -.01em; }
.v2-proj__body p { margin-top: 8px; font-size: 13.5px; line-height: 1.55; color: rgba(22, 21, 19, .62); flex: 1; }
.v2-proj__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.v2-proj__tags span { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: rgba(22, 21, 19, .55); border: 1px solid var(--hair-ink); padding: 4px 8px; }
.v2-proj__actions { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }
.v2-proj__actions .v2-btn { padding: 10px 16px; font-size: 10px; }
.v2-state { font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: rgba(22, 21, 19, .5); text-transform: uppercase; padding: 5vh 0; grid-column: 1 / -1; }

/* ── legal / policy documents (privacy, terms, refund) ─────────────────── */
.legal-hero { min-height: auto; padding: 150px 3.2vw 7vh; }
.legal-kicker { color: rgba(22, 21, 19, .5); display: block; margin-bottom: 3vh; }
.legal-title {
  font-family: var(--arch); font-weight: 900; letter-spacing: -.03em; line-height: .92;
  font-size: clamp(44px, 9vw, 104px); text-transform: uppercase;
}
.legal-updated {
  margin-top: 3.2vh; font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(22, 21, 19, .45);
}
.legal-intro { margin-top: 3.4vh; max-width: 60ch; font-size: 16px; line-height: 1.7; color: rgba(22, 21, 19, .78); }
.legal-doc { max-width: 860px; margin: 0 auto; padding: 2vh 3.2vw 15vh; background: var(--bone); }
.legal-sec { padding: 5vh 0; border-top: 1px solid var(--hair-ink); }
.legal-sec > .mono { display: block; color: var(--red); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 16px; }
.legal-sec h2 { font-family: var(--arch); font-weight: 900; font-size: clamp(22px, 3vw, 34px); letter-spacing: -.02em; line-height: 1.02; margin-bottom: 20px; }
.legal-sec h3 { font-size: 16px; font-weight: 800; margin: 22px 0 10px; letter-spacing: -.01em; }
.legal-sec p { font-size: 15.5px; line-height: 1.75; color: rgba(22, 21, 19, .82); margin-bottom: 15px; max-width: 70ch; }
.legal-sec ul { margin: 0 0 16px; padding: 0; list-style: none; max-width: 70ch; }
.legal-sec li { position: relative; padding-left: 24px; margin-bottom: 10px; font-size: 15.5px; line-height: 1.65; color: rgba(22, 21, 19, .82); }
.legal-sec li::before { content: "—"; position: absolute; left: 0; color: var(--red); }
.legal-sec strong { font-weight: 700; color: var(--ink); }
.legal-sec a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.legal-callout { background: var(--ink); color: rgba(244, 241, 234, .9); padding: 22px 24px; margin: 6px 0 18px; font-size: 14.5px; line-height: 1.7; }
.legal-callout strong { color: #fff; }
.legal-toc { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 4vh; font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.legal-toc a { color: rgba(22, 21, 19, .55); text-decoration: none; }
.legal-toc a:hover { color: var(--red); }
@media (max-width: 640px) { .legal-hero { padding: 120px 5vw 5vh; } .legal-doc { padding: 2vh 5vw 12vh; } }

/* ── beyond-websites: scroll-driven 3D cylinder of services (Network page) ── */
.cyl-sec { position: relative; background: var(--bone); }
.cyl-pin { position: sticky; top: 0; height: 100svh; display: grid; grid-template-rows: auto 1fr auto; align-items: center; overflow: hidden; }
.cyl-intro { padding-top: 14vh; text-align: center; }
.cyl-eyebrow { display: inline-block; color: var(--red); margin-bottom: 14px; }
.cyl-lead { max-width: 46ch; margin: 0 auto; font-size: clamp(14px, 1.5vw, 17px); line-height: 1.6; color: rgba(22, 21, 19, .62); }
.cyl-wrap { position: relative; display: grid; place-items: center; width: 100%; height: clamp(260px, 34vw, 400px); overflow: hidden; perspective: 1150px; perspective-origin: 50% 50%; }
.cyl { position: relative; width: min(1000px, 90vw); height: clamp(230px, 30vw, 340px); transform-style: preserve-3d; will-change: transform; }
.cyl-row { position: absolute; top: 50%; left: 50%; width: 100%; display: flex; align-items: center; justify-content: center; gap: clamp(10px, 1.2vw, 20px); transform-style: preserve-3d; backface-visibility: hidden; will-change: transform, opacity; }
.cyl-row h3 { font-family: var(--arch); font-weight: 900; font-size: clamp(1.7rem, 5.4vw, 4.6rem); line-height: 1; letter-spacing: -.038em; text-transform: uppercase; color: var(--ink); white-space: nowrap; transition: color .3s linear; font-variation-settings: 'wght' 900, 'wdth' 100; }
.cyl-row.mid h3 { color: var(--red); }
.cyl-thumb { width: clamp(30px, 3.6vw, 54px); aspect-ratio: 1/1; border-radius: 11px; overflow: hidden; flex: none; display: grid; place-items: center; background: var(--ink); color: var(--bone); font-family: var(--mono); font-size: 12px; box-shadow: 0 10px 24px -12px rgba(22, 21, 19, .5); transition: background .3s linear; }
.cyl-row.mid .cyl-thumb { background: var(--red); }
.cyl-wrap::before, .cyl-wrap::after { content: ""; position: absolute; left: 0; right: 0; height: 34%; z-index: 4; pointer-events: none; }
.cyl-wrap::before { top: 0; background: linear-gradient(180deg, var(--bone) 22%, rgba(244, 241, 234, .55) 62%, transparent); }
.cyl-wrap::after { bottom: 0; background: linear-gradient(0deg, var(--bone) 22%, rgba(244, 241, 234, .55) 62%, transparent); }
.cyl-side { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(22, 21, 19, .5); }
.cyl-side.l { left: 3.2vw; color: var(--red); }
.cyl-side.r { right: 3.2vw; }
.cyl-foot { padding-bottom: 12vh; text-align: center; font-size: 11px; letter-spacing: .1em; color: rgba(22, 21, 19, .5); }
@media (max-width: 860px) { .cyl-side { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .cyl-sec { height: auto !important; }
  .cyl-pin { position: static; height: auto; display: block; padding: 12vh 0; }
  .cyl-wrap { height: auto; perspective: none; overflow: visible; }
  .cyl { width: 100%; height: auto; transform: none !important; display: flex; flex-direction: column; gap: 3vh; align-items: center; }
  .cyl-row { position: static; transform: none !important; opacity: 1 !important; }
  .cyl-row h3 { color: var(--ink); }
  .cyl-wrap::before, .cyl-wrap::after { display: none; }
}

/* ── legal accordion (privacy / terms) ────────────────────────────────── */
.legal-faq-sec { background: var(--bone); padding: 6vh 3.2vw 16vh; }
.legal-faq { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: 5vh; }
@media (min-width: 900px) { .legal-faq { grid-template-columns: .82fr 1.4fr; gap: clamp(32px, 5vw, 84px); align-items: start; } }
.legal-faq__intro { align-self: start; }
@media (min-width: 900px) { .legal-faq__intro { position: sticky; top: 14vh; } }
.legal-faq__intro .eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--red); }
.legal-faq__intro h2 { font-family: var(--arch); font-weight: 900; letter-spacing: -.03em; line-height: .95; font-size: clamp(30px, 4.4vw, 54px); margin: 16px 0 0; }
.legal-faq__intro > p { margin-top: 20px; font-family: var(--mono); font-size: 12px; line-height: 1.75; color: rgba(22, 21, 19, .55); max-width: 34ch; }
.legal-faq__intro .v2-btn { display: inline-flex; align-items: center; margin-top: 38px; }

.faq { border-top: 1px solid var(--hair-ink); }
.faq:last-child { border-bottom: 1px solid var(--hair-ink); }
.faq button { width: 100%; display: flex; align-items: center; gap: clamp(12px, 2vw, 26px); padding: clamp(18px, 2vw, 27px) 0; text-align: left; cursor: pointer; background: none; border: 0; }
.faq .n { font-family: var(--mono); font-size: 10.5px; letter-spacing: .13em; color: rgba(22, 21, 19, .4); flex: none; width: 2.4em; transition: color .35s; }
.faq h4 { flex: 1; font-family: var(--arch); font-weight: 800; font-size: clamp(1rem, 1.8vw, 1.4rem); line-height: 1.25; letter-spacing: -.015em; color: var(--ink); transition: color .35s, transform .5s var(--ease); margin: 0; }
.faq .pm { position: relative; flex: none; width: 16px; height: 16px; }
.faq .pm i { position: absolute; left: 0; top: 50%; width: 100%; height: 1.5px; background: var(--ink); transition: transform .5s var(--ease), background .35s; }
.faq .pm i:last-child { transform: rotate(90deg); }
.faq.open .pm i:last-child { transform: rotate(0); }
.faq.open .n, .faq.open h4 { color: var(--red); }
.faq.open .pm i { background: var(--red); }
.faq button:hover h4 { transform: translateX(6px); }
.faq .body { overflow: hidden; }
.legal-faq.js .faq .body { height: 0; transition: height .55s var(--ease); } /* collapse only when JS is on */
.faq .body__in { padding: 0 0 clamp(20px, 2.2vw, 28px) calc(2.4em + clamp(12px, 2vw, 26px)); max-width: 78ch; }
.faq .body__in p, .faq .body__in li { font-family: var(--mono); font-size: 12.5px; line-height: 1.9; color: rgba(22, 21, 19, .7); }
.faq .body__in p + p { margin-top: 12px; }
.faq .body__in h3 { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin: 16px 0 6px; }
.faq .body__in ul { list-style: none; margin: 10px 0 0; padding: 0; }
.faq .body__in li { position: relative; padding-left: 18px; margin-bottom: 7px; }
.faq .body__in li::before { content: "—"; position: absolute; left: 0; color: var(--red); }
.faq .body__in a { color: var(--red); text-decoration: underline; text-underline-offset: 2px; }
.faq .body__in strong { color: var(--ink); font-weight: 700; }
.faq .body__in .legal-callout { background: var(--ink); color: rgba(244, 241, 234, .92); padding: 15px 18px; margin: 10px 0 2px; line-height: 1.7; }
.faq .body__in .legal-callout strong { color: #fff; }

/* ── CTA ghost-field (bottom of legal pages) ──────────────────────────── */
.v2-cta-ghost { position: relative; background: var(--bone); color: var(--ink); min-height: 90vh; display: grid; place-items: center; overflow: hidden; padding: 12vh 3.2vw; isolation: isolate; }
.v2-cta-ghost .ghosts { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.v2-cta-ghost .ghosts span { position: absolute; font-family: var(--arch); font-weight: 900; text-transform: uppercase; letter-spacing: -.03em; color: var(--red); white-space: nowrap; opacity: .07; will-change: transform; font-variation-settings: 'wght' 900, 'wdth' 100; }
.cta-core { position: relative; z-index: 2; text-align: center; display: grid; justify-items: center; gap: 16px; max-width: 900px; }
.v2-cta-ghost .eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--red); }
.cta-head { position: relative; }
.cta-head h2 { font-family: var(--arch); font-weight: 900; text-transform: uppercase; letter-spacing: -.04em; line-height: .9; font-size: clamp(46px, 12vw, 150px); color: var(--ink); font-variation-settings: 'wght' 900, 'wdth' 100; }
.cta-underline { position: absolute; left: 2%; bottom: -4px; width: 96%; height: 22px; }
.cta-underline path { fill: none; stroke: var(--red); stroke-width: 5; stroke-linecap: round; }
.cta-dock { display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; background: var(--bone); border: 1px solid var(--hair-ink); border-radius: 16px; padding: 11px 18px 11px 12px; box-shadow: 0 24px 46px -26px rgba(22, 21, 19, .45); position: relative; transition: transform .5s var(--ease); }
.cta-dock:hover { transform: translateY(-3px); }
.cta-dock .bub { position: absolute; top: -20px; left: 10px; background: var(--red); color: #fff; font-family: var(--mono); font-size: 10px; line-height: 1.3; padding: 6px 10px; border-radius: 10px 10px 10px 2px; white-space: nowrap; }
.cta-dock .dock-av { width: 44px; height: 44px; border-radius: 12px; overflow: hidden; flex: none; background: var(--ink); }
.cta-dock .dock-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cta-dock p { font-family: var(--mono); font-size: 11px; line-height: 1.4; color: rgba(22, 21, 19, .7); text-align: left; margin: 0; }
.cta-actions { display: grid; justify-items: center; gap: 14px; margin-top: 26px; }
.cta-mail { font-family: var(--mono); font-size: 12px; letter-spacing: .06em; color: rgba(22, 21, 19, .5); text-decoration: none; }
.cta-mail:hover { color: var(--red); }
@media (prefers-reduced-motion: reduce) { .v2-cta-ghost .ghosts span { transform: none !important; } }

/* ── beyond-websites detail — horizontal-scroll cards (Network page) ────── */
.hz-sec { position: relative; background: var(--bone); }
.hz-pin { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.hz-head { padding: 12vh 3.2vw 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.hz-head .eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--red); }
.hz-head h2 { font-family: var(--arch); font-weight: 900; letter-spacing: -.03em; line-height: .92; font-size: clamp(30px, 5vw, 60px); margin-top: 14px; }
.hz-note { font-family: var(--mono); font-size: 12px; line-height: 1.7; color: rgba(22, 21, 19, .55); max-width: 34ch; text-align: right; }
.hz-track { display: flex; align-items: stretch; gap: clamp(16px, 2vw, 30px); padding: 0 3.2vw; will-change: transform; margin: 5vh 0 auto; }
.phase { position: relative; flex: none; width: clamp(255px, 29vw, 400px); border: 1px solid var(--hair-ink); border-radius: 18px; background: linear-gradient(180deg, rgba(22, 21, 19, .025), transparent 42%), var(--bone); padding: clamp(20px, 2.2vw, 32px); display: flex; flex-direction: column; gap: 14px; transition: border-color .5s var(--ease), transform .6s var(--ease); }
.phase:hover { transform: translateY(-6px); border-color: rgba(217, 51, 63, .5); }
.phase .num { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; color: var(--red); }
.phase h4 { font-family: var(--arch); font-weight: 900; font-size: clamp(1.3rem, 2.2vw, 1.95rem); line-height: 1.03; letter-spacing: -.026em; text-transform: uppercase; color: var(--ink); margin: 0; }
.phase .bar { height: 1px; background: var(--hair-ink); position: relative; overflow: hidden; }
.phase .bar i { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--red); transition: width .8s var(--ease); }
.phase:hover .bar i { width: 100%; }
.phase p { font-family: var(--mono); font-size: clamp(11px, .85vw, 13px); line-height: 1.75; color: rgba(22, 21, 19, .6); margin: 0; }
.phase ul { list-style: none; margin: 4px 0 0; padding: 0; }
.phase ul li { position: relative; padding-left: 16px; font-family: var(--mono); font-size: clamp(10.5px, .8vw, 12.5px); line-height: 1.95; color: rgba(22, 21, 19, .6); }
.phase ul li::before { content: ""; position: absolute; left: 0; top: .88em; width: 6px; height: 1px; background: var(--red); }
@media (prefers-reduced-motion: reduce) {
  .hz-sec { height: auto !important; }
  .hz-pin { position: static; height: auto; display: block; padding: 10vh 0; }
  .hz-track { transform: none !important; flex-wrap: wrap; margin: 4vh 0 0; }
  .phase { width: 100%; max-width: 440px; }
  .hz-note { text-align: left; }
}

/* ── phone fallbacks: drop the 3D/pinned mechanics for simple stacked layouts ── */
@media (max-width: 760px) {
  /* services cylinder → plain stacked list (flat block flow, no 3D/grid) */
  .cyl-sec { height: auto !important; }
  .cyl-pin { position: static; height: auto; display: block; padding: 10vh 6vw 6vh; }
  .cyl-intro { text-align: left; }
  .cyl-wrap { display: block; height: auto; perspective: none; overflow: visible; margin: 3vh 0 0; }
  .cyl { position: static; width: 100%; height: auto; transform: none !important; display: flex; flex-direction: column; gap: 2.4vh; align-items: flex-start; }
  .cyl-row { position: static; transform: none !important; opacity: 1 !important; gap: 14px; width: 100%; }
  .cyl-row h3 { color: var(--ink); font-size: clamp(26px, 7.5vw, 38px); }
  .cyl-wrap::before, .cyl-wrap::after { display: none; }
  .cyl-foot { margin-top: 4vh; padding-bottom: 0; text-align: left; }

  /* detail cards → wrapped vertical stack */
  .hz-sec { height: auto !important; }
  .hz-pin { position: static; height: auto; display: block; padding: 10vh 0; }
  .hz-head { padding: 0 6vw; }
  .hz-note { text-align: left; }
  .hz-track { transform: none !important; flex-wrap: wrap; padding: 0 6vw; margin: 4vh 0 0; gap: 16px; }
  .phase { width: 100%; max-width: none; }

  /* legal accordion + CTA breathing room on phones */
  .legal-faq-sec { padding: 4vh 6vw 12vh; }
  .v2-cta-ghost { padding: 12vh 6vw; }
}

/* ── split-flap contact board (Contact "reach me") ────────────────────── */
.flap-board { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; width: max-content; max-width: 100%; background: var(--ink); padding: 20px; border-radius: 4px; margin-top: 5vh; overflow: hidden; }
.flap-board .fb-row { display: flex; gap: 3px; }
.flap-board .fb-cell { flex: 0 0 auto; width: 1.1em; height: 1.5em; line-height: 1.5em; text-align: center; font-family: var(--mono); font-weight: 500; background: #0d0d0d; color: var(--bone); border-radius: 3px; box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .06); }
.reach-links { margin-top: 3.4vh; display: flex; flex-wrap: wrap; gap: 10px 26px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; }
.reach-links a, .reach-links span { color: rgba(22, 21, 19, .68); text-decoration: none; }
.reach-links a:hover { color: var(--red); }
@media (max-width: 640px) { .flap-board { padding: 14px; } }

.board-next { margin-top: 22px; }
