/* ======================================================================
   KAPA ART v2 — Apple-style cards + modal, KAPA editorial brand
   ====================================================================== */
:root{
  --bone:#F4F0E7;
  --bone-2:#ECE6D8;
  --ink:#16140F;
  --ink-2:#3a352b;
  --muted:#8c8473;
  --accent:#E5431D;
  --accent-ink:#fff;
  --rule:rgba(22,20,15,.16);
  --rule-strong:rgba(22,20,15,.85);
  --card:#fbf9f3;
  --surface:rgba(255,255,255,.54);
  --surface-strong:rgba(255,255,255,.78);
  --hairline:rgba(22,20,15,.12);
  --hairline-strong:rgba(22,20,15,.22);
  --nav-h:76px;
  --nav-bg:rgba(244,240,231,.84);
  --disp:'Sofia Sans Condensed', sans-serif;
  --serif:'Source Serif 4', Georgia, serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;
  --maxw:1320px;
  --pad:clamp(20px,5vw,72px);
  --radius:18px;
  --door-gap:52px;
  --door-minh:720px;
  --btn-radius:999px;
  --lead-scale:1;
  --bw-strong:2.5px;
  --bw:1.5px;
  --lead:1;
  --body-figs:lining-nums;
  --hero-scale:1;
  --hero-scrim:1;
  --text-scale:1;
  --disp-scale:1;
  --door-title-scale:1;
  --disp-tracking:-0.01em;
  --fs-section:calc(clamp(30px,4.6vw,58px) * var(--disp-scale,1));
  --soft-blur:blur(22px) saturate(1.25);
  --lift-shadow:0 28px 60px rgba(22,20,15,.20),0 12px 26px rgba(22,20,15,.12),0 2px 8px rgba(22,20,15,.08);
  --lift-shadow-soft:0 18px 38px rgba(22,20,15,.14),0 8px 18px rgba(22,20,15,.10);
  --ambient-shadow:0 14px 34px rgba(22,20,15,.08),0 2px 8px rgba(22,20,15,.05);
  /* mixed border system */
  --border-hero:2.5px solid var(--ink);
  --border-card:1px solid var(--hairline-strong);
  --border-modal:0.5px solid rgba(255,255,255,.6);
  --border-interactive:1.5px solid var(--rule-strong);
  --border-glass:rgba(255,255,255,.38);
  --border-accent-cap:60px;
  --shadow-modal:0 40px 100px rgba(0,0,0,.28),0 16px 36px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.45);
  --shadow-card-soft:0 18px 38px rgba(22,20,15,.14),0 8px 18px rgba(22,20,15,.10);
}
body[data-theme="white"]{ --bone:#FBFAF7;--bone-2:#EFEDE6;--card:#ffffff;--surface:rgba(255,255,255,.66);--surface-strong:rgba(255,255,255,.86);--nav-bg:rgba(251,250,247,.76); }
/* dark theme retired — «ένα θέμα, τέλεια εκτελεσμένο» */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;background:var(--bone);color:var(--ink);
  font-family:var(--serif);font-size:calc(18px * var(--text-scale,1));line-height:calc(1.55 * var(--lead,1));
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-optical-sizing:auto;font-kerning:normal;
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;
  font-variant-numeric:var(--body-figs,lining-nums) proportional-nums;
  overflow-x:hidden;
  background-image:linear-gradient(180deg,rgba(255,255,255,.34),transparent 340px);
}
body[data-opsz="off"]{font-optical-sizing:none;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--accent);color:#fff;}
button{font-family:inherit;cursor:pointer;}

/* paper grain */
body[data-grain="on"]::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}

/* ---------- type helpers ---------- */
.kicker{
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent);
  display:inline-flex;align-items:center;gap:10px;
}
.kicker::before{content:"";width:26px;height:2px;background:var(--accent);display:inline-block;flex:none;}
.kicker.plain::before{display:none;}
.disp{font-family:var(--disp);font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:var(--disp-tracking,-.01em);}
.serif-lead{font-family:var(--serif);font-size:clamp(19px,2vw,23px);line-height:1.5;color:var(--ink-2);}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}

/* ======================================================================
   MICRO-TYPOGRAPHY & EDITORIAL RULES — v2 type upgrade
   On-brand refinement: engineering numerals, optical wrapping,
   and a coherent section-head rule system.
   ====================================================================== */
/* Engineering numerals — mono labels, specs & stats lock to tabular,
   slashed-zero figures so columns align and 0/O never read ambiguous. */
.kicker,.mono,.equip-cat,.spec-row span,.spec-row strong,.equip-specs span,.equip-specs strong,
.about-stat span,.ahero-side .sl,.hh-caption,.hh-kicker,.process-card span,.priv-story-details span,
.equip-highlights span,.lang-toggle button{
  font-variant-numeric:tabular-nums slashed-zero;font-feature-settings:"tnum" 1,"zero" 1,"kern" 1;
}
.about-stat strong,.ahero-side .sn,.equip-modal-side h3{
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"kern" 1;
}

/* Display headings — balanced ragging on auto-wrapped titles.
   Manual-break heroes (.hh-h1 / .ahero h1) control their own lines. */
.sec-head h2,.about-title,.about-sec-title,.equip-card h3,.process-card h3,
.equip-tip h4,.equip-modal-side h3,.equip-modal-main h2{text-wrap:balance;}
/* Reading copy — prettier last-line rag + tunable leading. */
.about-story p,.serif-lead,.equip-card p,.process-card p,.equip-modal-main p,
.ahero-lead,.home-hero-lead,.hh-lead{text-wrap:pretty;}
.about-story p,.serif-lead{line-height:calc(1.58 * var(--lead,1));}

/* ---- Editorial section-head rule system ---- */
.sec-head{position:relative;}
body[data-rules="hairline"] .sec-head{border-top:1px solid var(--rule);padding-top:clamp(16px,2vw,26px);}
body[data-rules="bold"] .sec-head{border-top:var(--bw-strong) solid var(--ink);padding-top:clamp(16px,2vw,26px);}
body[data-rules="bold"] .sec-head::before{
  content:"";position:absolute;top:calc(-1 * var(--bw-strong));left:0;width:60px;height:var(--bw-strong);
  background:var(--accent);
}
body[data-rules="accent"] .sec-head{border-top:var(--bw-strong) solid var(--accent);padding-top:clamp(16px,2vw,26px);}

#app{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;padding-top:var(--nav-h);}
body[data-scrolled="1"]{--nav-h:62px;}

/* ======================================================================
   NAV
   ====================================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;width:100%;z-index:120;
  background:var(--nav-bg);
  border-bottom:1px solid var(--hairline);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.52);
  backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08);
  --nav-ether:0;
}
.nav::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,.42) 0%,transparent 55%),
    linear-gradient(102deg,transparent 18%,rgba(229,67,29,calc(var(--nav-ether)*.055)) 52%,transparent 82%);
  opacity:calc(.25 + var(--nav-ether) * .75);
  transition:opacity .42s var(--ease,cubic-bezier(.22,.61,.36,1));
}
.nav::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg,var(--accent) 0%,rgba(229,67,29,.42) 42%,transparent 100%);
  transform:scaleX(calc(.12 + var(--nav-ether) * .88));
  transform-origin:left center;
  opacity:var(--nav-ether);
  transition:transform .5s var(--ease,cubic-bezier(.22,.61,.36,1)),opacity .35s;
}
body[data-scrolled="1"] .nav{
  background:rgba(251,248,242,.94);
  border-bottom-color:var(--hairline-strong);
  box-shadow:0 12px 34px rgba(22,20,15,.09),inset 0 1px 0 rgba(255,255,255,.65);
}
.nav-inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:var(--nav-h);display:flex;align-items:center;gap:clamp(10px,1.4vw,20px);transition:height .38s var(--ease,cubic-bezier(.22,.61,.36,1));}
body[data-scrolled="1"] .nav-inner{height:var(--nav-h);}
.logo{display:flex;align-items:center;gap:11px;cursor:pointer;background:none;border:none;padding:0;color:var(--ink);flex-shrink:0;}
.logo-mark{height:34px;width:auto;display:block;flex-shrink:0;transition:height .38s var(--ease,cubic-bezier(.22,.61,.36,1));}
body[data-scrolled="1"] .logo-mark{height:29px;}
.logo .mark{font-family:var(--disp);font-weight:700;font-size:26px;letter-spacing:.02em;line-height:1;color:var(--ink);}
.logo .mark b{color:var(--accent);}
.foot-mark{height:clamp(38px,4vw,46px);width:auto;display:block;flex-shrink:0;color:var(--ink);}
.nav-spacer{flex:1;min-width:8px;}
.nav-links{
  display:flex;align-items:center;gap:1px;
  padding:4px;border-radius:999px;
  background:rgba(255,255,255,.28);
  border:1px solid var(--hairline);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
}
.nav-link{
  font-family:var(--disp);font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.05em;
  padding:8px 13px;color:var(--ink-2);position:relative;background:transparent;border:none;border-radius:999px;
  transition:color .2s,background .2s,box-shadow .2s;
  white-space:nowrap;
}
.nav-link:hover{color:var(--ink);background:rgba(255,255,255,.55);}
.nav-link::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .26s cubic-bezier(.2,.7,.2,1);}
.nav-link:hover::after{transform:scaleX(.45);}
.nav-link.active{color:var(--accent);background:rgba(255,255,255,.72);box-shadow:0 2px 10px rgba(22,20,15,.06);}
.nav-link.active::after{transform:scaleX(1);}

/* audience toggle in nav */
.aud-switch{display:flex;flex-shrink:0;border:1px solid var(--hairline-strong);border-radius:999px;overflow:hidden;background:var(--surface);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);}
.nav-util{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.aud-switch button{
  font-family:var(--disp);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.05em;
  background:none;border:none;padding:9px 15px;color:var(--ink);transition:background .2s,color .2s,box-shadow .2s;
  min-height:44px;min-width:44px;white-space:nowrap;
}
.aud-switch button + button{border-left:1px solid var(--hairline);}
.aud-switch button.on{background:var(--ink);color:var(--bone);box-shadow:0 8px 18px rgba(22,20,15,.16);}
.aud-switch button.on[data-aud="pro"],.aud-switch button.on[data-aud="priv"]{background:var(--accent);color:#fff;}

.lang-toggle{display:flex;flex-shrink:0;border:1px solid var(--hairline-strong);border-radius:999px;overflow:hidden;background:var(--surface);}
.lang-toggle button{font-family:var(--mono);font-size:12px;font-weight:500;background:none;border:none;padding:10px 14px;color:var(--ink);letter-spacing:.05em;min-height:44px;min-width:44px;white-space:nowrap;}

.mobile-menu-toggle{display:none;align-items:center;gap:9px;border:1px solid var(--hairline-strong);border-radius:999px;background:var(--ink);color:var(--bone);padding:10px 13px 10px 15px;min-height:44px;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 22px rgba(22,20,15,.14);}
.mobile-menu-toggle i{position:relative;width:14px;height:10px;display:block;}
.mobile-menu-toggle i::before,.mobile-menu-toggle i::after{content:"";position:absolute;left:0;width:14px;height:2px;border-radius:999px;background:currentColor;transition:transform .22s ease,top .22s ease;}
.mobile-menu-toggle i::before{top:1px;}
.mobile-menu-toggle i::after{top:7px;}
.nav.mobile-open .mobile-menu-toggle i::before{top:4px;transform:rotate(45deg);}
.nav.mobile-open .mobile-menu-toggle i::after{top:4px;transform:rotate(-45deg);}
.mobile-nav-panel{display:none;}
/* density step on mid-width nav — keeps every nav label intact */
@media (max-width:1280px){
  .nav-link{font-size:12.5px;padding:8px 10px;letter-spacing:.04em;}
  .nav-links{gap:0;}
  .aud-switch button{font-size:12px;padding:9px 12px;}
  .lang-toggle button{padding:10px 11px;}
}
@media (max-width:1080px) and (min-width:861px){
  .aud-switch button{font-size:11.5px;padding:9px 10px;letter-spacing:.03em;}
}
.lang-toggle button.on{background:var(--ink);color:var(--bone);}



/* ======================================================================
   PAGE / SECTION
   ====================================================================== */
/* Page entrance — transform-only rise (never traps content invisible:
   if the animation engine defers, the resting state stays fully opaque). */
.page{flex:1;}
@media (prefers-reduced-motion:no-preference){
  .page{animation:pageIn .5s cubic-bezier(.2,.7,.2,1);}
}
@keyframes pageIn{from{transform:translateY(10px);}to{transform:none;}}
.section{padding-top:clamp(52px,7vw,96px);padding-bottom:clamp(52px,7vw,96px);}
.section.tight{padding-top:clamp(38px,4.4vw,64px);padding-bottom:clamp(38px,4.4vw,64px);}

/* ---------- about / studio ---------- */
.about-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(34px,5vw,86px);align-items:start;}
.about-title{font-size:var(--fs-section);line-height:.94;margin:14px 0 18px;max-width:760px;}
.about-story{margin-top:clamp(26px,3vw,42px);display:flex;flex-direction:column;gap:18px;max-width:66ch;}
.about-story p{font-family:var(--serif);font-size:clamp(18px,1.45vw,23px);line-height:1.58;color:var(--ink-2);margin:0;}
.about-visual{
  position:relative;border:var(--border-hero);background:var(--bone-2);min-height:560px;overflow:hidden;
  border-radius:calc(var(--radius) + 8px);box-shadow:var(--ambient-shadow);
  transition:transform .34s cubic-bezier(.2,.7,.2,1), box-shadow .34s cubic-bezier(.2,.7,.2,1), border-color .34s;
  will-change:transform;
}
.about-visual:hover{transform:translateY(-12px) scale(1.014);box-shadow:var(--lift-shadow);border-color:color-mix(in srgb,var(--accent) 58%,transparent);}
.about-visual image-slot{
  display:block;width:100%;height:100%;min-height:560px;--slot-bg:var(--bone-2);
  transform:scale(1);transition:transform .42s cubic-bezier(.2,.7,.2,1), filter .42s cubic-bezier(.2,.7,.2,1);will-change:transform;
}
.about-visual:hover image-slot{transform:scale(1.035);filter:saturate(1.04) contrast(1.02);}
.about-stats{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(244,240,231,.92);border-top:var(--bw-strong) solid var(--ink);}
.about-stat{padding:18px 16px;border-right:1px solid var(--rule);min-height:96px;}
.about-stat:last-child{border-right:none;}
.about-stat strong{display:block;font-family:var(--disp);font-size:clamp(28px,3vw,44px);line-height:.9;color:var(--accent);}
.about-stat span{display:block;margin-top:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);line-height:1.35;}
.about-sec-title{font-size:var(--fs-section);line-height:.94;margin:12px 0 12px;}
.equip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(18px,2vw,28px);}
.equip-card{background:var(--card);border:var(--border-interactive);border-radius:var(--radius);overflow:hidden;box-shadow:var(--ambient-shadow);
  transition:transform .34s cubic-bezier(.2,.7,.2,1), box-shadow .34s cubic-bezier(.2,.7,.2,1), border-color .34s;will-change:transform;
  transform-style:preserve-3d;perspective:900px;}
.equip-card:hover{transform:translateY(-8px) rotateY(2deg) scale(1.012);box-shadow:var(--lift-shadow);border-color:color-mix(in srgb,var(--accent) 58%,transparent);}
.equip-img{height:260px;border-bottom:var(--bw) solid var(--rule-strong);background:var(--bone-2);overflow:hidden;}
.equip-img image-slot{display:block;width:100%;height:100%;--slot-bg:var(--bone-2);
  transform:scale(1);transition:transform .42s cubic-bezier(.2,.7,.2,1), filter .42s cubic-bezier(.2,.7,.2,1);will-change:transform;}
.equip-card:hover .equip-img image-slot{transform:scale(1.035);filter:saturate(1.04) contrast(1.02);}
.equip-body{padding:24px;}
.equip-cat{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
.equip-card h3{font-family:var(--disp);font-size:clamp(24px,2vw,34px);line-height:1;text-transform:uppercase;margin:12px 0 12px;}
.equip-card p{font-family:var(--serif);font-size:calc(17px * var(--text-scale,1));line-height:calc(1.52 * var(--lead,1));color:var(--ink-2);margin:0 0 20px;}
.equip-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px;}
.equip-more{
  display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-family:var(--disp);font-size:14px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--accent);
}
.equip-more .arr{transition:transform .2s;}
.equip-card:hover .equip-more .arr{transform:translateX(6px);}
.spec-list{border-top:1px solid var(--rule);}
.spec-row{display:grid;grid-template-columns:.82fr 1.18fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--hairline);}
.spec-row span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.spec-row strong{font-family:var(--disp);font-size:16px;text-transform:uppercase;color:var(--ink);}

.equip-modal-scrim{
  position:fixed;inset:0;z-index:96;background:rgba(18,16,11,.44);opacity:0;
  display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:clamp(14px,3.5vw,48px);
  backdrop-filter:blur(22px) saturate(1.12);-webkit-backdrop-filter:blur(22px) saturate(1.12);
}
.equip-modal{
  width:min(1240px,100%);background:color-mix(in srgb,var(--card) 92%,#fff 8%);border:1px solid var(--hairline-strong);
  border-radius:calc(var(--radius) + 14px);overflow:hidden;box-shadow:0 44px 120px rgba(0,0,0,.32),0 14px 38px rgba(0,0,0,.16);
  transform-origin:top left;will-change:transform,opacity;
}
.equip-modal-close{
  position:sticky;top:16px;float:right;margin:16px 16px -60px 0;z-index:10;width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.54);background:rgba(255,255,255,.78);color:var(--ink);font-size:20px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(0,0,0,.16);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}
.equip-modal-close:hover{background:var(--accent);color:#fff;transform:rotate(90deg) scale(1.05);box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 34%,transparent);}
.equip-modal-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,330px);gap:0;background:#f5f6f6;border-bottom:1px solid var(--hairline);}
.equip-modal-media{
  position:relative;min-height:clamp(420px,54vw,710px);overflow:hidden;background:linear-gradient(180deg,#f8fafb,#eceeed);
  display:flex;align-items:center;justify-content:center;
}
.equip-modal-media image-slot{
  width:100%;height:100%;min-height:clamp(420px,54vw,710px);--slot-bg:transparent;
  transform:scale(1.02);transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .5s cubic-bezier(.2,.7,.2,1);
}
.equip-modal:hover .equip-modal-media image-slot{transform:scale(1.055);filter:saturate(1.04) contrast(1.03);}
.hotspot{
  position:absolute;z-index:4;width:48px;height:48px;border-radius:50%;border:none;background:var(--accent);color:#fff;
  font-family:var(--disp);font-size:31px;line-height:1;display:flex;align-items:center;justify-content:center;
  transform:translate(-50%,-50%);box-shadow:0 18px 40px color-mix(in srgb,var(--accent) 34%,transparent),0 0 0 8px rgba(229,67,29,.12);
  transition:transform .22s,box-shadow .22s,background .22s;
}
.hotspot:hover,.hotspot.active{transform:translate(-50%,-50%) scale(1.12);background:#ff4b2a;box-shadow:0 22px 46px color-mix(in srgb,var(--accent) 42%,transparent),0 0 0 12px rgba(229,67,29,.15);}

/* ---- Equipment focus view — pristine photo, Apple-grade callouts ---- */
.equip-modal-media.efx{
  position:relative;overflow:hidden;cursor:default;
  background:radial-gradient(125% 110% at 50% 0%,#fcfcfb 0%,#eef0f1 58%,#e6e8e9 100%);
}
.efx-stage{position:absolute;inset:0;will-change:transform;transform-origin:50% 50%;
  transition:transform .9s cubic-bezier(.32,.72,0,1);}
.efx-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  -webkit-user-drag:none;user-select:none;}
.efx-grade{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(140% 130% at 50% 40%,transparent 74%,rgba(18,16,12,.10) 100%);}

/* Apple-style callout dot */
.efx-dot{position:absolute;width:30px;height:30px;padding:0;border:none;background:none;cursor:pointer;z-index:5;
  transition:transform .9s cubic-bezier(.32,.72,0,1),opacity .45s ease;}
.efx-dot i{position:absolute;inset:0;border-radius:50%;display:block;
  background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 3px 10px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.65);
  transition:background .3s,box-shadow .3s,transform .3s;}
.efx-dot i::before{content:"";position:absolute;inset:0;margin:auto;width:8px;height:8px;border-radius:50%;
  background:var(--ink);transition:background .3s;}
.efx-dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75);
  opacity:0;pointer-events:none;animation:efxPulse 2.8s ease-out infinite;}
.efx-dot:hover i{transform:scale(1.14);}
.efx-dot.active i{background:var(--accent);
  box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 42%,transparent),inset 0 0 0 1px rgba(255,255,255,.5);}
.efx-dot.active i::before{background:#fff;}
.efx-dot.active::after{border-color:color-mix(in srgb,var(--accent) 65%,transparent);animation:none;opacity:0;}
@keyframes efxPulse{0%{transform:scale(.65);opacity:.65;}70%{opacity:0;}100%{transform:scale(1.5);opacity:0;}}
.equip-modal-media.efx.is-engaged .efx-dot:not(.active){opacity:.4;}
.equip-modal-media.efx.is-engaged .efx-dot::after{animation:none;opacity:0;}
@media (prefers-reduced-motion:reduce){.efx-stage{transition:none;}.efx-dot::after{animation:none;}}

/* Apple-style info card */
.equip-tip.efx-card{justify-content:flex-end;}
.efx-card-top{display:flex;align-items:baseline;gap:9px;}
.efx-num{font-family:var(--disp);font-weight:700;font-size:clamp(32px,3.2vw,50px);line-height:1;color:var(--accent);
  font-variant-numeric:tabular-nums;}
.efx-of{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--muted);font-variant-numeric:tabular-nums;}
.efx-card h4{font-family:var(--disp);font-size:clamp(26px,2.5vw,38px);line-height:1.04;text-transform:uppercase;
  margin:14px 0 0;color:var(--ink);animation:efxFade .5s cubic-bezier(.2,.7,.2,1) both;}
