/* ============================================================
   VTC3D · "Atelier" — section styles
   ============================================================ */

/* ---------- HERO ---------- */
.hero{padding:clamp(5.5rem,10vw,7.5rem) 0 clamp(1.4rem,3vw,2.4rem);position:relative;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8rem,4vw,3.5rem);align-items:center;}
.hero h1{font-size:clamp(2.9rem,7.4vw,6rem);line-height:.96;letter-spacing:-0.045em;font-weight:600;margin:1.5rem 0 0;max-width:13ch;}
.hero h1 .serif{display:inline;font-size:1.02em;letter-spacing:-0.02em;}
.hero h1 .ac{color:var(--accent);}
.hero-sub{margin-top:1.2rem;max-width:46ch;color:var(--ink-2);font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.62;}
.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.5rem;}
.hero-trust{display:flex;gap:1.8rem;flex-wrap:wrap;margin-top:1.7rem;padding-top:1.2rem;border-top:1px solid var(--hair);}
.hero-trust .ht{display:flex;flex-direction:column;gap:.15rem;}
.hero-trust .ht .n{font-size:1.5rem;font-weight:600;letter-spacing:-0.03em;}
.hero-trust .ht .n .star{color:var(--accent);}
.hero-trust .ht .l{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);}

/* hero visual — framed product render placeholder with technical grid */
.hero-visual{position:relative;aspect-ratio:4/5;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--hair-2);background:var(--surface-2);box-shadow:var(--shadow-lg);}
.hero-visual .grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:34px 34px;opacity:.6;}
.hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;}
.hero-visual .hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3;background:var(--surface-2);}
.hero-visual .ph-mark{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--ink-3);}
.hero-visual .ph-mark .obj{width:46%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--surface),var(--paper-2) 70%,var(--hair-2));box-shadow:inset 0 -18px 40px -18px rgba(35,33,29,.35),var(--shadow);position:relative;}
.hero-visual .ph-mark .obj::after{content:"";position:absolute;inset:18% 18% auto auto;width:22%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.5);filter:blur(6px);}
.hero-visual .ph-cap{position:absolute;left:14px;bottom:14px;z-index:3;font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(4px);padding:.35rem .6rem;border-radius:50px;border:1px solid var(--hair);}
.hero-visual .float-chip{position:absolute;z-index:3;background:var(--surface);border:1px solid var(--hair-2);border-radius:12px;padding:.6rem .8rem;box-shadow:var(--shadow);font-size:.76rem;display:flex;align-items:center;gap:.5rem;}
.hero-visual .float-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}
.hero-visual .float-chip.c1{top:16px;right:16px;}
.hero-visual .float-chip.c2{bottom:54px;right:16px;animation:floaty 5s var(--ease) infinite;}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}

@media(max-width:860px){.hero-grid{grid-template-columns:1fr;}.hero-visual{aspect-ratio:16/12;order:-1;}}

/* ---------- CONFIGURATOR ---------- */
.cfg-wrap{background:var(--ink);border-radius:var(--r-l);overflow:hidden;color:var(--paper);position:relative;}
.cfg-grid{display:grid;grid-template-columns:1.25fr .75fr;}
.cfg-main{padding:clamp(1.8rem,4vw,3rem);}
.cfg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem;}
.cfg-head .eyebrow{color:rgba(244,241,234,.5);}
.cfg-head .eyebrow::before{background:var(--accent);}
.cfg-head h2{color:var(--paper);font-size:clamp(1.7rem,3.4vw,2.5rem);margin-top:1rem;max-width:18ch;}
.cfg-step{margin-bottom:1.9rem;}
.cfg-step .step-l{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,241,234,.45);display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem;}
.cfg-step .step-l .num{width:18px;height:18px;border-radius:50%;border:1px solid rgba(244,241,234,.25);display:grid;place-items:center;font-size:.58rem;}
.opt-row{display:flex;gap:.55rem;flex-wrap:wrap;}
.opt{
  flex:1;min-width:120px;background:rgba(244,241,234,.04);border:1px solid rgba(244,241,234,.14);
  border-radius:var(--r);padding:.85rem 1rem;cursor:pointer;transition:.2s var(--ease);text-align:left;color:var(--paper);
}
.opt:hover{border-color:rgba(244,241,234,.4);background:rgba(244,241,234,.07);}
.opt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);}
.opt .ot{font-weight:600;font-size:.96rem;}
.opt .od{font-size:.76rem;color:rgba(244,241,234,.55);margin-top:.2rem;line-height:1.4;}
.opt.sel .od{color:rgba(244,241,234,.78);}

