/* ORILLA · godoy.gannaca.com */
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --paper:#F2EDE4; --paper-2:#E9E2D6; --ink:#15201F; --muted:#545C58; --hair:#D6CDBE;
  --accent:#9C4A24; --accent-ink:#FFFFFF; --sea:#1D4C55; --sage:#5E6B52;
  --shadow:0 1px 2px rgba(21,32,31,.06),0 8px 24px rgba(21,32,31,.06);
  --serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1200px; --gutter:clamp(16px,4vw,40px);
  --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;--s8:128px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0D1414; --paper-2:#141D1D; --ink:#ECE6DB; --muted:#A7ADA8; --hair:#28322F;
  --accent:#E3905F; --accent-ink:#161010; --sea:#7DB9BD; --sage:#A3B091;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35);
}}
:root[data-theme="dark"]{
  --paper:#0D1414; --paper-2:#141D1D; --ink:#ECE6DB; --muted:#A7ADA8; --hair:#28322F;
  --accent:#E3905F; --accent-ink:#161010; --sea:#7DB9BD; --sage:#A3B091;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);font-feature-settings:"ss01","cv11";overflow-x:hidden}
img,video,svg{max-width:100%;display:block}
a{color:inherit;text-decoration-color:color-mix(in srgb,var(--accent) 60%,transparent);text-underline-offset:.18em}
a:hover{text-decoration-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99}
.skip:focus{left:8px}

/* language */
html[data-lang="es"] body [lang="en"]{display:none!important}
html[data-lang="en"] body [lang="es"]{display:none!important}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:760px}
.kicker{font:600 12px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s2)}
.kicker b{color:var(--accent);font-weight:600}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(46px,8vw,104px);line-height:1.02}
h2{font-size:clamp(34px,5vw,60px);line-height:1.06}
h3{font-size:clamp(24px,2.6vw,32px);line-height:1.15}
h1 em,h2 em,h3 em{font-style:italic;color:var(--accent)}
p{margin:0 0 var(--s2);max-width:68ch}
.lead{font-size:clamp(19px,1.8vw,23px);line-height:1.5;color:var(--ink)}
.muted{color:var(--muted)}
.small{font-size:14px;line-height:1.5}
.tab{font-variant-numeric:tabular-nums}
hr.rule{border:0;border-top:1px solid var(--hair);margin:var(--s6) 0}