.efx-card p{font-size:clamp(16px,1.25vw,19px);line-height:1.55;color:var(--ink-2);margin:18px 0 0;max-width:42ch;
  animation:efxFade .52s .05s cubic-bezier(.2,.7,.2,1) both;}
@keyframes efxFade{from{transform:translateY(10px);}to{transform:none;}}
.efx-dots{display:flex;gap:7px;margin-top:26px;}
.efx-dotnav{width:8px;height:8px;border-radius:999px;border:none;padding:0;cursor:pointer;
  background:color-mix(in srgb,var(--ink) 22%,transparent);transition:background .25s,width .25s,transform .2s;}
.efx-dotnav:hover{transform:scale(1.25);}
.efx-dotnav.on{background:var(--accent);width:22px;}
.equip-tip{
  align-self:stretch;padding:clamp(24px,3vw,38px);background:rgba(255,255,255,.76);border-left:1px solid rgba(22,20,15,.1);
  display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.equip-tip span{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--accent);}
.equip-tip h4{font-family:var(--disp);font-size:clamp(30px,3vw,46px);line-height:.9;text-transform:uppercase;margin:14px 0 0;color:var(--ink);}
.equip-tip p{font-size:calc(17px * var(--text-scale,1));line-height:calc(1.52 * var(--lead,1));color:var(--ink-2);margin:18px 0 0;}
.equip-modal-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:clamp(24px,4vw,58px);padding:clamp(28px,4vw,56px);}
.equip-modal-main h2{font-family:var(--disp);font-size:clamp(38px,5vw,74px);line-height:.86;text-transform:uppercase;letter-spacing:-.01em;margin:14px 0 0;max-width:12ch;}
.equip-modal-main p{font-size:clamp(18px,1.5vw,22px);line-height:1.55;color:var(--ink-2);margin:22px 0 0;max-width:62ch;}
.equip-highlights{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px;}
.equip-highlights span{
  --pill:#6E4BFF;
  position:relative;isolation:isolate;
  font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;
  color:color-mix(in srgb,var(--pill) 82%,#191512);
  border:1px solid color-mix(in srgb,var(--pill) 40%,transparent);
  background:color-mix(in srgb,var(--pill) 9%,var(--surface));
  border-radius:999px;padding:8px 12px;cursor:default;
  transition:transform .42s cubic-bezier(.2,.7,.2,1),box-shadow .42s cubic-bezier(.2,.7,.2,1),
    border-color .3s,background .3s,color .3s;
}
/* radial glow that fades in on hover — same language as the home doors */
.equip-highlights span::before{
  content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(125% 135% at 50% 0%,color-mix(in srgb,var(--pill) 30%,transparent),transparent 70%);
  opacity:0;transition:opacity .42s;
}
.equip-highlights span:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px color-mix(in srgb,var(--pill) 30%,transparent);
  border-color:color-mix(in srgb,var(--pill) 62%,transparent);
  background:color-mix(in srgb,var(--pill) 15%,var(--surface));
  color:color-mix(in srgb,var(--pill) 94%,#000);
}
.equip-highlights span:hover::before{opacity:1;}
/* fresh palette — deliberately outside the site's red / blue / green / gold */
.equip-highlights span:nth-child(4n+1){--pill:#6E4BFF;}
.equip-highlights span:nth-child(4n+2){--pill:#0EA39B;}
.equip-highlights span:nth-child(4n+3){--pill:#CE2E8C;}
.equip-highlights span:nth-child(4n+4){--pill:#1C9FD0;}
.equip-modal-side{border-left:1px solid var(--hairline);padding-left:clamp(18px,2.5vw,34px);}
.equip-modal-side h3{font-family:var(--disp);font-size:clamp(24px,2.4vw,36px);line-height:.95;text-transform:uppercase;margin:0 0 18px;color:var(--accent);}
.equip-specs{border-top:1px solid var(--rule);}
.equip-specs div{display:grid;grid-template-columns:.85fr 1.15fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--hairline);}
.equip-specs span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.equip-specs strong{font-family:var(--disp);font-size:16px;line-height:1.05;text-transform:uppercase;color:var(--ink);}
.equip-source{
  display:inline-flex;align-items:center;gap:9px;margin-top:20px;font-family:var(--disp);font-size:14px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--accent);
}
.equip-source .arr{transition:transform .2s;}
.equip-source:hover .arr{transform:translateX(6px);}
.about-process{border-top:var(--bw-strong) solid var(--ink);}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,28px);margin-top:28px;}
.process-card{border-top:var(--bw-strong) solid var(--ink);padding-top:18px;}
.process-card span{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--accent);}
.process-card h3{font-family:var(--disp);font-size:clamp(20px,1.6vw,28px);line-height:1;text-transform:uppercase;margin:14px 0 10px;}
.process-card p{font-family:var(--serif);font-size:calc(17px * var(--text-scale,1));line-height:calc(1.52 * var(--lead,1));color:var(--ink-2);margin:0;}
.sec-head{margin-bottom:clamp(28px,3.4vw,46px);}
.sec-head h2{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:var(--fs-section);line-height:.92;letter-spacing:-.01em;margin:14px 0 0;}

/* ======================================================================
   HERO (audience page header)
   ====================================================================== */
.ahero{position:relative;border-bottom:1px solid var(--hairline-strong);overflow:hidden;background:linear-gradient(180deg,var(--surface),transparent);}
.ahero.aud-priv{overflow:visible;}
.ahero-inner{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,88px) var(--pad);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,4vw,56px);align-items:end;}
.ahero h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(50px,8.5vw,128px);line-height:.84;letter-spacing:-.02em;margin:16px 0 0;}
.ahero h1.ahero-h1,.ahero-h1{overflow:visible;}
.ahero-line-wrap{display:block;overflow:hidden;padding:.04em 0;}
.ahero-h1:not(.is-revealed) .ahero-line-wrap{opacity:0;}
.ahero.aud-priv .ahero-main{overflow:visible;}
.ahero.aud-priv .ahero-line-wrap{
  overflow:visible;padding:.06em 0;margin:0 calc(-1 * clamp(8px,2vw,28px));
}
@media (prefers-reduced-motion:reduce){
  .ahero-h1:not(.is-revealed) .ahero-line-wrap{opacity:1;}
}
.ahero-line{display:block;will-change:transform;}
.ahero h1 .ln,.ahero-line.ln{display:block;}
.ahero h1 .ac{color:var(--accent);}
.ahero-lead{margin-top:22px;max-width:46ch;}
.ahero-side{padding-bottom:8px;}
.ahero-side .stat{display:flex;align-items:baseline;gap:14px;padding:15px 0;border-top:1px solid var(--hairline);}
.ahero-side .stat:last-child{border-bottom:1px solid var(--hairline);}
.ahero-side .sn{font-family:var(--disp);font-weight:700;font-size:34px;line-height:1;color:var(--accent);min-width:74px;}
.ahero-side .sl{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;}

/* ======================================================================
   HOME
   ====================================================================== */
/* image hero — crossfading product photos with headline overlay */
.home-hero-img{position:relative;border-bottom:2.5px solid var(--ink);overflow:hidden;min-height:clamp(520px,82vh,860px);display:flex;align-items:flex-end;}
.hh-bg{position:absolute;inset:0;z-index:0;background:#100f0b;}
.hh-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease, transform 6s ease;transform:scale(1.04);}
.hh-photo.on{opacity:1;transform:scale(1);}
.hh-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,6,.25) 0%,rgba(10,9,6,.2) 40%,rgba(10,9,6,.82) 100%);}
.hh-inner{position:relative;z-index:2;width:100%;padding-top:clamp(80px,14vh,160px);padding-bottom:clamp(40px,6vw,72px);}
.hh-kicker{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:.85;}
.hh-h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(54px,9vw,142px);line-height:.84;letter-spacing:-.02em;margin:16px 0 0;color:#fff;}
.hh-h1 .ac{color:var(--accent);}
.hh-h1 span{display:block;}
.hh-lead{font-family:var(--serif);font-size:clamp(18px,1.7vw,22px);line-height:1.5;color:rgba(255,255,255,.9);margin:22px 0 0;max-width:52ch;}
.hh-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;}
.hh-cta .btn{background:#fff;color:var(--ink);}
.hh-cta .btn:hover{background:var(--accent);color:#fff;}
.hh-cta .btn.ghost{background:rgba(255,255,255,.08);color:#fff;border:2px solid rgba(255,255,255,.6);backdrop-filter:blur(4px);}
.hh-cta .btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff;}
.hh-caption{position:absolute;right:var(--pad);bottom:22px;z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);text-align:right;max-width:40ch;}
.hh-dots{position:absolute;left:var(--pad);bottom:24px;z-index:2;display:flex;gap:8px;}
.hh-dots button{position:relative;width:26px;height:3px;border:none;background:rgba(255,255,255,.35);padding:0;cursor:pointer;transition:background .2s;}
.hh-dots button::before{content:"";position:absolute;inset:-20px -8px;}
.hh-dots button.on{background:#fff;}

.home-hero{border-bottom:2.5px solid var(--ink);}
.home-hero-inner{max-width:var(--maxw);margin:0 auto;padding:clamp(44px,6vw,92px) var(--pad) clamp(34px,4vw,56px);}
.home-hero h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(54px,10vw,150px);line-height:.84;letter-spacing:-.02em;margin:18px 0 0;}
.home-hero h1 .ac{color:var(--accent);}
.home-hero-lead{margin-top:24px;max-width:54ch;}

/* photo treatment */
body[data-photofx="bw"] image-slot{filter:grayscale(1) contrast(1.04) !important;}
body[data-photofx="warm"] image-slot{filter:saturate(1.12) sepia(.16) contrast(1.03) !important;}

/* home preview rows */
.home-prev-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
.prev-more{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:var(--ink);background:none;border:none;display:inline-flex;align-items:center;gap:9px;}
.prev-more .arr{transition:transform .2s;}
.prev-more:hover .arr{transform:translateX(6px);}

/* audience parent categories */
.aud-explorer{padding-top:clamp(36px,5vw,68px);padding-bottom:clamp(58px,7vw,94px);}
.aud-cat-grid{
  --aud-cat-w:300px;
  --aud-cat-h:520px;
  display:grid;
  grid-template-columns:repeat(auto-fit,var(--aud-cat-w));
  justify-content:center;
  gap:clamp(16px,1.6vw,24px);
  margin-bottom:clamp(22px,2.6vw,34px);
}
.aud-cat-card{
  position:relative;width:var(--aud-cat-w);min-height:var(--aud-cat-h);height:var(--aud-cat-h);padding:clamp(24px,2.4vw,34px);
  border:1px solid var(--hairline-strong);border-radius:calc(var(--radius) + 8px);background:var(--surface-strong);color:var(--ink);
  display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden;box-shadow:var(--ambient-shadow);cursor:pointer;
  transition:transform .34s cubic-bezier(.2,.7,.2,1),box-shadow .34s cubic-bezier(.2,.7,.2,1),background .34s,border-color .34s;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-sizing:border-box;
}
.aud-cat-card::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(229,67,29,.12),transparent 48%);opacity:.42;transition:opacity .28s;}
.aud-cat-card::after{content:"";position:absolute;left:clamp(24px,2.7vw,38px);right:clamp(24px,2.7vw,38px);bottom:clamp(24px,2.7vw,38px);height:1px;background:var(--hairline);}
.aud-cat-card > *{position:relative;z-index:1;}
.aud-cat-card.has-image{color:#fff;background:#1c1a17;border-color:rgba(22,20,15,.18);box-shadow:0 18px 38px rgba(22,20,15,.13),0 3px 10px rgba(22,20,15,.08);}
.aud-cat-card.has-image::before{
  z-index:1;opacity:1;
  background:
    linear-gradient(180deg,rgba(12,11,9,.02) 34%,rgba(12,11,9,.18) 59%,rgba(12,11,9,.9) 100%),
    linear-gradient(145deg,rgba(229,67,29,.08),transparent 44%);
}
.aud-cat-card.has-image::after{z-index:2;background:rgba(255,255,255,.36);}
.aud-cat-media{position:absolute;z-index:0;inset:0;overflow:hidden;}
/* beat `.craft-frame > *` (relative/z2) which otherwise collapses the media to 0×0 */
.aud-cat-card .aud-cat-media{position:absolute;inset:0;z-index:0;}
.aud-cat-media img{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center;
  filter:saturate(.88) contrast(1.04);transform:scale(1.002);
  transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
.aud-cat-media.is-slideshow img{
  position:absolute;inset:0;opacity:0;z-index:0;
  transition:opacity 1.6s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),filter .45s ease;
  will-change:opacity;
}
.aud-cat-media.is-slideshow img.is-prev{opacity:1;z-index:1;transition:none;}
.aud-cat-media.is-slideshow img.is-on{opacity:1;z-index:2;}
/* cinematic.css `body.cin-on .aud-cat-media img` drops opacity from the transition list —
   re-add it at higher specificity so the crossfade still fades */
body.cin-on .aud-cat-media.is-slideshow img{
  transition:opacity 1.6s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
body.cin-on .aud-cat-media.is-slideshow img.is-prev{transition:none;}
@media (prefers-reduced-motion:reduce){
  .aud-cat-media.is-slideshow img{opacity:0;}
  .aud-cat-media.is-slideshow img:first-child{opacity:1;}
}
.aud-cat-card h2{
  font-family:var(--disp);font-size:clamp(22px,1.6vw,30px);line-height:.9;text-transform:uppercase;letter-spacing:0;
  margin:auto 0 0;max-width:100%;width:100%;text-align:center;overflow-wrap:break-word;word-break:normal;hyphens:none;text-wrap:balance;
  padding:0 clamp(4px,1vw,10px);box-sizing:border-box;
}
.aud-cat-card h2 span{display:block;}
.aud-cat-card h2.fit-gifts-title,
.aud-cat-card h2.aud-cat-title-lines{
  font-size:clamp(15px,4.2vw,24px);line-height:1.08;letter-spacing:-.01em;text-wrap:pretty;
}
.aud-cat-card h2.fit-gifts-title span,
.aud-cat-card h2.aud-cat-title-lines span{white-space:normal;overflow-wrap:break-word;}
.aud-cat-card:hover,.aud-cat-card.active{transform:translateY(-4px);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 42%,transparent),var(--lift-shadow-soft);border-color:color-mix(in srgb,var(--accent) 38%,transparent);}
.aud-cat-card:hover::before,.aud-cat-card.active::before{opacity:1;}
.aud-cat-card.has-image:hover,.aud-cat-card.has-image.active{background:#1c1a17;box-shadow:0 30px 62px rgba(22,20,15,.25),0 8px 18px rgba(22,20,15,.12);border-color:rgba(255,255,255,.24);}
.aud-cat-card.has-image:hover .aud-cat-media img,.aud-cat-card.has-image.active .aud-cat-media img{transform:scale(1.045);filter:saturate(.98) contrast(1.06);}
.aud-cat-card.has-image h2{text-shadow:0 2px 12px rgba(0,0,0,.42);}
.aud-cat-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px;}
.aud-cat-note{font-family:var(--serif);font-size:clamp(18px,1.45vw,21px);line-height:1.55;color:var(--ink-2);max-width:66ch;margin:0 auto clamp(30px,4vw,54px);text-align:center;}
.aud-subcats{animation:pageIn .34s ease;scroll-margin-top:96px;}
.aud-subcats .cardgrid{grid-template-columns:repeat(auto-fit,minmax(250px,291px));justify-content:center;}
.priv-explorer .aud-cat-grid{
  --aud-cat-w:min(340px,100%);
  margin-bottom:clamp(16px,2vw,24px);
}
.priv-explorer .aud-cat-note{margin-bottom:clamp(20px,2.8vw,38px);}
.aud-explorer.is-open .aud-cat-note{display:none;}
.aud-cat-pinned{
  max-width:340px;margin:0 auto clamp(20px,2.5vw,32px);
  scroll-margin-top:96px;
}
.aud-cat-pinned .aud-cat-card{
  min-height:clamp(280px,38vw,420px);width:100%;
}
.aud-cat-switcher-wrap{
  position:relative;max-width:var(--maxw);margin:0 auto clamp(24px,3vw,40px);padding:0 var(--pad);
}
.aud-cat-switcher-wrap::before,.aud-cat-switcher-wrap::after{
  content:"";position:absolute;top:0;bottom:0;width:28px;z-index:2;pointer-events:none;opacity:0;
}
.aud-cat-switcher-wrap::before{left:var(--pad);background:linear-gradient(90deg,var(--bone) 20%,transparent);}
.aud-cat-switcher-wrap::after{right:var(--pad);background:linear-gradient(270deg,var(--bone) 20%,transparent);}
.aud-cat-switcher{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
  margin:0;max-width:none;padding:0;
}
.aud-cat-switcher button{
  font-family:var(--disp);font-size:clamp(12px,1.1vw,14px);font-weight:500;
  text-transform:uppercase;letter-spacing:.03em;
  padding:9px 16px;border-radius:999px;border:1px solid var(--hairline-strong);
  background:var(--surface);color:var(--ink);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .12s;
  white-space:nowrap;
}
.aud-cat-switcher button.on{
  background:var(--accent);color:#fff;border-color:var(--accent);
  box-shadow:0 8px 18px rgba(229,67,29,.22);
}
.aud-cat-switcher button:hover:not(.on){background:var(--surface-strong);}
.aud-cat-switcher button:active{transform:scale(.96);}
.aud-cat-switcher button:focus-visible{outline:3px solid var(--accent);outline-offset:3px;}

/* private storytelling */
.priv-story{
  padding-top:clamp(18px,3vw,40px);padding-bottom:clamp(70px,9vw,126px);
  text-align:center;
}
.priv-story-head{max-width:920px;margin:0 auto;overflow:visible;}
.priv-story-head .kicker{justify-content:center;}
.priv-story-head h2{
  font-size:clamp(44px,7vw,104px);line-height:.86;letter-spacing:-.01em;margin:18px auto 0;
  max-width:11ch;overflow:hidden;padding:.02em 0;
}
.priv-story-head h2.priv-story-title{
  display:flex;flex-direction:column;align-items:center;
  max-width:none;overflow:visible;margin-top:18px;
}
.ps-title-line-wrap{
  display:block;overflow:visible;line-height:.86;padding:.04em 0;
}
.ps-title-line{display:block;text-transform:uppercase;}
.priv-story-head h2.priv-story-title .ps-title-line.ac{color:var(--accent);}
.priv-story-head p{
  font-family:var(--serif);font-size:clamp(20px,2vw,28px);line-height:1.45;color:var(--ink-2);
  max-width:780px;margin:26px auto 0;
}
.priv-story-copy{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,4vw,56px);
  max-width:980px;margin:clamp(34px,5vw,68px) auto 0;text-align:center;
}
.priv-story-copy p{
  font-family:var(--serif);font-size:clamp(18px,1.45vw,22px);line-height:1.62;color:var(--ink-2);margin:0;
}
.priv-story [data-wordfill] .wf-w{will-change:opacity;}
@media (prefers-reduced-motion: reduce){
  .priv-story [data-wordfill] .wf-w{opacity:1 !important;}
}
.priv-story-details{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,30px);
  max-width:1120px;margin:clamp(42px,6vw,78px) auto 0;text-align:center;
}
.priv-story-details article{
  border-top:var(--bw-strong) solid var(--ink);padding:22px 10px 0;
}
.priv-story-details span{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--accent);}
.priv-story-details h3{
  font-family:var(--disp);font-size:clamp(24px,2.6vw,40px);line-height:.9;text-transform:uppercase;
  margin:16px auto 0;max-width:12ch;
}
.priv-story-details p{
  font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-2);
  max-width:31ch;margin:16px auto 0;
}
.priv-story-closing{
  font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);line-height:1.35;color:var(--ink);
  max-width:760px;margin:clamp(42px,6vw,76px) auto 0;
}

/* ======================================================================
   CARD GRID  (Apple "get to know" pattern)
   ====================================================================== */
.cardgroup + .cardgroup{margin-top:clamp(40px,5vw,72px);}
.cardgroup-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;}
.cardgroup-head .kicker{font-size:13px;}
.cardgroup-head .line{flex:1;height:0;border-top:1.5px solid var(--rule);}

.cardgrid{display:grid;grid-template-columns:repeat(var(--cardcols,4),1fr);gap:clamp(16px,1.8vw,28px);}

.kcard{
  position:relative;border:var(--border-card);background:var(--surface-strong);border-radius:calc(var(--radius) + 8px);
  aspect-ratio:3/4.1;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;
  box-shadow:var(--ambient-shadow);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform .34s cubic-bezier(.2,.7,.2,1), box-shadow .34s cubic-bezier(.2,.7,.2,1), border-color .34s;
  will-change:transform;
}
.kcard:hover{transform:perspective(950px) translateY(-12px) scale(1.014) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:var(--lift-shadow);border-color:color-mix(in srgb,var(--accent) 58%,transparent);}
.kcard:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.kcard.is-source{opacity:0;}  /* hide source during shared transition */

.kcard-media{overflow:hidden;}
.kcard-media image-slot,.kcard-cover,.kcard-media picture{
  display:block;
  transform:scale(1);
  transition:transform .42s cubic-bezier(.2,.7,.2,1), filter .42s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}
.kcard-cover,.kcard-media picture img{width:100%;height:100%;object-fit:cover;display:block;}
.kcard:hover .kcard-media image-slot,.kcard:hover .kcard-cover,.kcard:hover .kcard-media picture img{
  transform:scale(1.035);
  filter:saturate(1.04) contrast(1.02);
}

