/* ================================================================
   THE LEDGER — almithaq.co
   Quiet editorial luxury. Serif-led, near-black paper, hairlines.
   All directional CSS uses logical properties; --dir flips motion.
   ================================================================ */
:root{
  --bg:#0A0A0A;--bg2:#121212;--bg3:#181818;
  --fg:#F5F3EE;--fg-strong:#FFFFFF;
  --muted:rgba(245,243,238,.62);--faint:rgba(245,243,238,.38);
  --line:rgba(245,243,238,.14);--line-strong:rgba(245,243,238,.32);
  --gold:#C9A96A;--gold2:#A9884C;--gold-line:rgba(201,169,106,.5);
  --paper:#F5F3EE;--paper-fg:#0A0A0A;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --gutter:clamp(20px,5vw,84px);--maxw:1560px;--navh:76px;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-inout:cubic-bezier(.76,0,.24,1);
  --dir:1;
}
[dir=rtl]{--dir:-1;--serif:'Amiri','Noto Naskh Arabic','Cormorant Garamond',serif;--sans:'IBM Plex Sans Arabic','Segoe UI',Tahoma,sans-serif}
@media(max-width:900px){:root{--navh:64px}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%;background:var(--bg);color-scheme:dark}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:clip}
body{background:var(--bg);color:var(--fg);font:400 1rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;min-height:100svh}
[dir=rtl] body{line-height:1.85;font-size:1.04rem}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
address{font-style:normal}
::selection{background:var(--gold);color:#0A0A0A}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
html.is-loading,html.drawer-open,html.menu-open{overflow:hidden}
bdi,.ltr{unicode-bidi:isolate;direction:ltr;display:inline-block}
[lang=ar],[lang=ar] *{letter-spacing:0!important;font-style:normal!important;text-transform:none!important}
.skip{position:fixed;inset-inline-start:16px;top:-80px;z-index:300;background:var(--paper);color:var(--bg);padding:12px 18px;font-size:.85rem}
.skip:focus{top:16px}
.wrap{width:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto}

/* ---------- type ---------- */
.eyebrow{font:500 .7rem/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);display:flex;gap:1em;align-items:center;flex-wrap:wrap}
.eyebrow .n{color:var(--faint);font-variant-numeric:tabular-nums}
.eyebrow .n::after{content:"";display:inline-block;width:22px;height:1px;background:var(--gold-line);vertical-align:middle;margin-inline-start:1em}
[dir=rtl] .eyebrow{font-size:.84rem}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,5.2vw,5.4rem);line-height:1;letter-spacing:-.015em;color:var(--fg-strong)}
[dir=rtl] .h2{line-height:1.3;font-size:clamp(2.1rem,4.6vw,4.6rem)}
.h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1.1}
[dir=rtl] .h3{line-height:1.45}
.lead{font-family:var(--serif);font-size:clamp(1.25rem,1.7vw,1.6rem);line-height:1.4;color:var(--muted);max-width:44ch}
[dir=rtl] .lead{line-height:1.8}
.body{max-width:56ch;color:var(--muted)}
em{font-style:italic;font-weight:300}
[dir=rtl] em{color:var(--gold)}
.sec-head{display:grid;gap:clamp(14px,2vw,24px);margin-bottom:clamp(36px,6vw,80px);justify-items:start}
.secnum,.ledger__visual figcaption,.rail__count,.poster__idx,.eyebrow .n{direction:ltr;unicode-bidi:isolate}
.secnum{font:400 .72rem/1 var(--sans);letter-spacing:.2em;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.rule{display:block;height:1px;width:100%;background:var(--line-strong);transform-origin:0 50%}
[dir=rtl] .rule{transform-origin:100% 50%}
.rule--gold{background:var(--gold-line)}
.ico{width:1em;height:1em;flex:0 0 auto}
[dir=rtl] .ico-dir{transform:scaleX(-1)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8em;min-height:48px;padding:0 1.7em;border:1px solid var(--line-strong);border-radius:999px;font:500 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--fg);background:transparent;transition:background .55s var(--ease-out),color .55s var(--ease-out),border-color .55s;white-space:nowrap;cursor:pointer}
[dir=rtl] .btn{font-size:.92rem}
.btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--solid{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--solid:hover{background:var(--gold);border-color:var(--gold);color:#0A0A0A}
.btn .ico-dir{transition:transform .5s var(--ease-out)}
.btn:hover .ico-dir{transform:translateX(calc(var(--dir) * 4px))}
[dir=rtl] .btn:hover .ico-dir{transform:scaleX(-1) translateX(4px)}
.textlink{display:inline-flex;align-items:center;gap:.7em;font:500 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--fg);min-height:44px;position:relative}
[dir=rtl] .textlink{font-size:.92rem}
.textlink::after{content:"";position:absolute;inset-inline-start:0;bottom:8px;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease-out)}
[dir=rtl] .textlink::after{transform-origin:100% 50%}
.textlink:hover::after{transform:scaleX(1)}