/* header */
.site-head{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--hair)}
.head-row{display:flex;align-items:center;gap:var(--s3);min-height:60px}
.brand{font-family:var(--serif);font-size:24px;letter-spacing:.02em;text-decoration:none;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.brand small{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-left:8px;vertical-align:3px}
.nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none;padding:6px 4px}
.nav::-webkit-scrollbar{display:none}
.nav a{font-size:14px;text-decoration:none;padding:0 10px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap;color:var(--muted);transition:color .2s var(--ease),background .2s var(--ease)}
.nav a:hover{color:var(--ink);background:var(--paper-2)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--paper-2)}
.nav a .n{font-variant-numeric:tabular-nums;color:var(--accent);margin-right:6px;font-size:12px}
.tools{display:flex;gap:6px;align-items:center;margin-left:auto}
.pill{appearance:none;border:1px solid var(--muted);background:transparent;color:var(--ink);font:600 12px/1 var(--sans);letter-spacing:.12em;padding:0 12px;min-height:44px;min-width:44px;border-radius:999px;cursor:pointer;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.pill:hover{border-color:var(--ink);transform:translateY(-1px)}
.pill[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media (max-width:980px){.site-head{position:relative}.head-row{flex-wrap:wrap;padding-top:6px;padding-bottom:6px}.nav{order:3;width:100%;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 6px}.tools{margin-left:auto}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border-radius:999px;font:600 15px/1 var(--sans);text-decoration:none;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;transition:transform .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn.solid{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.solid:hover{filter:brightness(1.05)}
.btn .arr{transition:transform .2s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s4)}

/* gate */
.gate-shell{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto}
.gate{display:grid;place-items:center;padding:var(--s6) var(--gutter)}
.gate-card{width:min(520px,100%)}
.gate-card h1{font-size:clamp(48px,7vw,80px);margin-bottom:var(--s3)}
.field{display:flex;flex-direction:column;gap:8px;margin-top:var(--s4)}
.field label{font:600 13px/1.2 var(--sans);letter-spacing:.06em}
.field input{font:500 20px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:14px 16px;min-height:52px;border:1px solid var(--muted);border-radius:12px;background:var(--paper-2);color:var(--ink)}
.field input:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}
.status{min-height:24px;font-size:14px;margin-top:10px;color:var(--muted)}
.status.is-error{color:#B3261E}
@media (prefers-color-scheme:dark){.status.is-error{color:#FFB4AB}}
.gate-foot{padding:var(--s3) var(--gutter);font-size:12px;color:var(--muted);text-align:center}
.no-js-note{padding:var(--s3);border:1px solid var(--hair);border-radius:12px}
html.js .no-js-note{display:none}

/* hero */
.hero{position:relative;min-height:calc(100svh - 61px);display:flex;align-items:flex-end;color:#F7F3EC;overflow:hidden;background:#1a1d1a}
.hero picture,.hero .hero-img{position:absolute;inset:0;width:100%;height:100%}
.hero .hero-img{object-fit:cover;object-position:50% 45%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,14,.7) 0%,rgba(10,14,14,.15) 55%,transparent 80%),linear-gradient(180deg,rgba(10,14,14,.05) 20%,rgba(10,14,14,.4) 55%,rgba(10,14,14,.85) 100%)}
.hero-inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vh,88px)}
.hero .kicker{color:#F7F3EC;text-shadow:0 1px 14px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.6)}
.hero .tagline,.hero .meta,.hero h1{text-shadow:0 1px 18px rgba(0,0,0,.45)}
.hero h1{font-size:clamp(64px,15vw,212px);line-height:.9;letter-spacing:-.02em}
.hero .tagline{font-family:var(--serif);font-size:clamp(22px,2.8vw,36px);line-height:1.2;max-width:26ch;margin-top:var(--s3)}
.hero .meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:var(--s4);font:500 13px/1.4 var(--sans);letter-spacing:.08em;color:rgba(247,243,236,.85)}
.hero .meta span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#E3905F;margin-right:10px;vertical-align:1px}
.seq>*{opacity:0;transform:translateY(14px)}
html.is-ready .seq>*{animation:rise .9s var(--ease) forwards}
html.is-ready .seq>*:nth-child(2){animation-delay:.12s}
html.is-ready .seq>*:nth-child(3){animation-delay:.28s}
html.is-ready .seq>*:nth-child(4){animation-delay:.44s}
@keyframes rise{to{opacity:1;transform:none}}

/* sections */
.sec{padding:clamp(64px,10vw,128px) 0}
.sec.tight{padding:clamp(48px,7vw,88px) 0}
.sec.alt{background:var(--paper-2)}
.page-head{padding:clamp(56px,9vw,120px) 0 clamp(32px,5vw,64px);border-bottom:1px solid var(--hair)}
.page-head .lead{margin-top:var(--s3)}
.grid-2{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s4) var(--s4)}
@media (max-width:860px){.grid-2{column-gap:0}}
.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-4{grid-column:span 4}.col-8{grid-column:span 8}
@media (max-width:860px){.col-5,.col-6,.col-7,.col-4,.col-8{grid-column:1/-1}}

/* thesis */
.thesis{counter-reset:t;display:grid;gap:var(--s5);margin-top:var(--s5)}
@media (min-width:980px){.thesis{grid-template-columns:repeat(3,1fr);gap:var(--s4)}.thesis p{font-size:clamp(22px,2vw,28px);padding-left:0;padding-top:36px}.thesis p::before{top:0}}
.thesis p{font-family:var(--serif);font-size:clamp(24px,2.8vw,36px);line-height:1.22;max-width:30ch;margin:0;position:relative;padding-left:64px}
.thesis p::before{counter-increment:t;content:"0" counter(t);position:absolute;left:0;top:.5em;font:600 12px/1 var(--sans);letter-spacing:.2em;color:var(--accent)}

/* chapter index */
.index{list-style:none;margin:var(--s5) 0 0;padding:0;border-top:1px solid var(--hair)}
.index li{border-bottom:1px solid var(--hair)}
.index a{display:grid;grid-template-columns:72px 1fr auto;gap:var(--s3);align-items:baseline;padding:var(--s3) 0;text-decoration:none;transition:padding .25s var(--ease),background .25s var(--ease)}
.index a:hover{padding-left:12px;background:linear-gradient(90deg,var(--paper-2),transparent)}
.index .num{font:600 13px/1 var(--sans);letter-spacing:.18em;color:var(--accent)}
.index .t{font-family:var(--serif);font-size:clamp(26px,3.4vw,44px);line-height:1.1}
.index .d{grid-column:2;color:var(--muted);font-size:16px;margin-top:6px;display:block}
.index .go{font-size:22px;color:var(--muted);transition:transform .25s var(--ease),color .25s var(--ease)}
.index a:hover .go{transform:translateX(6px);color:var(--accent)}
@media (max-width:600px){.index a{grid-template-columns:44px 1fr}.index .go{display:none}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:16px;overflow:hidden;margin-top:var(--s5)}
.stat{background:var(--paper);padding:var(--s4) var(--s3)}
.sec.alt .stat{background:var(--paper-2)}
.stat .v{font-family:var(--serif);font-size:clamp(40px,5vw,64px);line-height:1;font-variant-numeric:tabular-nums}
.stat .v small{font-size:.45em;margin-left:4px;color:var(--muted)}
.stat .l{font-size:14px;color:var(--muted);margin-top:10px;line-height:1.4}

/* site map (signature) */
.sitemap{position:relative;margin:0;border-radius:18px;overflow:hidden;background:#20282a;box-shadow:var(--shadow)}
.sitemap img{width:100%;height:auto}
.sitemap svg{position:absolute;inset:0;width:100%;height:100%}
.sitemap .plot{fill:rgba(227,144,95,.14);stroke:#F5D2B8;stroke-width:2.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.sitemap .plot-glow{fill:none;stroke:rgba(227,144,95,.55);stroke-width:7;stroke-linejoin:round;filter:blur(3px)}
html.js .sitemap .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);fill-opacity:0;transition:stroke-dashoffset 2.6s var(--ease),fill-opacity 1s var(--ease) 2.2s}
html.js .sitemap.is-in .draw{stroke-dashoffset:0;fill-opacity:1}
.sitemap .lbl{font:600 21px var(--sans);fill:#fff;letter-spacing:.06em;paint-order:stroke;stroke:rgba(0,0,0,.55);stroke-width:3px}
.sitemap .dot{fill:#fff}
.sitemap figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;font-size:12px;line-height:1.4;color:rgba(255,255,255,.88);background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}
.regionmap{position:relative;margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--hair)}
.regionmap img{width:100%;height:auto}
.regionmap svg{position:absolute;inset:0;width:100%;height:100%}
.regionmap .m{fill:var(--ink)}
.regionmap .m.main{fill:var(--accent)}
.regionmap .ring{fill:none;stroke:var(--accent);stroke-width:2}
html.js .regionmap .ring{transform-box:fill-box;transform-origin:center;animation:ping 2.8s var(--ease) 3}
@keyframes ping{0%{transform:scale(.6);opacity:.9}80%,100%{transform:scale(2.4);opacity:0}}
.regionmap text{font:600 24px var(--sans);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px;letter-spacing:.02em}
.regionmap text.main{fill:var(--accent);font-size:28px}
.regionmap line{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 4;opacity:.6}
.regionmap .credit{position:absolute;right:8px;bottom:6px;font-size:11px;color:var(--muted)}
.map-light{display:block}.map-dark{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .map-light{display:none}:root:not([data-theme="light"]) .map-dark{display:block}}

/* distance list */
.dl{display:grid;grid-template-columns:1fr auto;border-top:1px solid var(--hair);margin:var(--s3) 0 0}
.dl dt,.dl dd{padding:12px 0;border-bottom:1px solid var(--hair);margin:0}
.dl dd{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}

/* film strip */
.films{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:var(--s3)}
.films .film:first-child{grid-row:span 2}
@media (max-width:860px){.films{grid-template-columns:1fr}.films .film:first-child{grid-row:auto}}
.film{position:relative;margin:0;border-radius:16px;overflow:hidden;background:#111}
.film video{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
.films .film:first-child video{aspect-ratio:auto;height:100%}
.film::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);pointer-events:none}
.film figcaption{z-index:1;position:absolute;left:14px;bottom:12px;right:64px;color:#fff;font:600 13px/1.3 var(--sans);letter-spacing:.06em;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.film .toggle{z-index:2;position:absolute;right:10px;bottom:8px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.35);color:#fff;cursor:pointer;display:grid;place-items:center}
.film .toggle:hover{background:rgba(0,0,0,.55)}
.film .toggle:focus-visible{outline:3px solid #fff;outline-offset:2px}
.film .toggle svg{width:16px;height:16px}
.tag{display:inline-block;font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:8px 10px;border:1px solid var(--hair);border-radius:999px;color:var(--muted)}

/* read list */
.readings{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;gap:0}
.readings li{display:grid;grid-template-columns:40px 1fr;gap:var(--s2);padding:var(--s3) 0;border-top:1px solid var(--hair)}
.readings li:last-child{border-bottom:1px solid var(--hair)}
.readings .i{font:600 12px/1.6 var(--sans);letter-spacing:.18em;color:var(--accent)}
.readings b{font-weight:600}

/* photo */
.photo{margin:0;border-radius:18px;overflow:hidden;position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{font-size:12px;color:var(--muted);padding:10px 2px 0}
.photo.bleed{border-radius:0}

/* positions */
.pos-nav{position:sticky;top:var(--head-h,61px);z-index:30;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--hair)}
.pos-nav ol{display:flex;gap:4px;list-style:none;margin:0 auto;padding:8px var(--gutter);max-width:var(--wrap);overflow-x:auto;scrollbar-width:none}
.pos-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:999px;font-size:13px;text-decoration:none;white-space:nowrap;color:var(--muted)}
.pos-nav a:hover,.pos-nav a.is-active{background:var(--paper-2);color:var(--ink)}
.position{padding:clamp(56px,8vw,112px) 0;border-bottom:1px solid var(--hair);scroll-margin-top:calc(var(--head-h,61px) + 72px)}
.position .no{font:600 13px/1 var(--sans);letter-spacing:.22em;color:var(--accent);margin-bottom:var(--s3)}
.position h2{max-width:18ch}
.stance{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.3;margin:var(--s4) 0 0;max-width:34ch}
.moves{list-style:none;margin:0;padding:0}
.moves li{padding:var(--s2) 0 var(--s2) 28px;border-top:1px solid var(--hair);position:relative}
.moves li::before{content:"";position:absolute;left:0;top:1.3em;width:12px;height:1px;background:var(--accent)}
.box{border:1px solid var(--hair);border-radius:14px;padding:var(--s3);margin-top:var(--s3)}
.box .kicker{margin-bottom:8px}
.box p{margin:0}
.quote{font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.2;border-left:2px solid var(--accent);padding-left:var(--s3);margin:var(--s5) 0;max-width:30ch}
.quote cite{display:block;font:500 13px/1.4 var(--sans);font-style:normal;color:var(--muted);margin-top:12px;letter-spacing:.04em}

/* ladder */
.ladder{display:grid;gap:10px;margin-top:var(--s5)}
.rung{display:grid;grid-template-columns:48px 1fr;gap:var(--s2);align-items:center}
.rung .bar{position:relative;height:auto;min-height:64px;border-radius:12px;background:var(--paper-2);border:1px solid var(--hair);padding:14px 18px;overflow:hidden}
.rung .bar::before{content:"";position:absolute;inset:0;width:var(--w);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,transparent),color-mix(in srgb,var(--accent) 4%,transparent));transform-origin:left;transform:scaleX(0);transition:transform 1.2s var(--ease)}
.ladder.is-in .rung .bar::before{transform:scaleX(1)}
.ladder.is-in .rung:nth-child(2) .bar::before{transition-delay:.12s}
.ladder.is-in .rung:nth-child(3) .bar::before{transition-delay:.24s}
.ladder.is-in .rung:nth-child(4) .bar::before{transition-delay:.36s}
.ladder.is-in .rung:nth-child(5) .bar::before{transition-delay:.48s}
.rung .bar>*{position:relative}
.rung .k{font:600 13px/1 var(--sans);color:var(--ink);letter-spacing:.14em}
.rung b{font-weight:600}
.rung span.s{display:block;font-size:14px;color:var(--ink);margin-top:2px}

