/* 3dprint4.me — dependency-free visual system, responsive, accessible, and system-theme aware. */
:root {
  color-scheme: light dark;
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --page: #f3f5f7;
  --page-2: #e9edf1;
  --surface: #ffffff;
  --surface-2: #f8fafb;
  --surface-3: #eef2f5;
  --ink: #11151b;
  --ink-2: #353d49;
  --muted: #5f6977;
  --faint: #737e8d;
  --line: #d7dde4;
  --line-strong: #b8c0ca;
  --accent: #006b83;
  --accent-bright: #087f9b;
  --accent-soft: #e2f4f7;
  --accent-ink: #00546b;
  --on-accent: #ffffff;
  --success: #147a55;
  --success-soft: #e7f7f1;
  --warning: #8a5000;
  --warning-soft: #fff4d8;
  --danger: #b42318;
  --danger-soft: #ffebe9;
  --blue: #1769aa;
  --blue-soft: #eaf4ff;
  --shadow-xs: 0 1px 2px rgb(16 24 40 / .05);
  --shadow-sm: 0 8px 24px rgb(16 24 40 / .08);
  --shadow-md: 0 18px 50px rgb(16 24 40 / .12);
  --shadow-lg: 0 34px 90px rgb(16 24 40 / .18);
  --radius-sm: .65rem;
  --radius-md: 1rem;
  --radius-lg: 1.4rem;
  --radius-xl: 2rem;
  --container: 1180px;
  --header-height: 76px;
  --focus: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 38%, transparent);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page: #080b10; --page-2: #0b1017; --surface: #10161f; --surface-2: #141b25; --surface-3: #1a2330;
  --ink: #f4f7fb; --ink-2: #d9e0e8; --muted: #a9b3c0; --faint: #8e99a8; --line: #273240; --line-strong: #3a4655;
  --accent: #64cde2; --accent-bright: #64cde2; --accent-soft: #102a35; --accent-ink: #9ee7f2; --on-accent: #09212a;
  --success: #61d6a8; --success-soft: #10271f; --warning: #ffcc67; --warning-soft: #2d230e; --danger: #ff8e86; --danger-soft: #321715;
  --blue: #75bfff; --blue-soft: #10243a;
  --shadow-xs: 0 1px 2px rgb(0 0 0 / .22); --shadow-sm: 0 8px 26px rgb(0 0 0 / .22); --shadow-md: 0 20px 56px rgb(0 0 0 / .35); --shadow-lg: 0 38px 100px rgb(0 0 0 / .52);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --page: #080b10; --page-2: #0b1017; --surface: #10161f; --surface-2: #141b25; --surface-3: #1a2330;
    --ink: #f4f7fb; --ink-2: #d9e0e8; --muted: #a9b3c0; --faint: #8e99a8; --line: #273240; --line-strong: #3a4655;
    --accent: #64cde2; --accent-bright: #64cde2; --accent-soft: #102a35; --accent-ink: #9ee7f2; --on-accent: #09212a;
    --success: #61d6a8; --success-soft: #10271f; --warning: #ffcc67; --warning-soft: #2d230e; --danger: #ff8e86; --danger-soft: #321715;
    --blue: #75bfff; --blue-soft: #10243a;
    --shadow-xs: 0 1px 2px rgb(0 0 0 / .22); --shadow-sm: 0 8px 26px rgb(0 0 0 / .22); --shadow-md: 0 20px 56px rgb(0 0 0 / .35); --shadow-lg: 0 38px 100px rgb(0 0 0 / .52);
  }
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}
body{margin:0;min-width:320px;background:radial-gradient(circle at 12% -5%,color-mix(in srgb,var(--accent-bright) 10%,transparent),transparent 28rem),var(--page);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:.18em}a:hover{color:var(--accent-ink)}p,h1,h2,h3,h4,ul,ol,dl{margin-top:0}::selection{color:var(--on-accent);background:var(--accent-bright)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:999;top:.7rem;left:.7rem;padding:.75rem 1rem;border-radius:var(--radius-sm);color:var(--on-accent);background:var(--accent);transform:translateY(-150%);transition:transform 160ms ease}.skip-link:focus{transform:translateY(0);outline:none;box-shadow:var(--focus)}
.container{width:min(calc(100% - 2rem),var(--container));margin-inline:auto}.container.narrow{max-width:860px}.section{padding-block:clamp(4rem,8vw,7rem)}.section.compact{padding-block:clamp(2.8rem,5vw,4.6rem)}.section.surface{background:var(--surface);border-block:1px solid var(--line)}.section-header{max-width:760px;margin-bottom:clamp(2rem,4vw,3.25rem)}.section-header.center{margin-inline:auto;text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.8rem;color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.eyebrow::before{width:1.4rem;height:2px;content:"";background:currentColor}
.display{margin-bottom:1rem;font-size:clamp(2.65rem,7vw,5.7rem);line-height:.98;letter-spacing:-.06em;font-weight:850}.h1{margin-bottom:1rem;font-size:clamp(2.3rem,5vw,4.45rem);line-height:1.02;letter-spacing:-.052em;font-weight:840}.h2{margin-bottom:.8rem;font-size:clamp(2rem,4vw,3.45rem);line-height:1.06;letter-spacing:-.045em;font-weight:820}.h3{margin-bottom:.55rem;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.18;letter-spacing:-.025em}.lede{color:var(--ink-2);font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.55}.muted{color:var(--muted)}.small{font-size:.88rem}.mono{font-family:var(--font-mono)}.accent-text{color:var(--accent)}.no-wrap{white-space:nowrap}
.site-header{position:sticky;z-index:100;top:0;min-height:var(--header-height);border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent);background:color-mix(in srgb,var(--page) 84%,transparent);-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%)}
.nav-shell{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none}.brand-mark{width:42px;height:42px;flex:0 0 auto}.brand-word{font-weight:840;letter-spacing:-.035em;font-size:1.15rem}.brand-word span{color:var(--accent-bright)}
.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{display:inline-flex;min-height:44px;align-items:center;padding:.55rem .75rem;border-radius:.65rem;color:var(--muted);font-size:.92rem;font-weight:700;text-decoration:none}.nav-link:hover,.nav-link[aria-current="page"]{color:var(--ink);background:var(--surface-3)}.nav-actions{display:flex;align-items:center;gap:.55rem}.icon-button{display:inline-grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid var(--line);border-radius:.8rem;color:var(--ink-2);background:var(--surface);cursor:pointer;box-shadow:var(--shadow-xs)}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-2)}.icon-button:focus-visible,.nav-link:focus-visible,.brand:focus-visible,.button:focus-visible{outline:none;box-shadow:var(--focus)}.menu-button{display:none}.mobile-panel{display:none}
.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:.55rem;padding:.72rem 1.05rem;border:1px solid transparent;border-radius:.78rem;font-weight:780;line-height:1.15;text-decoration:none;cursor:pointer;transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,box-shadow 150ms ease}.button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.button:hover{transform:translateY(-1px)}.button.primary{color:var(--on-accent);background:var(--accent);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 22%,transparent)}.button.primary:hover{color:var(--on-accent);background:color-mix(in srgb,var(--accent) 88%,#000)}:root[data-theme="dark"] .button.primary{background:var(--accent-bright)}@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .button.primary{background:var(--accent-bright)}}.button.secondary{color:var(--ink);border-color:var(--line);background:var(--surface);box-shadow:var(--shadow-xs)}.button.secondary:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface-2)}.button.ghost{color:var(--ink-2);background:transparent}.button.ghost:hover{color:var(--ink);background:var(--surface-3)}.button.small-button{min-height:44px;padding:.56rem .85rem;font-size:.88rem}.button.block{width:100%}.button:disabled{opacity:.58;cursor:not-allowed;transform:none}.action-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.hero{position:relative;overflow:hidden;padding-block:clamp(3.5rem,8vw,7.5rem);border-bottom:1px solid var(--line)}.hero::before{position:absolute;inset:0;content:"";pointer-events:none;background-image:linear-gradient(color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 78%);opacity:.52}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);align-items:center;gap:clamp(2rem,7vw,6.5rem)}.hero-copy{max-width:720px}.hero-copy .lede{max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.75rem}.trust-line{display:flex;flex-wrap:wrap;gap:.65rem 1.25rem;margin-top:1.7rem;color:var(--muted);font-size:.9rem}.trust-line span{display:inline-flex;align-items:center;gap:.45rem}.trust-line span::before{width:7px;height:7px;border-radius:50%;content:"";background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}
.hero-case{position:relative;align-self:stretch;padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md)}.hero-case::before{position:absolute;inset:0 auto 0 0;width:4px;content:"";background:var(--accent);border-radius:var(--radius-xl) 0 0 var(--radius-xl)}.hero-case-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;align-items:baseline}.hero-case-ref{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:700;letter-spacing:.06em}.hero-case h2{max-width:17ch;margin:clamp(2rem,5vw,3.3rem) 0 .55rem;font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.05;letter-spacing:-.055em}.hero-case>p{max-width:35ch;margin:0 0 1.8rem;color:var(--ink-2);font-size:1rem;line-height:1.55}.hero-case dl{margin:0;border-top:1px solid var(--line)}.hero-case dl div{display:grid;grid-template-columns:7.5rem 1fr;gap:.9rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.hero-case dt{color:var(--muted);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.hero-case dd{margin:0;color:var(--ink-2);font-size:.9rem;line-height:1.5}.hero-case>a{display:inline-flex;min-height:44px;align-items:center;margin-top:1.1rem;color:var(--accent-ink);font-size:.9rem;font-weight:750;text-underline-offset:4px}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr)}.proof-item{padding:1.35rem 1.25rem;border-right:1px solid var(--line)}.proof-item:last-child{border-right:0}.proof-item strong{display:block;font-size:1.12rem;letter-spacing:-.02em}.proof-item span{color:var(--muted);font-size:.84rem}
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.service-card{position:relative;min-height:310px;padding:clamp(1.4rem,3vw,2rem);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs);transition:transform 180ms ease,border-color 180ms ease,box-shadow 180ms ease}.service-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:var(--shadow-md)}.service-card.wide{grid-column:span 2;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:2rem}.card-icon{display:grid;width:52px;height:52px;margin-bottom:2.1rem;place-items:center;border-radius:1rem;color:var(--accent);background:var(--accent-soft)}.card-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.service-card h3{font-size:clamp(1.4rem,2.5vw,2rem);letter-spacing:-.035em}.service-card p{max-width:560px;color:var(--muted)}.card-link{position:absolute;right:1.5rem;bottom:1.4rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:760;text-decoration:none}.card-link::after{content:"→";transition:transform 150ms ease}.card-link:hover::after{transform:translateX(3px)}.service-card.wide .card-link{position:static;margin-top:.7rem}.machine-lines{display:grid;gap:.6rem;padding:1.3rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-2)}.machine-lines span{display:flex;height:12px;overflow:hidden;border-radius:99px;background:var(--surface-3)}.machine-lines span::before{width:var(--w,65%);content:"";border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-bright))}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:steps}.process-step{position:relative;padding-top:1.25rem;border-top:2px solid var(--line);counter-increment:steps}.process-step::before{position:absolute;top:-17px;display:grid;width:32px;height:32px;place-items:center;border:2px solid var(--page);border-radius:50%;content:counter(steps,decimal-leading-zero);color:var(--on-accent);background:var(--accent);font-family:var(--font-mono);font-size:.72rem;font-weight:800}.process-step h3{margin-top:1.3rem;margin-bottom:.4rem;font-size:1.06rem}.process-step p{color:var(--muted);font-size:.92rem}
.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.project-card{display:flex;min-height:330px;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color 150ms ease,transform 150ms ease}.project-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}.project-card.large{grid-column:span 7}.project-card.small-card{grid-column:span 5}.project-card.half{grid-column:span 6}.project-number{display:block;padding:1.35rem 1.5rem 0;color:var(--accent-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-weight:750;letter-spacing:.08em}.project-overlay{display:flex;min-height:0;flex:1;flex-direction:column;align-items:flex-start;padding:1.2rem 1.5rem 1.5rem;color:var(--ink)}.project-overlay h3{max-width:26ch;margin:1.5rem 0 .55rem;font-size:clamp(1.35rem,2.5vw,1.75rem);line-height:1.15;letter-spacing:-.035em}.project-overlay p{max-width:55ch;margin:0 0 1.5rem;color:var(--ink-2);font-size:.95rem;line-height:1.6}.project-overlay a{display:inline-flex;min-height:44px;align-items:center;margin-top:auto;color:var(--accent-ink);font-weight:750;text-decoration:underline;text-underline-offset:4px}.project-overlay a:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:.2rem}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.tag{display:inline-flex;min-height:28px;align-items:center;padding:.2rem .55rem;border:1px solid var(--line);border-radius:99px;color:var(--ink-2);background:var(--surface-2);font-size:.73rem;font-weight:750;letter-spacing:.02em}.tag.accent{color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 24%,var(--line));background:var(--accent-soft)}
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,7vw,6rem)}.quote-panel{position:relative;padding:clamp(1.7rem,4vw,3rem);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md)}.quote-panel::before{display:block;margin-bottom:1rem;content:"“";color:var(--accent);font-family:Georgia,serif;font-size:5rem;line-height:.6}.quote-panel blockquote{margin:0;color:var(--ink-2);font-size:clamp(1.25rem,2.6vw,1.8rem);font-weight:680;line-height:1.4;letter-spacing:-.03em}.quote-panel footer{margin-top:1.25rem;color:var(--muted);font-size:.9rem}.capability-list{display:grid;gap:.85rem;padding:0;list-style:none}.capability-list li{display:grid;grid-template-columns:30px 1fr;gap:.75rem;align-items:start}.capability-list li::before{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;content:"✓";color:var(--success);background:var(--success-soft);font-weight:900}.capability-list strong{display:block}.capability-list span{display:block;color:var(--muted);font-size:.9rem}
.cta-panel{position:relative;overflow:hidden;padding:clamp(2rem,7vw,5rem);border-radius:var(--radius-xl);color:#fff;background:#111820;box-shadow:var(--shadow-lg)}.cta-panel::before{position:absolute;inset:-40% -20% auto auto;width:540px;height:540px;border-radius:50%;content:"";background:radial-gradient(circle,color-mix(in srgb,var(--accent-bright) 72%,transparent),transparent 65%);opacity:.7}.cta-panel>*{position:relative}.cta-panel .eyebrow{color:#9ee7f2}.cta-panel h2{max-width:780px}.cta-panel p{max-width:690px;color:#c7d0db}.cta-panel .button.primary{color:#09212a;background:#64cde2}.cta-panel .button.secondary{color:#fff;border-color:#3a4655;background:#1a2330}
.page-hero{padding-block:clamp(3.5rem,8vw,7rem);border-bottom:1px solid var(--line)}.page-hero .lede{max-width:760px}.breadcrumbs{display:flex;gap:.45rem;margin-bottom:1.8rem;color:var(--muted);font-size:.85rem}.breadcrumbs a{color:var(--muted)}.breadcrumbs span::before{margin-right:.45rem;content:"/"}.stat-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.stat{min-width:160px;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.stat strong{display:block;font-size:1.35rem;letter-spacing:-.035em}.stat span{color:var(--muted);font-size:.8rem}
.service-detail{display:grid;grid-template-columns:280px 1fr;gap:clamp(2rem,6vw,5rem);padding-block:clamp(3.5rem,7vw,6rem);border-bottom:1px solid var(--line)}.service-number{font-family:var(--font-mono);font-size:.78rem;font-weight:800;color:var(--accent)}.service-detail h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;letter-spacing:-.05em}.service-content>.lede{max-width:700px}.included-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin-top:2rem}.included-card{padding:1.1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.included-card strong{display:block;margin-bottom:.25rem}.included-card span{color:var(--muted);font-size:.88rem}.price-line{display:flex;flex-wrap:wrap;gap:.65rem 1.3rem;align-items:baseline;margin:1.5rem 0}.price-line strong{font-size:1.65rem;letter-spacing:-.035em}.price-line span{color:var(--muted);font-size:.88rem}
.price-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.price-table th,.price-table td{padding:1rem 1.1rem;text-align:left;border-bottom:1px solid var(--line)}.price-table tr:last-child th,.price-table tr:last-child td{border-bottom:0}.price-table th{width:38%;font-weight:750}.price-table td{color:var(--muted)}
.accordion{display:grid;gap:.65rem}.accordion details{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.accordion summary{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;font-weight:760;list-style:none}.accordion summary::-webkit-details-marker{display:none}.accordion summary::after{content:"+";color:var(--accent);font-size:1.4rem}.accordion details[open] summary::after{content:"−"}.accordion details p{padding:0 1.1rem 1.2rem;margin:0;color:var(--muted)}
.story-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(2rem,7vw,6rem);align-items:start}.work-record{position:sticky;top:calc(var(--header-height) + 2rem);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-sm)}.work-record-head{padding:clamp(1.4rem,3vw,2rem);border-bottom:1px solid var(--line);background:var(--surface-2)}.work-record-head h2{margin:.6rem 0;font-size:clamp(1.65rem,3vw,2.2rem);line-height:1.08;letter-spacing:-.045em}.work-record-head p{margin:0;color:var(--ink-2);font-size:.94rem;line-height:1.55}.work-record-list{margin:0;padding:0;list-style:none}.work-record-list li{display:grid;grid-template-columns:2rem 1fr;gap:.75rem;padding:1.1rem clamp(1.4rem,3vw,2rem);border-bottom:1px solid var(--line)}.work-record-number{color:var(--accent-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;font-weight:700}.work-record-list strong{display:block;color:var(--ink);font-size:.99rem}.work-record-list p{margin:.3rem 0 .4rem;color:var(--ink-2);font-size:.86rem;line-height:1.5}.work-record-list a{color:var(--accent-ink);font-size:.83rem;font-weight:750;text-underline-offset:3px}.work-record-signoff{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.2rem 1rem;margin:0;padding:1rem clamp(1.4rem,3vw,2rem);font-size:.78rem}.work-record-signoff span{color:var(--muted)}.story-copy h2{margin-top:2.6rem;font-size:1.6rem;letter-spacing:-.035em}.story-copy h2:first-child{margin-top:0}.story-copy p{color:var(--ink-2)}
.site-footer{padding-top:4rem;border-top:1px solid var(--line);background:var(--surface)}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:clamp(1.5rem,5vw,4rem);padding-bottom:3rem}.footer-brand p{max-width:330px;margin:1.1rem 0 .5rem;color:var(--muted)}.footer-grid h2{margin-bottom:.8rem;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.footer-grid>div:not(.footer-brand) a{display:block;min-height:36px;color:var(--muted);font-size:.9rem;text-decoration:none}.footer-grid>div:not(.footer-brand) a:hover{color:var(--ink)}.footer-base{display:flex;justify-content:space-between;gap:1rem;padding-block:1.25rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.footer-base>span:last-child{display:flex;gap:1rem}.footer-base a{color:inherit}
.toast-region{position:fixed;z-index:1000;right:1rem;bottom:1rem;display:grid;gap:.55rem;width:min(360px,calc(100% - 2rem));pointer-events:none}.toast{padding:.9rem 1rem;border:1px solid var(--line-strong);border-radius:var(--radius-md);color:var(--ink);background:var(--surface);box-shadow:var(--shadow-md);animation:toast-in 180ms ease both}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Order builder */
.order-shell{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:clamp(2rem,5vw,4rem);align-items:start;padding-block:clamp(2.5rem,6vw,5rem)}.order-header{margin-bottom:2rem}.order-header h1{margin-bottom:.6rem;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;letter-spacing:-.05em}.order-header p{color:var(--muted)}.order-main{min-width:0}.estimate-sidebar{position:sticky;top:calc(var(--header-height) + 1.5rem);padding:1.35rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.estimate-sidebar h2{margin-bottom:.25rem;font-size:.85rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.estimate-amount{margin-bottom:.15rem;font-size:clamp(2rem,4vw,2.7rem);font-weight:850;letter-spacing:-.055em}.estimate-confidence{color:var(--muted);font-size:.82rem}.estimate-list{display:grid;gap:.6rem;margin:1.2rem 0 0;padding-top:1.1rem;border-top:1px solid var(--line)}.estimate-list>div{display:flex;justify-content:space-between;gap:1rem}.estimate-list dt{color:var(--muted);font-size:.78rem}.estimate-list dd{margin:0;text-align:right;font-size:.78rem;font-weight:700}.estimate-note{margin:1.1rem 0 0;padding:.8rem;border-radius:.8rem;color:var(--muted);background:var(--surface-2);font-size:.75rem}
.progress-wrap{margin-bottom:2rem}.progress-labels{display:flex;justify-content:space-between;margin-bottom:.55rem;color:var(--faint);font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.progress-labels span.active{color:var(--accent)}.progress-track{height:5px;overflow:hidden;border-radius:99px;background:var(--surface-3)}.progress-bar{height:100%;width:25%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-bright));transition:width 220ms ease}.form-step{display:none}.form-step.active{display:block}.step-title{margin-bottom:1.5rem}.step-title h2{margin-bottom:.35rem;font-size:clamp(1.55rem,3vw,2.2rem);line-height:1.2;letter-spacing:-.035em}.step-title p{color:var(--muted)}.form-section{padding:0;margin:0;border:0}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.choice-card{position:relative}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card label{display:flex;min-height:176px;flex-direction:column;padding:1.15rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color 150ms ease,box-shadow 150ms ease,transform 150ms ease}.choice-card label:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.choice-card input:checked+label{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}.choice-card input:focus-visible+label{box-shadow:var(--focus)}.choice-title{font-size:1.05rem;font-weight:780}.choice-copy{margin:.35rem 0 .8rem;color:var(--muted);font-size:.84rem}.choice-price{margin-top:auto;color:var(--accent);font-size:.76rem;font-weight:750}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{min-width:0}.field.full{grid-column:1/-1}.field label,.field-label{display:block;margin-bottom:.35rem;font-size:.85rem;font-weight:730}.required::after{margin-left:.2rem;content:"*";color:var(--danger)}.input,.select,.textarea{width:100%;min-height:46px;padding:.7rem .78rem;border:1px solid var(--line-strong);border-radius:.72rem;color:var(--ink);background:var(--surface);outline:none;transition:border-color 150ms ease,box-shadow 150ms ease}.textarea{min-height:132px;resize:vertical}.compact-textarea{min-height:88px}.input:hover,.select:hover,.textarea:hover{border-color:var(--muted)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--focus)}[aria-invalid="true"]{border-color:var(--danger)!important;background:var(--danger-soft)}.help,.error{margin:.3rem 0 0;font-size:.75rem}.help{color:var(--muted)}.error{min-height:1.2em;color:var(--danger);font-weight:650}.conditional{display:none}.conditional.visible{display:block}.service-panel{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.subsection-head{margin-bottom:1rem}.subsection-head h3{margin-bottom:.2rem;font-size:1.1rem}.subsection-head p{margin:0;color:var(--muted);font-size:.84rem}.radio-row{display:flex;flex-wrap:wrap;gap:.55rem}.radio-pill{position:relative}.radio-pill input{position:absolute;opacity:0}.radio-pill label{display:inline-flex;min-height:42px;align-items:center;padding:.55rem .8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface);cursor:pointer;font-size:.84rem;font-weight:690}.radio-pill input:checked+label{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.radio-pill input:focus-visible+label{box-shadow:var(--focus)}
.upload-zone{position:relative;margin-top:1.5rem;padding:1.35rem;border:1.5px dashed var(--line-strong);border-radius:var(--radius-md);text-align:center;background:var(--surface-2);transition:border-color 150ms ease,background 150ms ease}.upload-zone.dragover{border-color:var(--accent);background:var(--accent-soft)}.upload-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-zone strong{display:block}.upload-zone span{color:var(--muted);font-size:.82rem}.file-list{display:grid;gap:.45rem;margin-top:.75rem}.file-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface)}.file-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:680}.file-item-size{color:var(--muted);font-size:.74rem}.file-remove{min-width:44px;min-height:40px;padding:.3rem .55rem;border:0;border-radius:.5rem;color:var(--danger);background:transparent;cursor:pointer;font-size:.74rem;font-weight:700}.file-remove:hover{background:var(--danger-soft)}.form-actions{display:flex;justify-content:space-between;gap:.8rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line)}.form-actions .spacer{flex:1}.review-card{overflow:hidden;margin:0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.review-row{display:grid;grid-template-columns:145px 1fr;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}.review-row:last-child{border-bottom:0}.review-row dt{color:var(--muted);font-size:.78rem}.review-row dd{margin:0;overflow-wrap:anywhere;font-size:.86rem;font-weight:650}.terms-check{display:grid;grid-template-columns:24px 1fr;gap:.65rem;align-items:start;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.terms-check input{width:20px;height:20px;margin-top:.1rem;accent-color:var(--accent)}.terms-check label{font-size:.8rem;color:var(--ink-2)}.honeypot{position:absolute!important;left:-9999px!important}.submission-state{display:none;padding:clamp(1.7rem,5vw,3rem);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md)}.submission-state.visible{display:block}.success-mark{display:grid;width:58px;height:58px;margin-bottom:1.2rem;place-items:center;border-radius:50%;color:var(--success);background:var(--success-soft);font-size:1.55rem;font-weight:900}.request-id{display:inline-flex;margin:.5rem 0 1.2rem;padding:.5rem .7rem;border-radius:.6rem;color:var(--ink);background:var(--surface-3);font-family:var(--font-mono);font-size:.85rem;font-weight:750}.backend-note{margin:1rem 0;padding:.85rem;border-radius:.75rem;color:var(--warning);background:var(--warning-soft);font-size:.8rem}.confirmation-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.3rem}
/* Legal / utility */
.prose{color:var(--ink-2)}.prose h2{margin-top:2.5rem;color:var(--ink);font-size:1.55rem;letter-spacing:-.035em}.prose h3{margin-top:1.8rem;color:var(--ink);font-size:1.1rem}.prose a{font-weight:650}.prose li{margin-bottom:.45rem}.notice{padding:1rem 1.1rem;border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--accent-soft);color:var(--accent-ink)}.not-found{min-height:calc(100vh - var(--header-height));display:grid;place-items:center;padding:4rem 1rem;text-align:center}.not-found-code{font-family:var(--font-mono);font-size:clamp(5rem,18vw,12rem);font-weight:900;line-height:.8;color:var(--surface-3);-webkit-text-stroke:1px var(--line-strong)}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:800px}.hero-case{width:min(680px,100%);margin-inline:auto}.proof-grid{grid-template-columns:repeat(2,1fr)}.proof-item:nth-child(2){border-right:0}.proof-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.process-grid{grid-template-columns:repeat(2,1fr);row-gap:2.2rem}.project-card.large,.project-card.small-card{grid-column:span 6}.split{grid-template-columns:1fr}.footer-grid{grid-template-columns:1.6fr repeat(2,1fr)}.footer-grid>div:last-child{grid-column:2}.order-shell{grid-template-columns:1fr}.estimate-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.estimate-sidebar .estimate-list{margin:0;padding:0 0 0 1rem;border-top:0;border-left:1px solid var(--line)}.estimate-note{grid-column:1/-1}.story-grid{grid-template-columns:1fr}.work-record{position:static;max-width:620px}}
@media(max-width:760px){:root{--header-height:68px}.container{width:min(calc(100% - 1.25rem),var(--container))}.nav-links,.nav-actions>.button{display:none}.menu-button{display:inline-grid}.mobile-panel{position:absolute;top:100%;right:.625rem;left:.625rem;display:none;padding:.65rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.mobile-panel.open{display:grid}.mobile-panel .nav-link{width:100%;padding:.7rem}.mobile-panel .button{margin-top:.4rem}.hero{padding-top:3.3rem}.hero-grid{gap:2.8rem}.proof-grid{grid-template-columns:1fr 1fr}.proof-item{padding:1.05rem .85rem}.card-grid{grid-template-columns:1fr}.service-card,.service-card.wide{grid-column:auto;display:block;min-height:285px}.process-grid{grid-template-columns:1fr}.portfolio-grid{display:grid;grid-template-columns:1fr}.project-card,.project-card.large,.project-card.small-card,.project-card.half{grid-column:auto;min-height:390px}.page-hero{padding-top:3rem}.service-detail{grid-template-columns:1fr;gap:1.2rem}.included-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-grid>div:last-child{grid-column:auto}.order-shell{padding-top:2rem}.choice-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.choice-card label{min-height:148px}.estimate-sidebar{grid-template-columns:1fr}.estimate-sidebar .estimate-list{padding:1rem 0 0;border-left:0;border-top:1px solid var(--line)}.review-row{grid-template-columns:1fr;gap:.2rem}.form-actions{position:sticky;z-index:20;bottom:0;margin-inline:-.625rem;padding:.75rem .625rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--page) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}
@media(max-width:520px){.display{font-size:clamp(2.55rem,14vw,4rem)}.hero-actions,.action-row,.confirmation-actions{align-items:stretch;flex-direction:column}.hero-actions .button,.action-row .button,.confirmation-actions .button{width:100%}.proof-grid{grid-template-columns:1fr}.proof-item{border-right:0!important;border-bottom:1px solid var(--line)}.proof-item:last-child{border-bottom:0}.footer-grid{grid-template-columns:1fr}.footer-grid>div{grid-column:auto!important}.footer-base{align-items:flex-start;flex-direction:column}.stat{flex:1;min-width:130px}.price-table th,.price-table td{display:block;width:100%}.price-table th{padding-bottom:.25rem;border-bottom:0}.price-table td{padding-top:0}.file-item{grid-template-columns:minmax(0,1fr) auto}.file-item-size{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.site-header,.site-footer,.hero-actions,.button,.form-actions,.toast-region{display:none!important}body{background:#fff;color:#000}.section,.page-hero{padding-block:1.5rem}.order-shell{display:block}.estimate-sidebar{box-shadow:none}}