/* ---------- grain / loader ---------- */
.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.06;background:url("data:image/png;base64,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") repeat;background-size:64px 64px}
.loader{position:fixed;inset:0;z-index:100;background:var(--bg);display:none;align-items:flex-end;justify-content:space-between;gap:20px;padding:var(--gutter);color:var(--fg);clip-path:inset(0 0 0 0)}
html.is-loading .loader{display:flex}
.loader__brand{font:500 .7rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;display:flex;gap:14px;align-items:center;padding-bottom:.5em}
[dir=rtl] .loader__brand{font-family:var(--serif);font-size:1.3rem}
.loader__brand svg{width:30px;height:auto;color:var(--fg)}
.loader__num{font-family:var(--serif);font-weight:300;font-size:clamp(4rem,14vw,12rem);line-height:.8;font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* ---------- nav ---------- */
.nav{position:fixed;inset-inline:0;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--gutter);height:var(--navh);transition:transform .7s var(--ease-out),background .5s,border-color .5s;border-bottom:1px solid transparent}
.nav--solid{background:rgba(10,10,10,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.nav--hidden{transform:translateY(-100%)}
html.menu-open .nav{transform:none;background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav__brand{display:flex;align-items:center;gap:12px;font:500 .78rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;min-height:44px;color:var(--fg)}
[dir=rtl] .nav__brand{font-family:var(--serif);font-size:1.3rem}
.nav__brand svg{width:34px;height:auto;color:var(--fg)}
.nav__links{display:flex;gap:clamp(18px,2.4vw,40px)}
.nav__links a{font:500 .7rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:14px 0;position:relative;transition:color .4s}
[dir=rtl] .nav__links a{font-size:.9rem}
.nav__links a::after{content:"";position:absolute;inset-inline-start:0;bottom:8px;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease-out)}
[dir=rtl] .nav__links a::after{transform-origin:100% 50%}
.nav__links a:hover{color:var(--fg)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__end{display:flex;align-items:center;gap:clamp(12px,1.5vw,22px)}
.nav__lang{font:500 .82rem/1 var(--sans);color:var(--muted);padding:12px 6px;min-height:44px;display:inline-flex;align-items:center;transition:color .4s}
.nav__lang:hover{color:var(--fg)}
.nav__cta{min-height:42px;padding:0 1.4em}
.nav__burger{display:none;width:48px;height:48px;position:relative;margin-inline-end:-10px}
.nav__burger span{position:absolute;left:14px;right:14px;height:1px;background:var(--fg);top:50%;transition:transform .6s var(--ease-out)}
.nav__burger span:first-child{transform:translateY(-4px)}
.nav__burger span:last-child{transform:translateY(4px)}
html.menu-open .nav__burger span:first-child{transform:rotate(45deg)}
html.menu-open .nav__burger span:last-child{transform:rotate(-45deg)}
@media(max-width:900px){.nav__links,.nav__cta{display:none}.nav__burger{display:block}}
.menu{position:fixed;inset:0;z-index:48;background:var(--bg);display:flex;flex-direction:column;justify-content:center;gap:0;padding:calc(var(--navh) + 20px) var(--gutter) 32px;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease-inout);pointer-events:none;overflow-y:auto}
html.menu-open .menu{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu__link{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,8.5vw,4.4rem);line-height:1.15;padding:.12em 0;display:flex;align-items:baseline;gap:.6em;border-bottom:1px solid var(--line);transform:translateY(30px);opacity:0;transition:transform .9s var(--ease-out),opacity .9s var(--ease-out)}
[dir=rtl] .menu__link{font-weight:400;line-height:1.4}
.menu__link small{font:500 .66rem/1 var(--sans);letter-spacing:.2em;color:var(--gold)}
[dir=rtl] .menu__link small{font-size:.8rem}
html.menu-open .menu__link{transform:none;opacity:1;transition-delay:calc(var(--i) * .07s + .25s)}
.menu__foot{margin-top:auto;padding-top:28px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
.menu__foot .nav__lang{padding-inline:0}

/* ---------- reveal states (JS only, cleared by reduced motion) ---------- */
.mask{display:block;overflow:clip;padding-block:.12em;margin-block:-.12em}
.mask__in{display:block}
html.js .mask__in{transform:translateY(112%)}
html.js .fx{opacity:0}
html.js .split{visibility:hidden}
html.js .rv{clip-path:inset(0 0 100% 0)}
html.js .rv--x{clip-path:inset(0 100% 0 0)}
html.js [dir=rtl] .rv--x,[dir=rtl] html.js .rv--x{clip-path:inset(0 0 0 100%)}
html.js .rv img,html.js .rv video{transform:scale(1.15)}
html.js .rule{transform:scaleX(0)}
@media(prefers-reduced-motion:reduce){
  html.js .mask__in{transform:none}html.js .fx{opacity:1}html.js .split{visibility:visible}
  html.js .rv,html.js .rv--x{clip-path:none}html.js .rv img,html.js .rv video{transform:none}html.js .rule{transform:none}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
.rv{overflow:clip}
.sl{overflow:clip}

/* ---------- stacked panels ---------- */
.stack{position:relative}
.panel{position:sticky;top:0}
.panel--flow{position:relative}
@media(max-width:900px),(max-height:740px){.panel--statement{position:relative}}

/* ---------- hero ---------- */
.hero{height:100svh;min-height:600px;overflow:clip;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--navh) + 20px) var(--gutter) clamp(24px,4vh,48px);isolation:isolate;z-index:1;background:var(--bg)}
.hero__media{position:absolute;inset:0;z-index:-2;background:var(--bg2)}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.hero__media video{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}
.hero__media video.is-playing{opacity:1}
.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,10,10,.78) 0%,rgba(10,10,10,.4) 42%,rgba(10,10,10,.1) 75%,rgba(10,10,10,.05) 100%),linear-gradient(180deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.06) 28%,rgba(10,10,10,.4) 60%,rgba(10,10,10,.95) 100%)}
[dir=rtl] .hero__veil{background:linear-gradient(270deg,rgba(10,10,10,.78) 0%,rgba(10,10,10,.4) 42%,rgba(10,10,10,.1) 75%,rgba(10,10,10,.05) 100%),linear-gradient(180deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.06) 28%,rgba(10,10,10,.4) 60%,rgba(10,10,10,.95) 100%)}
.panel__dim{position:absolute;inset:0;z-index:5;background:var(--bg);opacity:0;pointer-events:none}
.hero__body{position:relative;z-index:1;max-width:1180px;display:grid;gap:clamp(16px,2.4vh,28px);margin-bottom:clamp(26px,6vh,72px)}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(2.7rem,8.4vw,9.2rem);line-height:.98;letter-spacing:-.02em;color:var(--fg-strong)}
.hero__title em{font-weight:300;color:var(--fg)}
[dir=rtl] .hero__title{font-size:clamp(2.4rem,7.2vw,7.6rem);line-height:1.28}
.hero__sub{font-family:var(--serif);font-size:clamp(1.15rem,1.55vw,1.5rem);line-height:1.45;max-width:46ch;color:var(--muted)}
[dir=rtl] .hero__sub{line-height:1.8}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 22px;font:500 .7rem/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
[dir=rtl] .hero__meta{font-size:.86rem}
.hero__foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:16px}
.scrollcue{display:inline-flex;align-items:center;gap:14px;font:500 .66rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);min-height:44px}
[dir=rtl] .scrollcue{font-size:.84rem}
.scrollcue i{display:block;width:1px;height:40px;background:var(--gold);animation:cue 2.4s var(--ease-inout) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:50% 0}48%{transform:scaleY(1);transform-origin:50% 0}52%{transform:scaleY(1);transform-origin:50% 100%}100%{transform:scaleY(0);transform-origin:50% 100%}}

