/* Dwarf 3D Craft — home.css v2.0 */
:root {
    --d3-black:#0a0a0a; --d3-white:#f4f2ee; --d3-off:#edeae3;
    --d3-stone:#9b9589; --d3-stone-lt:#c4bfb7; --d3-stone-dk:#6b6560;
    --d3-mid:#6b6b6b; --d3-border:rgba(0,0,0,0.09);
}
html{scroll-behavior:smooth;}
body{background:var(--d3-white);overflow-x:hidden;cursor:none;margin:0;padding:0;}
*,*::before,*::after{box-sizing:border-box;}

/* ── CURSOR ── */
.d3-cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;}
.d3-c-dot{width:7px;height:7px;border-radius:50%;background:var(--d3-white);position:absolute;transform:translate(-50%,-50%);transition:width .15s,height .15s;mix-blend-mode:difference;}
.d3-c-ring{width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 6px rgba(255,255,255,.15);position:absolute;transform:translate(-50%,-50%);transition:width .2s,height .2s;mix-blend-mode:difference;}
body.d3-hov .d3-c-dot{width:0;height:0;}
body.d3-hov .d3-c-ring{width:46px;height:46px;}

/* ── NAV ── */
.d3-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:26px 48px;background:rgba(244,242,238,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s;}
.d3-nav.d3-sc{border-bottom-color:var(--d3-border);}
.d3-nav-brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.d3-nav-brand img{height:36px;width:36px;object-fit:contain;display:block;}
.d3-nav-name{font-family:'Syne',sans-serif;font-weight:800;font-size:16px;letter-spacing:-.02em;color:var(--d3-black);}
.d3-nav-links{display:flex;gap:32px;list-style:none;margin:0;padding:0;}
.d3-nav-links a{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-black);text-decoration:none;opacity:.42;transition:opacity .2s;padding:10px 6px;}
.d3-nav-links a:hover{opacity:1;}
.d3-nav-links a.active{opacity:1;border-bottom:1px solid var(--d3-black);padding-bottom:1px;}
.d3-nav-cta{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-black);text-decoration:none;border:1px solid var(--d3-black);padding:9px 20px;transition:background .2s,color .2s;}
.d3-nav-cta:hover{background:var(--d3-black);color:var(--d3-white);}

/* ── HERO ── */
.d3-hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
.d3-hero-left{display:flex;flex-direction:column;justify-content:flex-end;padding:120px 48px 72px;border-right:1px solid var(--d3-border);}
.d3-eyebrow{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--d3-mid);margin-bottom:28px;display:flex;align-items:center;gap:12px;}
.d3-eyebrow::before{content:'';display:block;width:20px;height:1px;background:var(--d3-mid);}
.d3-hero-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(52px,6vw,92px);letter-spacing:-.04em;line-height:.9;color:var(--d3-black);margin-bottom:12px;}
.d3-hero-company{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(20px,2.2vw,32px);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--d3-black);margin-bottom:36px;}
.d3-hero-sub{font-family:'DM Sans',sans-serif;font-size:14.5px;line-height:1.72;color:var(--d3-mid);max-width:380px;margin-bottom:48px;}
.d3-hero-actions{display:flex;gap:16px;align-items:center;}

/* Buttons */
.d3-btn-black{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-white);background:var(--d3-black);text-decoration:none;padding:14px 28px;display:inline-block;transition:background .22s,transform .2s;}
.d3-btn-black:hover{background:#333;transform:translateY(-1px);color:var(--d3-white);}
.d3-btn-ghost{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-black);text-decoration:none;opacity:.42;display:inline-flex;align-items:center;gap:8px;transition:opacity .2s;}
.d3-btn-ghost:hover{opacity:1;}
.d3-btn-stone{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-black);background:var(--d3-stone-lt);text-decoration:none;padding:15px 34px;display:inline-block;transition:background .2s,transform .2s;}
.d3-btn-stone:hover{background:#d4cfc7;transform:translateY(-2px);color:var(--d3-black);}
.d3-btn-ol{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-white);text-decoration:none;padding:15px 34px;border:1px solid rgba(244,242,238,.2);display:inline-block;transition:border-color .2s;}
.d3-btn-ol:hover{border-color:rgba(244,242,238,.55);color:var(--d3-white);}

/* Hero dark side */
.d3-hero-right{background:var(--d3-black);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.d3-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(155,149,137,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(155,149,137,.055) 1px,transparent 1px);background-size:44px 44px;}
.d3-printer-wrap{position:relative;z-index:2;width:320px;height:340px;animation:d3PrinterFloat 5s ease-in-out infinite;}
.d3-printer-svg{width:100%;height:100%;}
@keyframes d3PrinterFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}

/* Printer head animation */
.pr-head{animation:d3HeadMove 3s ease-in-out infinite;}
@keyframes d3HeadMove{0%,100%{transform:translateX(0);}50%{transform:translateX(60px);}}
.pr-dot{animation:d3DotPulse 3s ease-in-out infinite;}
@keyframes d3DotPulse{0%,10%,100%{opacity:0;}30%,70%{opacity:0.9;}90%{opacity:0;}}
/* Layer build-up animation */
.pr-layer{transform-origin:center bottom;}
.pr-l1{animation:d3LayerIn 6s ease-out infinite;}
.pr-l2{animation:d3LayerIn 6s ease-out infinite;animation-delay:.3s;}
.pr-l3{animation:d3LayerIn 6s ease-out infinite;animation-delay:.6s;}
.pr-l4{animation:d3LayerIn 6s ease-out infinite;animation-delay:.9s;}
.pr-l5{animation:d3LayerIn 6s ease-out infinite;animation-delay:1.2s;}
@keyframes d3LayerIn{0%{opacity:0;}20%{opacity:1;}80%,100%{opacity:1;}}