.mat-row{display:flex;gap:.5rem;flex-wrap:wrap;}
.mat{
  display:flex;align-items:center;gap:.55rem;background:rgba(244,241,234,.04);border:1px solid rgba(244,241,234,.14);
  border-radius:50px;padding:.5rem .9rem .5rem .55rem;cursor:pointer;transition:.18s var(--ease);
}
.mat:hover{border-color:rgba(244,241,234,.4);}
.mat.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);}
.mat .sw{width:18px;height:18px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);}
.mat .mn{font-weight:600;font-size:.86rem;}
.mat .mp{font-family:var(--mono);font-size:.64rem;color:rgba(244,241,234,.45);}

.slider-block{margin-top:.4rem;}
.slider-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.7rem;}
.slider-head .sv{font-weight:600;font-size:1.05rem;white-space:nowrap;}
.slider-head .sv b{color:var(--accent-soft);}
.slider-head .sh{font-family:var(--mono);font-size:.66rem;color:rgba(244,241,234,.45);}
input[type=range].rng{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;
  background:rgba(244,241,234,.16);outline:none;cursor:pointer;
}
input[type=range].rng::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid var(--ink);box-shadow:0 0 0 1px var(--accent);cursor:grab;transition:transform .15s;}
input[type=range].rng::-webkit-slider-thumb:active{transform:scale(1.15);cursor:grabbing;}
input[type=range].rng::-moz-range-thumb{width:17px;height:17px;border-radius:50%;background:var(--accent);border:3px solid var(--ink);cursor:grab;}
.size-presets{display:flex;gap:.4rem;margin-top:.9rem;flex-wrap:wrap;}
.size-presets button{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;background:rgba(244,241,234,.05);border:1px solid rgba(244,241,234,.14);color:rgba(244,241,234,.7);padding:.35rem .7rem;border-radius:50px;cursor:pointer;transition:.16s;text-transform:uppercase;}
.size-presets button:hover{border-color:rgba(244,241,234,.4);color:var(--paper);}
.size-presets button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}

.qty-ctrl{display:flex;align-items:center;gap:.2rem;}
.qty-ctrl button{width:42px;height:42px;border-radius:11px;border:1px solid rgba(244,241,234,.18);background:rgba(244,241,234,.05);color:var(--paper);font-size:1.3rem;cursor:pointer;transition:.16s;display:grid;place-items:center;}
.qty-ctrl button:hover{border-color:rgba(244,241,234,.45);background:rgba(244,241,234,.1);}
.qty-ctrl .qv{min-width:64px;text-align:center;font-size:1.2rem;font-weight:600;font-variant-numeric:tabular-nums;}