/* ---------- statement ---------- */
.statement{background:var(--bg);display:flex;align-items:center;min-height:100svh;padding:clamp(80px,12vh,140px) 0;z-index:2;border-top:1px solid var(--line);isolation:isolate;transform-origin:50% 0}
.statement__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,110px);align-items:center}
.statement__title{margin:clamp(18px,3vh,32px) 0 clamp(22px,4vh,40px);font-size:clamp(2.8rem,7vw,7.4rem)}
.statement__body{font-family:var(--serif);font-size:clamp(1.35rem,2.05vw,2rem);line-height:1.38;color:var(--fg);max-width:34ch}
[dir=rtl] .statement__body{line-height:1.85;font-size:clamp(1.3rem,1.9vw,1.85rem)}
.statement__img{aspect-ratio:4/5;max-height:70svh;overflow:clip;background:var(--bg2);position:relative}
.statement__img img{width:100%;height:100%;object-fit:cover;object-position:64% 50%}
.statement__img figcaption{position:absolute;inset-inline-start:18px;bottom:16px;font:500 .64rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--fg);text-shadow:0 1px 10px rgba(0,0,0,.7)}
[dir=rtl] .statement__img figcaption{font-size:.8rem}
@media(max-width:900px){.statement{min-height:0;padding:clamp(60px,10vh,100px) 0}.statement__grid{grid-template-columns:1fr}.statement__img{aspect-ratio:4/3;max-height:52svh;order:-1}}