.d3-hero-bl{position:absolute;bottom:36px;left:48px;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,242,238,.22);}
.d3-hero-br{position:absolute;bottom:36px;right:48px;text-align:right;}
.d3-stat-n{font-family:'Syne',sans-serif;font-weight:800;font-size:40px;color:var(--d3-stone-lt);letter-spacing:-.03em;line-height:1;}
.d3-stat-unit{font-size:18px;opacity:.45;}
.d3-stat-l{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,242,238,.28);margin-top:4px;}

/* ── TICKER ── */
.d3-ticker{overflow:hidden;padding:13px 0;background:var(--d3-off);border-top:1px solid var(--d3-border);border-bottom:1px solid var(--d3-border);}
.d3-ticker-track{display:flex;white-space:nowrap;animation:d3Tick 30s linear infinite;}
@keyframes d3Tick{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.d3-tick-item{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:rgba(10,10,10,.32);padding:0 52px;display:inline-flex;align-items:center;gap:52px;}
.d3-tick-item::after{content:'\25C6';font-size:4px;color:var(--d3-stone);}

/* ── SECTION SHARED ── */
.d3-sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:64px;padding-bottom:28px;border-bottom:1px solid var(--d3-border);}
.d3-sec-eye{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--d3-mid);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.d3-sec-eye::before{content:'';display:block;width:16px;height:1px;background:currentColor;}
.d3-sec-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(34px,4vw,56px);letter-spacing:-.03em;line-height:.94;color:var(--d3-black);}
.d3-sec-title em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--d3-black);}
.d3-sec-link{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(10,10,10,.35);text-decoration:none;display:flex;align-items:center;gap:6px;transition:opacity .2s;flex-shrink:0;padding-bottom:4px;}
.d3-sec-link:hover{opacity:.85;}
.d3-sec-note{font-family:'DM Mono',monospace;font-size:10px;color:var(--d3-mid);opacity:.5;flex-shrink:0;padding-bottom:4px;}

/* ── SERVICES ── */
.d3-services{padding:120px 48px;}
.d3-srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-srv-card{background:var(--d3-white);padding:48px 40px 56px;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:460px;transition:background .3s;cursor:none;}
.d3-srv-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--d3-stone);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.25,.46,.45,.94);}
.d3-srv-card:hover::after{transform:scaleX(1);}
.d3-srv-card:hover{background:var(--d3-off);}
.d3-srv-num{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.14em;color:var(--d3-mid);opacity:.38;margin-bottom:48px;}
.d3-srv-icon{width:42px;height:42px;margin-bottom:28px;flex-shrink:0;}
.d3-srv-icon svg{width:100%;height:100%;}
.d3-srv-name{font-family:'Syne',sans-serif;font-weight:700;font-size:23px;letter-spacing:-.02em;line-height:1.1;color:var(--d3-black);margin-bottom:18px;}
.d3-srv-desc{font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.75;color:var(--d3-mid);margin-bottom:32px;flex:1;}
.d3-srv-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:48px;}
.d3-tag{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--d3-black);border:1px solid var(--d3-border);padding:5px 10px;opacity:.52;}
.d3-srv-arrow{position:absolute;bottom:40px;right:40px;width:28px;height:28px;border:1px solid var(--d3-border);display:flex;align-items:center;justify-content:center;font-size:12px;text-decoration:none;color:var(--d3-black);transition:background .2s,border-color .2s,transform .22s;}
.d3-srv-card:hover .d3-srv-arrow{background:var(--d3-black);border-color:var(--d3-black);color:var(--d3-white);transform:translate(2px,-2px);}

/* ── PROCESS ── */
.d3-process{padding:120px 48px;background:var(--d3-black);color:var(--d3-white);position:relative;overflow:hidden;}
.d3-process .d3-sec-head{border-bottom-color:rgba(244,242,238,.08);}
.d3-proc-eye{color:rgba(244,242,238,.32)!important;}
.d3-proc-link{color:rgba(244,242,238,.3)!important;}
.d3-process .d3-sec-title{color:var(--d3-white);}
.d3-process .d3-sec-title em{-webkit-text-stroke:1px var(--d3-white);}
.d3-proc-bg{position:absolute;bottom:-40px;right:-10px;font-family:'Syne',sans-serif;font-size:240px;font-weight:800;color:rgba(244,242,238,.025);pointer-events:none;letter-spacing:-.05em;white-space:nowrap;}
.d3-proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(244,242,238,.05);}
.d3-proc-step{background:var(--d3-black);padding:44px 30px 50px;}
.d3-proc-n{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;color:var(--d3-stone-lt);margin-bottom:32px;opacity:.72;}
.d3-proc-line{width:100%;height:1px;background:rgba(244,242,238,.06);margin-bottom:26px;}
.d3-proc-title{font-family:'Syne',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--d3-white);margin-bottom:12px;line-height:1.2;}
.d3-proc-desc{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.75;color:rgba(244,242,238,.36);}

/* ── CAPABILITIES ── */
.d3-capabilities{padding:120px 48px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.d3-cap-vis{position:relative;height:440px;}
.d3-cap-card{position:absolute;background:var(--d3-black);color:var(--d3-white);padding:26px 28px;}
.d3-cap-card:nth-child(1){top:0;left:0;right:80px;}
.d3-cap-card:nth-child(2){top:128px;left:60px;right:0;}
.d3-cap-card:nth-child(3){bottom:0;left:0;width:195px;}
.d3-cap-card-lt{background:var(--d3-off)!important;color:var(--d3-black)!important;}
.d3-cc-lbl{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.38;margin-bottom:10px;}
.d3-cc-val{font-family:'Syne',sans-serif;font-weight:800;font-size:36px;letter-spacing:-.03em;color:var(--d3-stone-lt);line-height:1;margin-bottom:5px;}
.d3-cc-val-dk{color:var(--d3-stone)!important;}
.d3-cc-unit{font-size:17px;opacity:.4;}
.d3-cc-unit-sm{font-size:13px!important;}
.d3-cc-sub{font-family:'DM Sans',sans-serif;font-size:11px;opacity:.42;}
.d3-cc-sub-dk{font-family:'DM Sans',sans-serif;font-size:11px;color:rgba(244,242,238,.3);}
.d3-cc-list{list-style:none;margin:12px 0 0;padding:0;}
.d3-cc-list li{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.06em;color:rgba(244,242,238,.42);padding:6px 0;border-bottom:1px solid rgba(244,242,238,.05);display:flex;align-items:center;gap:9px;}
.d3-cc-list li::before{content:'\2014';opacity:.28;font-size:8px;}
.d3-cc-list-lt li{color:rgba(10,10,10,.42)!important;border-bottom-color:rgba(10,10,10,.06)!important;}
.d3-cap-eye{color:var(--d3-mid)!important;}
.d3-cap-title{color:var(--d3-black)!important;margin-bottom:28px;}
.d3-cap-title em{-webkit-text-stroke:1px var(--d3-black)!important;}
.d3-cap-body{font-family:'DM Sans',sans-serif;font-size:14.5px;line-height:1.75;color:var(--d3-mid);margin-bottom:40px;max-width:430px;}
.d3-cap-metrics{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:40px;}
.d3-cm-n{font-family:'Syne',sans-serif;font-weight:800;font-size:32px;letter-spacing:-.03em;color:var(--d3-black);margin-bottom:4px;}
.d3-cm-l{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--d3-mid);opacity:.55;}

