/* Decent4 v2 homepage */
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/_d4/fonts/instrument-serif.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300;font-display:swap;src:url(/_d4/fonts/fraunces.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-stretch:62% 125%;font-display:swap;src:url(/_d4/fonts/archivo.woff2) format('woff2')}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:900;font-display:swap;src:url(/_d4/fonts/big-shoulders.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(/_d4/fonts/jakarta.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:750;font-stretch:75% 100%;font-display:swap;src:url(/_d4/fonts/bricolage.woff2) format('woff2')}

*,*::before,*::after{box-sizing:border-box}
body[data-d4-theme="home"]{margin:0;background:var(--d4-bg);color:var(--d4-text);font:400 17px/1.55 var(--d4-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body[data-d4-theme="home"] img{max-width:100%;display:block}
body[data-d4-theme="home"] a{color:inherit}
body[data-d4-theme="home"] button{font:inherit;color:inherit}
body[data-d4-theme="home"] h1,body[data-d4-theme="home"] h2,body[data-d4-theme="home"] h3,body[data-d4-theme="home"] p{margin:0}
.h-wrap{box-sizing:border-box;width:100%;max-width:var(--d4-max);margin:0 auto;padding:0 var(--d4-gutter)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.h-num{font:500 12.5px/1.2 var(--d4-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--d4-lime)}
.h-paper .h-num{color:#5d5d58}
.h-h2{margin-top:18px!important;font:800 clamp(52px,7.8vw,112px)/.9 var(--d4-display);letter-spacing:-.02em}
.h-h2 .w1{font-variation-settings:"wdth" 140}
.h-h2 .w2{font-variation-settings:"wdth" 60}
.h-h2 em{font-style:normal;color:var(--d4-lime);white-space:nowrap}
.h-side{max-width:360px;color:var(--d4-muted);font-size:17px;line-height:1.55}
.h-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.h-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--d4-text);font:600 15px/1 var(--d4-sans);text-decoration:none;border-bottom:1px solid transparent;transition:color .25s ease}
.h-link:hover{color:var(--d4-lime)}
.h-link .d4-arrow{transition:transform .4s var(--d4-ease)}
.h-link:hover .d4-arrow{transform:translateX(4px)}
.h-round{flex-shrink:0;width:52px;height:52px;border-radius:50%;border:1px solid var(--d4-line-2);display:grid;place-items:center;transition:background-color .35s ease,border-color .35s ease,color .35s ease,transform .5s var(--d4-ease)}
.h-round svg{transition:transform .5s var(--d4-ease)}
a:hover > * > .h-round,a:hover > .h-round,a:focus-visible .h-round{background:var(--d4-lime);border-color:var(--d4-lime);color:#0a0a0a}
a:hover .h-round svg{transform:rotate(45deg)}
.h-paper{background:var(--d4-paper);color:var(--d4-paper-ink)}
.h-grid-bg{background-color:var(--d4-bg);background-image:linear-gradient(#141414 1px,transparent 1px),linear-gradient(90deg,#141414 1px,transparent 1px);background-size:64px 64px;background-position:-1px -1px}

/* ---------- Intro curtain (first visit per session) ---------- */
.h-intro{display:none}
html.d4-intro .h-intro{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background-color:var(--d4-bg);background-image:linear-gradient(#1a1a1a 1px,transparent 1px),linear-gradient(90deg,#1a1a1a 1px,transparent 1px);background-size:40px 40px;animation:h-curtain 1.7s var(--d4-ease-io) forwards;pointer-events:none}
.h-intro-mark{position:relative;width:132px;height:132px}
.h-intro-dim{position:absolute;left:0;top:-26px;width:132px;height:12px;border-left:1px solid var(--d4-lime);border-right:1px solid var(--d4-lime);transform-origin:left;animation:h-dim .6s var(--d4-ease-io) both}
.h-intro-dim::after{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--d4-lime)}
.h-intro svg rect.o{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;animation:h-draw .6s var(--d4-ease-io) forwards,h-fill .3s ease .55s forwards}
.h-intro svg g{opacity:0;transform-origin:128px 128px;animation:h-pop .5s cubic-bezier(.34,1.56,.64,1) .7s forwards}
@keyframes h-curtain{0%,62%{clip-path:inset(0 0 0 0)}99%{clip-path:inset(0 0 100% 0)}100%{clip-path:inset(0 0 100% 0);visibility:hidden}}
@keyframes h-dim{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes h-draw{to{stroke-dashoffset:0}}
@keyframes h-fill{to{fill-opacity:1}}
@keyframes h-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}

/* ---------- Hero ---------- */
.h-hero{position:relative;overflow:hidden;border-bottom:1px solid #1c1c1c}
.h-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,504px);gap:clamp(32px,4vw,64px);align-items:center;padding-top:clamp(24px,3vw,40px);padding-bottom:calc(58px + clamp(20px,2.5vw,36px))}
.h-eyebrow{display:flex;align-items:center;gap:12px;font:500 12.5px/1.3 var(--d4-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--d4-lime)}
.h-eyebrow i{width:8px;height:8px;flex-shrink:0;background:var(--d4-lime)}
.h-title-wrap{position:relative;margin-top:40px}
.h-dim{position:absolute;left:0;top:-24px;width:min(640px,86%);height:12px;border-left:1px solid var(--d4-lime);border-right:1px solid var(--d4-lime);transform-origin:left;animation:h-dim 1.2s var(--d4-ease-io) .15s both}
.h-dim::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--d4-lime)}
.h-dim span{position:absolute;left:50%;top:-8px;transform:translateX(-50%);padding:0 10px;background:var(--d4-bg);font:500 11px/1.4 var(--d4-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--d4-lime);white-space:nowrap}
.h-title{font:800 1rem/.9 var(--d4-display);letter-spacing:-.02em}
.h-title .l1,.h-title .l2{display:block;white-space:nowrap}
.h-title .l1{font-size:clamp(46px,5.6vw,84px);font-variation-settings:"wdth" 132}
.h-title .l2{margin-top:4px;font-size:clamp(84px,11vw,158px);font-variation-settings:"wdth" 58}
.h-title em{font-style:normal;color:var(--d4-lime)}
.h-title .k{display:inline-block}
html.d4-js .h-title .l1 .k{animation:h-w1 3.4s ease-in-out infinite}
html.d4-js .h-title .l2 .k{animation:h-w2 3.4s ease-in-out infinite}
@keyframes h-w1{0%,100%{font-variation-settings:"wdth" 132}50%{font-variation-settings:"wdth" 100}}
@keyframes h-w2{0%,100%{font-variation-settings:"wdth" 58}50%{font-variation-settings:"wdth" 84}}
.h-title .rise{display:block;overflow:hidden;padding-bottom:.06em}
.h-title .rise > span{display:block}
html.d4-js .h-title .rise > span{animation:h-rise 1.2s var(--d4-ease) both}
html.d4-js .h-title .rise + .rise > span{animation-delay:.12s}
html.d4-intro .h-title .rise > span{animation-delay:1.25s}
html.d4-intro .h-title .rise + .rise > span{animation-delay:1.37s}
@keyframes h-rise{from{transform:translateY(105%)}to{transform:none}}
.h-lede{max-width:560px;margin-top:34px!important;font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--d4-muted)}
.h-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.h-actions .d4-btn,.h-actions .d4-btn-ghost{min-height:56px;padding:0 28px!important;font-size:16px!important}
.h-stats{display:flex;flex-wrap:wrap;gap:20px 48px;margin:40px 0 0;padding-top:24px;border-top:1px solid #1f1f1f}
.h-stats div{display:flex;flex-direction:column-reverse;gap:6px}
.h-stats dd{margin:0;font:800 40px/1 var(--d4-display);font-variation-settings:"wdth" 70}
.h-stats dt{font:500 11px/1.3 var(--d4-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--d4-dim)}

/* Builder */
.h-builder{display:flex;flex-direction:column;gap:16px;padding:22px;border-radius:22px;background:#111;border:1px solid var(--d4-line);box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.h-builder-head{display:flex;align-items:center;gap:10px}
.h-tag{flex-shrink:0;padding:5px 9px;border-radius:6px;background:var(--d4-lime);color:#0a0a0a;font:700 11px/1 var(--d4-mono);letter-spacing:.14em;text-transform:uppercase}
.h-builder h2{font:600 16px/1.3 var(--d4-sans)}
.h-field{display:flex;flex-direction:column;gap:8px}
.h-label{font:500 11px/1.2 var(--d4-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--d4-dim)}
.h-input{height:50px;padding:0 16px;border-radius:12px;border:1px solid #2c2c2c;background:var(--d4-bg);color:var(--d4-text);font:400 17px/1 var(--d4-sans);outline:none;transition:border-color .2s ease}
.h-input:focus{border-color:var(--d4-lime)}
.h-chips{display:flex;flex-wrap:wrap;gap:8px}
.h-chip{height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--d4-line-2);background:transparent;color:var(--d4-text);font:600 14px/1 var(--d4-sans);cursor:pointer;transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.h-chip:hover{border-color:var(--d4-lime)}
.h-chip[aria-pressed="true"]{background:var(--d4-lime);border-color:var(--d4-lime);color:#0a0a0a}
.h-browser{border-radius:14px;overflow:hidden;border:1px solid #2c2c2c;background:#1a1a1a}
.h-browser-bar{height:34px;display:flex;align-items:center;gap:6px;padding:0 12px;border-bottom:1px solid #262626}
.h-browser-bar i{width:9px;height:9px;border-radius:50%;background:#3a3a3a}
.h-url{flex:1;min-width:0;height:22px;margin-left:12px;display:flex;align-items:center;padding:0 10px;border-radius:6px;background:#111;font:400 11px/1 var(--d4-mono);color:var(--d4-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-mini{--bg:#f3ede4;--ink:#211a1e;--muted:#6d6166;--accent:#5a2346;--accent-ink:#f3ede4;--font:'Instrument Serif',serif;--style:italic;--weight:400;--fvs:normal;--tt:none;--size:34px;--radius:120px 120px 10px 10px;--btn:999px;
  height:318px;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px;background:var(--bg);color:var(--ink);transition:background-color .5s ease,color .5s ease}
.h-mini[data-trade="restaurant"]{--bg:#14100d;--ink:#f2e8d6;--muted:rgba(242,232,214,.68);--accent:#e4632e;--accent-ink:#14100d;--font:'Fraunces',serif;--style:normal;--weight:300;--size:30px;--radius:120px 120px 12px 12px}
.h-mini[data-trade="contractor"]{--bg:#eeebe5;--ink:#16171a;--muted:#474d55;--accent:#c2562b;--accent-ink:#fff;--font:'Archivo',sans-serif;--style:normal;--weight:800;--fvs:"wdth" 66;--tt:uppercase;--size:32px;--radius:0;--btn:0}
.h-mini[data-trade="gym"]{--bg:#0b0b0b;--ink:#f1eee8;--muted:#9a9a94;--accent:#ff4a1c;--accent-ink:#0b0b0b;--font:'Big Shoulders Display',sans-serif;--style:normal;--weight:900;--tt:uppercase;--size:40px;--radius:0;--btn:0}
.h-mini[data-trade="dental"]{--bg:#f6f2ec;--ink:#10303b;--muted:#587079;--accent:#134b5f;--accent-ink:#fff;--font:'Plus Jakarta Sans',sans-serif;--style:normal;--weight:800;--size:26px;--radius:52% 48% 46% 54%/48% 52% 48% 52%}
.h-mini[data-trade="hvac"]{--bg:#fbf7f2;--ink:#0e1b2c;--muted:#5b6677;--accent:#d62f78;--accent-ink:#fff;--font:'Bricolage Grotesque',sans-serif;--style:normal;--weight:750;--size:32px;--radius:18px;--btn:12px}
.h-mini-nav{display:flex;align-items:center;gap:12px}
.h-mini-brand,.h-mini-head{font-family:var(--font);font-style:var(--style);font-weight:var(--weight);font-variation-settings:var(--fvs);text-transform:var(--tt);letter-spacing:-.01em}
.h-mini-brand{max-width:190px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-mini-links{display:flex;gap:10px;margin-left:auto;font-size:10px;color:var(--muted)}
.h-mini-btn{flex-shrink:0;height:22px;padding:0 10px;display:inline-flex;align-items:center;border-radius:var(--btn);background:var(--accent);color:var(--accent-ink);font:700 10px/1 var(--d4-sans);white-space:nowrap}
.h-mini-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px}
.h-mini-copy{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}
.h-mini-kicker{font:700 9px/1.2 var(--d4-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.h-mini-head{font-size:var(--size);line-height:.95;letter-spacing:-.02em;overflow-wrap:anywhere}
.h-mini-sub{font-size:11px;line-height:1.45;color:var(--muted)}
.h-mini-copy .h-mini-btn{align-self:flex-start;height:28px;padding:0 14px;font-size:11px}
.h-mini img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:var(--radius);transition:border-radius .6s var(--d4-ease)}
.h-mini.is-swap .h-mini-copy,.h-mini.is-swap img{animation:h-swap .55s var(--d4-ease)}
@keyframes h-swap{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.h-builder-foot{display:flex;align-items:center;justify-content:space-between;gap:16px}
.h-builder-foot p{font-size:13px;line-height:1.4;color:var(--d4-dim)}
.h-builder-foot p a{color:var(--d4-text);text-underline-offset:3px}
.h-builder-foot .d4-btn{min-height:44px;padding:0 18px!important;font-size:14px!important;flex-shrink:0}

/* Ticker */
.h-ticker{position:absolute;left:0;right:0;bottom:0;height:58px;display:flex;align-items:center;overflow:hidden;border-top:1px solid #1c1c1c;background:var(--d4-bg)}
.h-ticker-in{display:flex;gap:40px;padding-left:40px;white-space:nowrap;animation:h-tick 32s linear infinite;font:800 22px/1 var(--d4-display);font-variation-settings:"wdth" 120;text-transform:uppercase;color:#6f6f6a}
.h-ticker-in b{color:var(--d4-lime);font-weight:800}
@keyframes h-tick{to{transform:translateX(-50%)}}

/* ---------- Work ---------- */
.h-work{position:relative}
.h-work-pin{padding:clamp(80px,9vw,120px) 0 clamp(48px,5vw,72px)}
.h-work-track{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;width:100%;max-width:var(--d4-max);margin:clamp(40px,5vw,64px) auto 0;padding:0 var(--d4-gutter)}
.h-card{display:flex;flex-direction:column;gap:20px;min-width:0;text-decoration:none;color:var(--d4-text)}
.h-card-media{position:relative;aspect-ratio:16/10;border-radius:20px;overflow:hidden;background:#151515;box-shadow:0 0 0 1px var(--d4-line)}
.h-card-media img{width:100%;height:100%;object-fit:cover;object-position:left top;transition:transform 1.2s var(--d4-ease)}
.h-card:hover .h-card-media img{transform:scale(1.05)}
.h-card-media.lime{background:var(--d4-lime);display:flex;align-items:flex-end;justify-content:center;gap:14px;padding:22px 22px 0}
.h-card-media.lime img{width:38%;height:auto;aspect-ratio:9/19.5;object-fit:cover;object-position:top;border-radius:18px 18px 0 0;box-shadow:0 20px 40px -12px rgba(0,0,0,.45);transform:translateY(12%)}
.h-card-media.lime img + img{transform:translateY(22%)}
.h-card:hover .h-card-media.lime img{transform:translateY(4%)}
.h-card:hover .h-card-media.lime img + img{transform:translateY(12%)}
.h-card-meta{display:flex;justify-content:space-between;gap:16px}
.h-card-meta > div{min-width:0}
.h-card .h-round{width:46px;height:46px}
.h-card-kicker{font:500 11.5px/1.3 var(--d4-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--d4-lime)}
.h-card h3{margin-top:8px!important;font:800 clamp(26px,2.3vw,34px)/1 var(--d4-display);font-variation-settings:"wdth" 100;overflow-wrap:anywhere;transition:font-variation-settings .8s var(--d4-ease)}
.h-card:hover h3{font-variation-settings:"wdth" 112}
.h-card-meta p:last-child{margin-top:8px!important;font-size:15.5px;line-height:1.5;color:var(--d4-muted)}
.h-apps{padding-top:32px;padding-bottom:clamp(72px,8vw,104px)}
.h-apps-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:26px;border-top:1px solid #1c1c1c}
.h-apps-label{display:flex;align-items:center;gap:10px;font:500 12px/1.3 var(--d4-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--d4-text)}
.h-apps-label i{width:8px;height:8px;border-radius:50%;background:var(--d4-lime);box-shadow:0 0 0 4px rgba(214,242,74,.15);animation:h-live 2s ease-in-out infinite}
@keyframes h-live{50%{box-shadow:0 0 0 8px rgba(214,242,74,0)}}
.h-apps-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0 0;padding:0;list-style:none}
.h-apps-list a{height:100%;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:18px;border:1px solid var(--d4-line);border-radius:18px;background:#111;text-decoration:none;color:var(--d4-text);transition:border-color .3s ease,transform .5s var(--d4-ease),background-color .3s ease}
.h-apps-list a:hover{border-color:var(--d4-lime);background:#141414;transform:translateY(-4px)}
.h-apps-list img{width:56px;height:56px;border-radius:14px;background:#1b1b1b;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.h-apps-list a:hover img{transform:rotate(-6deg) scale(1.06)}
.h-apps-list span{display:flex;flex-direction:column;gap:4px;min-width:0}
.h-apps-list b{font-size:15px;font-weight:600;line-height:1.25}
.h-apps-list small{font:500 11px/1.4 var(--d4-mono);letter-spacing:.04em;color:var(--d4-dim)}

/* ---------- Demos (paper) ---------- */
.h-demos{padding:clamp(80px,9vw,120px) 0}
.h-demos-grid{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:clamp(40px,5vw,76px);align-items:center}
.h-demos .h-h2{font-size:clamp(44px,4.4vw,64px);line-height:.92}
.h-demos .h-h2 .w1{font-variation-settings:"wdth" 130}
.h-demos .h-h2 .w2{font-variation-settings:"wdth" 64}
.h-copy{max-width:480px;margin-top:20px!important;font-size:17px;line-height:1.55;color:var(--d4-paper-muted)}
.h-demo-list{margin:26px 0 0;padding:0;list-style:none;border-top:1px solid var(--d4-paper-ink)}
.h-demo-list li{border-bottom:1px solid var(--d4-paper-line)}
.h-demo-row{width:100%;min-height:52px;display:grid;grid-template-columns:36px minmax(0,1fr) 118px 64px;align-items:center;gap:12px;padding:0 10px;border:0;background:transparent;color:var(--d4-paper-ink);font:600 16px/1.2 var(--d4-sans);text-align:left;cursor:pointer;transition:background-color .3s ease,color .3s ease,padding .5s var(--d4-ease)}
.h-demo-row:hover{padding-left:16px}
.h-demo-row[aria-pressed="true"]{background:var(--d4-paper-ink);color:var(--d4-lime)}
.h-demo-row .n{font:500 11px/1 var(--d4-mono);opacity:.7}
.h-demo-row .c{font:500 11px/1 var(--d4-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.h-demo-row .sw{display:flex;gap:4px;justify-content:flex-end}
.h-demo-row .sw i{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.h-demos .h-link{margin-top:18px;color:var(--d4-paper-ink)}
.h-demos .h-link:hover{color:#5a6b00}
.h-stack{position:relative;height:clamp(360px,38vw,520px)}
.h-stack-card{position:absolute;left:0;right:0;top:48px;bottom:0;border-radius:20px;overflow:hidden;display:block;background:#ddd;box-shadow:0 20px 40px -24px rgba(0,0,0,.4);transition:transform .8s var(--d4-ease),opacity .5s ease}
.h-stack-card img{width:100%;height:100%;object-fit:cover;object-position:top}
.h-stack-card.b2{left:18px;right:18px;top:0;bottom:48px;transform:scale(.92);transform-origin:top center;opacity:.55}
.h-stack-card.b1{left:8px;right:8px;top:22px;bottom:26px;transform:scale(.96);transform-origin:top center;opacity:.8}
.h-stack-card.front{box-shadow:0 40px 70px -30px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.08);text-decoration:none}
.h-stack-card.front.is-swap{animation:h-card-in .7s var(--d4-ease)}
@keyframes h-card-in{from{transform:translateY(-22px) scale(.96);opacity:.6}to{transform:none;opacity:1}}
.h-stack-bar{position:absolute;left:0;right:0;bottom:0;min-height:64px;display:flex;align-items:center;gap:14px;padding:0 22px;background:var(--c1);color:var(--c3);box-shadow:inset 0 1px 0 rgba(0,0,0,.08)}
.h-stack-bar i{width:10px;height:10px;border-radius:50%;background:var(--c2);flex-shrink:0}
.h-stack-bar b{font-size:17px}
.h-stack-bar small{font:500 11px/1 var(--d4-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.h-stack-bar span{margin-left:auto;font-weight:700;font-size:14px;white-space:nowrap}
.h-bubble{position:absolute;right:12%;top:38%;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:var(--d4-lime);color:#0a0a0a;font:700 12px/1 var(--d4-mono);letter-spacing:.12em;box-shadow:0 16px 30px -12px rgba(0,0,0,.45);animation:h-pulse 2.4s ease-in-out infinite;pointer-events:none}
@keyframes h-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}

/* ---------- Services ---------- */
.h-services{padding:clamp(80px,9vw,112px) 0 clamp(64px,7vw,96px)}
.h-services .h-h2{font-size:clamp(52px,6vw,88px)}
.h-services .h-h2 .w1{font-variation-settings:"wdth" 140}
.h-services .h-h2 .w2{font-variation-settings:"wdth" 62}
.h-svc-list{margin-top:44px;border-top:1px solid #2a2a2a}
.h-svc{display:grid;grid-template-columns:70px minmax(0,380px) minmax(0,1fr) 300px 56px;gap:28px;align-items:center;min-height:146px;padding:20px 12px;border-bottom:1px solid #1f1f1f;text-decoration:none;color:var(--d4-text);transition:background-color .35s ease}
.h-svc:hover{background:#121212}
.h-svc .n{font:500 12px/1 var(--d4-mono);color:var(--d4-lime)}
.h-svc h3{font:800 clamp(40px,4vw,56px)/1 var(--d4-display);font-variation-settings:"wdth" 110;transition:font-variation-settings .6s var(--d4-ease),color .3s ease}
.h-svc:hover h3{font-variation-settings:"wdth" 150;color:var(--d4-lime)}
.h-svc p{font-size:16px;line-height:1.5;color:var(--d4-muted)}
.h-art{height:104px;position:relative}
.h-art-web{border-radius:12px;border:1px solid #2a2a2a;background:#111;padding:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:16px 1fr 12px;gap:6px}
.h-art-web i{border-radius:4px;background:#242424;animation:h-blk 4s var(--d4-ease) infinite both}
.h-art-web i:nth-child(1){grid-column:1/4}
.h-art-web i:nth-child(2){grid-column:1/3;background:var(--d4-lime);animation-delay:.2s}
.h-art-web i:nth-child(3){background:#2e2e2e;animation-delay:.4s}
.h-art-web i:nth-child(4){animation-delay:.55s}.h-art-web i:nth-child(5){animation-delay:.7s}.h-art-web i:nth-child(6){animation-delay:.85s}
@keyframes h-blk{0%{transform:translateY(14px);opacity:0}18%,80%{transform:none;opacity:1}100%{opacity:0}}
.h-art-app{display:flex;align-items:center;justify-content:center;gap:18px}
.h-art-app .ph{width:58px;height:100px;border-radius:12px;border:2px solid #3a3a3a;padding:12px 7px;display:flex;flex-direction:column;gap:6px;background:#111}
.h-art-app .tb{width:150px;height:86px;border-radius:10px;border:1px solid #2a2a2a;padding:10px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:6px;background:#111}
.h-art-app .tb b{grid-row:1/4;background:#1f1f1f;border-radius:4px}
.h-art-app i{height:9px;border-radius:3px;background:#242424;animation:h-lst 3.2s ease-in-out infinite both}
.h-art-app .tb i{height:12px}
.h-art-app i:nth-child(2){animation-delay:.4s}.h-art-app i:nth-child(3){animation-delay:.8s}.h-art-app i:nth-child(4){animation-delay:1.2s}
@keyframes h-lst{0%,100%{transform:none;background:#242424}40%{transform:translateX(6px);background:var(--d4-lime)}60%{transform:none;background:#242424}}
.h-art-auto svg{position:absolute;inset:0}
.h-art-auto path{stroke-dasharray:6 6;animation:h-dash 1.2s linear infinite}
@keyframes h-dash{to{stroke-dashoffset:-24}}
.h-art-auto span{position:absolute;width:52px;height:36px;border-radius:9px;display:grid;place-items:center;background:#1b1b1b;border:1px solid #333;font:500 10px/1 var(--d4-mono);color:var(--d4-muted)}
.h-art-auto span.hot{background:var(--d4-lime);border-color:var(--d4-lime);color:#0a0a0a;font-weight:700}
.h-art-auto .dot{position:absolute;left:36px;top:48px;width:8px;height:8px;border-radius:50%;background:var(--d4-lime);box-shadow:0 0 12px var(--d4-lime);animation:h-travel 2.6s var(--d4-ease-io) infinite}
@keyframes h-travel{0%{transform:none}50%{transform:translateX(110px)}100%{transform:translateX(220px)}}

/* ---------- Scope (paper) ---------- */
.h-scope{padding:clamp(72px,8vw,104px) 0}
.h-scope-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.h-scope .h-h2{font-size:clamp(52px,5.4vw,76px);line-height:.92}
.h-scope .h-h2 .w1{font-variation-settings:"wdth" 130}
.h-scope .h-h2 .w2{font-variation-settings:"wdth" 60}
.h-scope-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:380px;border:1.5px solid var(--d4-paper-ink);border-radius:22px;overflow:hidden}
.h-scope-q{display:flex;flex-direction:column;gap:22px;padding:26px;background:var(--d4-paper-2)}
.h-scope-q fieldset{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.h-scope-q legend{margin-bottom:10px;padding:0;font:500 11px/1.2 var(--d4-mono);letter-spacing:.12em;text-transform:uppercase;color:#5d5d58}
.h-seg{position:relative;display:flex;align-items:center;min-height:48px;padding:0 16px;border:1.5px solid #cfcbc1;border-radius:12px;font:600 15.5px/1.2 var(--d4-sans);color:var(--d4-paper-ink);cursor:pointer;transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.h-seg input{position:absolute;opacity:0;width:1px;height:1px}
.h-seg:hover{border-color:var(--d4-paper-ink)}
.h-seg:has(input:checked){background:var(--d4-paper-ink);border-color:var(--d4-paper-ink);color:var(--d4-lime)}
.h-seg:has(input:focus-visible){outline:2px solid var(--d4-paper-ink);outline-offset:3px}
.h-segs{display:flex;gap:6px}
.h-segs .h-seg{flex:1 1 0;justify-content:center;min-height:42px;padding:0 8px;border-radius:999px;font-size:13.5px;text-align:center}
.h-scope-a{display:flex;flex-direction:column;padding:26px;background-color:var(--d4-bg);background-image:linear-gradient(#161616 1px,transparent 1px),linear-gradient(90deg,#161616 1px,transparent 1px);background-size:32px 32px;color:var(--d4-text)}
.h-scope-a .k{font:500 11px/1.2 var(--d4-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--d4-dim)}
.h-scope-a .p{margin-top:14px!important;font:800 58px/.95 var(--d4-display);font-variation-settings:"wdth" 70;transition:opacity .3s ease}
.h-scope-a .p.soft{font-size:44px;color:var(--d4-muted)}
.h-scope-a .t{margin-top:10px!important;font:500 13px/1.4 var(--d4-mono);color:var(--d4-lime)}
.h-scope-a ul{margin:22px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px;color:#c9c9c3}
.h-scope-a li{display:flex;gap:10px}
.h-scope-a li::before{content:"+";color:var(--d4-lime)}
.h-scope-a .d4-btn{margin-top:auto;justify-content:space-between;min-height:50px;background:var(--d4-text)!important}
.h-scope-a .d4-btn:hover{background:var(--d4-lime)!important}

/* ---------- Process (paper) ---------- */
.h-process{position:relative;padding:clamp(56px,6vw,80px) 0 clamp(80px,9vw,112px);border-top:1px solid var(--d4-paper-line)}
.h-process-grid{position:relative;display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:64px;min-height:460px}
.h-process .h-h2{font-size:clamp(40px,3.8vw,56px);line-height:.95}
.h-process .h-h2 span{display:block}
.h-process .h-h2 span:nth-child(1){font-variation-settings:"wdth" 104}
.h-process .h-h2 span:nth-child(2){font-variation-settings:"wdth" 64}
.h-process .h-h2 span:nth-child(3){font-variation-settings:"wdth" 96}
.h-steps{position:relative;margin:0;padding:0;list-style:none;min-height:420px}
.h-steps svg{position:absolute;left:0;top:30px;width:100%;height:340px;overflow:visible}
.h-steps .path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--d4-ease-io)}
.h-process.is-in .h-steps .path{stroke-dashoffset:0}
.h-step{position:absolute;width:250px;display:flex;flex-direction:column;gap:8px}
.h-step:nth-child(2){left:0;top:0}
.h-step:nth-child(3){left:40%;top:150px;width:230px}
.h-step:nth-child(4){right:0;top:300px;width:220px}
.h-step .dot{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--d4-paper-ink);color:var(--d4-lime);font-weight:700;box-shadow:0 0 0 6px var(--d4-paper)}
.h-step:nth-child(2) .dot{background:var(--d4-lime);color:#0a0a0a}
.h-step h3{margin-top:6px!important;font:800 26px/1.05 var(--d4-display);font-variation-settings:"wdth" 110}
.h-step p{font-size:15px;line-height:1.5;color:var(--d4-paper-muted)}

/* ---------- FAQ ---------- */
.h-faq{padding:clamp(80px,9vw,112px) 0}
.h-faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:64px}
.h-faq .h-h2{font-size:clamp(56px,6vw,88px);font-variation-settings:"wdth" 60}
.h-faq-list{border-top:1px solid #2a2a2a}
.h-faq-item{border-bottom:1px solid #1f1f1f}
.h-faq-item h3{font:inherit}
.h-q{width:100%;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border:0;background:transparent;color:var(--d4-text);font:600 20px/1.3 var(--d4-sans);text-align:left;cursor:pointer;transition:color .25s ease}
.h-q:hover{color:var(--d4-lime)}
.h-plus{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#1b1b1b;color:var(--d4-text);transition:transform .5s var(--d4-ease),background-color .3s ease,color .3s ease}
.h-q[aria-expanded="true"] .h-plus{transform:rotate(45deg);background:var(--d4-lime);color:#0a0a0a}
.h-a{display:grid;grid-template-rows:1fr;transition:grid-template-rows .5s var(--d4-ease)}
.h-a[hidden]{display:grid!important;grid-template-rows:0fr;visibility:hidden}
.h-a > div{overflow:hidden}
.h-a p{padding:0 60px 22px 0;font-size:16px;line-height:1.6;color:var(--d4-muted)}

/* ---------- Contact ---------- */
.h-contact{padding:clamp(72px,8vw,104px) 0 clamp(80px,9vw,120px);border-top:1px solid #1c1c1c}
.h-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:64px;align-items:start}
.h-contact .h-h2{font-size:clamp(56px,6vw,86px)}
.h-contact .h-h2 .w1{font-variation-settings:"wdth" 140}
.h-contact .h-h2 .w2{font-variation-settings:"wdth" 62}
.h-contact-copy p{margin-top:20px!important;font-size:16.5px;line-height:1.55;color:var(--d4-muted)}
.h-contact-copy a{color:var(--d4-lime);text-underline-offset:4px}
.h-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 12px;align-content:start;margin-top:8px}
.h-form label{display:flex;flex-direction:column;gap:7px;font:500 11px/1.2 var(--d4-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--d4-dim)}
.h-form .full{grid-column:1/-1}
.h-form :is(input,select,textarea){width:100%;min-height:50px;padding:0 14px;border-radius:12px;border:1px solid #2c2c2c;background:#111;color:var(--d4-text);font:400 16px/1.4 var(--d4-sans);letter-spacing:0;text-transform:none;transition:border-color .2s ease;appearance:none;-webkit-appearance:none}
.h-form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23b9b9b3' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.h-form textarea{min-height:120px;padding:12px 14px;resize:vertical}
.h-form :is(input,select,textarea):focus{outline:none;border-color:var(--d4-lime)}
.h-form ::placeholder{color:#76766f}
.h-details-toggle{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;border:0;background:none;color:var(--d4-text);font:600 15px/1 var(--d4-sans);cursor:pointer}
.h-details-toggle small{color:var(--d4-dim);font-weight:400;font-size:14px}
.h-details-toggle svg{transition:transform .4s var(--d4-ease)}
.h-details-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.h-details{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 12px}
.h-details[hidden]{display:none}
.h-form-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:6px}
.h-form-bottom p{font-size:13px;line-height:1.4;color:var(--d4-dim)}
.h-form-bottom p a{color:var(--d4-muted)}
.h-form .d4-btn{min-height:54px;padding:0 28px!important;font-size:16px!important}
.h-form .d4-btn[disabled]{opacity:.7;cursor:progress}
.h-form-error{grid-column:1/-1;padding:14px 16px;border-radius:12px;border:1px solid #6b3a2a;background:#1d120e;color:#f3c7b8;font-size:15px}
.h-form-error a{color:var(--d4-lime)}
.h-success{display:flex;flex-direction:column;gap:14px;padding:32px;border-radius:22px;border:1px solid var(--d4-lime);background:#10130a;outline:none}
.h-success svg{color:var(--d4-lime)}
.h-success h3{font:800 34px/1 var(--d4-display);font-variation-settings:"wdth" 100}
.h-success p{color:var(--d4-muted)}
.h-success a{color:var(--d4-lime)}

/* ---------- Responsive ---------- */
@media (max-width:1280px){
  .h-svc{grid-template-columns:56px minmax(0,300px) minmax(0,1fr) 240px 52px;gap:22px}
  .h-art-auto{transform:scale(.8);transform-origin:left center}
}
@media (max-width:1100px){
  .h-apps-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .h-hero-grid{grid-template-columns:1fr;gap:56px;padding-bottom:64px}
  .h-hero{display:flex;flex-direction:column}
  .h-ticker{position:relative;order:-1;flex-shrink:0;border-top:0;border-bottom:1px solid #1c1c1c;height:50px}
  .h-ticker-in{font-size:18px}
  .h-builder{max-width:560px}
  .h-demos-grid,.h-scope-grid,.h-faq-grid,.h-contact-grid{grid-template-columns:1fr;gap:40px}
  .h-demos-grid .h-stack{order:-1;max-width:640px;width:100%}
  .h-svc{grid-template-columns:48px minmax(0,1fr) 52px;grid-template-areas:"n t r" "n p r";row-gap:10px}
  .h-svc .n{grid-area:n;align-self:start;padding-top:14px}
  .h-svc h3{grid-area:t}
  .h-svc p{grid-area:p}
  .h-svc .h-art{display:none}
  .h-svc .h-round{grid-area:r}
  .h-process-grid{grid-template-columns:1fr;min-height:0}
  .h-steps{min-height:0;display:flex;flex-direction:column;gap:28px;padding-left:22px;border-left:2px dashed var(--d4-paper-line)}
  .h-steps svg{display:none}
  .h-step:nth-child(n){position:relative;left:auto;right:auto;top:auto;width:auto;max-width:460px}
  .h-step .dot{margin-left:-46px}
  .h-sec-head{flex-direction:column;align-items:flex-start;gap:20px}
  .h-side{text-align:left}
}
@media (max-width:820px){
  .h-apps-list{grid-template-columns:1fr;gap:10px}
  .h-apps-list a{flex-direction:row;align-items:center;padding:14px}
  .h-apps-list img{width:48px;height:48px;border-radius:12px}
  .h-scope-card{grid-template-columns:1fr}
  .h-scope-a{min-height:340px}
  .h-work-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--d4-gutter);-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px;gap:16px}
  .h-work-track::-webkit-scrollbar{display:none}
  .h-card{flex:0 0 84vw;scroll-snap-align:start}
}
@media (max-width:620px){
  .h-hero-grid{padding-top:28px;padding-bottom:56px;gap:40px}
  .h-title-wrap{margin-top:40px}
  .h-title .l1{font-size:clamp(34px,11.2vw,50px);font-variation-settings:"wdth" 112}
  .h-h2{font-size:clamp(44px,13vw,60px)!important}
  .h-demos .h-h2,.h-scope .h-h2,.h-process .h-h2{font-size:clamp(34px,9.6vw,50px)!important}
  .h-title .l2{font-size:clamp(66px,21.5vw,92px)}
  @keyframes h-w1{0%,100%{font-variation-settings:"wdth" 112}50%{font-variation-settings:"wdth" 92}}
  @keyframes h-w2{0%,100%{font-variation-settings:"wdth" 56}50%{font-variation-settings:"wdth" 76}}
  .h-dim{width:92%}
  .h-actions .d4-btn,.h-actions .d4-btn-ghost{flex:1 1 100%}
  .h-stats{gap:18px 28px}
  .h-stats dd{font-size:32px}
  .h-builder{padding:16px;border-radius:18px}
  .h-mini{height:auto;min-height:260px}
  .h-mini-links{display:none}
  .h-mini-body{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}
  .h-builder-foot{flex-direction:column;align-items:stretch}
  .h-builder-foot .d4-btn{width:100%}
  .h-demo-row{grid-template-columns:28px minmax(0,1fr) 44px;min-height:54px}
  .h-demo-row .c{display:none}
  .h-stack{height:clamp(300px,82vw,420px)}
  .h-stack-bar{min-height:56px;padding:0 16px;gap:10px}
  .h-stack-bar small{display:none}
  .h-bubble{width:72px;height:72px;font-size:11px}
  .h-scope-q,.h-scope-a{padding:20px}
  .h-scope-a .p{font-size:46px}
  .h-scope-a .p.soft{font-size:36px}
  .h-q{font-size:18px}
  .h-svc{grid-template-columns:32px minmax(0,1fr) 46px;gap:12px;padding:18px 0}
  .h-svc h3{font-size:clamp(30px,9vw,40px);font-variation-settings:"wdth" 96}
  .h-svc .h-round{width:44px;height:44px}
  .h-a p{padding-right:0}
  .h-form{grid-template-columns:1fr}
  .h-details{grid-template-columns:1fr}
  .h-form-bottom{flex-direction:column;align-items:stretch}
  .h-form .d4-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .h-ticker-in,.h-bubble,.h-apps-label i,.h-art-web i,.h-art-app i,.h-art-auto path,.h-art-auto .dot,.h-dim,html.d4-js .h-title .k{animation:none!important}
  .h-steps .path{stroke-dashoffset:0!important}
}

/* Reduce Motion: a short logo fade instead of the draw-and-wipe intro. */
html.d4-intro-lite .h-intro{animation:h-fade 1.2s ease forwards!important;animation-duration:1.2s!important;animation-iteration-count:1!important}
html.d4-intro-lite .h-intro *{animation:none!important}
html.d4-intro-lite .h-intro svg rect.o{stroke-dashoffset:0;fill-opacity:1}
html.d4-intro-lite .h-intro svg g{opacity:1;transform:none}
html.d4-intro-lite .h-intro-dim{transform:none}
@keyframes h-fade{0%,55%{opacity:1}100%{opacity:0;visibility:hidden}}