/* ---------- 03 the ledger (countries) ---------- */
.countries{background:var(--bg);z-index:3;padding:clamp(80px,12vh,140px) 0 clamp(60px,10vh,120px);border-top:1px solid var(--line)}
.ledger{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:clamp(28px,5vw,90px);align-items:start}
.ledger__visual{position:sticky;top:calc(var(--navh) + 24px);aspect-ratio:4/5;max-height:calc(100svh - var(--navh) - 48px);overflow:clip;background:var(--bg2)}
.ledger__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1.1s var(--ease-out),transform 1.7s var(--ease-out)}
.ledger__visual img.is-on{opacity:1;transform:scale(1)}
.ledger__visual figcaption{position:absolute;inset-inline-start:18px;bottom:16px;z-index:2;font:500 .66rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg);text-shadow:0 1px 10px rgba(0,0,0,.7);font-variant-numeric:tabular-nums}
.ledger__row{border-top:1px solid var(--line)}
.ledger__row:last-child{border-bottom:1px solid var(--line)}
.ledger__tab{width:100%;display:grid;grid-template-columns:3.4ch minmax(0,1fr) auto;align-items:start;gap:clamp(12px,2vw,28px);padding:clamp(18px,2.6vw,30px) 0;text-align:start;min-height:64px}
.ledger__idx{font:400 .72rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);font-variant-numeric:tabular-nums;padding-top:.7em}
.ledger__name{font-family:var(--serif);font-weight:300;font-size:clamp(2.3rem,7.2vw,8rem);line-height:.98;letter-spacing:-.02em;color:var(--fg-strong);opacity:.4;transition:opacity .7s var(--ease-out),transform 1s var(--ease-out);display:block;overflow-wrap:anywhere}
[dir=rtl] .ledger__name{font-size:clamp(2.2rem,6.4vw,7rem);line-height:1.3;font-weight:400}
.ledger__meta{font:400 .7rem/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:end;display:grid;gap:6px;justify-items:end;padding-top:.5em;max-width:24ch}
[dir=rtl] .ledger__meta{font-size:.84rem}
.ledger__meta b{font-family:var(--serif);font-weight:400;font-size:1.7rem;color:var(--fg);line-height:1}
.ledger__meta b small{font:400 .66rem/1 var(--sans);letter-spacing:.16em;color:var(--faint);margin-inline-start:.6em}
.ledger__tab:hover .ledger__name,.ledger__row.is-open .ledger__name{opacity:1}
@media(hover:hover){.ledger__tab:hover .ledger__name{transform:translateX(calc(var(--dir) * 14px))}}
.ledger__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .95s var(--ease-inout)}
.ledger__row.is-open .ledger__panel{grid-template-rows:1fr}
.ledger__panel-in{min-height:0;overflow:hidden}
.ledger__body{padding:0 0 clamp(28px,4vw,52px);padding-inline-start:calc(3.4ch + clamp(12px,2vw,28px))}
.ledger__role{font:500 .7rem/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
[dir=rtl] .ledger__role{font-size:.84rem}
.ledger__blurb{font-family:var(--serif);font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.4;color:var(--muted);max-width:52ch;margin-bottom:clamp(18px,3vw,32px)}
[dir=rtl] .ledger__blurb{line-height:1.8}
.ledger__mimg{display:none;aspect-ratio:16/10;overflow:clip;margin-bottom:22px;background:var(--bg2)}
.ledger__mimg img{width:100%;height:100%;object-fit:cover}
.ledger__links{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.ledger__more{margin-top:22px}
.ledger__row .prow,.ledger__row .ledger__note,.ledger__row .ledger__links,.ledger__row .ledger__more{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease-out),transform .9s var(--ease-out)}
.ledger__row.is-open .prow,.ledger__row.is-open .ledger__note,.ledger__row.is-open .ledger__links,.ledger__row.is-open .ledger__more{opacity:1;transform:none;transition-delay:calc(var(--i,0) * .09s + .3s)}
@media(max-width:900px){.ledger{grid-template-columns:1fr}.ledger__visual{display:none}.ledger__mimg{display:block}.ledger__body{padding-inline-start:0}.ledger__tab{grid-template-columns:2.6ch minmax(0,1fr)}.ledger__meta{grid-column:2;text-align:start;justify-items:start;padding-top:0;max-width:none}.ledger__idx{padding-top:.5em}}

/* project rows (ledger + country page) */
.plist{border-top:1px solid var(--line)}
.prow{display:grid;grid-template-columns:auto 3ch minmax(0,1fr) auto auto;align-items:center;gap:clamp(14px,2vw,30px);padding:14px 0;border-bottom:1px solid var(--line);position:relative;min-height:72px}
.prow::after{content:"";position:absolute;inset-inline-start:0;bottom:-1px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease-out)}
[dir=rtl] .prow::after{transform-origin:100% 50%}
.prow:hover::after{transform:scaleX(1)}
.prow__thumb{width:clamp(76px,8vw,124px);aspect-ratio:4/3;overflow:clip;background:var(--bg2)}
.prow__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease-out)}
.prow:hover .prow__thumb img{transform:scale(1.08)}
.prow__idx{font:400 .7rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);font-variant-numeric:tabular-nums}
.prow__name{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.5rem);line-height:1.1;transition:transform .7s var(--ease-out);color:var(--fg-strong)}
[dir=rtl] .prow__name{line-height:1.4}
.prow:hover .prow__name{transform:translateX(calc(var(--dir) * 8px))}
.prow__meta{font:400 .7rem/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:end;max-width:22ch}
[dir=rtl] .prow__meta{font-size:.84rem}
.prow__arrow{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:background .5s,color .5s,border-color .5s;flex:0 0 auto}
.prow:hover .prow__arrow{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.plist--big .prow{padding:22px 0}
.plist--big .prow__thumb{width:clamp(110px,16vw,240px)}
.plist--big .prow__name{font-size:clamp(1.9rem,3.6vw,3.8rem)}
@media(max-width:700px){.prow{grid-template-columns:auto minmax(0,1fr) auto;gap:14px}.prow__idx{display:none}.prow__thumb{grid-row:span 2}.prow__arrow{grid-row:span 2}.prow__name{grid-column:2;grid-row:1;align-self:end}.prow__meta{grid-column:2;grid-row:2;text-align:start;letter-spacing:.06em;max-width:none;align-self:start}}
.ledger__note{font-family:var(--serif);font-size:clamp(1.15rem,1.5vw,1.45rem);color:var(--fg)}

/* ---------- 04 rail ---------- */
.rail{position:relative;background:var(--bg);padding:clamp(80px,12vh,140px) 0 clamp(60px,8vh,90px);overflow:clip;border-top:1px solid var(--line)}
.rail .sec-head{margin-bottom:clamp(24px,4vh,48px)}
.rail__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.rail__count{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,7vw,7rem);line-height:.8;color:var(--faint);font-variant-numeric:tabular-nums}
.rail__track{display:flex;gap:clamp(14px,1.8vw,28px);padding-inline:var(--gutter);width:max-content;will-change:transform}
.poster{flex:0 0 auto;width:clamp(260px,29vw,440px);position:relative;display:block;overflow:clip;background:var(--bg2)}
.poster figure{aspect-ratio:3/4;overflow:clip}
.poster img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease-out)}
.poster:hover img{transform:scale(1.06)}
.poster__cap{position:absolute;inset:auto 0 0 0;padding:clamp(16px,2vw,28px);background:linear-gradient(180deg,rgba(10,10,10,0),rgba(10,10,10,.88));display:grid;gap:5px}
.poster__idx{font:400 .66rem/1 var(--sans);letter-spacing:.22em;color:var(--gold);font-variant-numeric:tabular-nums}
.poster__city{font:500 .66rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
[dir=rtl] .poster__city{font-size:.82rem}
.poster h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.55rem,2.2vw,2.4rem);line-height:1.05;color:var(--fg-strong)}
[dir=rtl] .poster h3{line-height:1.35}
.poster__dev{font:400 .8rem/1.4 var(--sans);color:var(--faint)}
.rail__bar{height:1px;background:var(--line);margin:clamp(22px,3vh,40px) var(--gutter) 0;position:relative}
.rail__bar i{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
[dir=rtl] .rail__bar i{transform-origin:100% 50%}
@media(min-width:900px) and (hover:hover) and (prefers-reduced-motion:no-preference){.rail{height:100svh;min-height:720px;display:flex;flex-direction:column;justify-content:center;padding:0}}
@media(max-width:899px),(hover:none),(prefers-reduced-motion:reduce){.rail__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;overscroll-behavior-x:contain}.rail__track::-webkit-scrollbar{display:none}.poster{scroll-snap-align:start;width:min(76vw,380px)}}

/* ---------- 05 services ---------- */
.services{padding:clamp(80px,12vh,140px) 0;border-top:1px solid var(--line)}
.services__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.62fr);gap:clamp(30px,6vw,110px);align-items:start}
.svc{border-top:1px solid var(--line)}
.svc__item{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:clamp(14px,2vw,30px);padding:clamp(22px,3vw,38px) 0;border-bottom:1px solid var(--line);transition:opacity .6s var(--ease-out)}
@media(hover:hover){.svc:hover .svc__item:not(:hover){opacity:.4}}
.svc__idx{font:400 .7rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);padding-top:.6em;font-variant-numeric:tabular-nums}
.svc__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3vw,3.1rem);line-height:1.05;margin-bottom:10px;color:var(--fg-strong);transition:transform .8s var(--ease-out)}
[dir=rtl] .svc__title{line-height:1.4}
.svc__item:hover .svc__title{transform:translateX(calc(var(--dir) * 10px))}
.svc__text{color:var(--muted);max-width:46ch;font-size:.98rem}
.svc__visual{position:sticky;top:calc(var(--navh) + 24px);aspect-ratio:4/5;max-height:calc(100svh - var(--navh) - 48px);overflow:clip;background:var(--bg2)}
.svc__visual img,.amen__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s var(--ease-out),transform 1.7s var(--ease-out)}
.svc__visual img.is-on,.amen__visual img.is-on{opacity:1;transform:none}
@media(max-width:900px){.services__grid{grid-template-columns:1fr}.svc__visual{display:none}}