/* instruments / cards list */
.rows{border-top:1px solid var(--hair);margin-top:var(--s4)}
.row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--hair)}
.row h3{font-size:clamp(22px,2.2vw,28px)}
.row .k{font:600 12px/1 var(--sans);letter-spacing:.18em;color:var(--accent);display:block;margin-bottom:10px}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:var(--s2)}}

/* timeline */
.timeline{list-style:none;padding:0;margin:var(--s5) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border-top:1px solid var(--ink)}
.timeline li{padding:var(--s3) var(--s2) var(--s3) 0;position:relative}
.timeline li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.timeline .y{font:600 13px/1 var(--sans);letter-spacing:.12em;color:var(--accent)}
.timeline .p{font-family:var(--serif);font-size:22px;line-height:1.15;margin:10px 0 6px}
.timeline .w{font-size:13px;color:var(--muted);line-height:1.4}

/* people */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-top:var(--s5)}
@media (max-width:900px){.people{grid-template-columns:1fr}}
.person{border-top:2px solid var(--ink);padding-top:var(--s3)}
.person .role{font:600 12px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.person h3{margin:10px 0 var(--s2)}
.person ul{padding-left:18px;margin:0}
.person li{margin-bottom:8px}
.portrait{aspect-ratio:4/3;border-radius:14px;overflow:hidden;margin-bottom:var(--s3);background:var(--paper-2)}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:72% 30%}