.kcard-plus{
  position:absolute;right:14px;bottom:14px;z-index:4;width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;border:none;
  background:rgba(255,255,255,.72);color:var(--ink);font-size:26px;line-height:0;padding-bottom:3px;
  box-shadow:0 10px 24px rgba(22,20,15,.16),inset 0 1px 0 rgba(255,255,255,.5);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:transform .24s,background .24s,color .24s,box-shadow .24s;
}
.kcard:hover .kcard-plus{transform:rotate(90deg) scale(1.06);background:var(--accent);color:#fff;box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 32%,transparent);}

/* ---- variant: editorial (default) ---- */
.cardgrid[data-cardstyle="editorial"] .kcard-media{height:58%;border-bottom:1px solid var(--hairline);background:var(--bone-2);}
.cardgrid[data-cardstyle="editorial"] .kcard-media image-slot,.cardgrid[data-cardstyle="editorial"] .kcard-cover{width:100%;height:100%;}
.cardgrid[data-cardstyle="editorial"] .kcard-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.cardgrid[data-cardstyle="editorial"] .kcard-kick{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);}
.cardgrid[data-cardstyle="editorial"] .kcard-title{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(19px,1.5vw,23px);line-height:.96;letter-spacing:-.005em;color:var(--ink);}
.cardgrid[data-cardstyle="editorial"] .kcard-tease{font-size:14px;color:var(--ink-2);margin-top:auto;padding-right:48px;}
.cardgrid[data-cardstyle="editorial"] .kcard-plus{right:14px;bottom:14px;}

/* ---- variant: photo (full-bleed image, overlay) ---- */
.cardgrid[data-cardstyle="photo"] .kcard{background:var(--ink);border-color:rgba(255,255,255,.08);}
.cardgrid[data-cardstyle="photo"] .kcard:hover{box-shadow:var(--lift-shadow-soft);}
.cardgrid[data-cardstyle="photo"] .kcard-media{position:absolute;inset:0;height:100%;z-index:0;}
.cardgrid[data-cardstyle="photo"] .kcard-media image-slot,.cardgrid[data-cardstyle="photo"] .kcard-cover{width:100%;height:100%;}
.cardgrid[data-cardstyle="photo"] .kcard-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,6,.15) 30%,rgba(10,9,6,.85));}
.cardgrid[data-cardstyle="photo"] .kcard-body{position:relative;z-index:2;margin-top:auto;padding:18px;display:flex;flex-direction:column;gap:7px;}
.cardgrid[data-cardstyle="photo"] .kcard-kick{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#fff;opacity:.82;}
.cardgrid[data-cardstyle="photo"] .kcard-title{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(20px,1.6vw,25px);line-height:.95;color:#fff;}
.cardgrid[data-cardstyle="photo"] .kcard-tease{display:none;}
.cardgrid[data-cardstyle="photo"] .kcard-plus{background:rgba(255,255,255,.16);color:#fff;border:1.5px solid rgba(255,255,255,.55);box-shadow:none;backdrop-filter:blur(4px);}
.cardgrid[data-cardstyle="photo"] .kcard:hover .kcard-plus{background:var(--accent);border-color:var(--accent);}

/* ---- variant: dark (Apple-faithful, label top) ---- */
.cardgrid[data-cardstyle="dark"] .kcard{background:#100f0b;border-color:rgba(255,255,255,.08);flex-direction:column;}
.cardgrid[data-cardstyle="dark"] .kcard:hover{box-shadow:var(--lift-shadow-soft);}
.cardgrid[data-cardstyle="dark"] .kcard-body{order:1;position:relative;z-index:3;padding:20px 18px 14px;display:flex;flex-direction:column;gap:7px;}
.cardgrid[data-cardstyle="dark"] .kcard-title{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(20px,1.6vw,26px);line-height:.95;color:#fff;}
.cardgrid[data-cardstyle="dark"] .kcard-tease{font-size:13.5px;color:rgba(255,255,255,.6);}
.cardgrid[data-cardstyle="dark"] .kcard-media{order:2;flex:1;min-height:0;position:relative;z-index:1;}
.cardgrid[data-cardstyle="dark"] .kcard-media image-slot,.cardgrid[data-cardstyle="dark"] .kcard-cover{width:100%;height:100%;}
.cardgrid[data-cardstyle="dark"] .kcard-plus{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.4);box-shadow:none;}
.cardgrid[data-cardstyle="dark"] .kcard:hover .kcard-plus{background:var(--accent);border-color:var(--accent);}

/* ======================================================================
   MODAL (shared-element / fade)
   ====================================================================== */
.kmodal-scrim{
  position:fixed;inset:0;z-index:90;background:rgba(18,16,11,.38);
  backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);opacity:0;transition:opacity .32s ease;
  display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:clamp(16px,4vw,56px) var(--pad);
}
.kmodal-scrim.show{opacity:1;}
.kmodal{
  position:relative;width:min(960px,100%);background:var(--surface-strong);border:var(--border-modal);
  border-radius:calc(var(--radius) + 12px);overflow:hidden;
  transform-origin:top left;will-change:transform,opacity;
  display:flex;flex-direction:column;box-shadow:var(--shadow-modal);
  backdrop-filter:var(--soft-blur);-webkit-backdrop-filter:var(--soft-blur);
}
.kmodal-close{
  position:absolute;top:16px;right:16px;z-index:6;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.74);color:var(--ink);border:1px solid rgba(255,255,255,.38);font-size:20px;line-height:0;
  display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s,color .2s,box-shadow .2s;
  box-shadow:0 10px 24px rgba(0,0,0,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.kmodal-close:hover{background:var(--accent);color:#fff;transform:rotate(90deg) scale(1.05);box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 32%,transparent);}
.kmodal-media{width:100%;aspect-ratio:16/9;border-bottom:1px solid var(--hairline);background:var(--bone-2);}
.kmodal-media image-slot{width:100%;height:100%;}
.kmodal:has(.kmodal-gallery){width:auto;max-width:min(1040px,100%);}
.kmodal-media:has(.kmodal-gallery){aspect-ratio:auto;}
.kmodal-gallery{display:grid;grid-template-columns:auto 112px;gap:10px;padding:10px;background:#15130f;justify-content:center;align-items:start;}
.kmodal-gallery-main{min-width:0;display:flex;flex-direction:column;align-items:stretch;}
.kmodal-gallery-idea{
  margin:0;padding:10px 6px 0;max-width:min(860px,100%);
  font-family:var(--body);font-size:14px;line-height:1.45;color:rgba(255,255,255,.82);
  border-top:1px solid rgba(255,255,255,.08);
}
.kmodal-gallery-stage{
  position:relative;min-width:0;display:block;line-height:0;overflow:hidden;
  border-radius:calc(var(--radius) + 2px);background:transparent;width:fit-content;max-width:100%;
}
.kmodal-gallery-stage > img{
  max-width:min(860px,100%);max-height:74vh;width:auto;height:auto;display:block;
  object-fit:contain;object-position:center;background:transparent;transition:opacity .22s ease;
}
.kmodal-gallery-stage > img.is-advanceable{cursor:pointer;}
.kmodal-gallery-stage > img.is-advanceable:hover{opacity:.92;}
.kmodal-gallery-stage.has-photo-preview{
  aspect-ratio:auto;overflow:visible;background:#0d0c09;
}
.kmodal:has(.photo-preview){width:auto;max-width:min(1040px,100%);}
.kmodal-gallery:has(.photo-preview){grid-template-columns:auto 112px;justify-content:center;}
.photo-preview{display:flex;flex-direction:column;min-width:0;background:#0d0c09;border-radius:inherit;overflow:hidden;}
.photo-preview-scene{
  position:relative;display:grid;place-items:center;overflow:hidden;background:#0d0c09;
}
.photo-preview-image-wrap{position:relative;height:min(74vh,760px);width:auto;max-width:100%;aspect-ratio:2/3;flex:none;}
.photo-preview-background{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;}
.photo-preview-frame{
  position:absolute;overflow:hidden;touch-action:none;cursor:default;z-index:2;
  box-shadow:0 0 0 1px rgba(255,255,255,.12),inset 0 0 28px rgba(255,255,255,.10);
}
.photo-preview-frame.has-upload{cursor:grab;}
.photo-preview-frame.has-upload:active{cursor:grabbing;}
.photo-preview-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(244,240,231,.18),inset 0 20px 40px rgba(255,255,255,.06);
}
.photo-preview-frame.is-wood .photo-preview-upload{mix-blend-mode:multiply;filter:sepia(.18) saturate(.88) contrast(.96) brightness(1.08);opacity:.9;}
.photo-preview-frame.is-acrylic .photo-preview-upload{filter:saturate(.96) contrast(1.06) brightness(1.04);opacity:.82;}
.photo-preview-frame.is-leather .photo-preview-upload{mix-blend-mode:multiply;filter:sepia(.32) saturate(.76) contrast(.9) brightness(1.12);opacity:.82;}
.photo-preview-upload{
  position:absolute;left:50%;top:50%;display:block;max-width:none;object-fit:cover;
  user-select:none;-webkit-user-drag:none;pointer-events:none;
}
.photo-preview-drag-hint{
  position:absolute;left:10px;bottom:10px;z-index:3;padding:5px 8px;border-radius:999px;
  font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;background:rgba(18,16,11,.58);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  pointer-events:none;opacity:.85;
}
.photo-preview-toolbar{
  display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto;align-items:center;gap:10px 12px;
  padding:12px;background:#15130f;border-top:1px solid rgba(244,240,231,.12);color:var(--bone);
}
.photo-preview-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.photo-preview-upload-btn,.photo-preview-reset{
  font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  border-radius:999px;border:1px solid rgba(244,240,231,.22);padding:9px 13px;
  color:var(--bone);background:rgba(244,240,231,.08);transition:background .2s,color .2s,border-color .2s,opacity .2s;
}
.photo-preview-upload-btn:hover,.photo-preview-reset:not(:disabled):hover,
.photo-preview-upload-btn:focus-visible,.photo-preview-reset:focus-visible{
  outline:none;background:var(--accent);border-color:var(--accent);color:#fff;
}
.photo-preview-reset:disabled{opacity:.36;cursor:default;}
.photo-preview-material{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  white-space:nowrap;
}
.photo-preview-zoom{display:flex;align-items:center;gap:10px;min-width:0;}
.photo-preview-zoom span{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,240,231,.68);
}
.photo-preview-zoom input{width:100%;accent-color:var(--accent);}
.photo-preview-zoom input:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:999px;}
.photo-preview-privacy,.photo-preview-status{
  grid-column:1 / -1;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:rgba(244,240,231,.58);
}
.photo-preview-status{min-height:1.2em;color:rgba(244,240,231,.74);}
.photo-preview-status.is-error{color:#ffb29f;}
.kmodal-gallery-stage.has-photo-preview .kmodal-gallery-arrow{top:calc((100% - 96px) / 2);}
.kmodal-gallery-stage.has-photo-preview .kmodal-gallery-count{bottom:104px;}
.kmodal-gallery-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;
  display:grid;place-items:center;border:1px solid rgba(255,255,255,.34);background:rgba(18,16,11,.62);color:#fff;
  font-size:20px;line-height:1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:background .2s,transform .2s,border-color .2s;
}
.kmodal-gallery-arrow.prev{left:14px;}
.kmodal-gallery-arrow.next{right:14px;}
.kmodal-gallery-arrow:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-50%) scale(1.06);}
.kmodal-gallery-count{
  position:absolute;right:14px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(18,16,11,.64);color:#fff;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.kmodal-gallery-thumbs{
  display:grid;grid-auto-rows:64px;gap:8px;align-self:start;
  max-height:min(74vh,100%);overflow-y:auto;scrollbar-width:thin;
}
.kmodal-gallery-thumbs button{
  position:relative;min-height:0;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.16);
  border-radius:calc(var(--radius) - 2px);background:#0d0c09;opacity:.56;transition:opacity .2s,border-color .2s,transform .2s;
}
.kmodal-gallery-thumbs button::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 0 var(--accent);transition:box-shadow .2s;}
.kmodal-gallery-thumbs button:hover{opacity:.86;}
.kmodal-gallery-thumbs button.active{opacity:1;border-color:var(--accent);transform:translateX(-2px);}
.kmodal-gallery-thumbs button.active::after{box-shadow:inset 0 0 0 2px var(--accent);}
.kmodal-gallery-thumbs img{width:100%;height:100%;display:block;object-fit:contain;background:#0d0c09;}
.kmodal-body{padding:clamp(24px,3.4vw,48px);}
.kmodal-kick{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
.kmodal-title{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.4vw,56px);line-height:.92;letter-spacing:-.01em;margin:14px 0 0;color:var(--ink);max-width:18ch;}
.kmodal-text{font-family:var(--serif);font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink-2);margin:22px 0 0;max-width:60ch;}
.kmodal-text--rich p{margin:0 0 .75em;}
.kmodal-text--rich p:last-child{margin-bottom:0;}
.kmodal-text--rich ul,.kmodal-text--rich ol{margin:0 0 .75em 1.2em;padding:0;}
.kmodal-text--rich a{color:var(--accent);text-decoration:underline;}
.kmodal-text b{color:var(--ink);font-weight:600;}

/* Performance — home-cta only (ScrollTrigger sections must not use content-visibility) */
.page .home-cta{
  content-visibility:auto;
  contain-intrinsic-size:auto 420px;
}
.kmodal-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;}
.kmodal-tags span{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:1px solid var(--hairline-strong);background:var(--surface);padding:7px 12px;border-radius:999px;}
.kmodal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:34px;border-top:1px solid var(--hairline);padding-top:18px;}
.kmodal-nav button{
  font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:14px;
  background:none;border:none;color:var(--ink);display:inline-flex;align-items:center;gap:9px;padding:6px 0;transition:color .18s;
}
.kmodal-nav button:disabled{opacity:.3;cursor:default;}
.kmodal-nav button:not(:disabled):hover{color:var(--accent);}

/* lock scroll while open */
body.kmodal-open{overflow:hidden;}

/* cookies notice */
.cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:9000;
  background:var(--card);border-top:1px solid var(--hairline-strong);
  padding:16px var(--pad);display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;
  box-shadow:0 -10px 36px rgba(22,20,15,.14);
}
.cookie-banner-text{flex:1 1 260px;margin:0;font-size:14px;line-height:1.5;color:var(--ink-2);}
.cookie-banner-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.cookie-banner-link{font-family:var(--disp);font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;background:none;border:none;padding:10px 4px;min-height:44px;color:var(--accent);text-decoration:underline;cursor:pointer;}
.cookie-banner-accept{padding:12px 22px;min-height:44px;}

/* ======================================================================
   CONTACT (compact)
   ====================================================================== */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:start;}
.cform{display:flex;flex-direction:column;gap:16px;}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.cform label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:7px;}
.cform input,.cform textarea,.cform select{
  width:100%;font-family:var(--serif);font-size:16px;color:var(--ink);background:var(--surface-strong);
  border:1px solid var(--hairline-strong);padding:13px 15px;border-radius:calc(var(--radius) - 2px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34);
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.cform textarea{min-height:130px;resize:vertical;}
.cform-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;color:var(--ink-2);cursor:pointer;margin-top:4px;}
.cform-consent input[type="checkbox"]{margin-top:3px;min-width:18px;min-height:18px;accent-color:var(--accent);flex-shrink:0;}
.cform-consent-link{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;font:inherit;cursor:pointer;}
.cform-consent-link:hover{color:var(--ink);}
.cform input:focus,.cform textarea:focus,.cform select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent),inset 0 1px 0 rgba(255,255,255,.34);background:var(--card);}
.btn{
  font-family:var(--disp);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.05em;line-height:1.2;
  background:var(--ink);color:var(--bone);border:none;border-radius:var(--btn-radius,999px);padding:14px 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .22s var(--ease,ease),transform .22s var(--ease,ease),box-shadow .22s var(--ease,ease);
  box-shadow:0 12px 26px rgba(22,20,15,.16),inset 0 1px 0 rgba(255,255,255,.12);
  white-space:nowrap;text-align:center;
}
.btn .arr{display:inline-block;transition:transform .26s cubic-bezier(.2,.7,.2,1);}
.btn:hover .arr{transform:translateX(4px);}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
/* proximity magnet engaged — transform follows the cursor instantly; releasing
   the class lets the .btn transition above ease it smoothly back to rest */
.btn.is-magnet{transition:background .22s var(--ease,ease),box-shadow .22s var(--ease,ease);will-change:transform;}
.btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 24%,rgba(22,20,15,.12));}
.btn:active{transform:translateY(1px) scale(.98);}
.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--hairline-strong);box-shadow:none;}
.btn.ghost:hover{background:var(--ink);color:var(--bone);}
.cinfo .irow{padding:16px 0;border-top:1px solid var(--hairline);}
.cinfo .irow:last-child{border-bottom:1px solid var(--hairline);}
.cinfo .il{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.cinfo .iv{font-size:17px;color:var(--ink);margin-top:4px;}

/* ======================================================================
   FOOTER
   ====================================================================== */
.foot{border-top:1px solid var(--hairline-strong);background:linear-gradient(180deg,transparent,var(--surface));margin-top:auto;}
.foot-showcase{
  position:relative;max-width:var(--maxw);margin:0 auto;
  --foot-giant-h:clamp(130px,22vw,300px);
  min-height:var(--foot-giant-h);
  padding:0 var(--pad) clamp(6px,1vw,12px);
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(20px,4vw,56px);
}
.foot-col{
  position:relative;z-index:2;min-width:0;flex:0 0 auto;
  height:auto;align-self:flex-end;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-bottom:0;
}
.foot-showcase .foot-col-nav{
  text-align:left;max-width:min(128px,11vw);
  margin-left:clamp(-6px,-0.6vw,-12px);
  padding-bottom:0;
  transform:translateY(clamp(6px,0.8vw,14px));
}
.foot-showcase .foot-col-nav ul{gap:2px;}
.foot-showcase .foot-col-nav ul button,
.foot-showcase .foot-col-nav ul a{
  padding:2px 0;letter-spacing:.02em;line-height:1.15;
}
.foot-showcase .foot-col-legal{
  text-align:right;margin-left:0;max-width:min(156px,12.5vw);
  margin-right:clamp(-14px,-1.2vw,-22px);
  padding-bottom:0;
  transform:translateY(clamp(6px,0.8vw,14px));
}
.foot h4{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-2);margin:0 0 14px;padding-bottom:10px;
  border-bottom:1px solid var(--hairline);
}
.foot-showcase .foot-col-legal h4{margin-left:auto;width:100%;max-width:none;}
.foot-showcase .foot-col-nav h4{
  width:100%;max-width:none;
  margin-bottom:10px;padding-bottom:7px;letter-spacing:.18em;
}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.foot-showcase .foot-col-nav ul{align-items:flex-start;}
.foot-showcase .foot-col-legal ul{align-items:flex-end;}
.foot ul button,.foot ul a{
  font-family:var(--disp);font-weight:600;font-size:clamp(11.5px,1.05vw,13px);text-transform:uppercase;letter-spacing:.06em;
  color:color-mix(in srgb,var(--ink) 82%,transparent);
  background:none;border:none;padding:4px 0;min-height:0;
  display:inline-flex;align-items:center;line-height:1.25;
  transition:color .18s,transform .18s;
}
.foot-showcase .foot-col-nav ul button,.foot-showcase .foot-col-nav ul a{justify-content:flex-start;}
.foot-showcase .foot-col-legal ul button,.foot-showcase .foot-col-legal ul a{justify-content:flex-end;}
.foot-showcase .foot-col-nav ul button:hover,.foot-showcase .foot-col-nav ul a:hover{color:var(--accent);transform:translateX(-2px);}
.foot-showcase .foot-col-legal ul button:hover,.foot-showcase .foot-col-legal ul a:hover{color:var(--accent);transform:translateX(2px);}
.cinfo-social{margin-top:18px;padding-top:16px;border-top:1px solid var(--hairline);}
.cinfo-social .il{display:block;margin-bottom:10px;}
.cinfo-social-links{display:flex;flex-wrap:wrap;gap:18px;}
.cinfo-social-links a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-family:var(--disp);text-transform:uppercase;font-size:13px;letter-spacing:.05em;font-weight:600;transition:color .18s;}
.cinfo-social-links a:hover{color:var(--accent);}
.cinfo-social-links svg{width:18px;height:18px;display:block;}
.foot-bar-mid{display:inline-flex;align-items:center;justify-content:center;gap:14px;}
.foot-socials{display:inline-flex;align-items:center;gap:10px;}
.foot-socials a{color:var(--ink-2);display:inline-flex;align-items:center;transition:color .18s,transform .18s;}
.foot-socials a:hover{color:var(--accent);transform:translateY(-1px);}
.foot-socials svg{width:16px;height:16px;display:block;}
.foot-bar{
  max-width:var(--maxw);margin:0 auto;padding:10px var(--pad) 16px;
  border-top:1px solid var(--hairline);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px 20px;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  color:color-mix(in srgb,var(--ink-2) 88%,transparent);text-transform:uppercase;
}
.foot-bar > span:first-child{justify-self:start;}
.foot-bar > span:last-child{justify-self:end;text-align:right;}
.foot-bar .foot-clock{
  justify-self:center;margin-top:0;padding:5px 10px;font-size:9.5px;
}

/* ======================================================================
   RESPONSIVE
   ====================================================================== */