/* result rail */
.cfg-rail{background:rgba(244,241,234,.03);border-left:1px solid rgba(244,241,234,.1);padding:clamp(1.8rem,4vw,3rem);display:flex;flex-direction:column;}
.cfg-rail .rl{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,241,234,.45);}
.cfg-price{font-size:clamp(2.6rem,6vw,3.7rem);font-weight:600;letter-spacing:-0.04em;line-height:1;margin:.7rem 0 .15rem;font-variant-numeric:tabular-nums;}
.cfg-price .cur{font-size:.42em;color:var(--accent-soft);font-weight:500;margin-right:.15em;}
.cfg-price .approx{font-family:var(--mono);font-size:.3em;color:rgba(244,241,234,.4);vertical-align:.5em;margin-right:.2em;letter-spacing:0;}
.cfg-perunit{font-family:var(--mono);font-size:.74rem;color:rgba(244,241,234,.5);}
.cfg-meta{margin-top:1.6rem;display:flex;flex-direction:column;gap:.1rem;border-top:1px solid rgba(244,241,234,.1);padding-top:1.4rem;}
.cfg-meta .mrow{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(244,241,234,.07);font-size:.86rem;}
.cfg-meta .mrow:last-child{border-bottom:none;}
.cfg-meta .mrow .k{color:rgba(244,241,234,.5);}
.cfg-meta .mrow .v{font-weight:600;text-align:right;}
.cfg-rail .btn{width:100%;margin-top:1.6rem;}
.cfg-rail .fineprint{font-size:.74rem;color:rgba(244,241,234,.4);margin-top:1rem;line-height:1.5;}
.cfg-rail .fineprint b{color:rgba(244,241,234,.7);font-weight:600;}

@media(max-width:820px){.cfg-grid{grid-template-columns:1fr;}.cfg-rail{border-left:none;border-top:1px solid rgba(244,241,234,.1);}}

/* ---------- WORK / CASE STUDIES (compact tile grid) ---------- */
.work-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,1.8vw,1.5rem);}
.work:first-child{grid-column:span 2;}
.work:first-child .wmedia{aspect-ratio:16/9;}
.work:first-child .wbody h3{font-size:clamp(1.2rem,1.9vw,1.55rem);}
.work{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-l);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;}
.work:hover{border-color:var(--hair-2);box-shadow:var(--shadow-lg);transform:translateY(-5px);}
.work .wmedia{order:-1;aspect-ratio:16/11;position:relative;overflow:hidden;background:var(--surface-2);border-bottom:1px solid var(--hair);}
.work .wmedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;transition:transform 1s var(--ease);}
.work:hover .wmedia img{transform:scale(1.07);}
.work .wmedia .cph{position:absolute;inset:0;display:grid;place-items:center;background:var(--surface-2);}
.work .wmedia .cph .big{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4vw,3rem);color:var(--hair-2);letter-spacing:-0.02em;}
.work .wmedia .gridline{position:absolute;inset:0;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:28px 28px;opacity:.5;}
.work .wbody{padding:clamp(1.05rem,1.8vw,1.45rem);display:flex;flex-direction:column;flex:1;}
.work .wbody .wnum{display:none;}
.work .wbody .wtag{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;}
.work .wbody h3{font-size:clamp(1.05rem,1.5vw,1.28rem);max-width:none;margin-bottom:.5rem;line-height:1.22;letter-spacing:-0.02em;}
.work .wbody p{color:var(--ink-2);font-size:.85rem;max-width:none;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.work .wbody .wres{margin-top:auto;padding-top:1rem;align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;font-family:var(--hand);font-style:italic;font-weight:400;font-size:1.18rem;line-height:1;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-line);padding:.34rem .72rem .4rem;border-radius:50px;}
@media(max-width:900px){.work-list{grid-template-columns:1fr 1fr;}.work:first-child{grid-column:span 2;}}
@media(max-width:560px){.work-list{grid-template-columns:1fr;}.work:first-child{grid-column:auto;}.work .wmedia,.work:first-child .wmedia{aspect-ratio:16/9;}}