/* ── MATERIALS ── */
.d3-materials{padding:100px 48px;background:var(--d3-off);border-top:1px solid var(--d3-border);border-bottom:1px solid var(--d3-border);}
.d3-mat-head{border-bottom-color:var(--d3-border)!important;}
.d3-mat-eye{color:var(--d3-mid)!important;}
.d3-mat-title{color:var(--d3-black)!important;}
.d3-mat-title em{-webkit-text-stroke:1px var(--d3-black)!important;}
.d3-mat-link{color:rgba(10,10,10,.32)!important;}
.d3-mat-grid{display:flex;flex-wrap:wrap;gap:2px;background:var(--d3-border);}
.d3-mat-item{background:var(--d3-off);flex:1;min-width:130px;padding:26px 20px;display:flex;flex-direction:column;gap:9px;transition:background .2s;}
.d3-mat-item:hover{background:var(--d3-white);}
.d3-mat-dot{width:7px;height:7px;border-radius:50%;background:var(--d3-black);opacity:.1;transition:opacity .2s,background .2s;}
.d3-mat-item:hover .d3-mat-dot{opacity:1;background:var(--d3-stone);}
.d3-mat-n{font-family:'Syne',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--d3-black);}
.d3-mat-t{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-mid);opacity:.48;}

/* ── CTA ── */
.d3-cta{padding:160px 48px;background:var(--d3-black);text-align:center;position:relative;overflow:hidden;}
.d3-cta-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 100%,rgba(155,149,137,.07) 0%,transparent 70%);}
.d3-cta-eye{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--d3-stone-lt);opacity:.55;margin-bottom:24px;position:relative;}
.d3-cta-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(48px,7vw,104px);letter-spacing:-.04em;line-height:.9;color:var(--d3-white);margin-bottom:44px;position:relative;}
.d3-cta-title em{font-style:normal;color:var(--d3-stone-lt);}
.d3-cta-acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative;}

/* ── FOOTER ── */
.d3-footer{padding:40px 48px;background:var(--d3-black);border-top:1px solid rgba(244,242,238,.06);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.d3-foot-brand{display:flex;align-items:center;gap:10px;}
.d3-foot-brand img{height:40px;width:40px;object-fit:contain;display:block;}
.d3-foot-name{font-family:'Syne',sans-serif;font-weight:700;font-size:13px;letter-spacing:-.01em;color:var(--d3-white);}
.d3-foot-links{display:flex;gap:28px;list-style:none;margin:0;padding:0;}
.d3-foot-links a{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,242,238,.26);text-decoration:none;transition:color .2s;}
.d3-foot-links a:hover{color:rgba(244,242,238,.72);}
.d3-foot-copy{font-family:'DM Mono',monospace;font-size:9.5px;color:rgba(244,242,238,.18);letter-spacing:.06em;}

/* ── INNER PAGES ── */
.d3-page-hero{padding:160px 48px 80px;border-bottom:1px solid var(--d3-border);}
.d3-page-hero-inner{max-width:800px;}
.d3-page-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(48px,6vw,88px);letter-spacing:-.04em;line-height:.9;color:var(--d3-black);margin-bottom:32px;}
.d3-page-title em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--d3-black);}
.d3-page-sub{font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.72;color:var(--d3-mid);max-width:540px;}
.d3-inner-section{padding:100px 48px;}
.d3-inner-section--dark{padding:100px 48px;background:var(--d3-black);}
.d3-inner-section--dark .d3-sec-head{border-bottom-color:rgba(244,242,238,.08);}
.d3-inner-section--dark .d3-sec-title{color:var(--d3-white);}
.d3-inner-section--dark .d3-sec-title em{-webkit-text-stroke:1px var(--d3-white);}
.d3-inner-section--off{padding:100px 48px;background:var(--d3-off);}
.d3-inner-section--off .d3-sec-head{border-bottom-color:var(--d3-border);}

/* Info cards grid */
.d3-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-info-card{background:var(--d3-white);padding:44px 36px 48px;transition:background .2s;}
.d3-info-card:hover{background:var(--d3-off);}
.d3-info-card-num{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;color:var(--d3-stone);margin-bottom:20px;opacity:.8;}
.d3-info-card-title{font-family:'Syne',sans-serif;font-weight:700;font-size:21px;letter-spacing:-.02em;color:var(--d3-black);margin-bottom:14px;line-height:1.1;}
.d3-info-card-desc{font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.75;color:var(--d3-mid);margin-bottom:22px;}
.d3-info-list{list-style:none;padding:0;margin:0;}
.d3-info-list li{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.06em;color:var(--d3-mid);padding:7px 0;border-bottom:1px solid var(--d3-border);display:flex;align-items:center;gap:10px;opacity:.7;}
.d3-info-list li::before{content:'\2014';opacity:.4;font-size:8px;}