@media (max-width:1080px){
  .cardgrid{grid-template-columns:repeat(3,1fr);}
  .about-hero{grid-template-columns:1fr;}
  .about-visual,.about-visual image-slot{min-height:440px;}
  .equip-grid{grid-template-columns:1fr;}
  .equip-card{display:grid;grid-template-columns:minmax(240px,.75fr) 1fr;}
  .equip-img{height:auto;min-height:260px;border-bottom:none;border-right:var(--bw) solid var(--rule-strong);}
  .equip-modal-hero{grid-template-columns:1fr;}
  .equip-tip{border-left:none;border-top:1px solid rgba(22,20,15,.1);min-height:auto;}
  .equip-modal-body{grid-template-columns:1fr;}
  .equip-modal-side{border-left:none;border-top:1px solid var(--hairline);padding-left:0;padding-top:24px;}
  .aud-cat-grid{--aud-cat-w:min(300px,100%);--aud-cat-h:480px;}
  .aud-cat-card{min-height:var(--aud-cat-h);height:var(--aud-cat-h);}
  .priv-story-copy{grid-template-columns:1fr;text-align:center;max-width:720px;}
  .priv-story-details{grid-template-columns:1fr;max-width:620px;}
  .process-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .nav-links{display:none;}
  .mobile-menu-toggle{display:flex;flex-shrink:0;}
  .mobile-nav-panel{
    position:fixed;left:var(--pad);right:var(--pad);top:calc(var(--nav-h) + 8px);z-index:121;
    display:grid;gap:6px;padding:8px;border:1px solid var(--hairline-strong);border-radius:18px;
    background:rgba(251,250,247,.96);box-shadow:0 22px 58px rgba(22,20,15,.18),inset 0 1px 0 rgba(255,255,255,.72);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08);
  }
  .mobile-nav-panel[hidden]{display:none;}
  .mobile-nav-link{
    border:none;border-radius:13px;background:transparent;color:var(--ink);padding:14px 15px;text-align:left;
    font-family:var(--disp);font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  }
  .mobile-nav-link.active{background:var(--ink);color:var(--bone);}
  .mobile-nav-link:not(.active):hover{background:rgba(22,20,15,.06);}
  .aud-cat-switcher-wrap::before,.aud-cat-switcher-wrap::after{opacity:1;}
  .aud-cat-switcher{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;}
  .aud-cat-switcher::-webkit-scrollbar{display:none;}
  .ahero-inner{grid-template-columns:1fr;gap:28px;}
  .ahero-side{display:flex;gap:24px;}
  .ahero-side .stat{border:none;padding:0;flex-direction:column;gap:4px;}
  .ahero-side .stat:last-child{border:none;}
  .cardgrid{grid-template-columns:repeat(2,1fr);}
  .aud-cat-card h2{max-width:100%;}
  .aud-cat-card h2.fit-gifts-title,
  .aud-cat-card h2.aud-cat-title-lines{font-size:clamp(14px,4.8vw,22px);}
  .contact-grid{grid-template-columns:1fr;}
  .foot-showcase{
    display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;
    gap:0;position:relative;
    min-height:clamp(108px,28vw,158px);
    --foot-giant-h:clamp(108px,28vw,158px);
    padding-bottom:clamp(4px,1vw,8px);
  }
  .foot-col{
    align-self:flex-end;flex:0 0 auto;z-index:2;min-width:0;height:auto;
    max-width:min(29%,104px);
  }
  .foot-showcase .foot-col-nav{
    max-width:min(34%,118px);margin-left:0;text-align:left;
    transform:translateY(clamp(2px,0.4vw,6px));padding-bottom:0;
  }
  .foot-showcase .foot-col-legal{
    max-width:min(30%,102px);margin-right:0;text-align:right;margin-left:0;
    transform:translateY(clamp(2px,0.4vw,6px));padding-bottom:0;
  }
  .foot-showcase .foot-col-legal ul{align-items:flex-end;}
  .foot-showcase .foot-col-legal ul button,.foot-showcase .foot-col-legal ul a{
    justify-content:flex-end;text-align:right;max-width:100%;
  }
  .foot-showcase .foot-col-legal h4{margin-left:auto;}
  .foot-giant{
    position:absolute;left:0;right:0;bottom:0;z-index:1;
    height:clamp(84px,24vw,132px);margin-top:0;
    display:flex;align-items:flex-end;justify-content:center;
    pointer-events:none;
  }
  .foot-giant-text{
    font-size:clamp(38px,12vw,72px);transform:translateY(12%);
    white-space:nowrap;
  }
  .foot ul{gap:2px;}
  .foot ul button,.foot ul a{
    font-size:clamp(9px,2.45vw,10.5px);min-height:0;padding:3px 0;
    letter-spacing:.03em;line-height:1.18;white-space:normal;
  }
  .foot-showcase .foot-col-nav ul{gap:0;}
  .foot-showcase .foot-col-nav ul button,.foot-showcase .foot-col-nav ul a{
    padding:0;line-height:1;font-size:8.5px;letter-spacing:.02em;
  }
  .foot-showcase .foot-col-nav h4{margin-bottom:6px;padding-bottom:4px;}
  .foot-showcase .foot-col-legal ul{gap:2px;}
  .foot-showcase .foot-col-legal ul button,.foot-showcase .foot-col-legal ul a{
    padding:3px 0;line-height:1.18;
  }
  .foot-showcase .foot-col-nav ul button,.foot-showcase .foot-col-nav ul a{text-align:left;}
  .foot h4{font-size:8px;letter-spacing:.14em;margin-bottom:8px;padding-bottom:5px;}
  .foot-bar{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px;}
  .foot-bar > span:first-child,.foot-bar > span:last-child{justify-self:center;text-align:center;max-width:100%;}
  .foot-bar .foot-clock{justify-self:center;width:100%;max-width:100%;justify-content:center;}
  .foot{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));}
  .cform .row{grid-template-columns:1fr;}
  .about-stats{grid-template-columns:repeat(2,1fr);}
  .about-stat:nth-child(2){border-right:none;}
  .equip-card{display:block;}
  .equip-img{height:240px;border-right:none;border-bottom:var(--bw) solid var(--rule-strong);}
  .equip-modal-scrim{padding:10px;}
  .equip-modal-media,.equip-modal-media image-slot{min-height:430px;}
  .hotspot{width:42px;height:42px;font-size:27px;}
}
@media (max-width:580px){
  .aud-cat-grid{grid-template-columns:1fr;max-width:340px;margin-left:auto;margin-right:auto;}
  .aud-cat-card{width:100%;--aud-cat-h:420px;}
}
@media (max-width:520px){
  body{--nav-h:64px;}
  body[data-scrolled="1"]{--nav-h:58px;}
  .nav-inner{gap:8px;}
  .logo-mark{height:28px;}
  .logo .mark{font-size:22px;}
  .aud-cat-pinned{max-width:none;padding:0 var(--pad);}
  .aud-cat-switcher{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;}
  .aud-cat-switcher::-webkit-scrollbar{display:none;}
  .aud-cat-switcher button{font-size:11px;padding:8px 12px;}
  .about-title,.about-sec-title{font-size:clamp(42px,13vw,64px);}
  .about-visual,.about-visual image-slot{min-height:390px;}
  .about-stats{position:relative;}
  .process-grid{grid-template-columns:1fr;}
  .aud-switch button{font-size:11px;padding:10px 12px;}
  .lang-toggle button{font-size:10px;padding:10px 12px;}
  .aud-cat-card{min-height:390px;}
  .priv-story-head h2,.priv-story-head h2.priv-story-title{font-size:clamp(42px,14vw,72px);}
  .priv-story-head p{font-size:20px;}
  .priv-story-copy{text-align:center;}
  .priv-story-details h3{max-width:14ch;}
  .cardgrid{grid-template-columns:1fr;gap:16px;}
  .kcard{aspect-ratio:4/5;}
  .kmodal-gallery{grid-template-columns:1fr;padding:7px;gap:7px;align-items:start;}
  .kmodal-gallery-main{width:100%;max-width:100%;}
  .kmodal-gallery-idea{padding:8px 4px 0;font-size:13px;max-width:100%;}
  .kmodal-gallery-stage{display:block;line-height:0;width:100%;max-width:100%;}
  .kmodal-gallery-stage > img{max-height:56vh;max-width:100%;width:auto;height:auto;margin:0 auto;}
  .kmodal-gallery-stage.has-photo-preview{aspect-ratio:auto;}
  .kmodal-gallery:has(.photo-preview){grid-template-columns:1fr;justify-content:stretch;}
  .photo-preview-image-wrap{height:min(62vh,560px);width:auto;max-width:88vw;}
  .photo-preview-toolbar{grid-template-columns:1fr 1fr;gap:9px;padding:10px;}
  .photo-preview-upload-btn{grid-column:1 / -1;}
  .photo-preview-material{align-self:center;}
  .photo-preview-zoom{grid-column:1 / -1;}
  .photo-preview-reset{justify-self:stretch;}
  .photo-preview-privacy,.photo-preview-status{font-size:9.5px;}
  .kmodal-gallery-stage.has-photo-preview .kmodal-gallery-arrow{top:calc((100% - 154px) / 2);}
  .kmodal-gallery-stage.has-photo-preview .kmodal-gallery-count{bottom:158px;}
  .kmodal-gallery-thumbs{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));grid-auto-rows:64px;max-height:none;overflow:visible;height:auto;}
  .kmodal-gallery-thumbs button.active{transform:translateY(-2px);}
  .kmodal-gallery-arrow{width:44px;height:44px;}
  .cardgrid[data-cardstyle="editorial"] .kcard-title{font-size:clamp(22px,7vw,30px);}
  .cardgrid[data-cardstyle="editorial"] .kcard-tease{font-size:15px;}
  .equip-modal{border-radius:calc(var(--radius) + 4px);}
  .equip-modal-media,.equip-modal-media image-slot{min-height:330px;}
  .equip-modal-body{padding:24px 18px 28px;}
  .equip-modal-main h2{font-size:clamp(34px,13vw,54px);}
  .equip-tip{padding:22px 18px;}
  .equip-tip h4{font-size:34px;}
  .hotspot{width:36px;height:36px;font-size:24px;box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 28%,transparent),0 0 0 6px rgba(229,67,29,.12);}
  .foot-showcase{min-height:clamp(110px,34vw,160px);--foot-giant-h:clamp(110px,34vw,160px);}
  .foot-showcase .foot-col-nav{max-width:min(35%,120px);}
  .foot-showcase .foot-col-legal{max-width:min(29%,100px);}
  .foot-giant{height:clamp(76px,22vw,112px);}
  .foot-giant-text{font-size:clamp(34px,11vw,62px);}
  .foot-showcase .foot-col-nav ul{gap:0;}
  .foot-showcase .foot-col-nav ul button,.foot-showcase .foot-col-nav ul a{
    font-size:8px;padding:0;line-height:1;
  }
  .foot-showcase .foot-col-nav h4{margin-bottom:5px;padding-bottom:3px;}
  .foot-showcase .foot-col-legal ul button,.foot-showcase .foot-col-legal ul a{font-size:8.5px;padding:2px 0;}
  .foot h4{font-size:7.5px;margin-bottom:6px;}
  .foot-cta-title{font-size:clamp(36px,11vw,56px);}
  .foot-cta-line{width:auto;max-width:100%;}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.05ms !important;}
}


/* ======================================================================
   CINEMATIC LASER HERO (ported from v1 — scroll-driven, per-image taglines)
   ====================================================================== */
@keyframes riseIn{from{transform:translateY(30%);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* ---------- hero stage (home only: scroll-fade photo backdrop) ---------- */
.hero-stage{position:relative;border-bottom:var(--bw-strong) solid var(--ink);overflow:clip;}
.hero-stage--compact .hsc-beam{display:none;}
.hero-stage--compact .hsc-text,.hero-stage--compact .hsc-go .hsc-text{clip-path:inset(-18% -14px -18% -14px);animation:none;}
.hero-stage--compact .hero-scrollhint{opacity:.72;}
.hero-pin{position:absolute;left:0;right:0;top:0;height:100vh;overflow:hidden;background:var(--ink);--hero-bw-pct:0%;}
.hero-stage.is-pinned .hero-pin{position:fixed;top:0;left:0;right:0;z-index:0;}
.hero-stage.is-ended .hero-pin{position:absolute;top:auto;bottom:0;}
.hero-bg{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;will-change:opacity,transform;}
.hero-slide-img{position:absolute;inset:0;width:100%;height:100%;--slot-bg:#1a1812;filter:saturate(1.06) contrast(1.04) brightness(.98);}
/* scroll-driven ασπρόμαυρο wipe: χρώμα πάνω → φίλτρο κάτω, οδηγείται από --hero-bw-pct */
.hero-slide-mono{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  -webkit-backdrop-filter:grayscale(1) contrast(1.10) brightness(.90);
  backdrop-filter:grayscale(1) contrast(1.10) brightness(.90);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 max(0%,calc(var(--hero-bw-pct) - 3%)),transparent min(100%,calc(var(--hero-bw-pct) + 2%)));
  mask-image:linear-gradient(to bottom,#000 0%,#000 max(0%,calc(var(--hero-bw-pct) - 3%)),transparent min(100%,calc(var(--hero-bw-pct) + 2%)));
}
/* Ken Burns — αργή κινηματογραφική ολίσθηση, GPU-only, σεβόμενη το reduced-motion */
@media (prefers-reduced-motion: no-preference){
  .hero-slide-img{animation:heroKenburns 26s ease-in-out infinite alternate;transform-origin:62% 38%;will-change:transform;}
  .hero-slide-img.is-tilt{animation:heroKenburnsTilt 30s ease-in-out infinite alternate;transform-origin:54% 46%;}
  .hero-slide-img.is-vivid{animation:heroKenburnsSoft 32s ease-in-out infinite alternate;transform-origin:58% 42%;}
}
@keyframes heroKenburns{
  from{transform:scale(1.02) translate3d(0,0,0);}
  to{transform:scale(1.10) translate3d(-1.4%,1.1%,0);}
}
@keyframes heroKenburnsSoft{
  from{transform:scale(1.01) translate3d(0,0,0);}
  to{transform:scale(1.06) translate3d(-0.8%,0.6%,0);}
}
@keyframes heroKenburnsTilt{
  from{transform:scale(1.06) rotate(-0.7deg) translate3d(0.8%,0.2%,0);}
  to{transform:scale(1.16) rotate(0.55deg) translate3d(-2.2%,1.6%,0);}
}
/* vivid slides — ελαφρύ boost χρώματος πριν το scroll wipe */
.hero-slide-img.is-vivid{filter:saturate(1.14) contrast(1.06) brightness(1.0);}
.hero-slide-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:var(--hero-scrim,1);background:
  linear-gradient(95deg, rgba(11,10,8,.92) 0%, rgba(11,10,8,.58) 40%, rgba(11,10,8,.14) 72%, transparent 100%),
  linear-gradient(0deg, rgba(11,10,8,.78), transparent 48%),
  linear-gradient(180deg, rgba(11,10,8,.36), transparent 22%);}
.hero-slide-cap{position:absolute;right:clamp(20px,4vw,56px);bottom:clamp(58px,8vh,86px);z-index:2;
  color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  display:flex;align-items:center;gap:9px;}
.hero-slide-cap .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;}
.hero-slide-center{position:absolute;inset:0;z-index:2;display:flex;
  padding:clamp(92px,13vh,150px) clamp(26px,7vw,112px) clamp(64px,10vh,120px);
  pointer-events:none;will-change:opacity,transform;}
/* placement variants — each image carries its tagline in a different spot */
.hsc-pos-c{align-items:center;justify-content:center;}
.hsc-pos-c .hsc-text{text-align:center;align-items:center;}
.hsc-pos-bl{align-items:flex-end;justify-content:flex-start;}
.hsc-pos-bl .hsc-text{text-align:left;align-items:flex-start;}
.hsc-pos-br{align-items:flex-end;justify-content:flex-end;}
.hsc-pos-br .hsc-text{text-align:right;align-items:flex-end;}
.hsc-pos-tl{align-items:flex-start;justify-content:flex-start;}
.hsc-pos-tl .hsc-text{text-align:left;align-items:flex-start;}
.hsc-pos-tr{align-items:flex-start;justify-content:flex-end;}
.hsc-pos-tr .hsc-text{text-align:right;align-items:flex-end;}
.hsc-pos-cl{align-items:center;justify-content:flex-start;}
.hsc-pos-cl .hsc-text{text-align:left;align-items:flex-start;}
.hsc-pos-cr{align-items:center;justify-content:flex-end;}
.hsc-pos-cr .hsc-text{text-align:right;align-items:flex-end;}
.hsc-text{position:relative;display:block;width:max-content;
  font-family:var(--disp);font-weight:700;text-transform:uppercase;color:#fff;
  letter-spacing:-.01em;max-width:min(72vw,640px);
  clip-path:inset(-18% 100% -18% -14px);}
/* engrave-on-appear — same laser sweep as the top headline */
.hsc-go .hsc-text{animation:hscCut .92s cubic-bezier(.45,.05,.2,1) both;}
.hsc-go .hsc-beam{animation:hscBeam .92s cubic-bezier(.45,.05,.2,1) both;}
@keyframes hscCut{from{clip-path:inset(-18% 100% -18% -14px);}to{clip-path:inset(-18% -14px -18% -14px);}}
@keyframes hscBeam{0%{left:-2px;opacity:0;}10%{opacity:1;}90%{left:100%;opacity:1;}100%{left:100%;opacity:0;}}
/* erase-on-leave — the same laser beam retraces and un-cuts the text (plays on scroll-up) */
.hsc-erase .hsc-text{animation:hscUncut .72s cubic-bezier(.45,.05,.2,1) both;}
.hsc-erase .hsc-beam{animation:hscBeamRev .72s cubic-bezier(.45,.05,.2,1) both;}
@keyframes hscUncut{from{clip-path:inset(-18% -14px -18% -14px);}to{clip-path:inset(-18% 100% -18% -14px);}}
@keyframes hscBeamRev{0%{left:100%;opacity:0;}10%{opacity:1;}90%{left:-2px;opacity:1;}100%{left:-2px;opacity:0;}}
@media (prefers-reduced-motion:reduce){
  .hsc-go .hsc-text{animation:none;clip-path:inset(-18% -14px -18% -14px);}
  .hsc-go .hsc-beam{display:none;}
  .hsc-erase .hsc-text{animation:none;clip-path:inset(-18% -14px -18% -14px);}
  .hsc-erase .hsc-beam{display:none;}
}
.hsc-key{display:block;font-size:clamp(36px,6.6vw,112px);line-height:.9;letter-spacing:-.015em;
  text-wrap:balance;text-shadow:0 4px 40px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.45);}
.hsc-key.accent{color:var(--tone,var(--accent));
  text-shadow:0 0 42px color-mix(in srgb,var(--tone,var(--accent)) 50%,transparent),0 2px 4px rgba(0,0,0,.55);}
.hsc-sub{position:relative;display:block;margin-top:.92em;padding-top:.92em;
  font-family:var(--mono);font-weight:600;text-transform:uppercase;
  font-size:clamp(11px,1.15vw,16px);letter-spacing:.26em;line-height:1.3;
  color:rgba(255,255,255,.82);text-shadow:0 1px 6px rgba(0,0,0,.6);}
.hsc-sub::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:54px;height:2px;background:var(--tone,var(--accent));
  box-shadow:0 0 14px color-mix(in srgb,var(--tone,var(--accent)) 70%,transparent);}
.hsc-pos-bl .hsc-sub::before,.hsc-pos-tl .hsc-sub::before,.hsc-pos-cl .hsc-sub::before{left:0;transform:none;}
.hsc-pos-br .hsc-sub::before,.hsc-pos-tr .hsc-sub::before,.hsc-pos-cr .hsc-sub::before{left:auto;right:0;transform:none;}
.hsc-beam{position:absolute;top:-6%;bottom:-6%;left:0;width:3px;border-radius:2px;opacity:0;pointer-events:none;
  background:#fff;
  box-shadow:0 0 12px 2px var(--tone,var(--accent)),0 0 46px 12px color-mix(in srgb,var(--tone,var(--accent)) 60%,transparent);}
.hero-stage-inner{position:relative;z-index:3;height:100%;max-width:var(--maxw);margin:0 auto;
  padding:0 var(--pad);display:flex;align-items:center;}
.hero-stage-head{will-change:opacity,transform;max-width:none;}
.hero-stage .kicker{color:#fff;}
.hero-stage .kicker::before{background:var(--accent);}
.hero-stage h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;color:#fff;
  font-size:calc(clamp(54px,9vw,140px) * var(--hero-scale));line-height:.85;letter-spacing:-.02em;margin:18px 0 0;}
.hero-stage h1 .line{display:block;}
.hero-stage h1 .accent{color:var(--accent);}
.hero-stage .hero-lead{color:rgba(255,255,255,.86);max-width:46ch;margin:24px 0 26px;}
.hero-stage .hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-stage .btn.ghost{color:#fff;border-color:#fff;background:transparent;}
.hero-stage .btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff;}
.hero-scrollhint{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:3;
  color:rgba(255,255,255,.72);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:7px;animation:hintBob 1.9s ease-in-out infinite;}
.hero-scrollhint::after{content:"↓";font-size:14px;}
@keyframes hintBob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(5px);}}
/* ---------- engrave + cinematic (combined) ---------- */
.hero-engcine .hero-stage-head{max-width:none;}
.hero-engcine-grid{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),
                   linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:38px 38px,38px 38px;
  -webkit-mask-image:linear-gradient(92deg,#000,transparent 58%);mask-image:linear-gradient(92deg,#000,transparent 58%);}
.hero-engcine .hero-eng-kick{animation:fadeUp .6s .05s both;}
.hero-engcine .eng-h1{margin:18px 0 0;}
.hero-engcine .eng-ink.accent{color:var(--accent);text-shadow:0 0 36px color-mix(in srgb,var(--accent) 40%,transparent);}
.hero-engcine .hero-eng-lead{animation:fadeUp .7s both;}
.hero-engcine .hero-eng-actions{animation:fadeUp .7s both;}

@media (max-width:760px){
  .hero-slide-cap{bottom:clamp(56px,7vh,72px);left:clamp(20px,5vw,28px);right:auto;}
}

/* ======================================================================
   RADIAL WEBGL NAVIGATION
   ====================================================================== */
.rnav-btn{position:fixed;left:auto;right:clamp(102px,calc(7vw + 50px),130px);bottom:clamp(20px,3vw,24px);z-index:130;width:46px;height:46px;padding:0;border:none;
  margin-right:env(safe-area-inset-right,0);margin-bottom:env(safe-area-inset-bottom,0);
  border-radius:50%;cursor:pointer;isolation:isolate;overflow:visible;
  background:var(--accent);transform:none;
  box-shadow:
    0 14px 30px rgba(22,20,15,.20),
    0 0 24px color-mix(in srgb,var(--accent) 42%,transparent);
  transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .3s,box-shadow .28s;}
.rnav-btn canvas{display:none;}
.rnav-btn::before{content:"";position:absolute;inset:-14px;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 36%,transparent) 0 32%,color-mix(in srgb,var(--accent) 18%,transparent) 42%,transparent 72%);
  filter:blur(9px);opacity:.86;animation:rnavOrbBreath 3.8s ease-in-out infinite;transition:opacity .28s,transform .28s;}