/* ---------- CAPABILITIES ---------- */
.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-l);overflow:hidden;}
.cap{background:var(--surface);padding:clamp(1.4rem,2.6vw,2rem);display:flex;flex-direction:column;transition:background .25s;min-height:178px;position:relative;}
.cap:hover{background:var(--surface-2);}
.cap .cn{position:absolute;top:clamp(1.2rem,2.4vw,1.7rem);right:clamp(1.2rem,2.4vw,1.7rem);font-family:var(--mono);font-size:.7rem;color:var(--ink-3);letter-spacing:.06em;}
.cap-ic{width:62px;height:62px;border-radius:14px;border:1px solid var(--hair);background:var(--surface-2);display:grid;place-items:center;margin-bottom:1rem;transition:border-color .25s,background .25s;}
.cap-ic img{width:auto;height:auto;max-width:47px;max-height:47px;display:block;}
.cap:hover .cap-ic{border-color:var(--hair-2);}
.cap.feat .cap-ic{border-color:var(--accent-line);background:color-mix(in srgb,#fff 62%,var(--accent-soft));}
.cap h3{font-size:clamp(1.25rem,2vw,1.55rem);margin:.9rem 0 .65rem;}
.cap p{font-size:.9rem;color:var(--ink-2);line-height:1.6;flex:1;}
.cap .ctag{align-self:flex-start;margin-top:1.3rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--hair-2);padding:.35rem .65rem;border-radius:50px;}
.cap.feat{background:var(--accent-soft);box-shadow:inset 0 3px 0 var(--accent);}
.cap.feat:hover{background:color-mix(in srgb,var(--accent-soft) 86%,var(--accent));}
.cap.feat .cn{color:var(--accent-d);}
.cap.feat .ctag{color:var(--accent-d);border-color:var(--accent-line);background:color-mix(in srgb,#fff 55%,var(--accent-soft));}
.cap .ctag.ctag-hand{font-family:var(--hand);font-style:italic;font-size:1.32rem;line-height:1;text-transform:none;letter-spacing:0;font-weight:400;padding-top:.2rem;padding-bottom:.2rem;}
@media(max-width:1020px){.cap-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.cap-grid{grid-template-columns:1fr;}}

/* ---------- GALLERY (auto-flow marquee) ---------- */
.gal{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
.gal-track{display:flex;flex:0 0 auto;width:max-content;animation:galflow 75s linear infinite;}
.gal:hover .gal-track{animation-play-state:paused;}
.gcell{flex:0 0 clamp(210px,24vw,290px);margin-right:14px;position:relative;overflow:hidden;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--hair-2);cursor:pointer;aspect-ratio:4/3;}
.gcell img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.gcell:hover img{transform:scale(1.06);}
@keyframes galflow{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.gal-track{animation:none;}.gal{overflow-x:auto;}}
.gcell .gph{position:absolute;inset:0;display:grid;place-items:center;color:var(--hair-2);}
.gcell .gtag{position:absolute;left:11px;bottom:11px;z-index:2;font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);background:color-mix(in srgb,var(--ink) 75%,transparent);backdrop-filter:blur(3px);padding:.3rem .55rem;border-radius:50px;opacity:0;transform:translateY(6px);transition:.3s var(--ease);}
.gcell:hover .gtag{opacity:1;transform:none;}
.gcell .zoom{position:absolute;top:11px;right:11px;z-index:2;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:blur(4px);border:1px solid var(--hair);display:grid;place-items:center;opacity:0;transition:.3s var(--ease);}
.gcell:hover .zoom{opacity:1;}
@media(max-width:560px){.gcell{flex-basis:62vw;}}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:9000;background:color-mix(in srgb,var(--ink) 88%,transparent);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);}
.lightbox.show{display:flex;animation:lbin .3s var(--ease);}
@keyframes lbin{from{opacity:0;}to{opacity:1;}}
.lightbox .lb-fig{max-width:min(900px,92vw);max-height:86vh;border-radius:var(--r);overflow:hidden;border:1px solid rgba(244,241,234,.2);background:var(--surface-2);position:relative;}
.lightbox .lb-fig img{max-height:86vh;width:auto;object-fit:contain;}
.lightbox .lb-ph{width:min(700px,88vw);aspect-ratio:4/3;display:grid;place-items:center;font-family:var(--mono);font-size:.8rem;color:var(--ink-3);}
.lightbox .lb-close{position:absolute;top:-46px;right:0;width:38px;height:38px;border-radius:50%;background:rgba(244,241,234,.12);border:1px solid rgba(244,241,234,.25);color:var(--paper);font-size:1.2rem;cursor:pointer;display:grid;place-items:center;}
.lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(244,241,234,.12);border:1px solid rgba(244,241,234,.25);color:var(--paper);cursor:pointer;display:grid;place-items:center;font-size:1.2rem;transition:.16s;}
.lightbox .lb-nav:hover{background:rgba(244,241,234,.22);}
.lightbox .lb-prev{left:-64px;}.lightbox .lb-next{right:-64px;}
@media(max-width:760px){.lightbox .lb-prev{left:8px;}.lightbox .lb-next{right:8px;}}