/* Tech cards */
.d3-tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--d3-border);}
.d3-tech-card{background:var(--d3-white);padding:48px 40px;transition:background .2s;}
.d3-tech-card:hover{background:var(--d3-off);}
.d3-tech-badge{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;color:var(--d3-stone-dk);border:1px solid var(--d3-stone);padding:5px 12px;display:inline-block;margin-bottom:20px;}
.d3-tech-name{font-family:'Syne',sans-serif;font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--d3-black);margin-bottom:6px;}
.d3-tech-tagline{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-mid);opacity:.5;margin-bottom:18px;}
.d3-tech-desc{font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.75;color:var(--d3-mid);margin-bottom:28px;}
.d3-tech-specs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--d3-border);}
.d3-tech-spec{background:var(--d3-white);padding:10px 14px;display:flex;flex-direction:column;gap:3px;}
.d3-spec-label{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-mid);opacity:.5;}
.d3-spec-val{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.05em;color:var(--d3-black);}

/* Material detail grid */
.d3-mat-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-mat-detail-card{background:var(--d3-off);padding:28px 24px;transition:background .2s;}
.d3-mat-detail-card:hover{background:var(--d3-white);}
.d3-mat-detail-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.d3-mat-detail-name{font-family:'Syne',sans-serif;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--d3-black);}
.d3-mat-detail-tech{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--d3-stone);border:1px solid var(--d3-stone);padding:3px 8px;opacity:.7;}
.d3-mat-detail-desc{font-family:'DM Sans',sans-serif;font-size:12.5px;line-height:1.65;color:var(--d3-mid);margin-bottom:10px;}
.d3-mat-detail-use{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--d3-stone-dk);opacity:.7;}

/* Pricing */
.d3-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-price-card{background:var(--d3-white);padding:48px 36px;display:flex;flex-direction:column;}
.d3-price-card--featured{background:var(--d3-black);color:var(--d3-white);}
.d3-price-tier{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--d3-stone);margin-bottom:20px;}
.d3-price-card--featured .d3-price-tier{color:var(--d3-stone-lt);}
.d3-price-from{font-family:'Syne',sans-serif;font-weight:800;font-size:14px;color:var(--d3-mid);margin-bottom:16px;}
.d3-price-from span{font-size:36px;letter-spacing:-.03em;color:var(--d3-black);}
.d3-price-card--featured .d3-price-from span{color:var(--d3-stone-lt);}
.d3-price-from span + span{font-size:14px;}
.d3-price-desc{font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.7;color:var(--d3-mid);margin-bottom:24px;}
.d3-price-card--featured .d3-price-desc{color:rgba(244,242,238,.45);}
.d3-price-list{list-style:none;padding:0;margin:0 0 32px;flex:1;}
.d3-price-list li{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.06em;color:var(--d3-mid);padding:8px 0;border-bottom:1px solid var(--d3-border);display:flex;align-items:center;gap:8px;}
.d3-price-card--featured .d3-price-list li{color:rgba(244,242,238,.4);border-bottom-color:rgba(244,242,238,.06);}
.d3-price-list li::before{content:'\2014';opacity:.35;font-size:8px;}

/* Products */
.d3-product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-product-card{background:var(--d3-white);display:flex;flex-direction:column;transition:background .2s;}
.d3-product-card:hover{background:var(--d3-off);}
.d3-product-card--custom{background:var(--d3-off);}
.d3-product-img{aspect-ratio:4/3;overflow:hidden;background:var(--d3-black);display:flex;align-items:center;justify-content:center;}
.d3-product-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.d3-product-img-placeholder svg{width:60%;height:60%;}
.d3-product-img-placeholder--custom{background:rgba(155,149,137,.08);}
.d3-product-info{padding:28px 28px 32px;}
.d3-product-cat{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--d3-stone);margin-bottom:8px;}
.d3-product-name{font-family:'Syne',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--d3-black);margin-bottom:10px;line-height:1.1;}
.d3-product-desc{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.7;color:var(--d3-mid);margin-bottom:20px;}
.d3-product-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.d3-product-price{font-family:'Syne',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--d3-black);}
.d3-price-note{font-family:'DM Mono',monospace;font-size:10px;font-weight:400;color:var(--d3-mid);opacity:.6;}
.d3-product-btn{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-black);text-decoration:none;border:1px solid var(--d3-border);padding:8px 14px;transition:background .2s,color .2s,border-color .2s;}
.d3-product-btn:hover{background:var(--d3-black);color:var(--d3-white);border-color:var(--d3-black);}
.d3-product-btn--stone{background:var(--d3-stone-lt);border-color:var(--d3-stone-lt);}
.d3-product-btn--stone:hover{background:var(--d3-stone);border-color:var(--d3-stone);}

/* Vision */
.d3-vision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);}
.d3-vision-block{background:var(--d3-white);padding:48px 40px;}
.d3-vision-title{font-family:'Syne',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--d3-black);margin-bottom:20px;}
.d3-vision-text{font-family:'DM Sans',sans-serif;font-size:14.5px;line-height:1.75;color:var(--d3-mid);}

/* Team */
.d3-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--d3-border);margin-bottom:24px;}
.d3-team-card{background:var(--d3-off);padding:36px 32px;display:flex;flex-direction:column;gap:20px;}
.d3-team-avatar{width:80px;height:80px;border:1px solid var(--d3-border);display:flex;align-items:center;justify-content:center;}
.d3-team-avatar svg{width:100%;height:100%;}
.d3-team-name{font-family:'Syne',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--d3-black);margin-bottom:4px;}
.d3-team-role{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-stone);margin-bottom:12px;}
.d3-team-bio{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.7;color:var(--d3-mid);margin-bottom:14px;}
.d3-team-skills{display:flex;flex-wrap:wrap;gap:6px;}
.d3-team-join{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.08em;color:var(--d3-mid);opacity:.6;}
.d3-team-join a{color:var(--d3-black);opacity:.7;transition:opacity .2s;}
.d3-team-join a:hover{opacity:1;}