.rnav-btn::after{content:"";position:absolute;inset:-7px;border-radius:50%;pointer-events:none;
  border:1px solid color-mix(in srgb,var(--accent) 48%,#fff);
  box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 10%,transparent);
  opacity:.42;animation:rnavOrbPulse 2.9s cubic-bezier(.42,0,.2,1) infinite;}
.rnav-btn:hover{transform:translateY(-3px) scale(1.045);box-shadow:
  0 18px 40px rgba(22,20,15,.24),
  0 0 38px color-mix(in srgb,var(--accent) 52%,transparent);}
.rnav-btn:hover::before{opacity:1;transform:scale(1.08);}
.rnav-btn:hover::after{opacity:.62;}
.rnav-btn:active{transform:scale(.95);}
body.rnav-open .rnav-btn{opacity:0;pointer-events:none;transform:scale(.55);}
.rnav-overlay{position:fixed;inset:0;z-index:9000;opacity:0;visibility:hidden;
  transition:opacity .52s cubic-bezier(.22,1,.28,1),visibility .52s;
  background:
    radial-gradient(90% 78% at 50% 88%, color-mix(in srgb,var(--accent) 13%,transparent), transparent 54%),
    radial-gradient(circle at var(--rnav-cx) var(--rnav-cy), color-mix(in srgb,var(--bone) 8%,transparent) 0 1px, transparent 2px),
    linear-gradient(180deg,color-mix(in srgb,var(--ink) 96%,#000) 0%,color-mix(in srgb,var(--ink) 82%,#000) 100%);
  -webkit-backdrop-filter:blur(8px) saturate(1.08);backdrop-filter:blur(8px) saturate(1.08);}
.rnav-overlay.open{opacity:1;visibility:visible;}
/* the bullseye is centred on the red trigger button — the rings bloom outward 360°
   around it (concentric ripple driven on the canvas). The stage just cross-fades. */
.rnav-stage{position:absolute;inset:0;z-index:2;opacity:0;
  transition:opacity .62s cubic-bezier(.22,1,.28,1);will-change:opacity;}
.rnav-overlay.open .rnav-stage{opacity:1;}
.rnav-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:pointer;z-index:2;}
.rnav-print-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.46;
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--bone) 10%,transparent) 1px,transparent 1px) 0 0/80px 80px,
    linear-gradient(0deg,color-mix(in srgb,var(--bone) 10%,transparent) 1px,transparent 1px) 0 0/80px 80px;}
.rnav-crop{position:absolute;width:84px;height:84px;border-color:color-mix(in srgb,var(--bone) 52%,transparent);}
.rnav-crop.tl{left:34px;top:34px;border-left:1px solid;border-top:1px solid;}
.rnav-crop.tr{right:34px;top:34px;border-right:1px solid;border-top:1px solid;}
.rnav-crop.bl{left:34px;bottom:34px;border-left:1px solid;border-bottom:1px solid;}
.rnav-crop.br{right:34px;bottom:34px;border-right:1px solid;border-bottom:1px solid;}
.rnav-reg{position:absolute;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--bone) 54%,transparent);border-radius:50%;
  box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent);}
.rnav-reg::before,.rnav-reg::after{content:"";position:absolute;background:color-mix(in srgb,var(--bone) 70%,transparent);}
.rnav-reg::before{left:50%;top:-8px;width:1px;height:42px;}
.rnav-reg::after{top:50%;left:-8px;width:42px;height:1px;}
.rnav-reg.reg-a{left:11vw;top:48%;}
.rnav-reg.reg-b{right:13vw;top:30%;}
.rnav-reg.reg-c{right:18vw;bottom:14%;}
.rnav-rings{position:absolute;inset:0;pointer-events:none;z-index:1;transform:scale(0);
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.rnav-overlay.open .rnav-rings{transform:scale(1);}
.rnav-ring{position:absolute;border-radius:50%;transform:translate(-50%,-50%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25), inset 0 0 0 2px rgba(0,0,0,.08);
  background-image:
    radial-gradient(circle at 44% 39%,rgba(255,255,255,.16),transparent 34%),
    repeating-radial-gradient(circle at 50% 50%,transparent 0 calc(var(--rnav-band) * .29),rgba(255,255,255,.22) calc(var(--rnav-band) * .29) calc(var(--rnav-band) * .30),transparent calc(var(--rnav-band) * .31) calc(var(--rnav-band) * .58));}
.rnav-ring.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),inset 0 0 0 3px rgba(255,255,255,.22),0 0 38px rgba(255,255,255,.18);}
.rnav-ring.hot{box-shadow:inset 0 0 0 1px rgba(255,255,255,.68),inset 0 0 0 4px rgba(255,255,255,.26),0 0 54px rgba(255,255,255,.24);}
.rnav-labels{position:absolute;inset:0;z-index:5;pointer-events:none;}
.rnav-spin{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible;
  opacity:0;transition:opacity .62s cubic-bezier(.22,1,.28,1) .12s;}
.rnav-overlay.open .rnav-spin{opacity:.28;}
.rnav-spin-text{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;
  dominant-baseline:central;transition:fill .32s cubic-bezier(.22,1,.28,1);
  text-rendering:geometricPrecision;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.22));}
.rnav-label{position:absolute;transform:translate(-50%,-50%);pointer-events:none;
  font-family:var(--disp);font-weight:700;letter-spacing:.015em;line-height:1;text-transform:uppercase;color:var(--ink);
  background:color-mix(in srgb,var(--bone) 92%,transparent);border:1px solid color-mix(in srgb,var(--bone) 34%,transparent);
  border-radius:999px;cursor:pointer;white-space:nowrap;padding:10px 17px 11px;opacity:0;
  box-shadow:0 18px 42px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.5);
  transition:opacity .32s cubic-bezier(.22,1,.28,1),transform .34s cubic-bezier(.22,1,.28,1),color .28s,background .28s,border-color .28s;}
.rnav-label span{font-family:var(--mono);font-size:.48em;letter-spacing:.16em;color:var(--accent);margin-right:10px;vertical-align:middle;}
.rnav-label.active{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 22px 52px color-mix(in srgb,var(--accent) 34%,transparent);}
.rnav-label.hot,.rnav-label:hover{transform:translate(-50%,-50%) scale(1.06);color:#fff;background:var(--ink);border-color:color-mix(in srgb,var(--bone) 28%,transparent);}
.rnav-overlay.open .rnav-label.hot,.rnav-overlay.open .rnav-label:hover{opacity:1;}
.rnav-overlay.open .rnav-label.hot{pointer-events:auto;}
.rnav-x{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;
  border:none;cursor:pointer;color:var(--bone);opacity:0;padding:0;border-radius:50%;
  background:transparent;box-shadow:none;
  display:grid;place-items:center;z-index:6;
  transition:opacity .3s ease .12s,transform .3s cubic-bezier(.2,.7,.2,1),color .2s;}
.rnav-overlay.open .rnav-x{opacity:1;}
.rnav-x-glyph{font-size:clamp(26px,3vw,38px);line-height:1;color:var(--bone);text-shadow:0 8px 24px rgba(0,0,0,.28);}
.rnav-x:hover{transform:translate(-50%,-50%) scale(1.08) rotate(90deg);color:var(--accent);}
@keyframes rnavFloatButton{to{transform:translate3d(3px,-5px,0) scale(1.08) rotate(8deg);}}
@keyframes rnavOrbBreath{
  0%,100%{transform:scale(.96);opacity:.62;}
  50%{transform:scale(1.14);opacity:.95;}
}
@keyframes rnavOrbPulse{
  0%{transform:scale(.74);opacity:.50;box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 18%,transparent);}
  64%{transform:scale(1.42);opacity:.08;box-shadow:0 0 0 18px color-mix(in srgb,var(--accent) 0%,transparent);}
  100%{transform:scale(1.42);opacity:0;box-shadow:0 0 0 18px color-mix(in srgb,var(--accent) 0%,transparent);}
}
@media (max-width:760px){
  .rnav-btn{left:auto;right:clamp(94px,calc(8vw + 50px),114px);bottom:calc(18px + env(safe-area-inset-bottom,0));width:42px;height:42px;}
  .rnav-crop{width:46px;height:46px;}
  .rnav-crop.tl{left:18px;top:18px;}
  .rnav-crop.tr{right:18px;top:18px;}
  .rnav-crop.bl{left:18px;bottom:18px;}
  .rnav-crop.br{right:18px;bottom:18px;}
  .rnav-reg{display:none;}
  .rnav-label{padding:8px 12px 9px;}
  .rnav-label span{display:none;}
}
@media (max-width:520px){
  .logo{gap:8px;}
  .logo-mark{height:29px;}
  .logo .mark{font-size:20px;}
  .lang-toggle button{padding:9px 10px;min-width:38px;}
  .mobile-menu-toggle{padding-inline:12px;}
  .rnav-btn{left:auto;right:clamp(86px,calc(8vw + 50px),102px);bottom:calc(16px + env(safe-area-inset-bottom,0));width:38px;height:38px;}
}
@media (max-width:380px){
  .nav-inner{gap:8px;}
  .logo .mark{display:none;}
  .logo-mark{height:31px;}
}

/* ======================================================================
   HOME HERO — engrave type treatment
   ====================================================================== */
/* engrave headline (used by .hero-engcine markup) */
.hero-eng-kick{color:#fff;animation:fadeUp .6s .05s both;}
.hero-eng-kick::before{background:var(--accent);}
.eng-h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;color:#fff;
  font-size:calc(clamp(54px,9.2vw,144px) * var(--hero-scale));line-height:.84;letter-spacing:-.02em;margin:18px 0 0;}
.eng-line{display:block;}
.eng-ink{position:relative;display:inline-block;
  clip-path:inset(0 100% -12% 0);animation:engCut .82s cubic-bezier(.45,.05,.2,1) both;}
.eng-ink.accent{color:var(--accent);text-shadow:0 0 36px color-mix(in srgb,var(--accent) 40%,transparent);}
@keyframes engCut{from{clip-path:inset(0 100% -12% 0);}to{clip-path:inset(0 -4% -12% 0);}}
.eng-beam{position:absolute;top:-8%;bottom:-8%;left:0;width:3px;border-radius:2px;
  background:#ffd9c9;box-shadow:0 0 12px 2px var(--accent),0 0 44px 10px color-mix(in srgb,var(--accent) 70%,transparent);
  opacity:0;animation:engBeam .82s cubic-bezier(.45,.05,.2,1) both;}
@keyframes engBeam{0%{left:0;opacity:0;}10%{opacity:1;}90%{left:100%;opacity:1;}100%{left:100%;opacity:0;}}
.hero-eng-lead{color:rgba(255,255,255,.86);max-width:44ch;margin:26px 0 28px;animation:fadeUp .7s both;}
.hero-eng-actions{display:flex;gap:14px;flex-wrap:wrap;animation:fadeUp .7s both;}

/* ======================================================================
   EQUIPMENT SHOWCASE — lit "workshop" band, scroll-snap rail,
   engineered spec-sheet typography (three.js + GSAP + lottie wired in JSX)
   ====================================================================== */
.equip-showcase{
  --es-bg:#100E0A; --es-ink:#F4F0E7; --es-mut:#9c9484; --es-line:rgba(244,240,231,.13);
  --es-line-2:rgba(244,240,231,.26); --es-card:rgba(28,25,18,.66);
  position:relative;overflow:hidden;background:var(--es-bg);color:var(--es-ink);
  isolation:isolate;padding-top:clamp(54px,7vw,104px);padding-bottom:clamp(50px,6vw,92px);
}
.es-stage-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;}
.es-stage-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% -8%,transparent 40%,rgba(8,7,5,.62) 100%),
    linear-gradient(180deg,rgba(8,7,5,.42) 0%,transparent 26%,transparent 70%,rgba(8,7,5,.55) 100%);}
.es-inner{position:relative;z-index:2;}

/* header */
.es-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
  margin-bottom:clamp(28px,3.4vw,46px);}
.es-head .kicker{color:var(--accent);}
.es-head .kicker::before{background:var(--accent);}
.es-title{color:var(--es-ink);font-size:var(--fs-section);line-height:.92;margin:14px 0 0;}
.es-note{color:#c7c0b1;max-width:52ch;margin:16px 0 0;}
.es-head-mark{display:flex;align-items:center;gap:18px;flex:none;padding-bottom:6px;}
.es-scan{display:block;width:74px;height:74px;flex:none;}
.es-scan svg{display:block;width:100%;height:100%;}
.es-head-meta{display:flex;flex-direction:column;line-height:1;}
.es-head-meta b{font-family:var(--disp);font-weight:800;font-size:40px;color:var(--es-ink);
  font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.02em;}
.es-head-meta span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--es-mut);margin-top:8px;max-width:14ch;}

/* rail */
.es-railwrap{position:relative;}
.es-rail{display:flex;gap:22px;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-padding-left:var(--pad);
  margin:0 calc(-1 * var(--pad));padding:8px var(--pad) 26px;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;}
.es-rail::-webkit-scrollbar{display:none;}
.es-railpad{flex:0 0 max(1px,calc(var(--pad) - 22px));}

/* panel */
.es-panel{flex:0 0 clamp(300px,40vw,560px);scroll-snap-align:start;
  display:flex;flex-direction:column;text-align:left;cursor:pointer;
  background:var(--es-card);border:1px solid var(--es-line);border-radius:calc(var(--radius) + 4px);
  overflow:hidden;-webkit-backdrop-filter:blur(7px) saturate(1.05);backdrop-filter:blur(7px) saturate(1.05);
  box-shadow:0 26px 60px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .42s cubic-bezier(.2,.7,.2,1),border-color .42s,box-shadow .42s;will-change:transform;}
.es-panel:hover{transform:translateY(-8px);border-color:color-mix(in srgb,var(--mtone) 64%,transparent);
  box-shadow:0 36px 80px rgba(0,0,0,.5),0 0 0 1px color-mix(in srgb,var(--mtone) 40%,transparent);}
.es-panel:focus-visible{outline:2px solid var(--mtone);outline-offset:4px;}

/* panel media */
.es-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0c0b08;
  border-bottom:1px solid var(--es-line);}
.es-media image-slot{display:block;width:100%;height:100%;--slot-bg:#0c0b08;
  transform:scale(1.02);transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .6s;}
.es-panel:hover .es-media image-slot{transform:scale(1.07);filter:saturate(1.05) contrast(1.03);}
.es-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,7,5,.28) 0%,transparent 30%,transparent 58%,rgba(8,7,5,.62) 100%);}
.es-tag{position:absolute;top:14px;left:14px;z-index:3;font-family:var(--mono);font-size:10px;
  font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#fff;
  padding:6px 11px;border-radius:999px;border:1px solid color-mix(in srgb,var(--mtone) 50%,rgba(255,255,255,.3));
  background:color-mix(in srgb,var(--mtone) 26%,rgba(12,11,8,.5));
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:0 0 18px color-mix(in srgb,var(--mtone) 36%,transparent);}
.es-index{position:absolute;right:14px;bottom:8px;z-index:3;font-family:var(--disp);font-weight:800;
  font-size:clamp(56px,7vw,92px);line-height:.8;letter-spacing:-.04em;color:transparent;
  -webkit-text-stroke:1.4px rgba(244,240,231,.42);font-variant-numeric:tabular-nums slashed-zero;
  pointer-events:none;}
.es-sheen{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen;opacity:0;
  background:linear-gradient(115deg,transparent 36%,color-mix(in srgb,var(--mtone) 60%,#fff) 50%,transparent 64%);
  transition:opacity .5s;}
.es-panel:hover .es-sheen{opacity:.5;animation:esSheen 1.1s ease;}
@keyframes esSheen{0%{transform:translateX(-26%);}100%{transform:translateX(26%);}}

/* panel content */
.es-content{padding:clamp(20px,2vw,30px);display:flex;flex-direction:column;flex:1;}
.es-cat{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mtone);}
.es-name{font-family:var(--disp);font-weight:800;text-transform:uppercase;color:var(--es-ink);
  font-size:clamp(23px,2.1vw,32px);line-height:.96;letter-spacing:-.01em;margin:11px 0 0;text-wrap:balance;}

/* hero figure — the punch spec */
.es-hero{margin:20px 0 22px;padding:18px 0 4px;border-top:1px solid var(--es-line);}
.es-hero-fig{display:flex;align-items:baseline;gap:8px;}
.es-hero-num{font-family:var(--disp);font-weight:800;font-size:clamp(58px,6.4vw,90px);line-height:.82;
  letter-spacing:-.035em;color:var(--mtone);font-variant-numeric:tabular-nums slashed-zero;
  text-shadow:0 0 42px color-mix(in srgb,var(--mtone) 46%,transparent);}
.es-hero-unit{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2vw,30px);line-height:1;
  color:var(--mtone);letter-spacing:-.01em;}
.es-hero-cap{display:block;margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--es-mut);font-variant-numeric:tabular-nums slashed-zero;}

/* engineered spec table — aligned columns, dotted leaders, tabular figures */
.es-specs{display:flex;flex-direction:column;border-top:1px solid var(--es-line);}
.es-row{display:grid;grid-template-columns:auto minmax(14px,1fr) minmax(0,58%);align-items:baseline;gap:10px;
  padding:11px 0;border-bottom:1px solid var(--es-line);}
.es-row-l{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--es-mut);white-space:nowrap;}
.es-row-dots{align-self:center;height:1px;border-bottom:1.5px dotted rgba(244,240,231,.26);transform:translateY(-2px);}
.es-row-v{font-family:var(--disp);font-weight:700;font-size:clamp(14px,1.2vw,17px);text-transform:uppercase;
  color:var(--mtone);text-align:right;white-space:normal;line-height:1.12;letter-spacing:.005em;
  font-variant-numeric:tabular-nums slashed-zero;font-feature-settings:"tnum" 1,"zero" 1;}

.es-open{margin-top:auto;padding-top:20px;display:inline-flex;align-items:center;gap:10px;
  font-family:var(--disp);font-weight:700;font-size:14px;letter-spacing:.02em;text-transform:uppercase;
  color:var(--es-ink);}
.es-open .arr{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;
  border:1.4px solid color-mix(in srgb,var(--mtone) 70%,transparent);color:var(--mtone);font-style:normal;
  transition:transform .26s,background .26s,color .26s;}
.es-panel:hover .es-open .arr{transform:translateX(5px);background:var(--mtone);color:#16140f;border-color:var(--mtone);}

/* rail controls */
.es-railctl{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px;}
.es-progress{flex:1;height:2px;background:var(--es-line);border-radius:2px;overflow:hidden;}
.es-progress span{display:block;height:100%;width:100%;transform-origin:left;
  background:var(--accent);box-shadow:0 0 10px var(--accent);transition:transform .12s linear;}
.es-arrows{display:flex;gap:10px;flex:none;}
.es-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--es-line-2);background:rgba(244,240,231,.05);
  color:var(--es-ink);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .22s,border-color .22s,transform .22s;}
.es-arrow:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);}
.es-arrow:active{transform:translateY(0);}

@media (max-width:640px){
  .es-head{flex-direction:column;align-items:flex-start;gap:20px;}
  .es-panel{flex-basis:84vw;}
}
@media (prefers-reduced-motion:reduce){
  .es-panel:hover .es-sheen{animation:none;}
}

/* ======================================================================
   STORYTELLING — Home / Businesses / Individuals narrative bands
   ====================================================================== */
[data-reveal]{opacity:0;transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);}
[data-reveal].in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none;}
}

/* ---------- HOME — who we are + what we make ---------- */
.home-story{position:relative;border-top:1px solid var(--hairline);
  padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(50px,6vw,90px);}
.hs-identity{max-width:min(920px,100%);margin-bottom:clamp(44px,6vw,86px);}
.hs-identity .kicker{margin-bottom:clamp(16px,2vw,24px);}
.hs-title{display:flex;flex-direction:column;gap:0;margin:0 0 clamp(22px,3vw,34px);line-height:.86;
  font-size:clamp(52px,9.2vw,118px);letter-spacing:-.025em;overflow:hidden;}
.hs-title-line-wrap{display:block;overflow:hidden;padding:.04em 0;will-change:transform;}
.hs-title-line{display:inline-block;position:relative;will-change:transform,opacity;}
.hs-title-ink{display:inline-block;}
.hs-title-ink.ac{color:var(--accent);}
.hs-title-beam{
  position:absolute;left:0;bottom:.06em;width:100%;height:3px;background:var(--accent);
  transform-origin:left center;pointer-events:none;opacity:.85;
}
@media (prefers-reduced-motion:reduce){
  .hs-title-line-wrap{overflow:visible;}
  .hs-title-line{transform:none !important;opacity:1 !important;}
  .hs-title-beam{transform:none !important;}
}
.hs-lead{
  font-family:var(--serif);font-size:clamp(18px,1.65vw,22px);line-height:1.58;
  color:var(--ink-2);margin:0;max-width:58ch;text-wrap:pretty;
}
.hs-svc-head{display:flex;align-items:flex-end;gap:clamp(16px,2vw,28px);margin:0 0 clamp(22px,2.4vw,34px);}
.hs-svc-head-main{display:flex;flex-direction:column;gap:6px;flex:none;}
.hs-svc-display{
  font-size:clamp(28px,3.6vw,46px);line-height:.92;letter-spacing:.04em;
  color:var(--ink);opacity:.92;
}
.hs-svc-rule{flex:1;height:var(--bw-strong);background:var(--ink);margin-bottom:.35em;}
.hs-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,46px);}
.hs-svc{border-top:var(--bw-strong) solid var(--ink);padding-top:20px;position:relative;}
.hs-svc::before{content:"";position:absolute;top:calc(-1 * var(--bw-strong));left:0;width:46px;height:var(--bw-strong);background:var(--accent);}
.hs-svc-n{font-family:var(--disp);font-weight:800;font-size:clamp(40px,4vw,62px);line-height:.82;
  color:var(--accent);letter-spacing:-.03em;font-variant-numeric:tabular-nums slashed-zero;display:block;}