/* ---------- REVIEWS ---------- */
.rev-top{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-bottom:2.4rem;padding:1.5rem clamp(1.4rem,3vw,2.2rem);background:var(--surface);border:1px solid var(--hair-2);border-radius:var(--r);}
.rev-top .big{font-size:2.8rem;font-weight:600;letter-spacing:-0.04em;line-height:1;}
.rev-top .stars-lg{color:var(--accent);font-size:1.1rem;letter-spacing:.1em;}
.rev-top .rt-meta{font-size:.9rem;color:var(--ink-2);}
.rev-live{margin-left:auto;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);}
.rev-live .ld{width:7px;height:7px;border-radius:50%;background:oklch(0.62 0.14 152);box-shadow:0 0 0 0 oklch(0.62 0.14 152 / .5);animation:livePulse 1.9s var(--ease) infinite;}
@keyframes livePulse{0%{box-shadow:0 0 0 0 oklch(0.62 0.14 152 / .5);}70%{box-shadow:0 0 0 8px oklch(0.62 0.14 152 / 0);}100%{box-shadow:0 0 0 0 oklch(0.62 0.14 152 / 0);}}
.rev-top .rt-logo{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--hair-2);padding:.5rem .85rem;border-radius:50px;transition:color .18s,border-color .18s;}
a.rt-logo:hover{color:var(--accent);border-color:var(--accent-line);}
.etsy-wm{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:700;font-size:1.05em;color:#F1641E;letter-spacing:-0.01em;text-transform:none;}
.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.rcard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:1.4rem 1.5rem;display:flex;flex-direction:column;min-height:184px;transition:opacity .42s var(--ease),transform .42s var(--ease),border-color .25s,box-shadow .25s;}
.rcard:hover{border-color:var(--hair-2);box-shadow:var(--shadow);}
.rcard .stars{color:var(--accent);letter-spacing:.1em;font-size:.82rem;margin-bottom:.7rem;}
.rcard .txt{font-size:.95rem;color:var(--ink);line-height:1.58;flex:1;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
.rcard .rfoot{margin-top:1.1rem;}
.rcard .meta{font-family:var(--mono);font-size:.66rem;color:var(--ink-3);display:flex;flex-direction:column;gap:.28rem;}
.rcard .meta b{color:var(--ink-2);font-weight:600;}
.rcard .prod{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);}
.rcard .rverif{display:flex;align-items:center;gap:.42rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--hair);font-family:var(--mono);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);}
.rcard .rverif .vdot{width:5px;height:5px;border-radius:50%;background:oklch(0.62 0.13 152);flex-shrink:0;}
.rcard.swap-out{opacity:0;transform:translateY(8px) scale(.985);}
.rcard.swap-in{animation:rcardIn .46s var(--ease);}
@keyframes rcardIn{from{opacity:0;transform:translateY(-8px) scale(.985);}to{opacity:1;transform:none;}}
@media(max-width:560px){.rev-grid{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.rcard,.rcard.swap-out,.rcard.swap-in{transition:none;animation:none;transform:none;}.rev-live .ld{animation:none;}}

/* ---------- ABOUT ---------- */
.about{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:start;}
.about-copy,.about-side{min-width:0;}
.about-copy p{font-size:1rem;color:var(--ink-2);line-height:1.66;margin-bottom:.9rem;}
.about-copy p strong{color:var(--ink);font-weight:600;}
.about-side{display:flex;flex-direction:column;gap:12px;}
.fact{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:1.3rem 1.5rem;}
.fact .fn{font-size:1.8rem;font-weight:600;letter-spacing:-0.03em;}
.fact .fl{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:.3rem;}
.clients{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--hair);}
.clients .cl{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.9rem;}
.logos{display:flex;min-width:0;max-width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.logos-track{display:flex;flex:0 0 auto;width:max-content;animation:logoflow 44s linear infinite;}
.logos:hover .logos-track{animation-play-state:paused;}
@keyframes logoflow{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.logos-track{animation:none;}}
.logo{flex:0 0 auto;width:clamp(116px,13vw,150px);height:64px;margin-right:10px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;transition:transform .3s var(--ease),border-color .3s,background .3s;}
.logo-empty{border-style:dashed;}
.logo-ph{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:lowercase;color:var(--ink-3);opacity:.5;}
.logo img{max-height:46px;max-width:84%;object-fit:contain;filter:grayscale(1);opacity:.55;transition:filter .3s var(--ease),opacity .3s,transform .3s;}
.logo .logo-fb{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:0 .6rem;line-height:1.3;transition:color .3s var(--ease);align-items:center;justify-content:center;}
.logo:hover{border-color:var(--accent-line);background:#fff;transform:translateY(-3px);box-shadow:var(--shadow);}
.logo:hover img{filter:none;opacity:1;transform:scale(1.04);}
.logo.logo-big img{max-width:84%;max-height:46px;}
.logo:hover .logo-fb{color:var(--accent-d);}

/* team cards */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1.5rem 0 .2rem;}
.tmember{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:1.1rem 1.15rem;transition:.25s var(--ease);}
.tmember:hover{border-color:var(--accent-line);box-shadow:var(--shadow);transform:translateY(-2px);}
.tavatar{width:54px;height:54px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--accent-soft);display:grid;place-items:center;position:relative;}
.tavatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.tavatar .tinit{font-family:var(--mono);font-size:1.1rem;font-weight:600;color:var(--accent-d);}
.tinfo{display:flex;flex-direction:column;}
.tmember .tname{font-weight:600;font-size:1rem;line-height:1.15;color:var(--ink);}
.tmember .trole{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-top:.3rem;}
.tmember .tdesc{font-size:.82rem;color:var(--ink-2);line-height:1.48;margin-top:.55rem;}
@media(max-width:680px){.team{grid-template-columns:1fr;}.tmember{flex-direction:row;align-items:center;gap:.9rem;}.tmember .tinfo{flex:1;}}
@media(max-width:820px){.about{grid-template-columns:1fr;}}