/* Roadmap */
.d3-roadmap{display:flex;flex-direction:column;gap:0;position:relative;}
.d3-roadmap::before{content:'';position:absolute;left:16px;top:20px;bottom:20px;width:1px;background:rgba(244,242,238,.08);}
.d3-roadmap-item{display:flex;gap:32px;padding:32px 0;border-bottom:1px solid rgba(244,242,238,.06);position:relative;}
.d3-roadmap-marker{width:32px;height:32px;border-radius:50%;border:1px solid rgba(244,242,238,.15);background:var(--d3-black);flex-shrink:0;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;margin-top:4px;}
.d3-roadmap-item--done .d3-roadmap-marker{border-color:var(--d3-stone);background:var(--d3-stone-dk);}
.d3-roadmap-item--done .d3-roadmap-marker::after{content:'\2713';font-size:12px;color:var(--d3-stone-lt);}
.d3-roadmap-item--active .d3-roadmap-marker{border-color:var(--d3-stone-lt);background:var(--d3-stone);}
.d3-roadmap-item--active .d3-roadmap-marker::after{content:'\25CF';font-size:10px;color:var(--d3-white);}
.d3-roadmap-item--future .d3-roadmap-marker::after{content:'\25CB';font-size:10px;color:rgba(244,242,238,.3);}
.d3-roadmap-date{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;color:var(--d3-stone-lt);margin-bottom:8px;opacity:.7;}
.d3-roadmap-milestone{font-family:'Syne',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--d3-white);margin-bottom:10px;}
.d3-roadmap-desc{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.7;color:rgba(244,242,238,.38);}
.d3-roadmap-item--future .d3-roadmap-milestone{color:rgba(244,242,238,.4);}


/* ── ANIMATED SERVICE ICONS ── */
.d3-srv-anim{width:140px;height:140px;margin-bottom:22px;flex-shrink:0;}
.d3-srv-anim svg{width:100%;height:100%;overflow:visible;}
@keyframes pHeadX{0%,100%{transform:translateX(0);}50%{transform:translateX(32px);}}
@keyframes pBedZ{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes pLayerPop{0%,8%{opacity:0;transform:scaleY(0);}22%,100%{opacity:1;transform:scaleY(1);}}
@keyframes pDrip{0%,12%,100%{opacity:0;}35%,70%{opacity:1;}90%{opacity:0;}}
@keyframes pSpool{from{transform:rotate(0);}to{transform:rotate(360deg);}}
.p-head-x{animation:pHeadX 3s ease-in-out infinite;}
.p-bed-z{animation:pBedZ 3.5s ease-in-out infinite;}
.p-l1{animation:pLayerPop 6s ease-out infinite 0s;transform-origin:center bottom;}
.p-l2{animation:pLayerPop 6s ease-out infinite .4s;transform-origin:center bottom;}
.p-l3{animation:pLayerPop 6s ease-out infinite .8s;transform-origin:center bottom;}
.p-l4{animation:pLayerPop 6s ease-out infinite 1.2s;transform-origin:center bottom;}
.p-drip{animation:pDrip 3s ease-in-out infinite;}
.p-spool{animation:pSpool 2.4s linear infinite;}
@keyframes swCursor{0%,45%{opacity:1;}50%,100%{opacity:0;}}
@keyframes swLine1{0%{stroke-dashoffset:120;}100%{stroke-dashoffset:0;}}
@keyframes swLine2{0%{stroke-dashoffset:80;}100%{stroke-dashoffset:0;}}
@keyframes swLine3{0%{stroke-dashoffset:90;}100%{stroke-dashoffset:0;}}
@keyframes swNode{0%,100%{r:2.5;opacity:.4;}50%{r:3.5;opacity:1;}}
@keyframes swTool{0%,80%,100%{fill:rgba(0,0,0,0.06);}85%,95%{fill:rgba(155,149,137,0.3);}}
.sw-cur{animation:swCursor 1.1s step-end infinite;}
.sw-l1{stroke-dasharray:120;animation:swLine1 2.5s ease-out infinite;}
.sw-l2{stroke-dasharray:80;animation:swLine2 2.5s ease-out infinite .6s;}
.sw-l3{stroke-dasharray:90;animation:swLine3 2.5s ease-out infinite 1.1s;}
.sw-nd{animation:swNode 2s ease-in-out infinite;}
.sw-tool{animation:swTool 3s ease-in-out infinite;}
@keyframes rhHandOpen{0%,100%{transform:rotate(0deg);}30%,70%{transform:rotate(-6deg);}}
@keyframes rhF1{0%,20%{transform:rotate(0deg);}50%,80%{transform:rotate(-28deg);}100%{transform:rotate(0deg);}}
@keyframes rhF2{0%,25%{transform:rotate(0deg);}55%,80%{transform:rotate(-26deg);}100%{transform:rotate(0deg);}}
@keyframes rhF3{0%,30%{transform:rotate(0deg);}60%,80%{transform:rotate(-24deg);}100%{transform:rotate(0deg);}}
@keyframes rhF4{0%,35%{transform:rotate(0deg);}65%,80%{transform:rotate(-20deg);}100%{transform:rotate(0deg);}}
@keyframes rhThumb{0%,20%{transform:rotate(0deg);}50%,80%{transform:rotate(18deg);}100%{transform:rotate(0deg);}}
@keyframes rhPart{0%,100%{transform:translateY(0);}45%,55%{transform:translateY(-6px);}}
@keyframes rhGlow{0%,100%{opacity:.15;}50%{opacity:.5;}}
.rh-hand{animation:rhHandOpen 4s ease-in-out infinite;transform-origin:70px 100px;}
.rh-f1{animation:rhF1 4s ease-in-out infinite;transform-origin:52px 72px;}
.rh-f2{animation:rhF2 4s ease-in-out infinite;transform-origin:60px 68px;}
.rh-f3{animation:rhF3 4s ease-in-out infinite;transform-origin:70px 68px;}
.rh-f4{animation:rhF4 4s ease-in-out infinite;transform-origin:80px 70px;}
.rh-thumb{animation:rhThumb 4s ease-in-out infinite;transform-origin:88px 85px;}
.rh-part{animation:rhPart 4s ease-in-out infinite;}
.rh-glow{animation:rhGlow 4s ease-in-out infinite;}
/* Material cards */
.d3-mat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--d3-border);}
.d3-mat-card{background:var(--d3-off);padding:28px 24px 30px;display:flex;flex-direction:column;gap:0;transition:background .2s;}
.d3-mat-card:hover{background:var(--d3-white);}
.d3-mat-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.d3-mat-card-name{font-family:'Syne',sans-serif;font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--d3-black);}
.d3-mat-card-tag{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--d3-stone);border:1px solid var(--d3-stone);padding:3px 7px;opacity:.7;}
.d3-mat-card-desc{font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.65;color:var(--d3-mid);margin-bottom:20px;flex:1;}
.d3-mat-bars{display:flex;flex-direction:column;gap:9px;}
.d3-mat-bar-row{display:flex;flex-direction:column;gap:4px;}
.d3-mat-bar-label{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-mid);opacity:.55;}
.d3-mat-bar-track{height:3px;background:rgba(0,0,0,0.08);border-radius:2px;overflow:hidden;}
.d3-mat-bar-fill{height:100%;background:var(--d3-stone);border-radius:2px;}
.d3-mat-bar-fill--hi{background:var(--d3-black);}
/* Social inventory */
.d3-social-section{background:var(--d3-black);padding:0 0 56px;display:flex;flex-direction:column;align-items:center;border-top:1px solid rgba(244,242,238,.06);}
.d3-social-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,242,238,.28);margin-bottom:24px;padding-top:44px;display:flex;align-items:center;gap:12px;}
.d3-social-label::before,.d3-social-label::after{content:'';display:block;width:36px;height:1px;background:rgba(244,242,238,.1);}
.d3-inventory{display:flex;gap:3px;background:rgba(244,242,238,.06);border:1px solid rgba(244,242,238,.1);border-radius:4px;padding:3px;}
.d3-inv-slot{position:relative;display:flex;flex-direction:column;align-items:center;width:116px;padding:18px 12px 13px;background:rgba(244,242,238,.04);border:1px solid rgba(244,242,238,.08);border-radius:3px;text-decoration:none;color:var(--d3-white);transition:background .18s,border-color .18s,transform .12s;cursor:none;}
.d3-inv-slot:hover{background:rgba(244,242,238,.12);border-color:rgba(244,242,238,.3);transform:translateY(-3px);color:var(--d3-white);}
.d3-inv-slot:active{transform:translateY(0) scale(.97);}
.d3-inv-slot::before{content:'';position:absolute;inset:0;border-radius:3px;background:linear-gradient(135deg,rgba(196,191,183,.08),transparent);opacity:0;transition:opacity .18s;pointer-events:none;}
.d3-inv-slot:hover::before{opacity:1;}
.d3-inv-slot::after{content:'';position:absolute;top:6px;right:6px;width:4px;height:4px;border-radius:50%;background:var(--d3-stone);opacity:.45;}
.d3-inv-slot:hover::after{opacity:1;background:var(--d3-stone-lt);}
.d3-inv-icon{width:34px;height:34px;margin-bottom:10px;color:rgba(244,242,238,.5);transition:color .18s;}
.d3-inv-slot:hover .d3-inv-icon{color:var(--d3-stone-lt);}
.d3-inv-icon svg{width:100%;height:100%;}
.d3-inv-name{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,242,238,.65);margin-bottom:3px;text-align:center;}
.d3-inv-handle{font-family:'DM Sans',sans-serif;font-size:9.5px;color:rgba(244,242,238,.28);text-align:center;line-height:1.3;}
.d3-inv-qty{position:absolute;bottom:6px;left:7px;font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.06em;color:rgba(244,242,238,.22);}
@media(max-width:1100px){.d3-mat-cards{grid-template-columns:repeat(3,1fr);}}


