/* Easyfid — colours from their own signage: the ochre frame of the tariff cards, the terracotta rule under the name,
   the white paper, and the ink of the classeurs. */
:root{
  --papier:#f4efe4; --blanc:#fbf8f1; --encre:#1b1f2a; --graphite:#4a4f5c; --ocre:#d8a23b; --brique:#c4553a; --vert:#2f5a45;
  --d:'Boska', Georgia, serif; --b:'Author', 'Helvetica Neue', Arial, sans-serif;
  --x:20px; --vh:100vh;
}
@supports (height:100svh){:root{--vh:100svh}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:smooth}
body{margin:0;overflow-x:clip;background:var(--papier);color:var(--encre);font-family:var(--b);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:64px}
body::after{content:"";position:fixed;inset:-50%;background:url(../img/grain.png);opacity:.06;mix-blend-mode:multiply;pointer-events:none;z-index:80}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,figure,blockquote,ul,ol,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
em{font-style:italic;font-family:var(--d)}
.eyebrow{font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brique)}

.bar{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:14px var(--x);background:linear-gradient(#f4efe4f2,#f4efe400)}
.logo{text-decoration:none;font-family:var(--b);font-weight:600;letter-spacing:.14em;font-size:15px;border-bottom:2px solid var(--brique);padding-bottom:3px}
.logo span{font-weight:400;color:var(--graphite);letter-spacing:.1em;font-size:12px}
.bar-cta{font-weight:600;font-size:14px;text-decoration:none;border-bottom:1px solid currentColor}

.btn{display:inline-flex;align-items:center;gap:14px;min-height:54px;padding:0 22px;font-family:var(--b);font-weight:600;font-size:15.5px;text-decoration:none;transition:background .3s,color .3s}
.btn::after{content:"→";font-weight:400;transition:transform .4s cubic-bezier(.83,0,.17,1)}
.btn:hover::after{transform:translateX(6px)}
.btn-ink{background:var(--encre);color:var(--blanc)}
.btn-ink:hover{background:var(--vert)}
.btn-line{box-shadow:inset 0 0 0 1.5px var(--encre)}
.btn-line::after{content:"↓"}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}

[data-r]{--t:1}[data-o]{--u:0}
.scene{position:relative}
.stage{position:relative;min-height:var(--vh);overflow:hidden}
.motion .scene{height:var(--h)}
.motion .stage{position:sticky;top:0;height:var(--vh);min-height:0}

/* 1 · open: the frame of the bookshelf widens until it fills the screen */
.s-open{--h:270vh}
.open-frame{position:absolute;inset:0;clip-path:inset(calc(19% - 19%*var(--t)) calc(24% - 24%*var(--t)) calc(36% - 36%*var(--t)) calc(24% - 24%*var(--t)));will-change:clip-path}
.open-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(calc(1.25 - .25*var(--t)))}
.open-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#1b1f2a00 30%,#1b1f2ae6 88%);opacity:var(--t)}
.js .open-frame{--t:0}
.open-a{position:absolute;left:var(--x);right:var(--x);bottom:calc(36% - 118px);opacity:calc(1 - var(--u));transform:translateY(calc(var(--u)*-40px))}
.open-a h1{font-family:var(--d);font-weight:500;font-size:clamp(54px,15vw,170px);line-height:.92;letter-spacing:-.02em;margin-top:12px}
.open-a h1 em{color:var(--brique)}
.open-b{position:absolute;left:var(--x);right:var(--x);bottom:92px;color:var(--blanc);opacity:var(--t);transform:translateY(calc((1 - var(--t))*50px))}
.js .open-b{--t:0}
.open-b h2{font-family:var(--d);font-weight:500;font-size:clamp(36px,9.6vw,92px);line-height:1;letter-spacing:-.015em}
.open-b h2 em{color:var(--ocre)}
.open-b p{margin-top:16px;max-width:30em;color:#e8e3d8}
.open-b .btn-ink{background:var(--ocre);color:var(--encre)}
.open-b .btn-line{box-shadow:inset 0 0 0 1.5px #fbf8f1aa;color:var(--blanc)}
.rule-y{position:absolute;left:0;top:0;width:3px;height:100%;background:var(--ocre);transform:scaleY(var(--t));transform-origin:50% 0}

/* 2 · ledger */
.s-ledger{--h:560vh;--n:5}
.s-ledger .stage{background:var(--blanc);background-image:repeating-linear-gradient(180deg,transparent 0 35px,#1b1f2a12 35px 36px)}
.ledger-head{position:absolute;z-index:4;top:62px;left:var(--x);right:var(--x)}
.ledger-tabs{display:flex;gap:14px;margin-top:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite);overflow:hidden}
.ledger-bar{display:block;height:2px;margin-top:10px;background:var(--brique);transform:scaleX(var(--t));transform-origin:0 50%}
.track{display:flex;height:100%;width:calc(var(--n)*100vw);transform:translateX(calc(var(--k,0)*(var(--n) - 1)*-100vw));will-change:transform}
.col{flex:0 0 100vw;height:100%;padding:150px var(--x) 90px;display:flex;flex-direction:column;border-right:1px solid #1b1f2a1f}
.col-no{font-family:var(--d);font-style:italic;font-size:22px;color:var(--ocre)}
.col h2{font-family:var(--d);font-weight:700;font-size:clamp(50px,13.5vw,130px);line-height:.92;letter-spacing:-.025em;margin-top:6px}
.col h2 em{font-weight:500;color:var(--brique);font-size:.66em;letter-spacing:-.01em}
.col-list{margin-top:26px;border-top:1.5px solid var(--encre)}
.col-list li{padding:11px 0;border-bottom:1px solid #1b1f2a26;font-size:17px;display:flex;justify-content:space-between}
.col-list li::after{content:"✓";color:var(--vert)}
.col-note{margin-top:auto;padding-top:18px;font-size:14.5px;color:var(--graphite);border-left:3px solid var(--ocre);padding-left:12px;max-width:26em}
.col-lede{margin-top:22px;font-family:var(--d);font-size:clamp(23px,6vw,40px);line-height:1.15;max-width:18em}
.col-img{margin-top:24px;flex:1;min-height:0;overflow:hidden}
.col-img img{width:100%;height:100%;object-fit:cover}
.col-q{margin-top:auto;font-family:var(--d);font-style:italic;font-size:clamp(28px,7.4vw,56px);line-height:1.05;color:var(--vert)}
.col-q cite{display:block;margin-top:12px;font-family:var(--b);font-style:normal;font-size:13px;letter-spacing:.06em;color:var(--graphite)}

/* 3 · team */
.team{display:grid;background:var(--encre);color:var(--blanc)}
.team-img{height:62vh;overflow:hidden}
.team-img img{width:100%;height:120%;object-fit:cover;object-position:50% 40%;transform:translateY(calc(var(--f,0)*-14%))}
.team-txt{padding:52px var(--x) 70px}
.team-txt .eyebrow{color:var(--ocre)}
.team h2{font-family:var(--d);font-weight:500;font-size:clamp(38px,10vw,88px);line-height:1;letter-spacing:-.015em;margin:12px 0 20px}
.team h2 em{color:var(--ocre)}
.team p{color:#d9d5cc;max-width:32em}

/* 4 · say */
.s-say{--h:300vh}
.s-say .stage{background:var(--papier)}
.say-k{position:absolute;top:84px;left:var(--x)}
.say{position:absolute;left:var(--x);right:var(--x);top:50%;transform:translateY(-50%)}
.say blockquote{font-family:var(--d);font-weight:500;font-size:clamp(32px,8.6vw,84px);line-height:1.04;letter-spacing:-.015em;max-width:17em}
.say figcaption{margin-top:20px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite)}
.say figcaption::before{content:"★★★★★  ";color:var(--ocre);letter-spacing:.1em}
.say1{opacity:calc(1 - var(--u))}
.say2{opacity:calc(var(--t) - var(--u))}
.say3{opacity:var(--t)}
.js .say2,.js .say3{--t:0}
.say2 blockquote{color:var(--brique)}
.say3 blockquote{color:var(--vert)}
html:not(.motion) .say{position:relative;top:auto;transform:none;left:auto;right:auto;opacity:1;padding:40px var(--x)}
html:not(.motion) .say-k{position:relative;top:auto;padding:90px var(--x) 0;display:block}
html:not(.motion) .say2,html:not(.motion) .say3{--t:1}

/* 5 · office */
.office{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;background:var(--papier)}
.office figure{overflow:hidden}
.office img{width:100%;height:100%;object-fit:cover}
.o1{grid-column:1/3;aspect-ratio:4/3}
.o2{aspect-ratio:3/4}
.o3{aspect-ratio:3/4}

/* 6 · contact */
.contact{background:var(--blanc);border-top:6px solid var(--ocre)}
.c-in{padding:80px var(--x)}
.contact h2{font-family:var(--d);font-weight:500;font-size:clamp(46px,12.4vw,120px);line-height:.95;letter-spacing:-.02em;margin-top:12px}
.contact h2 em{color:var(--brique)}
.c-lede{margin-top:18px;max-width:32em;color:var(--graphite)}
.c-facts{margin-top:44px;display:grid;gap:0;border-top:1.5px solid var(--encre)}
.c-facts div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid #1b1f2a26}
.c-facts dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--graphite);padding-top:3px}
.c-facts dd{font-weight:600}

.foot{padding:34px var(--x) 28px;background:var(--encre);color:#bdb8ad;font-size:14px;display:grid;gap:6px}
.foot a{color:var(--blanc);text-decoration:none}
.foot-logo{color:var(--blanc);font-weight:600;letter-spacing:.12em}
.foot-logo span{font-weight:400}
.foot-src{font-size:12px}
.foot-prop{font-size:12px;margin-top:10px;font-style:italic;color:#8d8a84}

.dock{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-template-columns:1fr 1.3fr 1fr;background:#fbf8f1f2;backdrop-filter:blur(12px);border-top:1px solid #1b1f2a22;padding-bottom:env(safe-area-inset-bottom)}
.dock a{display:flex;align-items:center;justify-content:center;min-height:58px;text-decoration:none;font-weight:600;font-size:14px}
.dock .dock-main{background:var(--encre);color:var(--blanc)}

html:not(.motion) .track{flex-direction:column;width:auto;transform:none}
html:not(.motion) .col{flex:none;width:100%;height:auto;padding:60px var(--x)}
html:not(.motion) .col-img{height:50vh;flex:none}
html:not(.motion) .open-b{position:relative;left:auto;right:auto;bottom:auto;padding:30px var(--x) 60px;color:var(--encre)}
html:not(.motion) .open-frame{position:relative;height:70vh}

@media (min-width:900px){
  :root{--x:60px}
  body{padding-bottom:0}
  .dock{display:none}
  .bar{padding:22px var(--x)}
  .open-frame{clip-path:inset(calc(16% - 16%*var(--t)) calc(34% - 34%*var(--t)) calc(16% - 16%*var(--t)) calc(34% - 34%*var(--t)))}
  .open-a{bottom:auto;top:50%;transform:translateY(calc(-50% - var(--u)*40px));display:grid;grid-template-columns:1fr;pointer-events:none}
  .open-a h1{font-size:clamp(80px,9vw,160px);display:flex;justify-content:space-between;width:100%}
  .open-a .eyebrow{position:absolute;top:-30vh}
  .open-b{bottom:80px;max-width:1000px}
  .col{padding:170px var(--x) 80px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr auto;column-gap:60px}
  .col-no,.col h2{grid-column:1}
  .col-list,.col-lede,.col-note,.col-q{grid-column:2;grid-row:2/4}
  .col-note{grid-row:4;margin-top:20px}
  .col-img{grid-column:1;grid-row:3/5;margin-top:30px;max-height:52vh}
  .col-q{align-self:end}
  .team{grid-template-columns:1.3fr 1fr;align-items:center}
  .team-img{height:88vh}
  .team-txt{padding:80px var(--x)}
  .office{grid-template-columns:2fr 1fr 1fr;padding:12px;gap:12px}
  .o1{grid-column:auto;aspect-ratio:auto;height:70vh}
  .o2,.o3{aspect-ratio:auto;height:70vh}
  .c-in{padding:130px var(--x);display:grid;grid-template-columns:1.2fr 1fr;column-gap:80px}
  .c-in .eyebrow,.c-in h2,.c-in .c-lede,.c-in .cta-row{grid-column:1}
  .c-facts{grid-column:2;grid-row:1/5;margin-top:0;align-self:end}
  .foot{grid-template-columns:auto 1fr;gap:6px 30px;align-items:end}
}
/* hero tuning */
.open-frame{clip-path:inset(calc(13% - 13%*var(--t)) calc(20% - 20%*var(--t)) calc(44% - 44%*var(--t)) calc(20% - 20%*var(--t)))}
.open-frame::after{background:linear-gradient(180deg,#1b1f2a40 0%,#1b1f2a8c 35%,#1b1f2af2 72%)}
.open-a{bottom:120px}
.open-a .eyebrow{margin-bottom:4px}
@media (min-width:900px){
  .open-frame{clip-path:inset(calc(14% - 14%*var(--t)) calc(36% - 36%*var(--t)) calc(14% - 14%*var(--t)) calc(36% - 36%*var(--t)))}
  .open-frame::after{background:linear-gradient(90deg,#1b1f2af0 0%,#1b1f2acc 45%,#1b1f2a33 80%)}
  .open-a{bottom:auto}
}
