/* 2026-10-22 precision pass. The existing TDesign blue and CAD imagery remain authoritative. */
:root{--ink:#1c2839;--muted:#58677b;--line:#dce3ed;--surface:#fff;--bg:#f4f6fa;--accent:#0052d9;--accent-hover:#0045b8;--accent-soft:#e8f0ff;--text-secondary:#526176;--text-subtle:#627187;--viewer-ground:#eef2f7;--radius-control:6px;--ease-out:cubic-bezier(.16,1,.3,1)}
html{scroll-padding-top:24px;scrollbar-color:#9ba8bb var(--bg)}body{color:var(--ink);font-size:16px;line-height:1.65;caret-color:var(--accent)}
button,a,input{touch-action:manipulation}a{text-underline-offset:4px}button,input{font-family:inherit}button:disabled{cursor:progress;opacity:.4}
button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button[hidden]{display:none!important}
.skip-link{position:fixed;left:20px;top:12px;padding:12px 18px;background:var(--ink);color:var(--surface);z-index:100;transform:translateY(-180%)}.skip-link:focus{transform:none}
.site-header{height:88px;gap:36px}.site-header nav a{font-size:15px}.brand-name{font-size:18px}.brand-name small{font-family:inherit;font-size:12px;color:var(--text-secondary);letter-spacing:0;margin-top:3px}.brand-mark{font-size:35px}
.site-header .contact-button{font-size:14px;min-height:44px}.button{min-height:44px;font-size:14px;padding:12px 18px;transition:background .18s,border-color .18s,transform .18s}.button:active{transform:translateY(1px)}.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.text-link{font-size:14px}.page{max-width:1440px}.hero{grid-template-columns:40% 60%;min-height:560px;padding-top:40px;padding-bottom:24px}.hero-copy{padding:0 28px 16px 0}.hero h1{font-size:clamp(38px,4.2vw,60px);line-height:1.28;font-weight:600;letter-spacing:-.025em!important;margin:0 0 36px}.hero-actions{margin-top:0;gap:24px}.hero-visual{height:480px;border:0;background:var(--viewer-ground)}.hero-visual .viewer{inset:0 0 38px}.hero-caption{bottom:18px;align-items:center}.hero-caption strong{font-size:15px;color:var(--ink)}.hero-caption a{width:44px;height:44px;background:var(--surface);border:0}
.section{padding-top:64px}.section-heading{margin-bottom:26px}.section-heading h2{font-size:28px;line-height:1.35}.section-heading .text-link{font-size:14px}.count{font-family:inherit;font-size:14px;color:var(--text-subtle);margin-left:12px;vertical-align:baseline}
.project-card{border:0;border-radius:12px;background:var(--surface);box-shadow:none!important;grid-template-columns:52% 48%}.project-image{background:var(--viewer-ground);min-height:365px}.project-image img{height:365px}.project-copy{padding:40px}.project-category{font-size:14px;color:var(--text-secondary)}.project-category .status-dot{display:none}.project-copy h3{font-size:30px;margin:14px 0 18px}.project-copy p{font-size:15px;line-height:1.85;color:var(--text-secondary);max-width:38em}.tag{font-size:12px;color:var(--text-secondary);background:var(--bg);border:0;padding:4px 9px}.project-card-bottom{padding-top:18px;margin-top:24px}.project-card-bottom>span{font-size:13px;color:var(--text-secondary)}.project-card:hover .circle-arrow{background:var(--accent);color:var(--surface)}
.asset-grid{gap:24px}.asset-card{border:0;border-radius:10px;box-shadow:none!important;overflow:hidden}.asset-image{background:var(--viewer-ground);aspect-ratio:1.4}.asset-info{padding:18px 20px;min-height:112px}.asset-info h3{font-size:15px;line-height:1.6;font-weight:500;min-height:24px}.asset-code{font-size:12px!important;color:var(--text-subtle)}.asset-card-bottom{font-size:12px;color:var(--text-subtle);margin-top:14px}.asset-card-bottom svg{color:var(--text-subtle)}.asset-card-bottom>svg{color:var(--accent)}.asset-card:hover .asset-info h3{color:var(--accent)}.model-badge{font-size:12px;color:#425875;border:0;background:var(--surface);padding:3px 8px;}.asset-card:hover .asset-image img{transform:scale(1.035)}
.page-top{padding:32px 0}.breadcrumb{font-size:13px;color:var(--text-secondary);line-height:1.8;flex-wrap:wrap}.breadcrumb>span{overflow-wrap:anywhere}.page-title-row h1{font-size:32px;line-height:1.35;margin-top:0!important}.page-title-row p{font-size:14px;color:var(--text-secondary);margin-top:12px}.page-title-row .tags{margin-top:18px}
.project-workspace{border:0;grid-template-columns:minmax(0,1fr) 230px;background:var(--surface);margin-bottom:48px}.workspace-stage .viewer{background:var(--viewer-ground);height:560px}.sidebar-heading{font-size:14px;color:var(--ink);border:0;padding:24px 18px 14px}.sidebar-heading span{font-size:12px;color:var(--text-subtle)}.workspace-sidebar{border:0;max-height:560px}.tree-row{font-size:14px;padding:13px 12px;min-height:46px;color:var(--text-secondary)}.tree-row.active{background:var(--accent-soft);color:var(--accent)}
.library-bar{margin-bottom:8px;gap:24px}.filters{gap:6px}.filter{font-size:14px;padding:10px 16px;min-height:44px;color:var(--text-secondary)}.filter span{font-size:12px;opacity:1;color:var(--text-subtle)}.filter.active{border-color:var(--accent);background:var(--surface);color:var(--accent)}.filter.active span{color:var(--accent)}.search{width:300px;min-height:46px;padding:8px 12px;gap:10px}.search input{font-size:14px;min-width:0;width:100%;line-height:1.5}.search input::placeholder{color:var(--text-subtle)}.search-clear{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-secondary);flex-shrink:0}.search-clear:hover{background:var(--accent-soft);color:var(--accent)}.search-clear svg{width:16px;height:16px}.library-summary{min-height:23px;font-size:13px;color:var(--text-subtle);margin:0 0 20px}.load-more{min-width:160px;font-size:14px}.library-empty h3{font-size:18px}.library-empty p{font-size:14px;color:var(--text-secondary)}
.model-layout{grid-template-columns:minmax(0,1fr) 284px;gap:28px}.model-stage{border:0;background:var(--viewer-ground)}.model-stage .viewer{height:580px;background:var(--viewer-ground)}.viewer-tabbar{padding:10px 16px;border:0;min-height:56px}.viewer-tab{font-size:14px;min-height:38px}.viewer-toolbar{box-shadow:none;background:var(--surface);border:0;padding:5px;gap:3px}.viewer-toolbar .icon-button{width:38px;height:38px;border-radius:4px;color:var(--text-secondary)}.viewer-toolbar .icon-button.active{background:var(--accent-soft);color:var(--accent)}.viewer-hint{font-size:12px;color:var(--text-secondary);gap:15px;bottom:16px}.viewer-hint svg{width:15px;height:15px}.axis-label{font-family:inherit;font-size:11px;color:var(--text-secondary)}.viewer-loading{background:var(--viewer-ground);color:var(--text-secondary);font-size:14px}.viewer-loading.loaded{opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}.explode-panel{top:72px;box-shadow:none;border:0;padding:14px 16px}.explode-panel label{font-size:13px}.explode-panel input{min-height:28px}.selection-chip{font-size:13px;border:0;max-width:calc(100% - 40px)}.selection-chip a{font-size:13px;min-height:32px}.selection-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.info-panel{border:0;padding:26px}.info-panel h2{font-size:16px;margin-bottom:22px}.info-panel dt{font-size:13px;color:var(--text-subtle)}.info-panel dd{font-size:14px;color:var(--ink);line-height:1.75}.authorship-note{border:0;background:var(--accent-soft);font-size:14px;color:#365e9e;padding:13px}.authorship-note small{font-size:12px;color:#526d93;line-height:1.7}.authorship-note.purchased{color:#58677b;background:#f0f2f6}.dimension-row span{font-family:inherit;font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.fine-print,.source-download-note{font-size:12px!important;color:var(--text-subtle);line-height:1.75}.info-panel .source-download{margin-top:24px;min-height:58px}.source-download small{font-family:inherit;font-size:12px;opacity:1;color:#dae6ff}.source-download span{font-size:14px}.section-divider{font-size:16px;color:var(--ink);border:0;margin:44px 0 24px}
.about-layout{padding-top:16px;gap:80px}.about-title{font-size:48px}.about-copy{font-size:18px;color:var(--text-secondary)}.about-card{border:0;background:var(--accent-soft)}.about-card p,.about-card .stat span{font-size:13px;color:#526d93}.about-card .stat strong{color:#365e9e}.contact-panel{border:0;padding:32px}.contact-panel small{font-size:13px;color:var(--text-secondary)}.contact-panel strong{font-size:30px}.site-footer{margin-top:80px;padding-top:36px;padding-bottom:36px}.site-footer:before{display:none}.footer-name{font-size:14px;color:var(--text-secondary)}.footer-name span{font-size:13px;color:var(--text-subtle)}.contact-modal-phone{font-variant-numeric:tabular-nums}.modal-body>p{font-size:15px;color:var(--text-secondary)}
@media(min-width:1400px){.hero{min-height:600px}.hero-visual{height:520px}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1000px){.hero{min-height:490px}.hero-visual{height:410px}.hero h1{font-size:42px}.project-copy{padding:30px}.project-copy h3{font-size:26px}.project-image,.project-image img{min-height:330px;height:330px}.asset-grid{gap:18px}.asset-info{padding:16px}.model-layout{grid-template-columns:minmax(0,1fr) 250px;gap:22px}.model-stage .viewer{height:520px}.workspace-stage .viewer{height:480px}.workspace-sidebar{max-height:480px}.about-layout{gap:40px}.info-panel{padding:22px}}
@media(max-width:780px){.site-header{height:78px;padding:0 4%;gap:16px}.site-header nav{gap:18px}.site-header nav a{font-size:13px}.brand-name{font-size:16px}.brand-name small{font-size:11px}.hero{min-height:440px;padding-top:32px}.hero h1{font-size:34px}.hero-visual{height:365px}.hero-actions{gap:16px}.hero-actions .button{font-size:13px;padding:12px 16px}.section{padding-top:48px}.project-copy p{font-size:14px}.project-card-bottom>span{font-size:12px}.project-workspace{grid-template-columns:minmax(0,1fr) 190px}.tree-row{font-size:13px}.sidebar-heading{font-size:13px;padding:20px 14px 12px}.sidebar-heading span{font-size:11px}.workspace-stage .viewer{height:450px}.workspace-sidebar{max-height:450px}.model-layout{grid-template-columns:1fr}.model-stage .viewer{height:520px}.info-panel dl{grid-template-columns:1fr 1fr}.asset-info h3{font-size:14px}.filters{gap:2px}.filter{font-size:13px;padding:10px 12px}.search{width:260px}.about-title{font-size:40px}}
@media(max-width:550px){.site-header{height:76px;padding:0 5%;gap:12px}.brand-mark{font-size:30px}.brand-name{font-size:16px}.brand-name small{font-size:11px}.site-header nav{top:76px;padding:14px 5%;gap:12px}.site-header nav a{font-size:14px;min-height:44px}.menu-toggle{min-width:44px;min-height:44px}.site-header .contact-button{min-height:44px;font-size:13px}.hero{grid-template-columns:1fr;gap:28px;min-height:0;padding:36px 0 0}.hero-copy{padding:0}.hero h1{font-size:38px;line-height:1.28;margin:0 0 24px}.hero-actions{gap:24px;flex-wrap:nowrap}.hero-visual{height:370px;min-height:0}.hero-caption{left:18px;right:18px;bottom:14px}.hero-caption strong{font-size:14px}.hero-caption a{width:40px;height:40px}.section{padding-top:48px}.section-heading{margin-bottom:22px;gap:16px}.section-heading h2{font-size:25px}.section-heading .text-link{font-size:13px}.count{font-size:13px}.project-card{grid-template-columns:1fr}.project-image,.project-image img{height:290px;min-height:290px}.project-copy{padding:26px}.project-copy h3{font-size:26px;margin:12px 0 16px}.project-copy p{font-size:15px}.project-category{font-size:13px}.project-card-bottom>span{font-size:12px}.project-card-bottom{margin-top:20px;padding-top:0}.tag{font-size:12px}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.asset-info{padding:13px 12px;min-height:110px}.asset-info h3{font-size:14px;line-height:1.5}.asset-code{font-size:11px!important}.asset-card-bottom{font-size:11px;margin-top:16px}.asset-card-bottom svg{width:14px;height:14px}.model-badge{font-size:11px;top:8px;left:8px;padding:3px 6px}.page-top{padding:26px 0}.breadcrumb{font-size:12px;line-height:1.7;margin-bottom:24px}.page-title-row h1{font-size:28px}.page-title-row p{font-size:14px}.page-title-row .source-download{width:100%;justify-content:flex-start}.project-workspace{display:flex;flex-direction:column;margin-bottom:36px}.workspace-stage .viewer{height:410px}.workspace-sidebar{max-height:none}.sidebar-heading{padding:18px 16px 8px;font-size:14px}.sidebar-heading span{font-size:12px}.assembly-tree{gap:4px;padding:8px}.tree-row{min-height:46px;font-size:13px;padding:10px}.library-bar{gap:16px}.filters{gap:3px;flex-wrap:wrap}.filter{min-height:44px;padding:10px 12px;font-size:13px}.filter span{font-size:12px;margin-left:5px}.search{width:100%;min-height:48px}.search input{font-size:16px}.search-clear{width:32px;height:32px}.library-summary{font-size:12px;margin-bottom:18px}.model-stage .viewer{height:420px}.viewer-toolbar{top:12px;right:12px;gap:2px}.viewer-toolbar .icon-button{width:34px;height:36px}.viewer-hint{font-size:11px;right:12px;bottom:14px;gap:12px}.axis-label{font-size:10px}.viewer-tabbar{min-height:54px;padding:8px 12px}.viewer-tab{font-size:14px;min-height:38px}.explode-panel{top:66px;right:12px}.info-panel{padding:24px}.info-panel h2{font-size:16px}.info-panel dt{font-size:13px}.info-panel dd{font-size:14px}.authorship-note{font-size:14px}.authorship-note small{font-size:12px}.about-layout{gap:32px;padding:8px 0 40px}.about-title{font-size:40px}.about-copy{font-size:17px}.about-card{padding:28px}.about-card p{font-size:14px}.contact-panel{padding:24px;gap:16px}.contact-panel strong{font-size:27px}.contact-panel .button{font-size:14px;min-height:46px}.site-footer{margin-top:56px;padding:28px 5%}.footer-name{font-size:14px}.footer-name span{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.count{font-family:inherit;font-size:14px}.measurement-label{font-size:13px;color:var(--text-subtle);margin:12px 0 8px}

@media(max-width:550px){.viewer-toolbar .icon-button{width:40px;height:44px}.search-clear{width:40px;height:40px}}

.page-title-row h1{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.asset-info h3{font-family:inherit}.viewer-toolbar button:focus-visible{outline-offset:2px}

:root{--cover-ground:#f0f3f8}.project-image{background:var(--cover-ground)}.project-image img{mix-blend-mode:normal}.home-practice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.home-practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* hero: click-to-load 3D */
.hero-cover{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:#f0f3f8;overflow:hidden;cursor:pointer;color:inherit}
.hero-cover img{width:100%;height:100%;object-fit:contain;display:block}
.hero-cover-cta{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid var(--line);font-size:13px;white-space:nowrap;box-shadow:0 8px 22px rgba(16,32,20,.10);transition:background .18s,transform .18s}
.hero-cover:hover .hero-cover-cta{background:#fff;transform:translateX(-50%) translateY(-1px)}
.hero-cover:focus-visible{outline:3px solid var(--green,#5ba58d);outline-offset:2px}
#hero-viewer[hidden]{display:none !important}
@media(max-width:550px){.hero-cover-cta{font-size:12px;padding:9px 13px;bottom:12px}}
.contact-panel .contact-note{font-size:15px;line-height:1.8;font-weight:500}