.hs-svc h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(22px,1.8vw,30px);
  line-height:1.2;letter-spacing:-.005em;margin:16px 0 12px;text-wrap:balance;}
.hs-svc p{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-2);margin:0 0 18px;text-wrap:pretty;}
.hs-svc-tags{display:flex;flex-wrap:wrap;gap:8px;}
.hs-svc-tags span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-2);padding:5px 10px;border:1px solid var(--hairline-strong);border-radius:999px;}

/* ---------- Laser-cut lines (laser-lines.js auto-enhancer) ---------- */
.ll-host{position:absolute;left:0;right:0;pointer-events:none;z-index:3;}
.ll-cut.ll-top{border-top-color:transparent !important;}
.ll-cut.ll-top::before{opacity:0 !important;}
.ll-cut.ll-bottom{border-bottom-color:transparent !important;}
.ll-cut.ll-self{background-color:transparent !important;}
@media (prefers-reduced-motion: reduce){
  /* keep the original rules visible; the script draws a static line anyway */
  .ll-cut.ll-top{border-top-color:var(--ink) !important;}
  .ll-cut.ll-top::before{opacity:1 !important;}
  .ll-cut.ll-self{background-color:var(--ink) !important;}
}

/* ---------- BUSINESSES — process timeline ---------- */
.biz-process{padding-top:clamp(50px,6vw,92px);padding-bottom:clamp(40px,5vw,70px);border-top:1px solid var(--hairline);}
.bp-steps{list-style:none;margin:clamp(24px,3vw,40px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,1.6vw,26px);counter-reset:bp;}
.bp-step{position:relative;border-top:var(--bw-strong) solid var(--ink);padding-top:18px;}
.bp-step::before{content:"";position:absolute;top:calc(-1 * var(--bw-strong));left:0;width:38px;height:var(--bw-strong);background:var(--accent);}
.bp-n{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.16em;color:var(--accent);
  font-variant-numeric:tabular-nums slashed-zero;}
.bp-step h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(18px,1.4vw,24px);
  line-height:1.02;margin:12px 0 9px;text-wrap:balance;}
.bp-step p{font-family:var(--serif);font-size:15.5px;line-height:1.5;color:var(--ink-2);margin:0;text-wrap:pretty;}

/* ---------- BUSINESSES — capabilities (dark proof band) ---------- */
.biz-cap{--bc-bg:#16140F;--bc-ink:#F4F0E7;--bc-mut:#9c9484;--bc-line:rgba(244,240,231,.14);
  background:var(--bc-bg);color:var(--bc-ink);position:relative;isolation:isolate;
  padding-top:clamp(54px,7vw,100px);padding-bottom:clamp(54px,7vw,100px);}
.biz-cap .sec-head h2{color:var(--bc-ink);}
.biz-cap .kicker{color:var(--accent);}
.biz-cap .serif-lead{color:#c7c0b1;}
.bm-table{margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--bc-line);}
.bm-row{display:grid;grid-template-columns:minmax(120px,1.6fr) repeat(var(--bm-cols,4),minmax(0,1fr));
  align-items:center;border-bottom:1px solid var(--bc-line);}
.bm-mat{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(15px,1.3vw,19px);
  letter-spacing:.005em;color:var(--bc-ink);padding:15px 14px 15px 0;}
.bm-head .bm-mat{min-height:0;}
.bm-col{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  color:var(--bc-mut);text-align:center;padding:14px 6px;}
.bm-cell{display:flex;align-items:center;justify-content:center;padding:15px 6px;}
.bm-dot{width:14px;height:14px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent),0 0 16px color-mix(in srgb,var(--accent) 50%,transparent);}
.bm-dash{width:14px;height:2px;border-radius:2px;background:rgba(244,240,231,.22);}
.bm-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,32px);
  margin-top:clamp(40px,5vw,72px);}
.bm-metric{border-top:var(--bw-strong) solid rgba(244,240,231,.5);padding-top:16px;}
.bm-metric strong{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(38px,4.4vw,68px);
  line-height:.86;letter-spacing:-.03em;color:var(--bc-ink);font-variant-numeric:tabular-nums slashed-zero;}
.bm-metric span{display:block;margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--bc-mut);line-height:1.4;max-width:18ch;}

/* ---------- INDIVIDUALS — occasions ---------- */
.pv-occ{padding-top:clamp(40px,5vw,76px);padding-bottom:clamp(36px,4vw,60px);}
.pv-occ-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,38px);}
.pv-occ-card{border-top:1px solid var(--hairline-strong);padding-top:20px;position:relative;
  transition:border-color .3s;}
.pv-occ-card::before{content:"";position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--accent);
  transition:width .4s cubic-bezier(.2,.7,.2,1);}
.pv-occ-card:hover::before{width:54px;}
.pv-occ-n{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--accent);
  font-variant-numeric:tabular-nums slashed-zero;}
.pv-occ-card h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:clamp(22px,2vw,32px);
  line-height:1;margin:12px 0 10px;}
.pv-occ-card p{font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ink-2);margin:0;text-wrap:pretty;}

/* ---------- INDIVIDUALS — personalisation (engraved plate) ---------- */
.pv-pers{padding-top:clamp(44px,6vw,86px);padding-bottom:clamp(44px,6vw,86px);}
.pv-pers-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);
  gap:clamp(28px,5vw,72px);align-items:center;}
.pv-pers-copy h2{font-size:clamp(36px,4.6vw,68px);line-height:.9;margin:14px 0 0;}
.pv-pers-copy .serif-lead{margin-top:18px;max-width:46ch;}
.pv-pers-opts{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0 0;}
.pv-pers-opts span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);padding:8px 14px;border:1px solid var(--hairline-strong);border-radius:999px;
  transition:background .22s,color .22s,border-color .22s;}
.pv-pers-opts span:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.pv-pers-note{font-family:var(--serif);font-size:15.5px;line-height:1.55;color:var(--muted);margin:22px 0 0;max-width:48ch;}
.pv-pers-stage{display:flex;justify-content:center;}
.pv-plate{position:relative;width:min(100%,440px);aspect-ratio:7/5;border-radius:14px;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:30px;background:
    linear-gradient(150deg,#3a2c1d 0%,#2a2015 48%,#1f1710 100%);
  box-shadow:0 30px 70px rgba(22,20,15,.4),inset 0 1px 0 rgba(255,240,214,.12),
    inset 0 0 0 1px rgba(0,0,0,.5),inset 0 0 70px rgba(0,0,0,.5);}
.pv-plate-grain{position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;opacity:.5;
  background:repeating-linear-gradient(96deg,rgba(255,235,200,.06) 0 2px,transparent 2px 7px),
    repeating-linear-gradient(91deg,rgba(0,0,0,.08) 0 3px,transparent 3px 11px);}
.pv-plate-l1{position:relative;font-family:var(--serif);font-style:italic;font-size:clamp(26px,3.4vw,40px);
  line-height:1.1;color:#F4E9D4;letter-spacing:.01em;
  text-shadow:0 1px 0 rgba(0,0,0,.55),0 -1px 0 rgba(255,238,210,.14);}
.pv-plate-l2{position:relative;margin-top:14px;font-family:var(--mono);font-size:clamp(12px,1.1vw,15px);
  letter-spacing:.22em;color:#cdb79a;font-variant-numeric:tabular-nums slashed-zero;
  text-shadow:0 1px 0 rgba(0,0,0,.5);}
.pv-plate-tag{position:relative;margin-top:22px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:#9a8a70;padding-top:14px;border-top:1px solid rgba(255,235,200,.16);}

@media (max-width:960px){
  .hs-svc-grid{grid-template-columns:1fr;gap:0;}
  .hs-svc{border-top:1px solid var(--hairline-strong);padding:24px 0;}
  .hs-svc:first-child{border-top:var(--bw-strong) solid var(--ink);}
  .bp-steps{grid-template-columns:repeat(2,1fr);}
  .pv-occ-grid{grid-template-columns:repeat(2,1fr);}
  .bm-metrics{grid-template-columns:repeat(2,1fr);}
  .pv-pers-inner{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .hs-title{font-size:clamp(42px,14vw,64px);}
  .hs-svc-head{flex-direction:column;align-items:flex-start;}
  .hs-svc-rule{width:100%;margin-bottom:0;}
  .bp-steps{grid-template-columns:1fr;}
  .pv-occ-grid{grid-template-columns:1fr;}
  .bm-metrics{grid-template-columns:1fr;}
  .bm-row{grid-template-columns:minmax(96px,1.3fr) repeat(var(--bm-cols,4),minmax(0,1fr));}
  .bm-mat{font-size:13px;}
}

/* ======================================================================
   HOME — "TWO WORLDS" SPLIT-SCREEN  (Businesses ↔ Individuals)
   Light & airy · soft Sofia Sans · three.js spotlight on paper ·
   GSAP scroll-scrub + entrance · pointer drag · lottie handle · scroll-snap.
   ====================================================================== */
.home-paths2{
  position:relative;background:var(--bone);color:var(--ink);
  padding-top:clamp(54px,7vw,104px);padding-bottom:clamp(24px,3vw,48px);
  scroll-snap-align:none;
  --hp2-h:clamp(470px,64vh,720px);
}
.hp2-scene{position:relative;}
.hp2-pin{position:relative;min-height:calc(var(--hp2-h) + clamp(80px,12vh,160px));}
.hp2-pin-inner{position:relative;width:100%;min-height:calc(var(--hp2-h) + clamp(40px,8vh,100px));}
.hp2-stage-outer{position:relative;}
.hp2-stage-wrap{
  will-change:transform,border-radius;
  transform-origin:center center;
  overflow:hidden;
  border-radius:calc(var(--radius) + 8px);
}
.hp2-rail{
  position:fixed;right:clamp(10px,1.4vw,18px);top:50%;transform:translateY(-50%);
  width:3px;height:clamp(72px,14vh,120px);z-index:40;pointer-events:none;
  opacity:0;transition:opacity .35s;
}
.home-paths2.is-rail-visible .hp2-rail{opacity:1;}
.hp2-rail-track{
  position:absolute;inset:0;border-radius:8px;
  background:color-mix(in srgb,var(--ink) 10%,transparent);
}
.hp2-rail-fill{
  position:absolute;left:0;bottom:0;width:100%;height:100%;
  transform-origin:center bottom;transform:scaleY(0);
  border-radius:8px;background:color-mix(in srgb,var(--accent) 72%,var(--ink));
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 40%,transparent);
}
.hp2-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(26px,3vw,44px);}
.hp2-title{
  display:flex;flex-direction:column;gap:clamp(8px,1.2vw,14px);margin:0;
  font-size:clamp(46px,8.4vw,108px);line-height:.88;letter-spacing:-.025em;
  color:var(--ink);max-width:min(100%,920px);
}
.hp2-title-line-wrap{display:block;overflow:hidden;padding:.04em 0;will-change:transform;}
.hp2-title-line-wrap--top .hp2-title-line{will-change:transform,opacity;}
.hp2-title-line{display:inline-block;will-change:transform,opacity;}
.hp2-title-prefix{color:var(--accent);}
.hp2-aud-word{
  position:relative;display:block;min-height:1.15em;overflow:hidden;
  padding:.12em 0 .06em;
  font-size:clamp(38px,6.8vw,88px);line-height:1.02;letter-spacing:-.02em;color:var(--ink);
  will-change:transform;
}
.hp2-aud-biz,.hp2-aud-priv{
  position:absolute;left:0;top:.1em;white-space:nowrap;
  will-change:transform,opacity;
}
.hp2-aud-biz{opacity:0;transform:translateY(100%);}
.hp2-aud-priv{opacity:0;transform:translateY(-100%);}
@media (prefers-reduced-motion:reduce){
  .hp2-title-line-wrap,.hp2-aud-word{overflow:visible;transform:none !important;}
  .hp2-title-line,.hp2-aud-word{transform:none !important;opacity:1 !important;}
  .hp2-aud-biz{position:relative;opacity:1 !important;filter:none !important;}
  .hp2-aud-priv{display:none;}
  .hp2-rail{display:none;}
  .hp2-stage-wrap{transform:none !important;border-radius:calc(var(--radius) + 8px) !important;}
}

/* stage */
.hp2-stage{position:relative;height:var(--hp2-h);border-radius:inherit;overflow:hidden;
  background:var(--bone-2);border:1px solid var(--hairline);box-shadow:var(--lift-shadow-soft);
  isolation:isolate;}
.hp2-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;}
.hp2-sides{position:absolute;inset:0;z-index:1;}

/* sides — full-size, clipped by the seam; content hugs the outer edge */
.hp2-side{position:absolute;inset:0;display:flex;align-items:center;will-change:clip-path;cursor:pointer;
  --acc:#1F5AE5;}
.hp2-left{justify-content:flex-start;}
.hp2-right{justify-content:flex-end;}
.hp2-photo{position:absolute;inset:0;z-index:0;display:none;overflow:hidden;}
.hp2-photo-stack{position:absolute;inset:0;}
.hp2-photo-layer{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity 1.15s cubic-bezier(.4,0,.2,1);
  will-change:opacity;
}
.hp2-photo-layer.is-active{opacity:1;}
.hp2-photo image-slot,.hp2-photo-layer image-slot{display:block;width:100%;height:100%;--slot-bg:var(--bone-2);}
.feel-photo .hp2-photo{display:block;}
.hp2-wash{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.45;}
.hp2-left .hp2-wash{background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 13%,transparent),transparent 58%);}
.hp2-right .hp2-wash{background:linear-gradient(270deg,color-mix(in srgb,var(--acc) 13%,transparent),transparent 58%);}

.hp2-content{position:relative;z-index:2;width:min(48%,540px);padding:clamp(20px,3.2vw,54px);
  display:flex;flex-direction:column;align-items:flex-start;will-change:opacity;}
.hp2-right .hp2-content{align-items:flex-end;text-align:right;}

.hp2-eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--acc);transition:color .4s;}
.hp2-headline{font-family:'Sofia Sans',sans-serif;font-weight:800;letter-spacing:-.03em;
  font-size:clamp(34px,5vw,72px);line-height:.95;color:var(--ink);margin:14px 0 0;display:flex;flex-direction:column;}
.hp2-desc{font-family:var(--serif);font-size:clamp(15px,1.35vw,19px);line-height:1.5;color:var(--ink-2);
  max-width:32ch;margin:18px 0 0;}
.hp2-right .hp2-desc{margin-left:auto;}
.hp2-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;}
.hp2-right .hp2-tags{justify-content:flex-end;}
.hp2-tags li{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--ink-2);
  border:1px solid var(--hairline-strong);border-radius:999px;padding:7px 13px;}
.hp2-cta{margin-top:26px;display:inline-flex;align-items:center;gap:10px;font-family:'Sofia Sans',sans-serif;
  font-weight:700;font-size:15px;color:#fff;background:var(--acc);border:none;border-radius:var(--btn-radius);
  padding:13px 22px;box-shadow:0 8px 22px color-mix(in srgb,var(--acc) 30%,transparent);
  transition:transform .24s,filter .24s,box-shadow .24s;}
.hp2-cta .arr{font-style:normal;transition:transform .24s;}
.hp2-cta:hover{transform:translateY(-2px);filter:saturate(1.06);box-shadow:0 12px 30px color-mix(in srgb,var(--acc) 40%,transparent);}
.hp2-cta:hover .arr{transform:translateX(4px);}

/* photo feel — type sits over the photo + accent scrim */
.feel-photo .hp2-wash{opacity:1;}
.feel-photo .hp2-left .hp2-wash{background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 46%,rgba(18,16,11,.55)),rgba(18,16,11,.12) 72%);}
.feel-photo .hp2-right .hp2-wash{background:linear-gradient(270deg,color-mix(in srgb,var(--acc) 46%,rgba(18,16,11,.55)),rgba(18,16,11,.12) 72%);}
.feel-photo .hp2-eyebrow,.feel-photo .hp2-headline{color:#fff;}
.feel-photo .hp2-desc{color:rgba(255,255,255,.88);}
.feel-photo .hp2-tags li{color:#fff;border-color:rgba(255,255,255,.42);}

/* seam handle */
.hp2-handle{position:absolute;top:0;bottom:0;left:50%;z-index:5;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;pointer-events:none;}
.hp2-handle-line{position:absolute;top:0;bottom:0;width:2px;background:rgba(22,20,15,.42);
  box-shadow:0 0 0 1px rgba(255,255,255,.5);}
.feel-photo .hp2-handle-line{background:rgba(255,255,255,.85);box-shadow:0 0 14px rgba(0,0,0,.35);}
.hp2-handle-grip{position:relative;z-index:2;width:56px;height:56px;border-radius:50%;background:var(--bone);
  border:1px solid var(--hairline-strong);box-shadow:var(--lift-shadow-soft);display:flex;align-items:center;
  justify-content:center;cursor:ew-resize;pointer-events:auto;touch-action:none;transition:transform .2s ease;}
.hp2-handle-grip:hover{transform:scale(1.07);}
.hp2-handle-grip:active{transform:scale(1.02);}
.hp2-handle-motif{display:block;width:42px;height:42px;}
.hp2-handle-motif svg{display:block;width:100%;height:100%;}
.hp2-handle-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-family:var(--mono);
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;
  background:var(--bone);padding:4px 11px;border-radius:999px;pointer-events:none;box-shadow:var(--ambient-shadow);}
.feel-photo .hp2-handle-hint{color:#fff;background:rgba(18,16,11,.55);box-shadow:none;}

@media (max-width:720px){
  .hp2-rail{display:none;}
  .hp2-stage{height:clamp(420px,72vh,560px);}
  .hp2-content{width:62%;padding:16px;}
  .hp2-headline{font-size:clamp(25px,7.5vw,38px);}
  .hp2-desc{margin-top:12px;max-width:none;font-size:clamp(15px,3.8vw,17px);}
  .hp2-tags{display:none;}
  .hp2-handle-grip{width:48px;height:48px;}
}

/* ======================================================================
   MODERN STORY SECTIONS — Businesses & Individuals (light)
   ====================================================================== */
.bizm-head{max-width:64ch;}
.bizm-head .kicker{color:var(--accent);}
.bizm-title{font-family:'Sofia Sans',sans-serif;font-weight:800;letter-spacing:-.025em;
  font-size:clamp(28px,3.6vw,50px);line-height:1.02;color:var(--ink);margin:14px 0 0;text-wrap:balance;
  display:block;overflow:hidden;padding:.02em 0;}
.bizm-note{font-family:var(--serif);font-size:clamp(16px,1.4vw,20px);line-height:1.5;color:var(--ink-2);margin:14px 0 0;max-width:52ch;}

/* process — light scroll-snap rail */
.bizm-proc{padding-top:clamp(48px,6vw,92px);}
.bizm-railwrap{margin-top:clamp(26px,3vw,42px);}
.bizm-rail{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  scroll-padding-left:var(--pad);margin:0 calc(-1 * var(--pad));padding:6px var(--pad) 22px;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;}
.bizm-rail::-webkit-scrollbar{display:none;}
.bizm-railpad{flex:0 0 max(1px,calc(var(--pad) - 20px));}
.bizm-step{flex:0 0 clamp(248px,30vw,340px);scroll-snap-align:start;background:var(--card);
  border:1px solid var(--hairline);border-radius:calc(var(--radius) + 4px);padding:clamp(22px,2vw,30px);
  box-shadow:var(--ambient-shadow);display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s,border-color .35s;}
.bizm-step:hover{transform:translateY(-6px);box-shadow:var(--lift-shadow-soft);border-color:var(--hairline-strong);}
.bizm-step-n{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.18em;color:var(--accent);}
.bizm-step-bar{height:2px;width:38px;background:var(--accent);margin:14px 0 16px;border-radius:2px;}
.bizm-step h3{font-family:'Sofia Sans',sans-serif;font-weight:700;font-size:clamp(20px,1.8vw,26px);
  line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin:0;}
.bizm-step p{font-family:var(--serif);font-size:15.5px;line-height:1.5;color:var(--ink-2);margin:12px 0 0;}

/* process — pinned Star Wars crawl */
.bizm-proc--crawl{
  --bizm-proc-h:clamp(520px,68vh,760px);
  padding-top:clamp(48px,6vw,92px);overflow:visible;
}
.bizm-proc-pin{position:relative;min-height:calc(var(--bizm-proc-h) + clamp(120px,22vh,280px));}
.bizm-proc-pin-inner{position:relative;width:100%;min-height:var(--bizm-proc-h);}
.bizm-proc-stage-outer{margin-top:clamp(26px,3vw,42px);}
.bizm-proc-stage-wrap{
  will-change:transform,border-radius;transform-origin:center top;
  overflow:hidden;border-radius:calc(var(--radius) + 8px);
}
.bizm-proc-stage--crawl{
  position:relative;background:var(--bone);border:1px solid var(--hairline);border-radius:inherit;
  min-height:var(--bizm-proc-h);box-shadow:var(--ambient-shadow);overflow:hidden;isolation:isolate;
}
.kapa-proc-canvas{
  position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;display:block;
}
.bizm-proc-crawl-vignette{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,var(--bone) 0%,transparent 14%,transparent 68%,var(--bone) 100%);
}
.bizm-proc-crawl-origin{
  position:absolute;left:50%;top:50%;z-index:2;pointer-events:none;
  width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);
  background:var(--accent);opacity:.28;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);
}
.bizm-proc-crawl-viewport{
  position:relative;z-index:2;height:var(--bizm-proc-h);
  perspective:1200px;perspective-origin:50% 50%;
  overflow:hidden;
}
.bizm-proc-crawl-world{
  position:absolute;inset:0;transform-style:preserve-3d;
}
.bizm-crawl-block{
  position:absolute;left:50%;top:50%;width:min(92%,760px);
  transform:translate(-50%,-50%);margin:0;padding:0;
  display:flex;align-items:center;justify-content:center;
  box-sizing:border-box;pointer-events:none;
}
.bizm-crawl-inner{
  width:100%;text-align:center;transform-style:preserve-3d;
  will-change:transform,opacity,filter;
  padding:0 clamp(12px,3vw,28px);
}
.bizm-proc-rail{
  position:fixed;right:clamp(10px,1.4vw,18px);top:50%;transform:translateY(-50%);
  width:3px;height:clamp(72px,14vh,120px);z-index:40;pointer-events:none;
  opacity:0;transition:opacity .35s;
}
.bizm-proc--crawl.is-rail-visible .bizm-proc-rail{opacity:1;}
.bizm-proc-rail-track{
  position:absolute;inset:0;border-radius:8px;
  background:color-mix(in srgb,var(--ink) 10%,transparent);
}
.bizm-proc-rail-fill{
  position:absolute;left:0;bottom:0;width:100%;height:100%;
  transform-origin:center bottom;transform:scaleY(0);
  border-radius:8px;background:color-mix(in srgb,var(--accent) 72%,var(--ink));
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 40%,transparent);
}
.bizm-crawl-n{
  display:inline-block;font-family:var(--mono);font-size:clamp(11px,1.1vw,13px);
  font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:clamp(10px,1.4vw,18px);
}
.bizm-crawl-block.is-active .bizm-crawl-n{color:var(--accent);}