/* ── NAV RIGHT (CTA + hamburger wrapper) ── */
.d3-nav-right{display:flex;align-items:center;gap:16px;}

/* ── HAMBURGER BUTTON ── */
.d3-hamburger{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
  width:36px;height:36px;
  background:none;border:1px solid var(--d3-border);
  cursor:none;padding:0;flex-shrink:0;
  transition:border-color .2s;
}
.d3-hamburger:hover{border-color:var(--d3-black);}
.d3-hamburger span{
  display:block;width:16px;height:1.2px;
  background:var(--d3-black);
  transition:transform .25s cubic-bezier(.25,.46,.45,.94), opacity .2s;
  transform-origin:center;
}
.d3-hamburger.open span:nth-child(1){transform:translateY(6.2px) rotate(45deg);}
.d3-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.d3-hamburger.open span:nth-child(3){transform:translateY(-6.2px) rotate(-45deg);}

/* ── MOBILE DRAWER ── */
.d3-nav-drawer{
  position:fixed;top:52px;left:0;right:0;z-index:99;
  background:var(--d3-white);
  border-bottom:1px solid var(--d3-border);
  transform:translateY(-110%);
  transition:transform .3s cubic-bezier(.25,.46,.45,.94);
  pointer-events:none;
}
.d3-nav-drawer.open{transform:translateY(0);pointer-events:all;}
.d3-nav-drawer ul{list-style:none;margin:0;padding:0;}
.d3-nav-drawer li{border-bottom:1px solid var(--d3-border);}
.d3-nav-drawer a{
  display:block;padding:16px 24px;
  font-family:'DM Mono',monospace;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--d3-black);text-decoration:none;
  opacity:.55;transition:opacity .18s,background .18s;
}
.d3-nav-drawer a:hover{opacity:1;background:var(--d3-off);}
.d3-drawer-cta{
  color:var(--d3-white) !important;
  background:var(--d3-black) !important;
  opacity:1 !important;
}
.d3-drawer-cta:hover{background:var(--d3-stone-dk) !important;}