/* options */
.options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-top:var(--s5)}
@media (max-width:980px){.options{grid-template-columns:1fr}}
.opt{border:1px solid var(--hair);border-radius:18px;padding:var(--s4);display:flex;flex-direction:column;background:var(--paper);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.opt:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--ink)}
.opt.feature{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.opt .letter{font-family:var(--serif);font-size:64px;line-height:1;color:var(--accent)}
.opt h3{margin:8px 0 var(--s2)}
.opt .price{font-family:var(--serif);font-size:30px;line-height:1.15;margin:var(--s2) 0}
.opt .price small{display:block;font-family:var(--sans);font-size:13px;color:var(--muted);margin-top:6px}
.opt ul{padding-left:18px;margin:0 0 var(--s2)}
.opt li{margin-bottom:8px}
.opt .foot{margin-top:auto;padding-top:var(--s2);border-top:1px solid var(--hair);font-size:14px;color:var(--muted)}
table.fees{width:100%;border-collapse:collapse;margin-top:var(--s3);font-variant-numeric:tabular-nums}
table.fees th,table.fees td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--hair);vertical-align:top}
table.fees th{font:600 12px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
table.fees td.n{text-align:right;white-space:nowrap}
table.fees tfoot td{font-weight:700;border-bottom:2px solid var(--ink)}
.table-scroll{overflow-x:auto}

/* steps */
.steps{list-style:none;padding:0;margin:var(--s4) 0 0;counter-reset:s}
.steps li{display:grid;grid-template-columns:150px 1fr;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--hair)}
.steps li:last-child{border-bottom:1px solid var(--hair)}
.steps .d{font:600 14px/1.4 var(--sans);color:var(--accent);font-variant-numeric:tabular-nums}
@media (max-width:640px){.steps li{grid-template-columns:1fr;gap:6px}}
.pact{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-top:var(--s4)}
@media (max-width:900px){.pact{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.pact{grid-template-columns:1fr}}
.pact div{border-top:2px solid var(--accent);padding-top:var(--s2)}
.pact b{font-family:var(--serif);font-weight:400;font-size:24px;display:block;line-height:1.15;margin-bottom:8px}

/* session */
.agenda{list-style:none;padding:0;margin:var(--s4) 0 0}
.agenda li{display:grid;grid-template-columns:110px 1fr auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s2);border-top:1px solid var(--hair);border-radius:12px;transition:background .3s var(--ease)}
.agenda li:last-child{border-bottom:1px solid var(--hair)}
.agenda li.is-now{background:color-mix(in srgb,var(--accent) 7%,transparent);box-shadow:inset 3px 0 0 var(--accent)}
.agenda li.is-done .w,.agenda li.is-done .t,.agenda li.is-done .who{color:var(--muted)}
.agenda .t{font:600 15px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--accent)}
.agenda .w{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.15}
.agenda .who{display:block;font-size:14px;color:var(--muted);margin-top:4px;font-family:var(--sans)}
@media (max-width:640px){.agenda li{grid-template-columns:70px 1fr}.agenda li>a{grid-column:2}}
.timer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-top:var(--s4);padding:var(--s3);border:1px solid var(--hair);border-radius:16px}
.timer .clock{font-family:var(--serif);font-size:56px;line-height:1;font-variant-numeric:tabular-nums;min-width:4.2ch}
.timer .bar{flex:1 1 200px;height:6px;border-radius:6px;background:var(--paper-2);overflow:hidden}
.timer .bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .6s linear}
kbd{font:600 12px var(--sans);border:1px solid var(--hair);border-bottom-width:2px;border-radius:6px;padding:2px 6px}