/* ---------- 06 moments mosaic ---------- */
.moments{padding:clamp(80px,12vh,140px) 0;border-top:1px solid var(--line)}
.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,28px);align-items:start}
.mosaic__col{display:grid;gap:clamp(12px,2vw,28px)}
.mosaic__col:nth-child(2){padding-top:clamp(40px,10vw,160px)}
.mosaic__col:nth-child(3){padding-top:clamp(20px,5vw,80px)}
.tile{position:relative;overflow:clip;background:var(--bg2)}
.tile img{width:100%;height:100%;object-fit:cover}
.r-45{aspect-ratio:4/5}.r-11{aspect-ratio:1}.r-32{aspect-ratio:3/2}.r-1610{aspect-ratio:16/10}
.tile figcaption{position:absolute;inset-inline-start:14px;bottom:12px;font:500 .64rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--fg);text-shadow:0 1px 12px rgba(0,0,0,.7);display:flex;gap:10px;align-items:center;max-width:calc(100% - 28px)}
[dir=rtl] .tile figcaption{font-size:.8rem}
.tile figcaption::before{content:"";width:18px;height:1px;background:var(--gold);flex:0 0 auto}
@media(max-width:700px){.mosaic{grid-template-columns:1fr 1fr}.mosaic__col{display:contents}}

/* ---------- paper sections ---------- */
.paper{background:var(--paper);color:var(--paper-fg);--fg:#0A0A0A;--fg-strong:#000;--muted:rgba(10,10,10,.62);--faint:rgba(10,10,10,.45);--line:rgba(10,10,10,.14);--line-strong:rgba(10,10,10,.4);--gold:#8a6b2a;--gold-line:rgba(138,107,42,.5);--bg2:#e9e6df;color-scheme:light}
.paper ::selection{background:#0A0A0A;color:var(--paper)}
.paper .btn{border-color:rgba(10,10,10,.4);color:var(--paper-fg)}
.paper .btn:hover{background:var(--paper-fg);color:var(--paper);border-color:var(--paper-fg)}

/* 07 network */
.network{padding:clamp(80px,12vh,140px) 0 clamp(50px,7vh,90px)}
.journey{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin:clamp(30px,5vw,60px) 0 clamp(40px,6vw,80px)}
.journey__line{position:absolute;inset-inline:0;top:0;height:1px;background:rgba(10,10,10,.5);transform-origin:0 50%}
[dir=rtl] .journey__line{transform-origin:100% 50%}
.journey__step{padding:26px clamp(10px,1.4vw,24px) 0 0;padding-inline-end:clamp(10px,1.4vw,24px);position:relative;display:grid;gap:8px;align-content:start}
.journey__step::before{content:"";position:absolute;top:-4px;inset-inline-start:0;width:8px;height:8px;border-radius:50%;background:var(--paper-fg)}
.journey__label{font:500 .68rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
[dir=rtl] .journey__label{font-size:.86rem}
.journey__name{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.5vw,2.7rem);line-height:1;color:var(--paper-fg)}
.journey__tag{font:400 .82rem/1.5 var(--sans);color:var(--muted)}
.journey__close{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.6rem);line-height:1.3;max-width:34ch;color:var(--paper-fg)}
[dir=rtl] .journey__close{line-height:1.8}
@media(max-width:800px){.journey{grid-template-columns:1fr;gap:0;padding-inline-start:30px}.journey__line{inset-inline:auto;inset-inline-start:0;top:0;bottom:0;height:auto;width:1px;transform-origin:50% 0}.journey__step{padding:0 0 30px 0}.journey__step::before{inset-inline-start:-34px;top:.45em}}

/* 08 developers marquee */
.devs{padding:clamp(30px,5vh,60px) 0 clamp(70px,10vh,120px);overflow:clip;border-top:1px solid var(--line)}
.devs .eyebrow{justify-content:center;margin-bottom:clamp(20px,3vw,40px)}
.marquee{display:flex;overflow:clip;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;flex:0 0 auto;align-items:center;animation:mq 36s linear infinite}
.marquee__track span{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(2.4rem,6.5vw,6.6rem);line-height:1.15;padding-inline:clamp(18px,2.6vw,44px);display:inline-flex;align-items:center;gap:clamp(18px,2.6vw,44px);color:var(--paper-fg)}
.marquee__track span::after{content:"";width:7px;height:7px;background:var(--gold);border-radius:50%;flex:0 0 auto}
@keyframes mq{to{transform:translateX(-100%)}}
[dir=rtl] .marquee__track{animation-name:mq-rtl}
@keyframes mq-rtl{to{transform:translateX(100%)}}
.marquee:hover .marquee__track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.marquee__track{animation:none}.marquee{flex-wrap:wrap;white-space:normal;mask-image:none;-webkit-mask-image:none}}

/* ---------- 09 contact ---------- */
.contact{padding:clamp(90px,14vh,160px) 0;border-top:1px solid var(--line)}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:clamp(40px,7vw,120px);align-items:start}
.contact__title{font-family:var(--serif);font-weight:300;font-size:clamp(3.6rem,11vw,12rem);line-height:.92;letter-spacing:-.03em;margin:16px 0 26px;color:var(--fg-strong)}
[dir=rtl] .contact__title{line-height:1.2;font-size:clamp(3rem,9vw,9rem);font-weight:400}
.contact__list{margin-top:clamp(26px,4vw,44px);border-top:1px solid var(--line)}
.contact__list li{border-bottom:1px solid var(--line)}
.contact__list a,.contact__list address{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 0;min-height:64px}
.contact__list .lbl{font:500 .68rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:4px}
[dir=rtl] .contact__list .lbl{font-size:.84rem}
.contact__list .val{font-family:var(--serif);font-size:clamp(1.2rem,1.8vw,1.75rem);line-height:1.25;color:var(--fg);display:block}
.contact__list a .prow__arrow{border-color:var(--line)}
.contact__list a:hover .prow__arrow{background:var(--fg);color:var(--bg);border-color:var(--fg)}
@media(max-width:900px){.contact__grid{grid-template-columns:1fr}}