.bizm-crawl-title{
  margin:0;font-size:clamp(42px,7.8vw,96px);line-height:.9;letter-spacing:-.03em;
  color:var(--ink);text-wrap:balance;text-transform:uppercase;
}
.bizm-crawl-desc{
  margin:clamp(16px,2.2vw,28px) auto 0;max-width:36ch;
  font-family:var(--serif);font-size:clamp(19px,2.4vw,30px);line-height:1.42;
  color:var(--ink-2);text-wrap:pretty;
}
.bizm-crawl-ac{
  font-style:normal;color:var(--accent);font-weight:700;
  text-shadow:0 0 28px color-mix(in srgb,var(--accent) 22%,transparent);
}
.bizm-crawl-title .bizm-crawl-ac{font-weight:800;}
@media (prefers-reduced-motion:reduce){
  .bizm-proc-stage-wrap{transform:none !important;border-radius:calc(var(--radius) + 8px) !important;}
  .bizm-proc-crawl-viewport{perspective:none;height:auto;min-height:0;}
  .bizm-crawl-block{
    position:relative;left:auto;top:auto;transform:none !important;
    padding:clamp(28px,4vw,40px) var(--pad);width:100%;max-width:var(--maxw);margin:0 auto;
  }
  .bizm-crawl-inner{opacity:1 !important;transform:none !important;filter:none !important;}
  .bizm-proc-crawl-origin{display:none;}
  .bizm-proc-rail{display:none;}
}
@media (max-width:860px), (pointer:coarse){
  .bizm-proc--crawl{--bizm-proc-h:auto;}
  .bizm-proc-pin,.bizm-proc-pin-inner{min-height:0 !important;}
  .bizm-proc-stage-wrap{transform:none !important;border-radius:calc(var(--radius) + 8px) !important;overflow:visible !important;}
  .bizm-proc-stage--crawl{min-height:0 !important;overflow:visible !important;}
  .bizm-proc-crawl-vignette{display:none;}
  .bizm-proc-crawl-viewport{height:auto !important;min-height:0 !important;overflow:visible !important;perspective:none !important;}
  .bizm-proc-crawl-world{position:relative !important;inset:auto !important;transform-style:flat !important;}
  .bizm-crawl-block{
    position:relative !important;left:auto !important;top:auto !important;transform:none !important;width:min(94%,520px);
    margin:0 auto !important;padding:clamp(28px,8vw,44px) clamp(18px,5vw,28px);
    display:flex;pointer-events:auto;
  }
  .bizm-crawl-inner{
    opacity:0;transform:translateY(24px) scale(.965) !important;filter:blur(3px);
    transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),filter .55s ease;
  }
  .bizm-crawl-block.is-active .bizm-crawl-inner{opacity:1;transform:none !important;filter:none;}
  .bizm-crawl-title{font-size:clamp(30px,8.2vw,54px);}
  .bizm-crawl-desc{font-size:clamp(16px,3.8vw,21px);max-width:32ch;}
  .bizm-proc-crawl-origin{display:none;}
  .bizm-proc-rail{display:none !important;}
}

/* numbers — soft spotlight band */
.bizm-nums{position:relative;overflow:hidden;isolation:isolate;background:var(--bone-2);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(48px,6vw,88px);margin-top:clamp(40px,5vw,72px);}
.bizm-spot{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;opacity:.9;}
.bizm-nums-inner{position:relative;z-index:1;}
.bizm-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:none;}
.bizm-motif{display:block;width:60px;height:60px;flex:none;}
.bizm-motif svg{display:block;width:100%;height:100%;}
.bizm-num-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(20px,3vw,40px);
  margin-top:clamp(28px,3vw,46px);}
.bizm-num{display:flex;flex-direction:column;gap:8px;}
.bizm-num-n{font-family:'Sofia Sans',sans-serif;font-weight:800;font-size:clamp(48px,6vw,86px);line-height:.82;
  letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums slashed-zero;}
.bizm-num-l{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);max-width:22ch;}

/* occasions — editorial bento + three.js light stage (όπως equip) */
.privm-occ{
  position:relative;overflow:hidden;isolation:isolate;
  padding-top:clamp(48px,6vw,92px);padding-bottom:clamp(48px,6vw,88px);
  background:linear-gradient(180deg,var(--bone) 0%,color-mix(in srgb,var(--bone-2) 88%,var(--bone)) 42%,var(--bone) 100%);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
}
.privm-occ-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;opacity:.82;}
.privm-occ-veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse 85% 62% at 50% 42%,transparent 22%,color-mix(in srgb,var(--bone) 94%,transparent) 70%),
    linear-gradient(180deg,var(--bone) 0%,transparent 16%,transparent 78%,var(--bone) 100%);
}
.privm-occ-head{position:relative;z-index:2;}
.privm-occ-wrap{position:relative;z-index:2;margin-top:clamp(28px,3.4vw,46px);}
.privm-occ-stage{position:relative;}
.privm-occ-grid{
  display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,1.8vw,20px);
}
.privm-occ-card{
  --occ-tilt:0deg;position:relative;grid-column:span 4;
  display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(168px,18vw,220px);
  padding:clamp(22px,2.4vw,32px);background:var(--card);
  border:1px solid var(--hairline);border-radius:calc(var(--radius) + 8px);
  box-shadow:var(--ambient-shadow);overflow:hidden;cursor:default;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .35s;
  outline:none;
}
.privm-occ-card.is-hero{grid-column:span 6;min-height:clamp(200px,22vw,268px);}
.privm-occ-card:nth-child(6){grid-column:4 / span 6;}
.privm-occ-card-glow{
  position:absolute;inset:-20%;pointer-events:none;opacity:0;transition:opacity .45s;
  background:radial-gradient(circle at 28% 18%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 58%);
}
.privm-occ-card:hover,.privm-occ-card.is-on,.privm-occ-card:focus-visible{
  transform:translateY(-8px) rotate(var(--occ-tilt));
  box-shadow:var(--lift-shadow-soft);border-color:color-mix(in srgb,var(--accent) 28%,var(--hairline-strong));
}
.privm-occ-card:nth-child(odd){--occ-tilt:-0.35deg;}
.privm-occ-card:nth-child(even){--occ-tilt:0.35deg;}
.privm-occ-card:hover .privm-occ-card-glow,.privm-occ-card.is-on .privm-occ-card-glow,.privm-occ-card:focus-visible .privm-occ-card-glow{opacity:1;}
.privm-occ-card-top{display:flex;align-items:center;gap:14px;margin-bottom:clamp(14px,1.6vw,20px);}
.privm-occ-n{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:var(--border-hero);border-radius:50%;
  background:var(--bone);font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.14em;color:var(--accent);transition:border-color .35s,box-shadow .35s,transform .35s;
}
.privm-occ-beam{
  flex:1;height:2px;max-width:72px;border-radius:2px;background:var(--hairline);
  transform-origin:left center;transform:scaleX(.22);transition:transform .5s cubic-bezier(.2,.7,.2,1),background .35s;
}
.privm-occ-card:hover .privm-occ-n,.privm-occ-card.is-on .privm-occ-n,.privm-occ-card:focus-visible .privm-occ-n{
  border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);transform:scale(1.04);
}
.privm-occ-card:hover .privm-occ-beam,.privm-occ-card.is-on .privm-occ-beam,.privm-occ-card:focus-visible .privm-occ-beam{
  transform:scaleX(1);background:var(--accent);
}
.privm-occ-title{
  margin:0;font-size:clamp(26px,3.2vw,42px);line-height:.92;letter-spacing:-.02em;
  text-transform:uppercase;color:var(--ink);text-wrap:balance;
}
.privm-occ-card.is-hero .privm-occ-title{font-size:clamp(30px,4vw,52px);}
.privm-occ-desc{
  margin:clamp(12px,1.4vw,16px) 0 0;max-width:34ch;
  font-family:var(--serif);font-size:clamp(15px,1.45vw,18px);line-height:1.48;color:var(--ink-2);
}
.privm-occ-desc .bizm-crawl-ac{font-style:normal;color:var(--accent);font-weight:600;}
.privm-occ-arr{
  position:absolute;right:clamp(18px,2vw,26px);bottom:clamp(18px,2vw,26px);
  font-family:var(--mono);font-size:18px;color:color-mix(in srgb,var(--accent) 55%,transparent);
  opacity:0;transform:translate(-6px,6px);transition:opacity .35s,transform .35s,color .35s;
}
.privm-occ-card:hover .privm-occ-arr,.privm-occ-card.is-on .privm-occ-arr,.privm-occ-card:focus-visible .privm-occ-arr{
  opacity:1;transform:none;color:var(--accent);
}
@media (max-width:1024px){
  .privm-occ-card,.privm-occ-card.is-hero{grid-column:span 6;min-height:clamp(168px,24vw,210px);}
  .privm-occ-card:nth-child(6){grid-column:span 6;}
}
@media (max-width:640px){
  .privm-occ-grid{grid-template-columns:1fr;}
  .privm-occ-card,.privm-occ-card.is-hero,.privm-occ-card:nth-child(6){grid-column:1;min-height:0;}
  .privm-occ-arr{opacity:.55;transform:none;}
}
@media (prefers-reduced-motion:reduce){
  .privm-occ-canvas{display:none;}
}
@media (max-width:860px){
  .privm-occ-canvas{display:none;}
}

/* ======================================================================
   ENGRAVE STUDIO — live laser engraving preview (Individuals)
   ====================================================================== */
.engrave{padding-top:clamp(48px,6vw,92px);padding-bottom:clamp(48px,6vw,92px);background:var(--bone-2);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.engrave-grid{display:grid;grid-template-columns:minmax(0,0.82fr) minmax(0,1.18fr);gap:clamp(28px,4vw,64px);align-items:center;}
.engrave-controls{display:flex;flex-direction:column;}
.engrave-controls .kicker{color:var(--accent);}
.eng-title{font-family:'Sofia Sans',sans-serif;font-weight:800;letter-spacing:-.025em;
  font-size:clamp(30px,3.8vw,54px);line-height:1;color:var(--ink);margin:14px 0 0;text-wrap:balance;}
.eng-lead{font-family:var(--serif);font-size:clamp(16px,1.4vw,19px);line-height:1.5;color:var(--ink-2);margin:14px 0 22px;max-width:46ch;}
.engrave-field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.engrave-field span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.engrave-field input{font-family:'Source Serif 4',Georgia,serif;font-size:19px;color:var(--ink);background:var(--bone);
  border:1px solid var(--hairline-strong);border-radius:12px;padding:13px 16px;outline:none;transition:border-color .2s,box-shadow .2s;}
.engrave-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);}
.engrave-mats{display:flex;gap:8px;margin:4px 0 18px;flex-wrap:wrap;}
.engrave-mat{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bone);border:1px solid var(--hairline-strong);border-radius:999px;padding:9px 16px;transition:all .2s;}
.engrave-mat:hover{border-color:var(--accent);}
.engrave-mat.on{background:var(--ink);color:var(--bone);border-color:var(--ink);}
/* second level: wood surfaces / plexi colours */
.engrave-subs{margin:0 0 18px;}
.engrave-subs-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:8px;}
.engrave-sub-row{display:flex;flex-wrap:wrap;gap:7px;}
.engrave-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:7px;
  background:var(--bone);border:1px solid var(--hairline-strong);border-radius:999px;padding:7px 13px;transition:all .2s;}
.engrave-sub:hover{border-color:var(--accent);}
.engrave-sub.on{background:var(--ink);color:var(--bone);border-color:var(--ink);}
.engrave-sub .engrave-swatch{width:14px;height:14px;background:var(--sw,#ccc);}
.engrave-sub .engrave-swatch.is-trans{
  background-image:linear-gradient(135deg,var(--sw),var(--sw)),repeating-conic-gradient(#fff 0% 25%,#cfcfcf 0% 50%);
  background-size:auto,8px 8px;}
.engrave-sub-desc{font-family:var(--serif);font-size:13.5px;line-height:1.45;color:var(--muted);margin:9px 0 0;max-width:44ch;min-height:2.6em;}
.engrave-opts{margin-bottom:16px;}
.engrave-opts span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:9px;}
.engrave-chips{display:flex;flex-wrap:wrap;gap:8px;}
.engrave-chips em{
  --pill:#E5431D;
  position:relative;isolation:isolate;font-style:normal;font-family:var(--serif);font-size:14px;
  color:#fff;
  border:1px solid color-mix(in srgb,var(--pill) 82%,#000 8%);
  background:var(--pill);
  border-radius:999px;padding:5px 14px;cursor:default;
  transition:transform .42s cubic-bezier(.2,.7,.2,1),box-shadow .42s cubic-bezier(.2,.7,.2,1),
    border-color .3s,background .3s,color .3s;
}
/* radial glow on hover — same language as the equipment pills */
.engrave-chips em::before{
  content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(125% 135% at 50% 0%,color-mix(in srgb,var(--pill) 55%,transparent),transparent 72%);
  opacity:0;transition:opacity .42s;
}
.engrave-chips em.is-add{cursor:pointer;}
.engrave-chips em.is-add:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px color-mix(in srgb,var(--pill) 42%,transparent);
}
.engrave-chips em.is-add:active{transform:translateY(-1px);}
.engrave-chips em.is-add:hover::before{opacity:1;}
/* exact radial-nav ring palette: brand red · ink · taupe · paper */
.engrave-chips em:nth-child(4n+1){--pill:#E5431D;color:#fff;}
.engrave-chips em:nth-child(4n+2){--pill:#2A261E;color:#F4F0E7;}
.engrave-chips em:nth-child(4n+3){--pill:#D8D0C0;color:#2A261E;border-color:#c4b9a5;}
.engrave-chips em:nth-child(4n+4){--pill:#F4F0E7;color:#2A261E;border-color:#ddd4c3;}
.engrave-note{font-family:var(--serif);font-size:calc(15.5px * var(--text-scale,1));line-height:calc(1.52 * var(--lead,1));color:var(--muted);margin:0 0 24px;max-width:42ch;}
.engrave-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;font-family:'Sofia Sans',sans-serif;
  font-weight:700;font-size:15px;color:#fff;background:var(--accent);border-radius:var(--btn-radius);padding:13px 22px;
  box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform .24s,filter .24s,box-shadow .24s;}
.engrave-cta .arr{font-style:normal;transition:transform .24s;}
.engrave-cta:hover{transform:translateY(-2px);filter:saturate(1.06);}
.engrave-cta:hover .arr{transform:translateX(4px);}

.engrave-preview{display:flex;flex-direction:column;gap:14px;}
/* plate sits directly on the page — no frame; shadow follows the plate shape */
.engrave-stage{position:relative;aspect-ratio:5/3;background:transparent;}
.engrave-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;
  filter:drop-shadow(0 24px 38px rgba(34,24,12,.30));
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .55s cubic-bezier(.2,.7,.2,1);}
.engrave-stage:hover .engrave-canvas{transform:translateY(-9px);
  filter:drop-shadow(0 40px 60px rgba(34,24,12,.42));}
.engrave-scan{display:none;}
@media (max-width:860px){
  .engrave-grid{grid-template-columns:1fr;}
  .bizm-head-row{flex-direction:column;align-items:flex-start;gap:16px;}
}

/* ======================================================================
   HIGH-GRADE POLISH LAYER
   Unified focus-visible system, tactile press feedback, refined footer
   links, branded scrollbar, cleaner tap/selection behaviour.
   Purely additive — all token-driven, no layout changes.
   ====================================================================== */

/* Kill the blue mobile tap flash everywhere — we supply our own feedback. */
a,button,[role="button"],[tabindex],input,select,textarea,.hp2-side,.kcard,.equip-card{
  -webkit-tap-highlight-color:transparent;
}

/* Single source of truth for keyboard focus on every interactive element
   that didn't already define its own ring. Outline follows border-radius. */
.nav-link:focus-visible,
.mobile-menu-toggle:focus-visible,
.mobile-nav-link:focus-visible,
.aud-switch button:focus-visible,
.lang-toggle button:focus-visible,
.logo:focus-visible,
.foot ul a:focus-visible,
.foot ul button:focus-visible,
.foot-bar a:focus-visible,
.hp2-cta:focus-visible,
.hp2-side:focus-visible,
.engrave-cta:focus-visible,
.btn:focus-visible,
.equip-more:focus-visible,
.hh-dots button:focus-visible,
.hero-scrollhint:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
/* On the dark hero surfaces a paper-white ring reads more cleanly. */
.hero-stage :focus-visible,
.hero-eng :focus-visible,
.home-hero-img :focus-visible,
.feel-photo .hp2-side:focus-visible{
  outline-color:#fff;
}

/* Tactile press feedback on the pill toggles, matching .btn:active. */
.aud-switch button,.lang-toggle button{transition:background .2s,color .2s,box-shadow .2s,transform .12s;}
.aud-switch button:active,.lang-toggle button:active{transform:scale(.95);}

/* Footer links — animated underline grows from the left instead of a
   bare colour flip, so the whole footer feels considered. */
.foot ul a:not(.foot-top),.foot ul button:not(.foot-top){
  background-image:linear-gradient(var(--accent),var(--accent));
  background-size:0% 1.5px;background-position:0 100%;background-repeat:no-repeat;
  transition:color .2s,background-size .3s cubic-bezier(.2,.7,.2,1),transform .18s;
}
.foot ul a:not(.foot-top):hover,.foot ul button:not(.foot-top):hover{background-size:100% 1.5px;}

/* Refined window scrollbar — paper rail, ink thumb. Desktop pointers only;
   the inner rails keep their own hidden scrollbars (higher specificity). */
@media (pointer:fine){
  html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 32%,transparent) transparent;}
  body::-webkit-scrollbar{width:12px;height:12px;}
  body::-webkit-scrollbar-track{background:transparent;}
  body::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--ink) 28%,transparent);
    border-radius:999px;border:3px solid var(--bone);background-clip:padding-box;
  }
  body::-webkit-scrollbar-thumb:hover{
    background:color-mix(in srgb,var(--ink) 46%,transparent);background-clip:padding-box;
  }
}

/* ======================================================================
   MIXED BORDER SYSTEM — craft frames, scroll progress, sticky CTA, UX
   ====================================================================== */

/* craft registration frame (featured work, engrave preview — not aud-cat-card which has own pseudo layers) */
body[data-border-mode="mixed"] .craft-frame:not(.aud-cat-card){position:relative;}
body[data-border-mode="mixed"] .craft-frame:not(.aud-cat-card)::before{
  content:"";position:absolute;inset:-10px;border:1px dashed color-mix(in srgb,var(--hairline-strong) 88%,transparent);
  border-radius:calc(var(--radius) + 14px);pointer-events:none;z-index:0;opacity:.72;
}
body[data-border-mode="mixed"] .craft-frame:not(.aud-cat-card)::after{
  content:"";position:absolute;width:14px;height:14px;top:-10px;left:-10px;
  border-top:2px solid var(--accent);border-left:2px solid var(--accent);pointer-events:none;z-index:1;
}
body[data-border-mode="mixed"] .aud-cat-card.craft-frame{
  outline:none;
}
.craft-frame > *{position:relative;z-index:2;}

/* scroll progress under nav */
.scroll-progress-wrap{position:sticky;top:76px;z-index:39;height:2px;background:transparent;pointer-events:none;}
.scroll-progress{height:100%;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center;box-shadow:0 0 12px color-mix(in srgb,var(--accent) 40%,transparent);}

/* sticky mobile CTA */
.sticky-cta{
  position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:35;
  transform:translateX(-50%) translateY(120%);opacity:0;pointer-events:none;
  transition:transform .34s cubic-bezier(.2,.7,.2,1),opacity .28s ease;
}
.sticky-cta.is-visible{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto;}
.sticky-cta .btn{padding:14px 26px;box-shadow:var(--lift-shadow);white-space:nowrap;}

/* audience hero variants */
.ahero.aud-pro{background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 4%,var(--bone)),transparent);}
.ahero.aud-priv{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--bone)),transparent);}