/* ---------- BLOG ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.4rem);}
.bpost{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-l);overflow:hidden;transition:.28s var(--ease);}
.bpost:hover{border-color:var(--hair-2);box-shadow:var(--shadow);transform:translateY(-3px);}
.bmedia{position:relative;aspect-ratio:16/10;background:var(--surface-2);overflow:hidden;}
.bmedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.bpost:hover .bmedia img{transform:scale(1.04);}
.bmedia .gridline{position:absolute;inset:0;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:26px 26px;opacity:.5;}
.bmedia .bph{position:absolute;inset:0;display:grid;place-items:center;}
.bmedia .bph .mono{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);}
.bcat{position:absolute;top:.85rem;left:.85rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(4px);border:1px solid var(--hair-2);padding:.32rem .6rem;border-radius:50px;}
.bbody{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1;}
.bbody h3{font-size:1.08rem;line-height:1.25;letter-spacing:-0.02em;margin-bottom:.9rem;}
.bbody .bmeta{margin-top:auto;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);}
.bbody .bmeta .ld{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;}
@media(max-width:820px){.blog-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.blog-grid{grid-template-columns:1fr;}}

/* ---------- CONTACT ---------- */
.contact-in{border:1px solid var(--hair-2);border-radius:var(--r-l);overflow:hidden;display:grid;grid-template-columns:.82fr 1.18fr;background:var(--surface);}
.contact-info{background:var(--ink);color:var(--paper);padding:clamp(1.8rem,4vw,2.8rem);display:flex;flex-direction:column;}
.contact-info h3{color:var(--paper);font-size:clamp(1.6rem,3vw,2.1rem);max-width:16ch;}
.contact-info .ci-sub{color:rgba(244,241,234,.6);font-size:.94rem;margin-top:.9rem;max-width:34ch;line-height:1.6;}
.citem{padding:1rem 0;border-bottom:1px solid rgba(244,241,234,.12);}
.citem .cl{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:.3rem;}
.citem .cv{font-size:.98rem;}
.citem .cv a:hover{color:var(--accent-soft);}
.ci-stack{margin-top:auto;padding-top:1.5rem;}
.etsy-link{display:inline-flex;align-items:center;gap:.55rem;color:var(--accent-soft);font-weight:600;font-size:.92rem;margin-top:1.2rem;}
.citem-wa .cv{display:flex;}
.wa-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#25D366;color:#fff;transition:transform .2s var(--ease),filter .2s;}
.wa-link:hover{transform:translateY(-2px);filter:brightness(1.06);}
.wa-link svg{width:24px;height:24px;fill:currentColor;}
.form{padding:clamp(1.8rem,4vw,2.8rem);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.fg{margin-bottom:1.1rem;}
.fl{font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.5rem;display:block;}
.form input,.form select,.form textarea{width:100%;background:var(--paper);border:1px solid var(--hair-2);border-radius:var(--r-s);padding:.82rem .95rem;font-family:var(--sans);font-size:1rem;color:var(--ink);transition:border-color .16s,box-shadow .16s;}
.form input::placeholder,.form textarea::placeholder{color:var(--ink-3);}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.form textarea{resize:vertical;min-height:120px;}
.form-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.4rem;}
.form-foot .fn{font-size:.78rem;color:var(--ink-3);max-width:30ch;}
.fstatus{display:none;margin-top:1rem;padding:.9rem 1.1rem;border-radius:var(--r-s);font-size:.88rem;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-d);}
.brief-pill{display:none;margin-bottom:1.1rem;padding:.7rem .9rem;border-radius:var(--r-s);background:var(--accent-soft);border:1px solid var(--accent-line);font-size:.82rem;color:var(--accent-d);align-items:center;gap:.55rem;}
.brief-pill.show{display:flex;}
.brief-pill .mono{font-weight:600;}
@media(max-width:820px){.contact-in{grid-template-columns:1fr;}.frow{grid-template-columns:1fr;}}

/* ---------- popup ---------- */
.overlay{display:none;position:fixed;inset:0;z-index:9999;background:color-mix(in srgb,var(--ink) 55%,transparent);backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:1.5rem;}
.overlay.show{display:flex;}
.pop{background:var(--surface);border:1px solid var(--hair-2);border-radius:var(--r);padding:2.4rem 2.1rem;max-width:400px;width:100%;text-align:center;animation:pop .35s var(--ease);box-shadow:var(--shadow-lg);position:relative;}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.97);}to{opacity:1;transform:none;}}
.pop .mark{width:52px;height:52px;border-radius:50%;background:var(--accent);display:grid;place-items:center;margin:0 auto 1.1rem;}
.pop .mark svg{width:24px;height:24px;stroke:var(--on-accent);}
.pop .pt{font-size:1.55rem;margin-bottom:.55rem;}
.pop .pm{font-size:.94rem;color:var(--ink-2);line-height:1.6;margin-bottom:1.5rem;}
.pop .close{position:absolute;top:.9rem;right:1.1rem;background:none;border:none;color:var(--ink-3);font-size:1.4rem;cursor:pointer;line-height:1;}