/* ── DRAWER OVERLAY ── */
.d3-drawer-overlay{
  position:fixed;inset:0;z-index:98;
  background:rgba(13,15,14,0);
  pointer-events:none;
  transition:background .3s;
}
.d3-drawer-overlay.open{
  background:rgba(13,15,14,.35);
  pointer-events:all;
}

@media(max-width:960px){.d3-mat-cards{grid-template-columns:repeat(2,1fr);}.d3-inventory{flex-direction:column;width:90%;max-width:300px;}.d3-inv-slot{width:100%;flex-direction:row;gap:12px;padding:12px 14px;}.d3-inv-icon{width:26px;height:26px;flex-shrink:0;margin-bottom:0;}}
@media(max-width:560px){.d3-mat-cards{grid-template-columns:1fr;}}
/* ── SCROLL REVEAL ── */
.d3-rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.25,.46,.45,.94),transform .7s cubic-bezier(.25,.46,.45,.94);}
.d3-rv.d3-on{opacity:1;transform:translateY(0);}
.d3-d1{transition-delay:.1s;}
.d3-d2{transition-delay:.2s;}
.d3-d3{transition-delay:.3s;}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
    .d3-card-grid,.d3-tech-grid,.d3-mat-detail-grid,.d3-price-grid,.d3-product-grid{grid-template-columns:repeat(2,1fr);}
    .d3-vision-grid,.d3-team-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:960px){
    .d3-hero{grid-template-columns:1fr;}
    .d3-hero-right{height:70vw;min-height:300px;}
    .d3-hero-left{padding:100px 24px 60px;}
    .d3-srv-grid{grid-template-columns:1fr;}
    .d3-proc-grid{grid-template-columns:1fr 1fr;}
    .d3-capabilities{grid-template-columns:1fr;gap:40px;}
    .d3-cap-vis{height:300px;}
    .d3-nav{padding:18px 24px;}
    .d3-nav-links{display:none;}
    .d3-hamburger{display:flex;}
    .d3-services,.d3-process,.d3-capabilities,.d3-materials,.d3-cta,.d3-footer,
    .d3-page-hero,.d3-inner-section,.d3-inner-section--dark,.d3-inner-section--off{padding-left:24px;padding-right:24px;}
    .d3-sec-head{flex-direction:column;align-items:flex-start;gap:16px;}
    .d3-card-grid,.d3-tech-grid,.d3-mat-detail-grid,.d3-price-grid,.d3-product-grid,.d3-vision-grid,.d3-team-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
    .d3-proc-grid{grid-template-columns:1fr;}
}
/* ════════════════════════════════════════
   INNER PAGE SHARED STYLES
   ════════════════════════════════════════ */

/* Page hero banner */
.d3-page-hero{
  padding:120px 48px 64px;
  border-bottom:1px solid var(--d3-border);
  background:var(--d3-white);
  position:relative;
  overflow:hidden;
}
.d3-page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(13,15,14,.032) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,15,14,.032) 1px,transparent 1px);
  background-size:30px 30px;
  pointer-events:none;
}
.d3-page-hero-inner{position:relative;max-width:720px;}
.d3-page-h1{
  font-family:'Syne',sans-serif;font-weight:800;
  font-size:clamp(48px,5.5vw,84px);
  letter-spacing:-.03em;line-height:.92;
  color:var(--d3-black);margin-bottom:20px;
}
.d3-page-h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--d3-black);}
.d3-page-sub{
  font-size:16px;line-height:1.68;color:var(--d3-mid);
  max-width:520px;
}

/* Generic inner content sections */
.d3-inner-section{padding:80px 48px;}
.d3-inner-section--dark{padding:80px 48px;background:var(--d3-black);color:var(--d3-white);}
.d3-inner-section--off{padding:80px 48px;background:var(--d3-off);}

/* Content grid used on several pages */
.d3-card-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;background:var(--d3-border);
  margin-top:52px;
}
.d3-card{
  background:var(--d3-white);padding:36px 32px 40px;
  display:flex;flex-direction:column;
  transition:background .2s;cursor:default;
}
.d3-card:hover{background:var(--d3-off);}
.d3-card-label{
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--d3-stone);margin-bottom:14px;
}
.d3-card-title{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:20px;letter-spacing:-.02em;
  color:var(--d3-black);margin-bottom:10px;line-height:1.1;
}
.d3-card-body{
  font-size:13px;line-height:1.75;
  color:var(--d3-mid);flex:1;
}

/* Team grid */
.d3-team-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;background:var(--d3-border);
  margin-top:52px;
}
.d3-team-card{
  background:var(--d3-white);
  padding:36px 32px 40px;
}
.d3-team-avatar{
  width:64px;height:64px;border-radius:50%;
  background:var(--d3-off);border:2px solid var(--d3-border);
  margin-bottom:20px;overflow:hidden;display:flex;align-items:center;justify-content:center;
  font-family:'Syne',sans-serif;font-weight:800;font-size:22px;color:var(--d3-stone);
}
.d3-team-name{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:18px;letter-spacing:-.02em;
  color:var(--d3-black);margin-bottom:4px;
}
.d3-team-role{
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--d3-stone);margin-bottom:14px;
}
.d3-team-bio{font-size:13px;line-height:1.75;color:var(--d3-mid);}

/* Tech spec grid (used on 3D printing page) */
.d3-tech-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:2px;background:rgba(255,255,255,.06);
  margin-top:52px;
}
.d3-tech-item{
  background:var(--d3-black);padding:32px 32px 36px;
}
.d3-tech-item-lbl{
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(244,242,238,.3);margin-bottom:10px;
}
.d3-tech-item-val{
  font-family:'Syne',sans-serif;font-weight:800;
  font-size:22px;letter-spacing:-.02em;
  color:rgba(244,242,238,.88);margin-bottom:6px;
}
.d3-tech-item-note{
  font-family:'DM Mono',monospace;font-size:9.5px;
  letter-spacing:.05em;color:rgba(244,242,238,.3);
  line-height:1.65;
}