/* card quick preview tooltip */
.kcard{position:relative;}
.kcard-preview{
  position:absolute;left:12px;right:56px;bottom:56px;z-index:5;padding:10px 12px;
  background:rgba(255,255,255,.88);border:var(--border-modal);border-radius:calc(var(--radius) - 4px);
  box-shadow:var(--shadow-card-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-size:12.5px;line-height:1.45;color:var(--ink-2);opacity:0;transform:translateY(6px);
  pointer-events:none;transition:opacity .22s,transform .22s;
}
.kcard:hover .kcard-preview,.kcard:focus-visible .kcard-preview{opacity:1;transform:none;}
.cardgrid[data-cardstyle="photo"] .kcard-preview,
.cardgrid[data-cardstyle="dark"] .kcard-preview{background:rgba(16,15,11,.82);color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.16);}

/* vertical process timeline (pro page) */
body[data-border-mode="mixed"] .bizm-rail{
  flex-direction:column;overflow:visible;scroll-snap-type:none;gap:0;
  padding-left:clamp(20px,4vw,72px);padding-right:clamp(20px,4vw,72px);max-width:var(--maxw);margin:0 auto;
}
body[data-border-mode="mixed"] .bizm-step{
  flex:none;width:100%;max-width:none;display:grid;grid-template-columns:72px minmax(0,1fr);
  gap:0 24px;padding:0 0 clamp(28px,3vw,36px);border:none;border-radius:0;background:transparent;box-shadow:none;
}
body[data-border-mode="mixed"] .bizm-step:hover{transform:none;box-shadow:none;border-color:transparent;}
body[data-border-mode="mixed"] .bizm-step-n{
  grid-column:1;grid-row:1 / span 3;align-self:start;display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border:var(--border-hero);border-radius:50%;background:var(--card);font-size:13px;
}
body[data-border-mode="mixed"] .bizm-step-bar{display:none;}
body[data-border-mode="mixed"] .bizm-step h3,body[data-border-mode="mixed"] .bizm-step p{grid-column:2;}
body[data-border-mode="mixed"] .bizm-railwrap{position:relative;}
body[data-border-mode="mixed"] .bizm-railwrap::before{
  content:"";position:absolute;left:calc(clamp(20px,4vw,72px) + 27px);top:28px;bottom:28px;
  border-left:var(--border-hero);pointer-events:none;opacity:.35;
}
body[data-border-mode="mixed"] .bizm-railpad{display:none;}

/* engrave material swatches + craft preview frame */
.engrave-mats{gap:10px;}
.engrave-mat-swatches{display:flex;gap:6px;margin-left:auto;}
.engrave-swatch{width:18px;height:18px;border-radius:50%;border:1px solid var(--hairline-strong);flex:none;}
body[data-border-mode="mixed"] .engrave-preview.craft-frame::before,
body[data-border-mode="mixed"] .engrave-preview.craft-frame::after{display:none;}
body[data-border-mode="mixed"] .engrave-stage{border:none;border-radius:calc(var(--radius) + 4px);overflow:hidden;}

/* contact — progressive form + whatsapp */
.cform-steps{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.cform-step-pill{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;line-height:1;
  display:inline-flex;align-items:center;white-space:nowrap;
  padding:9px 13px;border-radius:999px;border:1px solid var(--hairline);color:var(--muted);background:var(--surface);
  transition:background .22s,color .22s,border-color .22s;
}
.cform-step-pill.on{background:var(--ink);color:var(--bone);border-color:var(--ink);}
.cform-step-pill.done{border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent);}
.cform-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px;}
.cform-whatsapp{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:600;font-size:14px;
  text-transform:uppercase;letter-spacing:.04em;padding:12px 18px;border-radius:var(--btn-radius);
  border:var(--border-interactive);background:color-mix(in srgb,#25D366 12%,var(--card));color:var(--ink);
  transition:background .2s,border-color .2s,transform .2s;
}
.cform-whatsapp:hover{background:color-mix(in srgb,#25D366 22%,var(--card));border-color:#25D366;transform:translateY(-2px);}
.cform-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}
.cform-error{margin:0;padding:10px 12px;border-radius:10px;font-size:14px;color:#9b2c2c;background:color-mix(in srgb,#dc2626 10%,var(--card));border:1px solid color-mix(in srgb,#dc2626 25%,transparent);}
.cform-success{margin:0;padding:10px 12px;border-radius:10px;font-size:14px;color:#166534;background:color-mix(in srgb,#16a34a 10%,var(--card));border:1px solid color-mix(in srgb,#16a34a 25%,transparent);}
.cform-turnstile{margin:4px 0 8px;min-height:0;}

/* legal pages polish */
.legal-page .wrap{max-width:820px;}
.legal-page .sec-head{margin-bottom:8px;}
.legal-page .legal-updated{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.1em;margin:6px 0 0;}
.legal-page .legal-section{margin-top:clamp(24px,3vw,32px);padding-top:clamp(18px,2vw,24px);border-top:1px solid var(--hairline);}
.legal-page .legal-section h3{font-family:var(--disp);font-size:clamp(20px,2vw,24px);text-transform:uppercase;margin:0 0 10px;line-height:1;}
.legal-page .legal-section p{color:var(--ink-2);margin:0 0 10px;line-height:1.58;}
.legal-page .legal-section ul{color:var(--ink-2);padding-left:1.2em;margin:0 0 10px;}

/* footer craft divider */
body[data-border-mode="mixed"] .foot{border-top:none;background:linear-gradient(180deg,transparent,var(--surface));}
body[data-border-mode="mixed"] .foot-showcase{border-top:1px dashed color-mix(in srgb,var(--hairline-strong) 90%,transparent);padding-top:clamp(6px,1vw,10px);}

/* hide radial nav on contact/legal */
body[data-route="contact"] .rnav-btn,
body[data-route="privacy"] .rnav-btn,
body[data-route="terms"] .rnav-btn{display:none !important;}

/* mobile: disable equip tilt + show sticky CTA */
@media (max-width:860px){
  .rnav-btn{display:none !important;}
  .equip-card:hover{transform:translateY(-6px) scale(1.008);rotate:none;}
  .sticky-cta{display:block;}
  .scroll-progress-wrap{top:76px;}
  body[data-border-mode="mixed"] .bizm-railwrap::before{display:none;}
  body[data-border-mode="mixed"] .bizm-step{grid-template-columns:1fr;}
  body[data-border-mode="mixed"] .bizm-step-n{grid-column:1;grid-row:auto;margin-bottom:10px;}
}
@media (min-width:861px){
  .sticky-cta{display:none;}
}

/* ======================================================================
   LUSION-LEVEL ADDITIONS — marquee · home CTA · biz extras · priv voices
   · mega footer (brand-locked: bone, ink, accent, mono kickers)
   ====================================================================== */

/* ---------- infinite marquee strip ---------- */
.kapa-marq{
  overflow:hidden;white-space:nowrap;position:relative;
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding:clamp(14px,2vw,24px) 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}
.kapa-marq-track{
  display:inline-flex;align-items:baseline;width:max-content;
  animation:kapaMarq var(--marq-dur,28s) linear infinite;
  will-change:transform;
}
.kapa-marq:hover .kapa-marq-track{animation-play-state:paused;}
.kapa-marq-seq{display:inline-flex;align-items:baseline;}
.kapa-marq-item{
  font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(26px,4.4vw,58px);line-height:1;letter-spacing:var(--disp-tracking);
  color:var(--ink);padding:0 clamp(14px,2vw,28px);
}
/* ghost items: soft opaque tone (text-stroke shows the variable font's
   overlapping contours as seams inside Α/Χ/Η — so no outlines here) */
.kapa-marq-item.is-ghost{
  color:color-mix(in srgb,var(--ink) 26%,var(--bone));
}
.kapa-marq-sep{
  font-size:clamp(14px,1.6vw,22px);color:var(--accent);
  align-self:center;line-height:1;
}
@keyframes kapaMarq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){
  .kapa-marq-track{animation:none;}
}

/* ---------- home closing CTA ---------- */
.home-cta{padding-bottom:clamp(70px,9vw,130px);}
.home-cta-inner{
  position:relative;text-align:center;
  padding-top:clamp(48px,6vw,84px);
  display:flex;flex-direction:column;align-items:center;gap:18px;
}
.home-cta-title{
  margin:0;font-size:clamp(52px,9.5vw,148px);line-height:.94;
  text-transform:uppercase;letter-spacing:var(--disp-tracking);
}
.home-cta-lead{max-width:46ch;margin:0;}
.home-cta-btn{font-size:16px;padding:16px 30px;}

/* ---------- biz: capabilities matrix ---------- */
.bizm-mx-table{margin-top:clamp(22px,3vw,38px);}
.bizm-mx-row{
  display:grid;grid-template-columns:minmax(150px,1.6fr) repeat(4,1fr);
  align-items:center;gap:10px;
  padding:14px 0;border-bottom:1px solid var(--hairline);
}
.bizm-mx-headrow{border-bottom:none;position:relative;padding-bottom:18px;}
.bizm-mx-col{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);text-align:center;
}
.bizm-mx-mat{
  font-family:var(--disp);font-weight:700;font-size:clamp(16px,1.6vw,21px);
  text-transform:uppercase;letter-spacing:.02em;color:var(--ink);
}
.bizm-mx-cell{display:flex;justify-content:center;}
.bizm-mx-cell i{
  width:14px;height:14px;border-radius:50%;display:block;
  border:1.5px solid var(--hairline-strong);background:transparent;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),background .3s,border-color .3s,box-shadow .3s;
}
.bizm-mx-cell.on i{
  background:var(--accent);border-color:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);
}
.bizm-mx-row:hover .bizm-mx-cell.on i{transform:scale(1.35);}
.bizm-mx-row:hover .bizm-mx-mat{color:var(--accent);}

/* ---------- biz: material tree — dark PCB circuit wires ---------- */
.mxtree{
  --tron:#ff5a2b;--tron-soft:rgba(229,67,29,.16);
  position:relative;margin-top:clamp(22px,3vw,38px);
  display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(140px,1.8fr) minmax(120px,1fr);
  min-height:clamp(300px,36vw,420px);
  background:#0e0f14;border:1px solid #23242e;border-radius:calc(var(--radius) + 6px);
  padding:clamp(16px,2.6vw,34px);overflow:hidden;
}
.mxtree::before{ /* PCB grid */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(229,67,29,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(229,67,29,.06) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 90% 80% at 50% 50%,#000 30%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 50%,#000 30%,transparent 100%);
}
.mxtree::after{ /* sweep όταν αλλάζει υλικό */
  content:"";position:absolute;inset:-20% -10%;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent 38%,rgba(229,67,29,.14) 50%,transparent 62%);
  transform:translateX(-120%);
}
.mxtree.is-pulse::after{
  animation:mxtreeSweep 1.05s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes mxtreeSweep{
  0%{opacity:0;transform:translateX(-120%);}
  18%{opacity:1;}
  100%{opacity:0;transform:translateX(120%);}
}
.mxtree-col{display:flex;flex-direction:column;justify-content:space-around;gap:8px;position:relative;z-index:1;}
.mxtree-mat{
  font-family:var(--mono);font-size:clamp(10px,1vw,12px);letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
  color:#8b8e9c;background:rgba(255,255,255,.02);border:1px solid #262833;border-radius:999px;
  padding:10px 16px;cursor:pointer;transition:all .35s;
}
.mxtree-mat:hover{color:#d8dae3;border-color:#3a3d4c;}
.mxtree-mat.on{
  color:#fff4ee;border-color:var(--tron);background:rgba(229,67,29,.08);
  box-shadow:0 0 14px rgba(229,67,29,.25),inset 0 0 10px rgba(229,67,29,.08);
  transform:translateX(4px);
}
.mxtree-mat-dot{width:7px;height:7px;border-radius:50%;flex:none;background:#3a3d4c;transition:all .35s;}
.mxtree-mat.on .mxtree-mat-dot{
  background:var(--tron);box-shadow:0 0 8px var(--tron);
  animation:mxtreeNodePulse 2.4s ease-in-out infinite;
}
@keyframes mxtreeNodePulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.35);}
}
.mxtree-wires{position:relative;}
.mxtree-wires svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;display:block;}
.mxtree-wire{
  fill:none;vector-effect:non-scaling-stroke;
  stroke-linecap:square;stroke-linejoin:miter;
}
.mxtree-wire.lane{
  stroke:var(--tron-soft);stroke-width:1px;
  animation:mxtreeLane 4.8s ease-in-out infinite;
}
@keyframes mxtreeLane{
  0%,100%{stroke-opacity:.35;}
  50%{stroke-opacity:.75;}
}
.mxtree-wire.bloom{
  stroke:url(#mxtreeGrad);stroke-width:4px;opacity:.4;
  stroke-dasharray:1;stroke-dashoffset:1;
  filter:url(#mxtreeBloom);
  animation:mxtreeBloom .95s cubic-bezier(.22,1,.36,1) forwards;
}
.mxtree-wire.live{
  stroke:url(#mxtreeGrad);stroke-width:1.8px;
  filter:drop-shadow(0 0 5px rgba(255,90,43,.9)) drop-shadow(0 0 14px rgba(229,67,29,.4));
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:mxtreeDraw 1.05s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes mxtreeDraw{
  0%{stroke-dashoffset:1;opacity:.2;}
  35%{opacity:1;}
  100%{stroke-dashoffset:0;opacity:1;}
}
@keyframes mxtreeBloom{
  0%{stroke-dashoffset:1;opacity:0;}
  100%{stroke-dashoffset:0;opacity:.4;}
}
.mxtree-comet{
  fill:#ffe7da;
  filter:drop-shadow(0 0 4px #ff5a2b) drop-shadow(0 0 10px rgba(255,90,43,.8));
}
.mxtree-comet.tail{
  fill:rgba(255,90,43,.65);
  filter:drop-shadow(0 0 6px rgba(229,67,29,.55));
}
.mxtree-cap{
  font-family:var(--mono);font-size:clamp(10px,1vw,12px);letter-spacing:.14em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
  color:#5c5f6d;padding:10px 4px;opacity:.55;
  transition:color .45s cubic-bezier(.22,1,.36,1),transform .45s,opacity .45s;
}
.mxtree-cap-dot{
  width:9px;height:9px;border-radius:50%;flex:none;
  border:1.5px solid #33363f;background:transparent;
  transition:all .45s cubic-bezier(.22,1,.36,1);
}
.mxtree-cap.lit{
  color:#fff4ee;opacity:1;transform:translateX(-4px);
  text-shadow:0 0 12px rgba(255,90,43,.45);
}
.mxtree-cap.lit .mxtree-cap-dot{
  background:var(--tron);border-color:var(--tron);
  box-shadow:0 0 8px var(--tron),0 0 18px rgba(229,67,29,.5);
  animation:mxtreeCapPop .6s cubic-bezier(.22,1,.36,1) both;
}
@keyframes mxtreeCapPop{
  0%{transform:scale(.4);opacity:.3;}
  70%{transform:scale(1.25);}
  100%{transform:scale(1);opacity:1;}
}
@media (max-width:860px){
  .mxtree{grid-template-columns:minmax(110px,1fr) minmax(60px,1.1fr) minmax(90px,1fr);min-height:300px;padding:14px;}
  .mxtree-mat{padding:8px 10px;gap:7px;}
  .mxtree-mat.on{transform:translateX(2px);}
  .mxtree-cap{padding:8px 2px;gap:7px;}
  .mxtree-cap.lit{transform:translateX(-2px);}
}
@media (prefers-reduced-motion: reduce){
  .mxtree.is-pulse::after,.mxtree-wire.live,.mxtree-wire.bloom,.mxtree-wire.lane,.mxtree-mat.on .mxtree-mat-dot,.mxtree-cap.lit .mxtree-cap-dot{animation:none;}
  .mxtree-wire.live,.mxtree-wire.bloom{stroke-dashoffset:0;opacity:1;}
  .mxtree-comet{display:none;}
}

/* ---------- biz: scroll-fill statement (lusion-style) ---------- */
.bizm-statement{padding-top:clamp(50px,7vw,110px);padding-bottom:clamp(30px,4vw,60px);}
.bizm-statement .kicker{margin-bottom:clamp(18px,2.4vw,30px);display:inline-flex;}
.bizm-statement-text{
  margin:0;max-width:21ch;
  font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(34px,5.6vw,84px);line-height:1.04;
  letter-spacing:var(--disp-tracking);color:var(--ink);
}
.bizm-statement-text .wf-w{will-change:opacity;}
.bizm-statement-text .wf-w.ac{color:var(--accent);}
@media (prefers-reduced-motion: reduce){
  .bizm-statement-text .wf-w{opacity:1 !important;}
}

/* ---------- biz: quote CTA ---------- */
.bizm-quote{padding-bottom:clamp(60px,7vw,100px);}
.bizm-quote-inner{
  position:relative;padding-top:clamp(40px,5vw,64px);
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
}
.bizm-quote-title{
  margin:0;font-size:clamp(40px,6.4vw,96px);line-height:.96;
  text-transform:uppercase;letter-spacing:var(--disp-tracking);
}
.bizm-quote .bizm-note{max-width:52ch;}
.bizm-quote-btn{margin-top:6px;}

/* ---------- priv: how it works ---------- */
.privm-proc-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2.2vw,28px);margin-top:clamp(24px,3vw,40px);
}
.privm-proc-step{
  border-top:1px solid var(--hairline-strong);padding-top:16px;position:relative;
}
.privm-proc-step-inner{will-change:transform;padding-top:2px;}
.privm-proc-n{
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--accent);
}
.privm-proc-bar{
  position:absolute;top:-1px;left:0;height:2.5px;width:34px;background:var(--accent);
  transition:width .5s cubic-bezier(.2,.7,.2,1);
}
.privm-proc-step:hover .privm-proc-bar{width:100%;}
.privm-proc-step h3{
  font-family:var(--disp);font-weight:700;font-size:clamp(18px,1.9vw,24px);
  text-transform:uppercase;letter-spacing:.02em;margin:10px 0 8px;line-height:1.05;
}
.privm-proc-step p{margin:0;color:var(--ink-2);font-size:calc(16px * var(--text-scale,1));line-height:calc(1.55 * var(--lead,1));}

/* ---------- mega footer ---------- */
.foot-cta{position:relative;padding:clamp(40px,5vw,72px) 0 clamp(10px,1.5vw,16px);}
.foot-cta-row{
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(16px,2.5vw,32px);flex-wrap:wrap;margin-top:8px;
}
.foot-cta-title{
  margin:0;font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(44px,7.6vw,124px);line-height:.92;letter-spacing:var(--disp-tracking);
  display:flex;flex-direction:column;align-items:flex-start;align-self:flex-start;
  text-align:left;
}
.foot-cta-line{display:block;text-align:left;width:max-content;max-width:100%;}
.foot-cta-line .ac{color:var(--accent);display:inline;}
.foot-cta-btn{font-size:15.5px;padding:16px 28px;flex-shrink:0;margin-bottom:0;align-self:center;}
.foot-clock{
  display:inline-flex;align-items:center;gap:8px;margin-top:22px;
  padding:7px 11px;border-radius:999px;
  border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface) 82%,var(--bone));
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.foot-clock-dot{
  width:7px;height:7px;border-radius:50%;background:var(--accent);
  animation:footPulse 2.2s ease-in-out infinite;
}
@keyframes footPulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent);}
  55%{box-shadow:0 0 0 6px transparent;}
}
.foot-top{
  margin-top:6px;background:none;border:none;padding:8px 0;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:color-mix(in srgb,var(--ink-2) 90%,transparent);
  display:inline-flex;align-items:center;gap:6px;width:auto;
  transition:color .2s,transform .18s;
}
.foot-col-legal .foot-top:hover{color:var(--accent);transform:translateX(2px);}
.foot-top span{transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.foot-top:hover span{transform:translateY(-2px);}
.foot-giant{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  height:clamp(130px,22vw,300px);overflow:hidden;
  display:flex;align-items:flex-end;justify-content:center;
  padding:0;user-select:none;pointer-events:none;
}
.foot-giant-text{
  display:block;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-size:clamp(68px,18vw,300px);letter-spacing:-.01em;white-space:nowrap;
  color:color-mix(in srgb,var(--ink) 13%,var(--bone));
  transform:translateY(16%);line-height:.78;
  transition:color .6s ease;
}
.foot:hover .foot-giant-text{
  color:color-mix(in srgb,var(--ink) 90%,transparent);
}
.foot-giant-text b{color:color-mix(in srgb,var(--accent) 30%,var(--bone));transition:color .6s ease;}
.foot:hover .foot-giant-text b{color:var(--accent);}

/* responsive for the new sections */
@media (max-width:1020px){
  .privm-proc-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .bizm-mx-row{grid-template-columns:minmax(104px,1.4fr) repeat(4,1fr);gap:6px;}
  .bizm-mx-mat{font-size:14px;}
  .bizm-mx-col{font-size:9.5px;letter-spacing:.08em;}
  .foot-cta-row{align-items:flex-start;flex-direction:column;}
  .foot-cta-btn{margin-bottom:0;}
}
@media (max-width:640px){
  .privm-proc-grid{grid-template-columns:1fr;}
}

/* ======================================================================
   REFRESH — craft layer (τυπογραφία · υλικά · κίνηση)
   ====================================================================== */
:root{--ease:cubic-bezier(.22,.61,.36,1);}

/* count-up numerals — σταθερό πλάτος όσο τρέχει ο αριθμός */
.stat .sn,.about-stat strong{font-variant-numeric:tabular-nums;}

/* τυπογραφικό σφίξιμο — μεγάλοι τίτλοι ελαφρώς πιο σφιχτοί */
.sec-head h2{letter-spacing:-.014em;}
.hh-h1,.hero-stage h1{letter-spacing:-.022em;}

/* τα cards αποκτούν βάθος μόνο όταν κινείται ο κέρσορας — reduced-motion: καθαρό lift */
@media (prefers-reduced-motion: reduce){
  .kcard:hover{transform:translateY(-6px);}
  .hero-slide-img{animation:none;}
}