/* ---------- forms ---------- */
.lead-form{display:grid;gap:12px;position:relative}
.lead-form .form-head{margin-bottom:8px}
.field{position:relative;border-bottom:1px solid var(--line-strong);transition:border-color .4s}
.field:focus-within{border-color:var(--gold)}
.field label{display:block;font:500 .62rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);padding-top:12px}
[dir=rtl] .field label{font-size:.78rem}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;color:var(--fg);font:400 max(16px,1.02rem)/1.4 var(--sans);padding:8px 0 14px;outline:0;border-radius:0;-webkit-appearance:none;appearance:none}
.field input::placeholder,.field textarea::placeholder{color:var(--faint)}
.field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23C9A96A' stroke-width='1.2'/></svg>");background-repeat:no-repeat;background-position:right .2em center;padding-inline-end:1.6em;cursor:pointer;text-overflow:ellipsis}
[dir=rtl] .field select{background-position:left .2em center}
.field select option{background:#141414;color:#F5F3EE}
.paper .field select option{background:#fff;color:#0A0A0A}
.field textarea{min-height:84px;resize:vertical}
.field input[type=tel]{direction:ltr;text-align:left;unicode-bidi:isolate}
.field--row{display:grid;grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:16px}
.hp{position:absolute;inset-inline-start:-9999px;top:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.lead-form .btn{justify-self:start;margin-top:12px;min-height:54px;padding-inline:2.2em}
.lead-form .msg{font-family:var(--serif);font-size:1.15rem;min-height:1.5em;line-height:1.35}
.lead-form .msg.err{color:#e2a7a7}
.lead-form .msg.ok{color:var(--gold)}
.lead-form .note{font-size:.76rem;color:var(--faint);max-width:44ch;line-height:1.55}
.lead-form .thanks{display:none}
.lead-form.is-done .field,.lead-form.is-done .field--row,.lead-form.is-done .btn,.lead-form.is-done .note,.lead-form.is-done .msg{display:none}
.lead-form.is-done .thanks{display:grid;gap:14px;padding:26px 0;border-top:1px solid var(--gold);border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(1.4rem,2vw,1.9rem);line-height:1.3;color:var(--fg)}
.lead-form .thanks .eyebrow{margin-bottom:4px}

/* ---------- drawer ---------- */
.drawer{position:fixed;inset:0;z-index:70;pointer-events:none;visibility:hidden;transition:visibility 0s .95s}
.drawer.is-open{pointer-events:auto;visibility:visible;transition-delay:0s}
.drawer__backdrop{position:absolute;inset:0;background:rgba(10,10,10,.62);opacity:0;transition:opacity .8s}
.drawer.is-open .drawer__backdrop{opacity:1}
.drawer__panel{position:absolute;top:0;bottom:0;inset-inline-end:0;width:min(540px,100%);background:var(--bg2);border-inline-start:1px solid var(--line);padding:clamp(28px,4vw,52px);padding-top:clamp(72px,8vh,96px);overflow-y:auto;overscroll-behavior:contain;transform:translateX(calc(var(--dir) * 100%));transition:transform .9s var(--ease-inout);display:grid;align-content:start;gap:16px}
.drawer.is-open .drawer__panel{transform:none}
.drawer__close{position:absolute;top:18px;inset-inline-end:18px;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .5s,color .5s}
.drawer__close:hover{background:var(--fg);color:var(--bg)}
.drawer__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.05;color:var(--fg-strong)}
[dir=rtl] .drawer__title{line-height:1.4}
.drawer__text{color:var(--muted);max-width:40ch;font-family:var(--serif);font-size:1.15rem;line-height:1.4}
.drawer__alt{margin-top:10px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;font-size:.85rem;color:var(--muted)}
@media(max-width:640px){.drawer__panel{inset-inline:0;top:auto;max-height:94svh;width:100%;border-inline-start:0;border-top:1px solid var(--line);transform:translateY(100%);padding-top:64px}}

/* ---------- footer as index ---------- */
.footer{border-top:1px solid var(--line);padding:clamp(60px,9vh,110px) 0 40px;background:var(--bg)}
.footer__top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(36px,6vw,70px)}
.footer__mark{display:flex;align-items:center;gap:18px}
.footer__mark svg{width:56px;height:auto;color:var(--fg)}
.footer__mark b{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.1;display:block;color:var(--fg-strong)}
.footer__mark span{font:500 .66rem/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
[dir=rtl] .footer__mark span{font-size:.82rem}
.footer__index{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,4vw,60px);border-top:1px solid var(--line);padding-top:32px}
.footer__col h4{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,1.8vw,1.8rem);margin-bottom:4px;color:var(--fg-strong);display:flex;gap:.8em;align-items:baseline}
.footer__col h4 i{font:400 .64rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);font-style:normal}
.footer__col .role{font:500 .66rem/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
[dir=rtl] .footer__col .role{font-size:.82rem}
.footer__col li a{display:block;padding:9px 0;color:var(--muted);font-size:.98rem;line-height:1.35;transition:color .3s;min-height:44px}
.footer__col li a small{display:block;margin-top:3px;font:400 .62rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
[dir=rtl] .footer__col li a small{font-size:.78rem}
.footer__col li a:hover{color:var(--fg)}
.footer__col p{color:var(--muted);font-size:.9rem;line-height:1.6}
.footer__bottom{margin-top:clamp(40px,6vw,80px);border-top:1px solid var(--line);padding-top:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 40px;align-items:start;font-size:.8rem;color:var(--faint)}
.footer__nav{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:center}
.footer__nav a{padding:8px 0;color:var(--muted);font:500 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;transition:color .3s}
[dir=rtl] .footer__nav a{font-size:.84rem}
.footer__nav a:hover{color:var(--fg)}
.footer__line{margin-top:14px;color:var(--muted)}
.footer__note{max-width:72ch;line-height:1.65;grid-column:1/-1}
@media(max-width:900px){.footer__index{grid-template-columns:1fr 1fr}.footer__bottom{grid-template-columns:1fr}}
@media(max-width:520px){.footer__index{grid-template-columns:1fr}}

/* ---------- side index ---------- */
.sideindex{position:fixed;inset-inline-end:clamp(12px,1.6vw,26px);top:50%;transform:translateY(-50%);z-index:45;display:grid;gap:4px}
.sideindex a{display:flex;align-items:center;gap:10px;justify-content:flex-end;font:400 .6rem/1 var(--sans);letter-spacing:.16em;color:var(--faint);padding:5px 0;transition:color .4s;font-variant-numeric:tabular-nums;min-height:22px}
.sideindex a::after{content:"";width:14px;height:1px;background:currentColor;transition:width .5s var(--ease-out)}
.sideindex a.is-active{color:var(--gold)}
.sideindex a.is-active::after{width:28px}
.sideindex .lbl{opacity:0;transform:translateX(calc(var(--dir) * 6px));transition:opacity .4s,transform .4s;text-transform:uppercase;white-space:nowrap}
[dir=rtl] .sideindex .lbl{font-size:.74rem}
.sideindex a:hover .lbl,.sideindex a.is-active .lbl{opacity:1;transform:none}
@media(max-width:1180px),(hover:none){.sideindex{display:none}}

/* ---------- project page ---------- */
.phero{position:relative;padding-bottom:clamp(24px,4vh,48px)}
.phero .hero__body{max-width:1240px}
.phero .hero__title{font-size:clamp(2.5rem,7.4vw,8rem)}
[dir=rtl] .phero .hero__title{font-size:clamp(2.2rem,6.4vw,6.6rem)}
.hero__foot .accent-rule{position:absolute;top:-1px;inset-inline-start:0;height:1px;width:100%;background:var(--accent,var(--gold));opacity:.7;transform-origin:0 50%}
[dir=rtl] .hero__foot .accent-rule{transform-origin:100% 50%}
.psec{padding:clamp(70px,10vh,130px) 0;border-top:1px solid var(--line)}
.psec .sec-head{margin-bottom:clamp(30px,5vw,64px)}
.pstats{padding:clamp(40px,6vh,80px) 0}
.facts{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.facts li{background:var(--bg);padding:clamp(20px,2.4vw,34px) clamp(14px,1.6vw,24px) clamp(20px,2.4vw,34px) 0;padding-inline-end:clamp(14px,1.6vw,24px);padding-inline-start:0;display:grid;gap:8px;align-content:start}
.facts li:not(:first-child){padding-inline-start:clamp(14px,1.6vw,24px)}
.facts b{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,2.8vw,3.1rem);line-height:1;color:var(--accent,var(--fg-strong));font-variant-numeric:tabular-nums}
.facts span{font-size:.8rem;color:var(--muted);line-height:1.45}
@media(max-width:900px){.facts{grid-template-columns:repeat(3,1fr)}.facts li{padding-inline:16px 10px}.facts li:not(:first-child){padding-inline-start:16px}}
@media(max-width:520px){.facts{grid-template-columns:1fr 1fr}}
.pabout__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(30px,6vw,110px);align-items:center}
.pabout__text .body{font-family:var(--serif);font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.45;color:var(--fg);max-width:48ch}
[dir=rtl] .pabout__text .body{line-height:1.85}
.points{margin-top:clamp(22px,3vw,36px);border-top:1px solid var(--line)}
.points li{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(1.1rem,1.4vw,1.35rem);line-height:1.35;color:var(--fg)}
[dir=rtl] .points li{line-height:1.7}
.points li span,.pins li span,.extra__list li span,.benefits li span{font:400 .68rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);padding-top:.5em;font-variant-numeric:tabular-nums}
.pabout__img{aspect-ratio:4/5;max-height:80svh;overflow:clip;background:var(--bg2)}
.pabout__img img,.ploc__img img,.extra__img img,.gal figure img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.pabout__grid{grid-template-columns:1fr}.pabout__img{aspect-ratio:4/3;max-height:60svh}}
.gal{display:grid;gap:clamp(12px,2vw,28px)}
.gal figure{overflow:clip;background:var(--bg2)}
.gal__full{aspect-ratio:16/9}
.gal__pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,28px)}
.gal__pair figure{aspect-ratio:4/3}
.gal__pair--tall figure{aspect-ratio:4/5}
.gal__wide{width:min(100%,72%);margin-inline-start:auto;aspect-ratio:3/2}
@media(max-width:640px){.gal__pair{grid-template-columns:1fr}.gal__wide{width:100%}.gal__full{aspect-ratio:4/3}}
.ploc__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,6vw,100px);align-items:center}
.ploc__img{aspect-ratio:4/3;overflow:clip;background:var(--bg2)}
.pins{border-top:1px solid var(--line);margin-top:26px}
.pins li{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--fg);line-height:1.5}
@media(max-width:900px){.ploc__grid{grid-template-columns:1fr}}
.pamen__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);gap:clamp(30px,6vw,100px);align-items:start}
.amen{border-top:1px solid var(--line)}
.amen__item{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:clamp(12px,2vw,28px);padding:18px 0;border-bottom:1px solid var(--line);align-items:center;transition:opacity .6s var(--ease-out)}
@media(hover:hover){.amen:hover .amen__item:not(:hover){opacity:.45}}
.amen__thumb{display:none;width:64px;aspect-ratio:1;overflow:clip;background:var(--bg2)}
.amen__thumb img{width:100%;height:100%;object-fit:cover}
.amen__idx{font:400 .68rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);font-variant-numeric:tabular-nums}
.amen__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2vw,2rem);line-height:1.1;margin-bottom:4px;color:var(--fg-strong);transition:transform .7s var(--ease-out)}
[dir=rtl] .amen__title{line-height:1.45}
.amen__item:hover .amen__title{transform:translateX(calc(var(--dir) * 8px))}
.amen__text{font-size:.9rem;color:var(--muted);line-height:1.5}
.amen__visual{position:sticky;top:calc(var(--navh) + 24px);aspect-ratio:4/5;max-height:calc(100svh - var(--navh) - 48px);overflow:clip;background:var(--bg2)}
@media(max-width:900px){.pamen__grid{grid-template-columns:1fr}.amen__visual{display:none}.amen__thumb{display:block}.amen__item{grid-template-columns:auto minmax(0,1fr)}.amen__idx{display:none}}
.pay__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line);margin:clamp(26px,4vw,48px) 0}
.pay__items li{background:var(--bg);padding:24px 20px 24px 0;padding-inline-end:20px;padding-inline-start:0;display:grid;gap:6px}
.pay__items li:not(:first-child){padding-inline-start:20px}
.pay__items b{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1;color:var(--fg-strong)}
.pay__items span{color:var(--muted);font-size:.85rem}
.units{margin:clamp(26px,4vw,48px) 0;border-top:1px solid var(--line);max-width:760px}
.units li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.units .lbl{font:500 .72rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
[dir=rtl] .units .lbl{font-size:.88rem}
.units .dots{flex:1;border-bottom:1px dotted var(--faint);transform:translateY(-.35em)}
.units .prc{font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.7rem);color:var(--fg-strong);white-space:nowrap}
.pay__text{font-family:var(--serif);font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.45;max-width:56ch;color:var(--fg)}
[dir=rtl] .pay__text{line-height:1.85}
.pay__note{color:var(--muted);max-width:56ch;margin-bottom:22px;font-size:.95rem}
.extra__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line);margin-top:clamp(26px,4vw,48px)}
.extra__stats li{background:var(--bg);padding:30px 24px 30px 0;padding-inline-end:24px;padding-inline-start:0;display:grid;gap:8px;align-content:start}
.extra__stats li:not(:first-child){padding-inline-start:24px}
.extra__stats b{font-family:var(--serif);font-weight:300;font-size:clamp(2.8rem,6vw,6rem);line-height:.95;color:var(--fg-strong)}
.extra__stats span{color:var(--muted);font-size:.92rem;line-height:1.5;max-width:30ch}
.extra__list{margin-top:clamp(22px,3vw,36px);border-top:1px solid var(--line)}
.extra__list li{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(1.1rem,1.4vw,1.35rem);line-height:1.35;color:var(--fg)}
[dir=rtl] .extra__list li{line-height:1.7}
.extra__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(30px,6vw,100px);align-items:center}
.extra__img{aspect-ratio:4/3;overflow:clip;background:var(--bg2)}
.extra__text{font-family:var(--serif);font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.45;color:var(--fg);max-width:48ch}
[dir=rtl] .extra__text{line-height:1.85}
.extra__images{display:grid;gap:clamp(12px,2vw,28px);margin-top:clamp(26px,4vw,48px)}
@media(max-width:900px){.extra__grid{grid-template-columns:1fr}}
.preg__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:clamp(40px,7vw,120px);align-items:start}
.preg__text .lead{color:var(--fg)}
.benefits{margin-top:26px;border-top:1px solid var(--line)}
.benefits li{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(1.1rem,1.4vw,1.35rem);color:var(--fg)}
@media(max-width:900px){.preg__grid{grid-template-columns:1fr}}
.pnext{display:block;position:relative;height:min(78svh,760px);min-height:440px;overflow:clip;border-top:1px solid var(--line);background:var(--bg2)}
.pnext figure{position:absolute;inset:-8% 0}
.pnext img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.8s var(--ease-out);opacity:.7}
.pnext:hover img{transform:scale(1.08)}
.pnext__body{position:absolute;inset:auto 0 0 0;padding:clamp(28px,5vw,64px) var(--gutter);background:linear-gradient(180deg,rgba(10,10,10,0),rgba(10,10,10,.9));display:grid;gap:10px}
.pnext__title{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,6.5vw,6.8rem);line-height:1;color:var(--fg-strong);display:flex;align-items:center;gap:.35em;flex-wrap:wrap}
[dir=rtl] .pnext__title{line-height:1.35;font-weight:400}
.pnext__title .ico{width:.55em;height:.55em;transition:transform .7s var(--ease-out)}
.pnext:hover .pnext__title .ico{transform:translateX(calc(var(--dir) * 10px))}
[dir=rtl] .pnext:hover .pnext__title .ico{transform:scaleX(-1) translateX(10px)}
.pnext__meta{font:500 .7rem/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
[dir=rtl] .pnext__meta{font-size:.86rem}
.pdisc{padding:40px 0 10px;font-size:.78rem;color:var(--faint);max-width:82ch;line-height:1.65}
.fab{position:fixed;inset-inline:16px;bottom:16px;z-index:46;display:none;gap:10px;transition:transform .6s var(--ease-out)}
.fab .btn{flex:1;min-height:54px;background:var(--fg);color:var(--bg);border-color:var(--fg)}
.fab__wa{width:54px;height:54px;border:1px solid var(--line-strong);border-radius:999px;display:grid;place-items:center;background:rgba(10,10,10,.85);color:var(--fg);flex:0 0 auto}
@media(max-width:900px){.fab{display:flex}body.has-fab .footer{padding-bottom:110px}}

/* ---------- country page ---------- */
.chero{position:relative;min-height:74svh;display:flex;align-items:flex-end;padding:calc(var(--navh) + 60px) 0 clamp(40px,6vh,70px);overflow:clip;isolation:isolate}
.chero__media{position:absolute;inset:0;z-index:-2;background:var(--bg2)}
.chero__media img{width:100%;height:100%;object-fit:cover;opacity:.55}
.chero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,10,10,.6),rgba(10,10,10,.2) 40%,rgba(10,10,10,.92))}
.chero__title{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,10vw,10rem);line-height:.95;letter-spacing:-.02em;margin:14px 0 18px;color:var(--fg-strong)}
[dir=rtl] .chero__title{line-height:1.25;font-weight:400;font-size:clamp(2.8rem,8.5vw,8.5rem)}
.chero__cities{font:500 .72rem/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
[dir=rtl] .chero__cities{font-size:.88rem}
.chero__grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 60px;align-items:end}
.cbody{padding:clamp(50px,8vh,100px) 0}
@media(max-width:900px){.chero__grid{grid-template-columns:1fr}}

/* ---------- 404 ---------- */
.nf{min-height:100svh;display:flex;align-items:center;padding:calc(var(--navh) + 40px) 0 80px}
.nf__code{font-family:var(--serif);font-weight:300;font-size:clamp(6rem,22vw,20rem);line-height:.85;color:var(--faint);letter-spacing:-.04em}
.nf__title{font-family:var(--serif);font-size:clamp(1.8rem,4vw,3.6rem);margin:20px 0 30px;color:var(--fg-strong)}