/* chapter pager + footer */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:var(--s5) 0;border-top:1px solid var(--hair)}
.pager a{display:block;padding:var(--s3);border:1px solid var(--hair);border-radius:16px;text-decoration:none;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.pager a:hover{border-color:var(--ink);transform:translateY(-2px)}
.pager .k{font:600 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pager .t{font-family:var(--serif);font-size:26px;display:block;margin-top:8px}
.pager .next{text-align:right;grid-column:2}
.site-foot{border-top:1px solid var(--hair);padding:var(--s5) 0 var(--s6);font-size:14px;color:var(--muted)}
.site-foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s4)}
@media (max-width:760px){.site-foot .cols{grid-template-columns:1fr}}
.site-foot b{color:var(--ink);font-weight:600}
.ip{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--hair);font-size:13px}

/* reveals */
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
html.js .reveal.is-in{opacity:1;transform:none}
html.js .stagger>.reveal:nth-child(2){transition-delay:.08s}
html.js .stagger>.reveal:nth-child(3){transition-delay:.16s}
html.js .stagger>.reveal:nth-child(4){transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .seq>*,html.js .reveal{opacity:1!important;transform:none!important}
  html.js .sitemap .draw{stroke-dashoffset:0!important;fill-opacity:1!important}
  .rung .bar::before{transform:scaleX(1)!important}
}
@media print{.site-head,.pos-nav,.pager,.film .toggle,.tools{display:none!important}.hero{min-height:60vh}body{background:#fff;color:#000}}

.stats.two{grid-template-columns:repeat(2,1fr)}
.me{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s5);align-items:center}
@media (max-width:860px){.me{grid-template-columns:1fr}}
.me .portrait{margin:0;aspect-ratio:4/5}
.me .portrait img{object-position:74% 20%}

.field input::placeholder{color:var(--muted);opacity:1}
html:not(.js) #gate-form{display:none}
.notice{margin:16px auto 0;padding:12px 16px;border:1px solid var(--hair);border-radius:12px;font-size:14px}
.agenda .links{display:flex;gap:8px;flex-wrap:wrap}