/* Material detail cards (used on 3D printing / assembly pages) */
.d3-mat-detail-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:2px;background:var(--d3-border);
  margin-top:52px;
}
.d3-mat-detail-card{
  background:var(--d3-off);padding:26px 22px 30px;
  transition:background .2s;
}
.d3-mat-detail-card:hover{background:var(--d3-white);}
.d3-mat-detail-name{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:17px;letter-spacing:-.01em;
  color:var(--d3-black);margin-bottom:6px;
}
.d3-mat-detail-tag{
  font-family:'DM Mono',monospace;font-size:8.5px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--d3-stone);margin-bottom:12px;
}
.d3-mat-detail-note{
  font-size:12.5px;line-height:1.7;color:var(--d3-mid);
}

/* Collections / product grid */
.d3-product-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;background:var(--d3-border);
  margin-top:52px;
}
.d3-product-card{
  background:var(--d3-white);padding:40px 32px 44px;
  display:flex;flex-direction:column;
  transition:background .2s;
}
.d3-product-card:hover{background:var(--d3-off);}
.d3-product-img{
  width:100%;aspect-ratio:4/3;
  background:var(--d3-off);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:24px;
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.1em;color:var(--d3-stone-lt);
  text-transform:uppercase;
}
.d3-product-name{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:18px;letter-spacing:-.02em;
  color:var(--d3-black);margin-bottom:8px;
}
.d3-product-desc{font-size:13px;line-height:1.75;color:var(--d3-mid);flex:1;}

/* Vision / values two-col layout */
.d3-vision-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:2px;background:var(--d3-border);
  margin-top:52px;
}
.d3-vision-item{
  background:var(--d3-white);padding:36px 32px;
}
.d3-vision-item--dark{background:var(--d3-black);}
.d3-vision-label{
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--d3-stone);margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.d3-vision-item--dark .d3-vision-label{color:rgba(244,242,238,.35);}
.d3-vision-label::before{content:'';display:block;width:16px;height:1px;background:currentColor;}
.d3-vision-title{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:24px;letter-spacing:-.02em;
  color:var(--d3-black);margin-bottom:12px;line-height:1.1;
}
.d3-vision-item--dark .d3-vision-title{color:rgba(244,242,238,.9);}
.d3-vision-body{font-size:13.5px;line-height:1.75;color:var(--d3-mid);}
.d3-vision-item--dark .d3-vision-body{color:rgba(244,242,238,.38);}

/* Page CTA strip */
.d3-page-cta{
  padding:80px 48px;
  background:var(--d3-black);
  display:flex;align-items:center;justify-content:space-between;
  gap:40px;flex-wrap:wrap;
}
.d3-page-cta-title{
  font-family:'Syne',sans-serif;font-weight:800;
  font-size:clamp(28px,3vw,44px);letter-spacing:-.03em;
  color:rgba(244,242,238,.9);line-height:1;
}


.d3-logo-nav{height:36px;width:36px;object-fit:contain;display:block;}
.d3-logo-footer{height:40px;width:40px;object-fit:contain;}
.d3-nav-brand img{height:36px !important;}
.d3-foot-brand img{height:40px !important;filter:invert(1) brightness(2);}

/* Modal */
.d3-modal-overlay{position:fixed;inset:0;z-index:9000;background:rgba(10,10,10,.85);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.d3-modal-overlay.open{opacity:1;pointer-events:all;}
.d3-modal{background:var(--d3-white);width:min(680px,94vw);max-height:88vh;overflow-y:auto;padding:48px;position:relative;transform:translateY(24px);transition:transform .3s;}
.d3-modal-overlay.open .d3-modal{transform:translateY(0);}
.d3-modal-close{position:absolute;top:20px;right:20px;background:none;border:1px solid var(--d3-border);width:36px;height:36px;cursor:pointer;font-size:18px;color:var(--d3-mid);display:flex;align-items:center;justify-content:center;transition:background .18s;}
.d3-modal-close:hover{background:var(--d3-off);}
.d3-modal-title{font-family:'Syne',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.03em;color:var(--d3-black);margin-bottom:6px;}
.d3-modal-sub{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--d3-stone);margin-bottom:36px;}
.d3-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.d3-form-row.full{grid-template-columns:1fr;}
.d3-form-group{display:flex;flex-direction:column;gap:6px;}
.d3-form-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-stone-dk);}
.d3-form-input,.d3-form-select,.d3-form-textarea{font-family:'DM Sans',sans-serif;font-size:14px;color:var(--d3-black);background:var(--d3-off);border:1px solid var(--d3-border);padding:11px 14px;outline:none;transition:border-color .18s;width:100%;box-sizing:border-box;border-radius:0;}
.d3-form-input:focus,.d3-form-select:focus,.d3-form-textarea:focus{border-color:var(--d3-stone);}
.d3-form-textarea{resize:vertical;min-height:80px;}
.d3-form-radio-group{display:flex;gap:12px;margin-top:4px;}
.d3-form-radio{display:flex;align-items:center;gap:7px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--d3-black);cursor:pointer;}
.d3-form-radio input{accent-color:var(--d3-black);width:16px;height:16px;}
.d3-form-submit{width:100%;margin-top:24px;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--d3-white);background:var(--d3-black);border:none;padding:16px;cursor:pointer;transition:background .18s;}
.d3-form-submit:hover{background:var(--d3-stone-dk);}
.d3-form-note{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.06em;color:var(--d3-stone);margin-top:12px;text-align:center;}
.d3-form-success{display:none;text-align:center;padding:40px 0;}
.d3-form-success-icon{font-size:48px;margin-bottom:16px;}
.d3-form-success h3{font-family:'Syne',sans-serif;font-weight:800;font-size:22px;color:var(--d3-black);margin-bottom:8px;}
.d3-form-success p{font-size:14px;color:var(--d3-mid);}