/* Renew your mind — site styles. Palette and type follow the Belief Journal. */
@font-face{font-family:'Playfair Display';src:url(../assets/fonts/PlayfairDisplay-Regular.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(../assets/fonts/PlayfairDisplay-Medium.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(../assets/fonts/PlayfairDisplay-Italic.ttf) format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url(../assets/fonts/SourceSans3-Regular.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url(../assets/fonts/SourceSans3-Medium.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url(../assets/fonts/SourceSans3-SemiBold.ttf) format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Jost';src:url(../assets/fonts/Jost-Light.ttf) format('truetype');font-weight:300;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url(../assets/fonts/BodoniModa-Italic.ttf) format('truetype');font-style:italic;font-display:swap}

:root{
  --ivory:#F7F4EE; --paper:#EFEAE1; --sand:#E6DFD3; --ink:#0E0E0E; --text:#1d1a17; --graphite:#58534C; --mute:#7d766d;
  --red:#C8372D; --wine:#8A2E37; --line:rgba(14,14,14,.13); --line-d:rgba(244,241,234,.16); --w:#F4F1EA;
  --serif:'Playfair Display',Georgia,serif; --sans:'Source Sans 3',system-ui,sans-serif;
  --pad:clamp(20px,5vw,72px); --max:1240px; --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--ivory);color:var(--text);font:400 18px/1.62 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--red);color:#fff}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

/* type */
.h-xl{font:400 clamp(44px,6.4vw,92px)/1.02 var(--serif);letter-spacing:-.02em}
.h-l{font:400 clamp(36px,4.6vw,64px)/1.06 var(--serif);letter-spacing:-.015em}
.h-m{font:400 clamp(28px,3vw,40px)/1.15 var(--serif);letter-spacing:-.01em}
.h-s{font:400 24px/1.25 var(--serif)}
em,.it{font-style:italic}
.lede{font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--graphite);max-width:34em}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:italic 400 18px/1.3 var(--serif);color:var(--graphite)}
.eyebrow:before{content:"";width:9px;height:9px;background:var(--red);flex:none}
.eyebrow .n{font-style:normal}
.seal{display:inline-block;width:10px;height:10px;background:var(--red)}
.small{font-size:15px;color:var(--mute)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;padding:0 30px;border-radius:999px;font:600 15px/1 var(--sans);letter-spacing:.02em;transition:transform .5s var(--ease),background .3s,color .3s,box-shadow .5s var(--ease);white-space:nowrap}
.btn-ink{background:var(--ink);color:var(--w)}
.btn-ink:hover{background:#2a2622;transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.btn-line{border:1px solid rgba(14,14,14,.35);color:var(--ink)}
.btn-line:hover{border-color:var(--ink);background:rgba(14,14,14,.04)}
.btn-ivory{background:var(--w);color:var(--ink)}
.btn-ivory:hover{transform:translateY(-2px)}
.btn .ar{transition:transform .5s var(--ease)}
.btn:hover .ar{transform:translateX(4px)}
.link{display:inline-flex;gap:10px;align-items:center;font-weight:600;font-size:16px;border-bottom:1px solid currentColor;padding-bottom:3px}
.link:hover .ar{transform:translateX(4px)}
.link .ar{transition:transform .4s var(--ease)}

/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:50;transition:background .4s,box-shadow .4s,transform .5s var(--ease)}
.hdr.solid{background:rgba(247,244,238,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.hdr.dark{color:var(--w)}
.hdr.dark:not(.solid){background:#0E0E0E}
.hdr.dark.solid{background:rgba(14,14,14,.82);box-shadow:0 1px 0 var(--line-d)}
.hdr-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;max-width:1400px;margin:0 auto;padding:0 var(--pad)}
.logo{display:inline-flex;align-items:baseline;gap:12px;white-space:nowrap}
.logo b{font:300 17px/1 'Jost';letter-spacing:.62em;margin-right:-.62em}
.logo i{font:italic 17px/1 'Bodoni Moda'}
.nav{display:flex;gap:34px;font-size:15.5px;font-weight:500}
.nav a{position:relative;padding:6px 0;opacity:.82;transition:opacity .3s}
.nav a:hover,.nav a.on{opacity:1}
.nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.nav a:hover:after,.nav a.on:after{transform:scaleX(1)}
.hdr-r{display:flex;justify-content:flex-end;gap:12px;align-items:center}
.cart-btn{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border-radius:999px;border:1px solid currentColor;font-weight:600;font-size:14.5px;transition:background .3s,color .3s}
.cart-btn:hover{background:var(--ink);color:var(--w);border-color:var(--ink)}
.hdr.dark .cart-btn:hover{background:var(--w);color:var(--ink)}
.cart-btn .c{min-width:22px;height:22px;border-radius:11px;background:var(--red);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;transition:transform .4s var(--ease)}
.cart-btn .c.pop{animation:pop .6s var(--ease)}
@keyframes pop{40%{transform:scale(1.45)}}
@media (max-width:900px){
  .hdr-in{grid-template-columns:minmax(0,1fr) auto;height:auto;padding-top:10px;row-gap:6px}
  .nav{grid-column:1/-1;order:3;min-width:0;justify-content:space-between;gap:12px;padding:0 0 8px;font-size:14px;overflow-x:auto;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .logo b{font-size:14px}.logo i{font-size:14px}
  .cart-btn{height:38px;padding:0 14px}
  .cart-btn .t{display:none}
}

/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.split.in .w>span{transform:none}

/* ===== HERO 3D ===== */
.hero{position:relative;height:640vh;background:radial-gradient(120% 80% at 70% 40%,#FBF9F5 0%,var(--ivory) 45%,#EEE8DE 100%)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%}
.beat{position:absolute;left:var(--pad);top:52%;width:min(520px,40vw);transform:translateY(-50%);pointer-events:none;opacity:0}
.beat.on{pointer-events:auto}
.beat .h-xl,.beat .h-l{margin:18px 0 22px}
.beat .h-xl{font-size:clamp(44px,4.9vw,76px)}
.beat .h-l{font-size:clamp(34px,3.6vw,54px)}
.beat .row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;align-items:center}
.beat .price{font:400 26px var(--serif)}
.beat .price small{font:400 15px var(--sans);color:var(--mute);margin-left:8px}
.hero-mark{position:absolute;right:var(--pad);bottom:34px;display:flex;align-items:center;gap:16px;font:italic 16px var(--serif);color:var(--graphite)}
.hero-mark .bar{width:120px;height:1px;background:var(--line);position:relative;overflow:hidden}
.hero-mark .bar i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--ivory);z-index:5;transition:opacity 1s var(--ease)}
.loader.done{opacity:0;pointer-events:none}
.loader svg{width:92px;height:92px}
@media (max-width:900px){
  .hero{height:600vh}
  .beat{left:var(--pad);right:var(--pad);width:auto;top:auto;bottom:max(28px,4vh);transform:none}
  .beat .h-xl{font-size:clamp(34px,9.5vw,52px);margin:12px 0 12px}
  .beat .h-l{font-size:clamp(28px,8vw,40px);margin:10px 0 10px}
  .beat .lede{font-size:16px}
  .beat .row{margin-top:18px}
  .beat .btn{height:48px;padding:0 22px}
  .hero-mark{display:none}
}

/* ===== sections ===== */
section{position:relative}
.sec{padding:clamp(90px,12vw,170px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:clamp(48px,6vw,84px)}
.sec-head .lede{justify-self:end}
@media (max-width:900px){.sec-head{grid-template-columns:1fr}.sec-head .lede{justify-self:start}}
.dark{background:var(--ink);color:var(--w)}
.dark .lede,.dark .eyebrow{color:#bdb6ab}
.dark .btn-line{border-color:rgba(244,241,234,.4);color:var(--w)}
.paper{background:var(--paper)}

/* method */
.method{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.mstep{border-top:1px solid var(--line);padding-top:28px}
.mstep svg{width:100%;height:170px;margin-bottom:22px;overflow:visible}
.mstep svg path,.mstep svg circle{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round}
.mstep .num{font:italic 400 20px var(--serif);color:var(--red)}
.mstep h3{font:400 30px/1.15 var(--serif);margin:6px 0 14px}
.mstep p{color:var(--graphite)}
.method-note{margin-top:70px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;max-width:880px}
.method-note .seal{margin-top:12px}
.method-note p{font:400 clamp(22px,2.2vw,30px)/1.4 var(--serif)}
@media (max-width:900px){.method{grid-template-columns:1fr}.mstep svg{height:140px}}

/* product cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,30px)}
.card{position:relative;background:var(--w);border-radius:4px;display:flex;flex-direction:column;transform-style:preserve-3d;transition:transform .7s var(--ease),box-shadow .7s var(--ease);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.card:hover{box-shadow:0 40px 80px -40px rgba(40,30,20,.35)}
.card .vis{position:relative;aspect-ratio:4/4.3;overflow:hidden;background:#ECE6DC;display:flex;align-items:center;justify-content:center;perspective:900px}
.card .vis.k{background:#E9E3D8}
.card .vis img.obj{width:52%;box-shadow:0 30px 60px -24px rgba(0,0,0,.45),0 4px 10px -4px rgba(0,0,0,.2);transform:rotateY(-14deg) rotateX(4deg);transition:transform 1s var(--ease)}
.card:hover .vis img.obj{transform:rotateY(-4deg) rotateX(2deg) translateY(-8px) scale(1.03)}
.card .vis .phone{width:42%}
.card .tagn{position:absolute;left:22px;top:20px;font:italic 18px var(--serif);color:var(--graphite)}
.card .body{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1}
.card h3{font:400 30px/1.15 var(--serif)}
.card .fmt{color:var(--mute);font-size:15px;margin:6px 0 18px}
.card ul{list-style:none;display:grid;gap:9px;margin-bottom:26px;font-size:16px;color:var(--graphite)}
.card li{display:grid;grid-template-columns:16px 1fr;gap:10px;align-items:baseline}
.card li:before{content:"";width:6px;height:6px;background:var(--red);transform:translateY(-2px)}
.card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.card .pr{font:400 26px var(--serif)}
.card .pr small{display:block;font:400 13.5px var(--sans);color:var(--mute)}
.card .acts{display:flex;gap:8px}
.card .btn{height:48px;padding:0 20px;font-size:14px}
@media (max-width:980px){.cards{grid-template-columns:1fr}.card .vis{aspect-ratio:16/11}.card .vis img.obj{width:34%}}

/* phone (DOM) */
.phone{position:relative;aspect-ratio:390/844;border-radius:13%/6%;background:#1b1918;padding:3.2%;box-shadow:0 50px 90px -40px rgba(30,15,15,.55),inset 0 0 0 1.5px #3a3532}
.phone .scr{position:relative;width:100%;height:100%;border-radius:11%/5.2%;overflow:hidden;background:#EEE6E3}
.phone .scr img{width:100%;height:100%;object-fit:cover}
.phone:before{content:"";position:absolute;top:4.2%;left:50%;width:30%;height:3.4%;transform:translateX(-50%);background:#0b0a0a;border-radius:20px;z-index:3}

/* flipbook */
.flip-wrap{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:34px}
.book{position:relative;width:min(1000px,100%);aspect-ratio:296/210;perspective:2600px}
.book .spread-shadow{position:absolute;inset:4% 2% -3%;border-radius:4px;box-shadow:0 60px 90px -50px rgba(40,25,10,.55);pointer-events:none}
.leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.25s cubic-bezier(.45,.05,.2,1)}
.leaf.turned{transform:rotateY(-180deg)}
.leaf .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#F7F4EE center/cover no-repeat;overflow:hidden}
.leaf .face.back{transform:rotateY(180deg)}
.leaf .face:after{content:"";position:absolute;inset:0;pointer-events:none}
.leaf .face.front:after{background:linear-gradient(90deg,rgba(0,0,0,.16),rgba(0,0,0,.03) 6%,transparent 14%)}
.leaf .face.back:after{background:linear-gradient(270deg,rgba(0,0,0,.16),rgba(0,0,0,.03) 6%,transparent 14%)}
.book .base{position:absolute;top:0;height:100%;width:50%;background:#F2EEE6}
.book .base.l{left:0}.book .base.r{left:50%}
.flip-ui{display:flex;align-items:center;gap:22px}
.flip-ui button{width:54px;height:54px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s}
.flip-ui button:hover{background:var(--ink);color:var(--w);border-color:var(--ink)}
.flip-ui button:disabled{opacity:.3;pointer-events:none}
.flip-cap{text-align:center;max-width:560px;min-height:84px}
.flip-cap b{display:block;font:italic 400 24px/1.3 var(--serif);font-weight:400;margin-bottom:6px}
.flip-cap span{color:var(--graphite);font-size:16.5px}
.flip-dots{display:flex;gap:8px}
.flip-dots i{width:22px;height:2px;background:var(--line);transition:background .4s}
.flip-dots i.on{background:var(--ink)}
.book .hit{position:absolute;top:0;bottom:0;width:50%;z-index:20;cursor:pointer}
.book .hit.l{left:0}.book .hit.r{right:0}


/* quiz */
.quiz{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,100px);align-items:start}
.qpanel{background:var(--w);border-radius:4px;padding:clamp(26px,4vw,52px);min-height:520px;position:relative;overflow:hidden}
.qprog{display:flex;gap:6px;margin-bottom:34px}
.qprog i{flex:1;height:2px;background:var(--line);position:relative;overflow:hidden}
.qprog i:after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.qprog i.done:after{transform:scaleX(1)}
.qnum{font:italic 18px var(--serif);color:var(--red)}
.qtext{font:400 clamp(26px,2.6vw,34px)/1.2 var(--serif);margin:8px 0 28px}
.qopts{display:grid;gap:10px}
.qopt{display:grid;grid-template-columns:24px 1fr;gap:14px;align-items:center;text-align:left;padding:17px 20px;border:1px solid var(--line);border-radius:4px;font-size:17px;line-height:1.4;transition:border-color .3s,background .3s,transform .4s var(--ease)}
.qopt:before{content:"";width:16px;height:16px;border:1px solid rgba(14,14,14,.4);border-radius:50%;transition:all .3s}
.qopt:hover{border-color:var(--ink);transform:translateX(4px)}
.qopt.sel{background:var(--ink);color:var(--w);border-color:var(--ink)}
.qopt.sel:before{background:var(--red);border-color:var(--red)}
.qfoot{display:flex;justify-content:space-between;align-items:center;margin-top:24px;font-size:15px}
.qfoot button{color:var(--graphite);border-bottom:1px solid var(--line);padding-bottom:2px}
.qfoot button:hover{color:var(--ink);border-color:var(--ink)}
.qslide{animation:qin .8s var(--ease)}
@keyframes qin{from{opacity:0;transform:translateX(30px)}}
.qres .part{font:italic 18px var(--serif);color:var(--red)}
.qres h3{font:400 clamp(30px,3vw,42px)/1.12 var(--serif);margin:10px 0 16px}
.qres .beliefs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 26px}
.qres .beliefs span{border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:14.5px;background:var(--ivory)}
.qres .starts{display:grid;gap:14px;margin-bottom:28px}
.qres .starts div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding-top:14px;border-top:1px solid var(--line);font-size:16px;color:var(--graphite)}
.qres .starts b{font:italic 400 18px var(--serif);color:var(--ink)}
.qres .note{font-size:14px;color:var(--mute);margin-top:18px}
.qres .bars{display:grid;gap:8px;margin:6px 0 4px}
.qres .bar{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;font-size:14px;color:var(--graphite)}
.qres .bar i{height:3px;background:var(--line);position:relative}
.qres .bar i b{position:absolute;inset:0 auto 0 0;background:var(--ink);width:0;transition:width 1.2s var(--ease)}
.qres .bar.top i b{background:var(--red)}
@media (max-width:900px){.quiz{grid-template-columns:1fr}.qres .starts div{grid-template-columns:1fr;gap:2px}.qres .bar{grid-template-columns:120px 1fr}}

/* excerpt */
.excerpt{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,110px);align-items:center}
.excerpt .txt p{font:400 clamp(19px,1.55vw,22px)/1.72 var(--serif);color:#e4dfd6;margin-bottom:1.1em}
.excerpt .txt p:first-of-type:first-letter{float:left;font:400 92px/.8 var(--serif);margin:10px 14px 0 0;color:var(--w)}
.excerpt .txt .last{font-style:italic;color:var(--w)}
.cover3d{perspective:1400px;display:flex;justify-content:center}
.cover3d .bk{position:relative;width:min(380px,70vw);aspect-ratio:620/900;transform-style:preserve-3d;transform:rotateY(-24deg) rotateX(6deg);transition:transform 1.2s var(--ease)}
.cover3d:hover .bk{transform:rotateY(-8deg) rotateX(3deg)}
.cover3d .bk .f,.cover3d .bk .s,.cover3d .bk .p{position:absolute;backface-visibility:hidden}
.cover3d .bk .f{inset:0;background:url(../assets/tex/bookCover.png) center/cover;box-shadow:inset 3px 0 6px rgba(0,0,0,.15);transform:translateZ(22px)}
.cover3d .bk .s{top:0;bottom:0;left:0;width:44px;background:url(../assets/tex/bookSpine.png) center/cover;transform-origin:left;transform:translateZ(22px) rotateY(-90deg)}
.cover3d .bk .p{top:1.5%;bottom:1.5%;right:0;width:42px;background:repeating-linear-gradient(90deg,#F2EEE6 0 3px,#E9E3D8 3px 4px);transform-origin:right;transform:translateZ(20px) rotateY(90deg)}
.cover3d .bk:after{content:"";position:absolute;left:8%;right:-6%;bottom:-8%;height:10%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);transform:translateZ(-30px);filter:blur(10px)}
@media (max-width:900px){.excerpt{grid-template-columns:1fr}.cover3d{order:-1}}

/* app demo */
.appdemo{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,7vw,120px);align-items:center}
.appdemo .phone{width:min(360px,78vw);margin:0 auto}
.app-ui{position:absolute;inset:0;font-family:var(--sans);color:#2c2626}
.app-ui .gimg{position:absolute;inset:0;background:url(../assets/tex/appBare.png) center/cover;transition:filter 1.2s}
.app-ui .wtag{position:absolute;left:43%;top:34.5%;max-width:51%;background:rgba(255,255,255,.8);border-radius:12px;padding:7px 10px;font-size:11.5px;line-height:1.3;box-shadow:0 8px 24px -10px rgba(80,40,40,.35);transition:opacity .8s,transform .8s var(--ease)}
.app-ui .wtag small{display:block;font-weight:600;font-size:8.5px;letter-spacing:.15em;color:var(--wine);margin-top:3px}
.app-ui .dew{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) scale(.6);opacity:0;background:rgba(255,255,255,.92);border-radius:999px;padding:10px 16px;font:italic 15px var(--serif);white-space:nowrap;transition:all .8s var(--ease);box-shadow:0 12px 30px -12px rgba(80,40,40,.4)}
.app-ui .dew.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.app-ui .mask{position:absolute;left:4%;right:4%;bottom:11.5%;height:23%;background:#F6F1EE;border-radius:20px;padding:6% 7%;display:flex;flex-direction:column}
.app-ui .mask .l{font-weight:600;font-size:9px;letter-spacing:.18em;color:var(--wine)}
.app-ui .mask .q{font:italic 15.5px/1.25 var(--serif);margin-top:6px;flex:1}
.app-ui .steps{display:flex;gap:6px;margin-bottom:8px}
.app-ui .steps i{flex:1;height:3px;border-radius:2px;background:rgba(138,46,55,.18);transition:background .6s}
.app-ui .steps i.on{background:var(--wine)}
.app-ui .go{height:36px;border-radius:18px;background:linear-gradient(90deg,#8A2E37,#661E27);color:#fff;font-weight:600;font-size:10.5px;letter-spacing:.16em;display:flex;align-items:center;justify-content:center;transition:transform .3s}
.app-ui .go:active{transform:scale(.97)}
.feat{display:grid;gap:0}
.feat>div{display:grid;grid-template-columns:60px 1fr;gap:18px;padding:24px 0;border-top:1px solid var(--line)}
.feat>div:last-child{border-bottom:1px solid var(--line)}
.feat .n{font:italic 22px var(--serif);color:var(--red)}
.feat h4{font:400 24px/1.25 var(--serif);margin-bottom:6px}
.feat p{color:var(--graphite);font-size:17px}
@media (max-width:900px){.appdemo{grid-template-columns:1fr}}

/* set builder */
.setb{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,4vw,64px);align-items:start}
.opts{display:grid;gap:14px}
.opt{display:grid;grid-template-columns:auto 90px 1fr auto;gap:22px;align-items:center;padding:20px 24px;border:1px solid var(--line-d);border-radius:4px;cursor:pointer;transition:border-color .3s,background .3s}
.opt:hover{border-color:rgba(244,241,234,.45)}
.opt.on{border-color:var(--w);background:rgba(244,241,234,.05)}
.opt .ck{width:24px;height:24px;border:1px solid rgba(244,241,234,.5);border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .3s}
.opt.on .ck{background:var(--red);border-color:var(--red)}
.opt .ck svg{opacity:0;transition:opacity .3s}
.opt.on .ck svg{opacity:1}
.opt .th{height:96px;display:flex;align-items:center;justify-content:center}
.opt .th img{max-height:96px;width:auto;box-shadow:0 12px 26px -10px rgba(0,0,0,.6)}
.opt h4{font:400 24px/1.2 var(--serif)}
.opt p{font-size:15px;color:#a9a297}
.opt .p{font:400 22px var(--serif);text-align:right;white-space:nowrap}
.opt select{background:transparent;color:var(--w);border:1px solid var(--line-d);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;margin-top:8px}
.opt select option{color:#000}
.sum{position:sticky;top:110px;border:1px solid var(--line-d);border-radius:4px;padding:34px}
.sum .row{display:flex;justify-content:space-between;padding:10px 0;font-size:16px;color:#bdb6ab}
.sum .row.save{color:#e8a49d}
.sum .tot{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line-d);margin-top:12px;padding-top:20px}
.sum .tot b{font:400 46px var(--serif);font-weight:400}
.sum .gift{display:flex;gap:12px;align-items:center;margin:22px 0;font-size:15px;color:#bdb6ab;cursor:pointer}
.sum .gift input{accent-color:var(--red);width:18px;height:18px}
.sum .btn{width:100%}
.sum .hint{margin-top:16px;font-size:14px;color:#8e877d}
@media (max-width:900px){.setb{grid-template-columns:1fr}.opt{grid-template-columns:auto 56px 1fr;gap:14px;padding:16px}.opt .th{height:64px}.opt .th img{max-height:64px}.opt .p{grid-column:3;text-align:left}.sum{position:static}}

/* quote */
.bigq{min-height:110vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.bigq svg.enso{position:absolute;left:50%;top:50%;width:min(760px,120vw);transform:translate(-50%,-50%);opacity:.95}
.bigq blockquote{position:relative;max-width:900px;padding:0 var(--pad);font:italic 400 clamp(32px,4.4vw,62px)/1.18 var(--serif)}
.bigq cite{display:block;margin-top:28px;font:400 16px var(--sans);font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:var(--graphite)}

/* faq */
.faq{max-width:900px}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;justify-content:space-between;gap:20px;align-items:center;text-align:left;padding:28px 0;font:400 clamp(21px,2vw,26px)/1.3 var(--serif)}
.qa .pm{width:30px;height:30px;flex:none;position:relative}
.qa .pm:before,.qa .pm:after{content:"";position:absolute;left:7px;right:7px;top:50%;height:1px;background:var(--ink);transition:transform .5s var(--ease)}
.qa .pm:after{transform:rotate(90deg)}
.qa.open .pm:after{transform:rotate(0)}
.qa .a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.qa.open .a{grid-template-rows:1fr}
.qa .a>div{overflow:hidden}
.qa .a p{padding:0 60px 28px 0;color:var(--graphite);max-width:720px}

/* footer */
.foot{background:var(--ink);color:#bdb6ab;padding:90px 0 40px;font-size:15.5px}
.foot .top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid var(--line-d)}
.foot .logo{color:var(--w)}
.foot h5{font:italic 400 18px var(--serif);color:var(--w);margin-bottom:16px}
.foot ul{list-style:none;display:grid;gap:10px}
.foot a:hover{color:var(--w)}
.foot .care{margin-top:24px;max-width:380px;line-height:1.6}
.foot .bot{display:flex;justify-content:space-between;gap:20px;padding-top:28px;font-size:14px;color:#857e74;flex-wrap:wrap}
.news{display:flex;gap:8px;margin-top:6px}
.news input{flex:1;min-width:0;height:48px;border-radius:999px;border:1px solid var(--line-d);background:transparent;color:var(--w);padding:0 20px;font:inherit;font-size:15px}
.news input::placeholder{color:#857e74}
.news button{height:48px;padding:0 20px;border-radius:999px;background:var(--w);color:var(--ink);font-weight:600;font-size:14px}
@media (max-width:900px){.foot .top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.foot .top>div:first-child,.foot .top>div:last-child{grid-column:1/-1}}

/* cart drawer */
.scrim{position:fixed;inset:0;background:rgba(14,14,14,.4);opacity:0;pointer-events:none;transition:opacity .5s;z-index:80}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(470px,100vw);background:var(--ivory);z-index:90;transform:translateX(102%);transition:transform .7s var(--ease);display:flex;flex-direction:column}
.drawer.on{transform:none}
.drawer .dh{display:flex;justify-content:space-between;align-items:center;padding:26px 30px;border-bottom:1px solid var(--line)}
.drawer .dh h3{font:400 28px var(--serif)}
.drawer .x{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.drawer .items{flex:1;overflow:auto;padding:10px 30px}
.ditem{display:grid;grid-template-columns:70px 1fr auto;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);align-items:center}
.ditem img{width:70px;height:90px;object-fit:cover;box-shadow:0 8px 18px -8px rgba(0,0,0,.4)}
.ditem h4{font:400 20px/1.2 var(--serif)}
.ditem .v{font-size:14px;color:var(--mute)}
.ditem .qty{display:inline-flex;align-items:center;gap:12px;margin-top:8px;border:1px solid var(--line);border-radius:999px;padding:2px 6px}
.ditem .qty button{width:26px;height:26px;border-radius:50%}
.ditem .qty button:hover{background:var(--paper)}
.ditem .pp{font:400 19px var(--serif);text-align:right}
.ditem .rm{font-size:13px;color:var(--mute);text-decoration:underline;margin-top:6px}
.drawer .empty{padding:60px 0;text-align:center;color:var(--graphite)}
.drawer .empty b{display:block;font:italic 400 26px var(--serif);color:var(--ink);margin-bottom:10px}
.drawer .df{padding:24px 30px 30px;border-top:1px solid var(--line);background:var(--w)}
.drawer .df .row{display:flex;justify-content:space-between;font-size:16px;color:var(--graphite);padding:4px 0}
.drawer .df .row.save{color:var(--red)}
.drawer .df .tot{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 18px}
.drawer .df .tot b{font:400 34px var(--serif);font-weight:400}
.drawer .df .btn{width:100%}
.drawer .df .hint{font-size:13.5px;color:var(--mute);margin-top:12px;text-align:center}
.upsell{margin:18px 0 4px;padding:16px 18px;background:var(--paper);border-radius:4px;display:flex;gap:14px;align-items:center;justify-content:space-between;font-size:15px}
.upsell b{font-family:var(--serif);font-weight:400;font-style:italic;font-size:17px}
.upsell button{font-weight:600;font-size:14px;border-bottom:1px solid currentColor;white-space:nowrap}

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,140%);background:var(--ink);color:var(--w);padding:14px 22px;border-radius:999px;font-size:15px;z-index:100;transition:transform .6s var(--ease);display:flex;gap:12px;align-items:center}
.toast.on{transform:translate(-50%,0)}
.toast .seal{background:var(--red)}

/* product pages */
.phero{padding:150px 0 90px}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,6vw,100px);align-items:center}
.gallery{position:relative}
.gallery .main{position:relative;aspect-ratio:1/1.05;background:#ECE6DC;display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:1200px}
.gallery .main img{max-height:84%;max-width:78%;width:auto;box-shadow:0 40px 70px -30px rgba(0,0,0,.5);transition:opacity .5s,transform .9s var(--ease)}
.gallery .thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.gallery .thumbs button{flex:none;width:74px;height:96px;background:#ECE6DC;display:flex;align-items:center;justify-content:center;border:1px solid transparent;transition:border-color .3s}
.gallery .thumbs button.on{border-color:var(--ink)}
.gallery .thumbs img{max-height:84px;width:auto}
.buy h1{margin:16px 0 18px}
.buy .lede{margin-bottom:26px}
.buy .pp{font:400 38px var(--serif);margin:6px 0 4px}
.buy .pp small{font:400 16px var(--sans);color:var(--mute);margin-left:10px}
.variants{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.variants button{border:1px solid var(--line);border-radius:999px;padding:11px 20px;font-size:15px;transition:all .3s}
.variants button.on{background:var(--ink);color:var(--w);border-color:var(--ink)}
.variants-label{font:italic 17px var(--serif);color:var(--graphite);margin-top:18px}
.buy .acts{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 22px}
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid var(--line);padding-top:22px;font-size:14.5px;color:var(--graphite)}
.perks div{display:flex;gap:10px;align-items:flex-start}
.perks svg{flex:none;margin-top:3px}
@media (max-width:900px){.phero{padding:130px 0 60px}.phero-grid{grid-template-columns:minmax(0,1fr)}.perks{grid-template-columns:1fr}}
.specs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.specs div{padding:34px 26px 34px 0}
.specs b{display:block;font:400 clamp(40px,4vw,56px)/1 var(--serif);font-weight:400;margin-bottom:10px}
.specs span{color:var(--graphite);font-size:16px}
@media (max-width:900px){.specs{grid-template-columns:1fr 1fr}}
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.mod{background:var(--ivory);padding:34px 30px 36px;min-height:280px;display:flex;flex-direction:column;transition:background .5s}
.mod:hover{background:var(--w)}
.mod .r{font:italic 400 44px var(--serif);color:var(--red);line-height:1}
.mod h4{font:400 28px var(--serif);margin:16px 0 10px}
.mod p{color:var(--graphite);font-size:16.5px}
.mod .wk{margin-top:auto;padding-top:18px;font-size:14px;color:var(--mute)}
@media (max-width:900px){.modules{grid-template-columns:1fr}}
.toc{display:grid;gap:0}
.part{border-top:1px solid var(--line)}
.part:last-child{border-bottom:1px solid var(--line)}
.part>button{width:100%;display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:center;text-align:left;padding:28px 0}
.part .r{font:italic 34px var(--serif);color:var(--red)}
.part h4{font:400 clamp(24px,2.4vw,32px)/1.2 var(--serif)}
.part .cnt{font-size:15px;color:var(--mute)}
.part .ch{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.part.open .ch{grid-template-rows:1fr}
.part .ch>div{overflow:hidden}
.part ol{list-style:none;padding:0 0 30px 110px;display:grid;grid-template-columns:1fr 1fr;gap:10px 40px}
.part li{display:grid;grid-template-columns:34px 1fr;font:italic 19px/1.4 var(--serif)}
.part li span{font-style:normal;font-family:var(--sans);font-size:14px;color:var(--mute);padding-top:4px}
@media (max-width:900px){.part>button{grid-template-columns:50px 1fr}.part .cnt{display:none}.part ol{padding-left:0;grid-template-columns:1fr}}
.anatomy{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}
.anatomy div{border-top:1px solid var(--line);padding-top:22px}
.anatomy .n{font:italic 20px var(--serif);color:var(--red)}
.anatomy h4{font:400 24px var(--serif);margin:6px 0 8px}
.anatomy p{font-size:16.5px;color:var(--graphite)}
@media (max-width:900px){.anatomy{grid-template-columns:1fr}}
.reader{max-width:720px;margin:0 auto}
.reader .ch-t{text-align:center;margin-bottom:60px}
.reader .ch-t .k{font:italic 20px var(--serif);color:var(--red)}
.reader .ch-t h2{font:400 clamp(34px,4vw,52px)/1.15 var(--serif);margin-top:10px}
.reader p{font:400 21px/1.75 var(--serif);margin-bottom:1.15em;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.reader p.first:first-letter{float:left;font:400 96px/.8 var(--serif);margin:12px 14px 0 0}
.reader .fade{position:relative}
.reader .fade:after{content:"";position:absolute;left:0;right:0;bottom:0;height:200px;background:linear-gradient(transparent,var(--ivory))}
.reader .orn{text-align:center;color:var(--red);font-size:22px;margin:-10px 0 34px}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(14,14,14,.92);backdrop-filter:blur(12px);color:var(--w);transform:translateY(110%);transition:transform .6s var(--ease)}
.sticky-buy.on{transform:none}
.sticky-buy .in{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:var(--max);margin:0 auto;padding:14px var(--pad)}
.sticky-buy b{font:400 22px var(--serif)}
.sticky-buy span{color:#a9a297;font-size:15px;margin-left:12px}
.sticky-buy .btn{height:46px}
@media (max-width:700px){.sticky-buy span{display:none}.sticky-buy b{font-size:18px}}
.plans{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:780px}
.plan{border:1px solid var(--line);border-radius:4px;padding:30px;cursor:pointer;transition:all .3s;position:relative}
.plan.on{border-color:var(--ink);background:var(--w);box-shadow:0 30px 60px -40px rgba(0,0,0,.4)}
.plan h4{font:italic 400 22px var(--serif)}
.plan .p{font:400 34px var(--serif);margin:10px 0 2px;white-space:nowrap}
.plan .p small{font:400 15px var(--sans);color:var(--mute)}
.plan .badge{position:absolute;top:-12px;right:20px;background:var(--red);color:#fff;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px}
.plan p{color:var(--graphite);font-size:15.5px}
@media (max-width:700px){.plans{grid-template-columns:1fr}}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(14,14,14,.9);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s}
.lightbox.on{opacity:1;pointer-events:auto}
.lightbox img{max-height:90vh;max-width:92vw;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.lightbox .x{position:absolute;top:22px;right:22px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);color:#fff;display:flex;align-items:center;justify-content:center}
.pagegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,22px)}
.pagegrid button{display:block;background:#ECE6DC;padding:10%;transition:transform .6s var(--ease)}
.pagegrid button:hover{transform:translateY(-6px)}
.pagegrid img{box-shadow:0 18px 30px -16px rgba(0,0,0,.45)}
.pagegrid figcaption{font:italic 16px var(--serif);color:var(--graphite);margin-top:12px}
@media (max-width:900px){.pagegrid{grid-template-columns:1fr 1fr}}
.crumbs{font-size:14.5px;color:var(--mute);margin-bottom:6px}
.crumbs a:hover{color:var(--ink)}
.care-box{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:30px;border:1px solid var(--line);border-radius:4px;max-width:880px}
.care-box p{color:var(--graphite);font-size:16.5px}
.care-box b{font:italic 400 20px var(--serif);display:block;margin-bottom:6px;color:var(--ink)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.rv{opacity:1;transform:none}.split .w>span{transform:none}}

/* language switcher */
.langs{display:flex;align-items:center;font-size:13px;font-weight:600;letter-spacing:.04em;margin-right:6px}
.langs a{padding:6px 7px;opacity:.45;transition:opacity .3s}
.langs a:hover,.langs a.on{opacity:1}
.langs a.on{text-decoration:underline;text-underline-offset:5px}
@media (max-width:900px){.langs{font-size:12px;margin-right:0}.langs a{padding:6px 5px}}
html[lang=en] .cover3d .bk .f{background-image:url(../assets/tex/bookCover_en.png)}
html[lang=de] .cover3d .bk .f{background-image:url(../assets/tex/bookCover_de.png)}
html[lang=en] .cover3d .bk .s{background-image:url(../assets/tex/bookSpine_en.png)}
html[lang=de] .cover3d .bk .s{background-image:url(../assets/tex/bookSpine_de.png)}
html[lang=en] .app-ui .gimg{background-image:url(../assets/tex/appBare_en.png)}
html[lang=de] .app-ui .gimg{background-image:url(../assets/tex/appBare_de.png)}

/* hero atmosphere layers (js/atmos.js) */
.fx{position:absolute;inset:0;pointer-events:none}
.fx-garden{inset:-8%;background:url(../assets/img/garden.jpg) 62% 42%/cover;filter:blur(7px) saturate(.95);opacity:.5;will-change:transform}
.fx-haze{background:radial-gradient(120% 90% at 30% 50%,rgba(247,244,238,.92) 0%,rgba(247,244,238,.55) 45%,rgba(247,244,238,.25) 100%)}
.fx-aura i{position:absolute;border-radius:50%;filter:blur(60px);opacity:1;will-change:transform}
.fx-aura i:nth-child(1){width:60vw;height:60vw;left:38%;top:-20%;background:radial-gradient(circle,#EBC9C1 0%,rgba(235,201,193,0) 68%);animation:au1 22s ease-in-out infinite alternate}
.fx-aura i:nth-child(2){width:50vw;height:50vw;left:-12%;top:30%;background:radial-gradient(circle,#F1DCC6 0%,rgba(241,220,198,0) 68%);animation:au2 26s ease-in-out infinite alternate}
.fx-aura i:nth-child(3){width:42vw;height:42vw;left:62%;top:46%;background:radial-gradient(circle,#D9B3B3 0%,rgba(217,179,179,0) 68%);animation:au3 30s ease-in-out infinite alternate}
.fx-aura i:nth-child(4){width:30vw;height:30vw;left:22%;top:-8%;background:radial-gradient(circle,#E7D7CB 0%,rgba(231,215,203,0) 70%);animation:au2 34s ease-in-out infinite alternate-reverse}
@keyframes au1{to{transform:translate(-14vw,12vh) scale(1.15)}}
@keyframes au2{to{transform:translate(12vw,-10vh) scale(.9)}}
@keyframes au3{to{transform:translate(-10vw,-14vh) scale(1.2)}}
html[data-bg-on] .hero{background:#F5F0E8}

/* campaign hero (photo first, fashion-house style) */
.camp{position:relative;height:100vh;height:100svh;min-height:620px;background:#4f0f15;color:#F4F1EA;overflow:hidden}
.camp-photo{position:absolute;inset:0 0 0 auto;width:min(62vw,calc(100svh * .75 + 20vw))}
.camp-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;animation:campIn 2.4s var(--ease) both}
.camp-photo:before{content:"";position:absolute;inset:0 auto 0 0;width:38%;z-index:1;background:linear-gradient(90deg,#4f0f15,rgba(79,15,21,0))}
@keyframes campIn{from{transform:scale(1.08);filter:brightness(.7)}}
.camp-copy{position:absolute;left:var(--pad);bottom:clamp(40px,8vh,90px);z-index:2;max-width:640px}
.camp-logo{display:flex;flex-direction:column;line-height:.9;font-weight:400;margin-bottom:28px}
.camp-logo b{font:300 clamp(56px,9vw,148px)/.9 'Jost';letter-spacing:.32em;margin-right:-.32em;animation:campUp 1.6s .3s var(--ease) both}
.camp-logo i{font:italic clamp(30px,4.2vw,68px)/1 'Bodoni Moda';margin:.15em 0 0 .08em;animation:campUp 1.6s .5s var(--ease) both}
@keyframes campUp{from{opacity:0;transform:translateY(40px)}}
.camp-line{font:italic 400 clamp(18px,1.6vw,23px)/1.4 var(--serif);color:#e8d9cf;max-width:30em;margin-bottom:26px;animation:campUp 1.6s .7s var(--ease) both}
.camp-link{display:inline-block;font:500 15px var(--sans);letter-spacing:.06em;border-bottom:1px solid currentColor;padding-bottom:4px;animation:campUp 1.6s .9s var(--ease) both}
.camp-link:hover{opacity:.75}
@media (max-width:900px){
  .camp-photo{inset:var(--hh,100px) 0 30% 0;width:100%}
  .camp-photo:before{inset:auto 0 0 0;width:100%;height:28%;background:linear-gradient(0deg,#4f0f15 5%,rgba(79,15,21,0))}
  .camp-copy{bottom:28px;right:var(--pad)}
  .camp-logo{margin-bottom:16px}
  .camp-line{font-size:17px;margin-bottom:16px}
  .camp-photo img{object-position:60% 6%}
  .camp-logo b{letter-spacing:.22em;margin-right:-.22em}
}

/* campaign photos in cards and galleries */
.vis.photo,.main.photo{background:#4f0f15}
.vis.photo .ph,.main.photo .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%;box-shadow:none;transition:transform 1.4s var(--ease)}
.gallery .main.photo .ph{max-height:none;max-width:none}
.card:hover .vis.photo .ph{transform:scale(1.04)}
.vis.photo .tagn{z-index:2;color:#e8d9cf}
.set-photo{margin:0 0 clamp(50px,6vw,90px);overflow:hidden}
.set-photo img{width:100%;aspect-ratio:16/8;object-fit:cover;object-position:50% 40%}
.card .vis.photo .ph{transform:scale(1.32);transform-origin:50% 52%}
.card:hover .vis.photo .ph{transform:scale(1.37)}
/* flipbook always fits the screen (spread ratio 296:210) */
.book{width:min(960px,100%,calc((100svh - 210px) * 1.41))}
/* mobile hero: bigger photo, head just under the header */
@media (max-width:900px){
  .camp-photo{overflow:hidden;bottom:34%}
  .camp-photo img{position:absolute;width:118%;max-width:none;height:auto;left:-12%;top:-7%;object-fit:initial}
}
/* mobile hero: text sits higher, overlapping the photo fade; more air at the bottom */
@media (max-width:900px){
  .camp-copy{bottom:max(56px,calc(env(safe-area-inset-bottom) + 40px))}
  .camp-photo{bottom:30%}
}
