@font-face{ font-family: Onest; src: url('assets/asset-966c5c29b4755da84b6854d5.ttf') format('truetype'); font-style: normal; font-weight: 100 900; font-display: swap; } :root { --bg: #101010; --panel: #181818; --line: #363636; --text: #f0f0ed; --muted: #a0a09d; --ease: cubic-bezier(.2,.75,.25,1); } * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 90px; } body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.6 Onest,Arial,sans-serif; } button, input, textarea, select { font: inherit; } button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; } button, a { touch-action: manipulation; } a { color: inherit; text-decoration: none; } button { color: inherit; cursor: pointer; } button:disabled { opacity: .35; cursor: default; } button { background: none; border: 0; } img { max-width: 100%; display: block; } button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid #fff; outline-offset: 5px; } ::selection { background: #eee; color: #111; } [hidden] { display: none!important; } .mono, .eyebrow { font: 10px/1.6 'Courier New',monospace; letter-spacing: .11em; text-transform: uppercase; } .eyebrow { font-size: 11px; margin: 0 0 28px; display: flex; align-items: center; gap: 10px; } .muted { color: var(--muted); } .serif { font-family: Georgia,'Times New Roman',serif; font-weight: 400; font-style: italic; } .live-dot { display: inline-block; width: 6px; height: 6px; background: #eee; border-radius: 50%; box-shadow: 0 0 0 4px #ffffff10; } .text-link { display: inline-flex; align-items: center; gap: 16px; font-size: 13px; padding: 8px 0; border-bottom: 1px solid #777; transition: gap .25s; } .text-link:hover { gap: 25px; border-color: white; } .button { min-height: 52px; display: inline-flex; justify-content: space-between; align-items: center; gap: 30px; padding: 14px 22px; font-size: 13px; font-weight: 600; border: 1px solid #666; transition: background .25s,transform .25s; } .button:hover { transform: translateY(-2px); } .white { background: #f0f0ed; color: #111; border-color: #f0f0ed; } .white:hover { background: #cfcfcc; border-color: #cfcfcc; } .ghost:hover { background: #292929; } .full { width: 100%; margin-top: 12px; } .skip { position: fixed; top: -100px; z-index: 200; background: white; color: black; padding: 12px; } .skip:focus { top: 10px; } .reading-progress { position: fixed; left: 0; top: 0; height: 2px; background: #fff; width: 0; z-index: 110; } .header { height: 88px; display: flex; align-items: center; justify-content: space-between; padding: 0 4vw; border-bottom: 1px solid #ffffff20; position: sticky; top: 0; z-index: 50; background: #101010ee; backdrop-filter: blur(20px); } .brand { display: flex; gap: 9px; align-items: center; font-size: 26px; font-weight: 850; letter-spacing: -1.4px; white-space: nowrap; } .brand-symbol { font-size: 45px; line-height: 1; transform: rotate(-15deg); margin-right: 2px; } .brand-small { font-size: 7px; line-height: 1.4; letter-spacing: .05em; margin-left: 4px; font-weight: 500; border-left: 1px solid #555; padding-left: 10px; } .header nav { display: flex; gap: 28px; font-size: 11px; color: #ccc; } .header nav a:hover { color: white; } .header-cta { border-bottom: 1px solid #666; padding: 7px 0; font-size: 12px; display: flex; gap: 22px; } .menu-button { display: none; } .hero { position: relative; min-height: 740px; overflow: hidden; display: flex; align-items: center; } .hero-content { position: relative; z-index: 2; padding: 64px 4vw 115px; pointer-events: none; } .hero-content a { pointer-events: auto; } .hero h1 { font-size: clamp(70px,8.4vw,138px); line-height: .91; font-weight: 850; letter-spacing: -.075em; margin: 33px 0 30px; } .outline { color: transparent; -webkit-text-stroke: 1px #ddd; } .hero-copy { font-size: 14px; line-height: 1.7; color: #bebebb; margin-bottom: 27px; } .hero-buttons { display: flex; align-items: center; gap: 30px; } .hero-visual { position: absolute; width: 59%; height: 100%; right: 0; top: 0; overflow: hidden; background: #252525; } .hero-visual img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) brightness(.55); animation: hero-pan 15s ease-in-out infinite alternate; } .hero-visual:after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg,#101010,transparent 40%),linear-gradient(0deg,#101010,transparent 30%); } .hero-grid { position: absolute; inset: 30px; border: 1px solid #ffffff25; background-image: linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px); background-size: 90px 90px; } .visual-note { position: absolute; right: 5vw; top: 42px; z-index: 2; color: #ccc; } .cross { position: absolute; color: #ddd; font: 26px monospace; z-index: 2; } .cross-one { top: 25%; right: 12%; } .cross-two { bottom: 24%; right: 50%; } .hero-stamp { position: absolute; right: 6vw; bottom: 140px; z-index: 2; width: 137px; height: 137px; border: 1px solid #ffffff77; border-radius: 50%; display: flex; align-items: center; justify-content: center; gap: 10px; transform: rotate(-12deg); backdrop-filter: blur(6px); } .hero-stamp span { font-size: 10px; line-height: 1.4; } .hero-stamp svg { width: 33px; stroke: #fff; fill: none; stroke-width: 2; } .hero-bottom { position: absolute; bottom: 26px; left: 4vw; right: 4vw; display: flex; justify-content: space-between; padding-top: 22px; border-top: 1px solid #ffffff25; z-index: 3; color: #aaa; } .ticker { overflow: hidden; background: #e9e9e5; color: #141414; padding: 20px 0; font-size: 24px; font-weight: 750; letter-spacing: -.04em; } .ticker>div { display: flex; width: max-content; gap: 40px; animation: marquee 45s linear infinite; } .ticker span { margin: 0 10px; font-weight: 400; font-size: 30px; } .section { padding: 110px 4vw; } .heading-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; } .section-heading { margin-bottom: 48px; } h2 { font-size: clamp(34px,4.15vw,64px); line-height: 1.08; letter-spacing: -.055em; font-weight: 600; margin: 0; } h3 { letter-spacing: -.025em; } .heading-row p, .body-copy { font-size: 13px; line-height: 1.8; color: var(--muted); max-width: 375px; margin: 0; } .heading-row .text-link { margin-top: 16px; } .lab-shell { border: 1px solid var(--line); background: #141414; } .lab-toolbar { height: 55px; padding: 0 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); color: #bbb; } .lab-toolbar .live-dot { margin-left: 9px; } .lab-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; } .blueprint { position: relative; padding: 35px 28px 24px; min-width: 0; background-image: radial-gradient(#ffffff16 .7px,transparent .7px); background-size: 16px 16px; } .blueprint-label { color: #888; } .exhaust-svg { width: 100%; height: 260px; overflow: visible; } .exhaust-svg .part-shape { transition: filter .3s,opacity .3s; } .exhaust-svg .part-shape.active { filter: drop-shadow(0 0 7px #ffffff65); } .exhaust-svg .flow { stroke-dasharray: 9 17; animation: flow 3s linear infinite; opacity: .65; } .part-tabs { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; } .part-tabs button { font-size: 10px; border: 1px solid #444; padding: 12px 4px; background: #151515; } .part-tabs button.active { background: #eee; color: #111; border-color: #eee; } .diagram-note { display: block; font-size: 10px; color: #888; margin-top: 20px; } .part-info { padding: 30px; border-left: 1px solid var(--line); min-height: 380px; } .part-info>.mono { color: #aaa; } .part-info h3 { font-size: 24px; margin: 15px 0 10px; } .part-info p { font-size: 12px; color: #aaa; margin: 0 0 15px; } .part-info .part-symptom { border-top: 1px solid #333; padding-top: 12px; font-size: 11px; } .part-info .text-link { font-size: 11px; } .detail-svg { width: 130px; height: 65px; margin-top: 20px; } .character-section { border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; } .character-copy>.body-copy { margin-top: 23px; } .mode-tabs { display: flex; gap: 5px; margin: 28px 0 24px; } .mode-tabs button { font-size: 11px; border: 1px solid #444; padding: 10px 13px; } .mode-tabs button.active { background: #eee; color: #111; } .character-copy h3 { font-size: 18px; margin: 0 0 12px; } .character-copy>.text-link { margin-top: 18px; } .sound-panel { border: 1px solid #444; position: relative; background: radial-gradient(ellipse at 50% 40%,#303030,#161616 68%); min-width: 0; } .sound-top { display: flex; justify-content: space-between; padding: 23px; } .sound-panel canvas { width: 100%; height: 260px; display: block; } .sound-bottom { border-top: 1px solid #333; padding: 23px; display: flex; gap: 17px; align-items: center; } .round-button { width: 46px; height: 46px; border: 1px solid #ccc; border-radius: 50%; flex-shrink: 0; } .sound-bottom b { font-size: 12px; } .sound-bottom p { font-size: 9px; color: #999; margin: 5px 0 0; } .real-video { font-size: 10px; margin: 0 23px 25px; } .works-section { background: #e9e9e5; color: #161616; } .works-section .muted { color: #777; } .works-section .heading-row p { color: #666; } .works-section .text-link { border-color: #aaa; } .gallery-controls { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; } .segmented { display: flex; gap: 8px; } .segmented button { border: 1px solid #b5b5b0; padding: 10px 17px; font-size: 11px; } .segmented button.active { background: #171717; border-color: #171717; color: #eee; } .gallery-controls>.mono { color: #666; font-size: 9px; } .gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 20px; } .project-card { padding: 0; display: block; text-align: left; width: 100%; } .project-image { height: 310px; position: relative; overflow: hidden; background: #bbb; } .project-card img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .6s,transform 1s var(--ease); } .project-card:hover img { filter: grayscale(0); transform: scale(1.045); } .project-card:nth-child(3n+2) .project-image { height: 260px; } .project-card:nth-child(3n+2) { align-self: center; } .project-tag { position: absolute; top: 14px; left: 14px; background: #111b; color: white; padding: 5px 9px; font: 9px monospace; letter-spacing: .08em; } .project-arrow { position: absolute; right: 12px; bottom: 12px; background: #eee; color: #111; width: 36px; height: 36px; display: grid; place-items: center; font-size: 20px; } .project-caption { display: flex; justify-content: space-between; margin-top: 14px; font-size: 12px; } .project-caption small { font: 9px monospace; color: #666; } .gallery-foot { margin-top: 40px; border-top: 1px solid #bbb; padding-top: 22px; display: flex; justify-content: space-between; align-items: center; font-size: 12px; } .config-section { background: #151515; } .config-shell { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 50px; } .config-main { min-width: 0; } .config-steps { display: flex; border-bottom: 1px solid #444; gap: 25px; } .config-steps button { font-size: 12px; padding: 0 0 15px; color: #999; border-bottom: 2px solid transparent; white-space: nowrap; } .config-steps button span { font: 10px monospace; margin-right: 9px; } .config-steps button.active { color: #eee; border-color: #eee; } .step-panel { padding-top: 30px; min-height: 410px; } .step-panel>.mono { color: #888; } .step-panel h3 { font-size: 27px; margin: 10px 0 25px; line-height: 1.15; } .goal-list { display: grid; gap: 10px; } .goal { border: 1px solid #444; display: flex; gap: 20px; padding: 23px; text-align: left; align-items: center; } .goal.active { border-color: #eee; background: #232323; } .goal-number { font: 11px monospace; color: #888; } .goal b { display: block; font-size: 15px; font-weight: 500; } .goal small { display: block; color: #999; font-size: 11px; margin-top: 4px; } .goal-check { margin-left: auto; font-size: 22px; color: #999; } .goal.active .goal-check { color: #fff; } .config-nav { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #333; padding-top: 25px; margin-top: 25px; } .config-nav .text-link { border: 0; } .estimate { background: #e8e8e3; color: #161616; padding: 28px; height: max-content; position: sticky; top: 115px; clip-path: polygon(0 0,100% 0,100% calc(100% - 10px),97% 100%,94% calc(100% - 10px),91% 100%,88% calc(100% - 10px),85% 100%,82% calc(100% - 10px),79% 100%,76% calc(100% - 10px),73% 100%,70% calc(100% - 10px),67% 100%,64% calc(100% - 10px),61% 100%,58% calc(100% - 10px),55% 100%,52% calc(100% - 10px),49% 100%,46% calc(100% - 10px),43% 100%,40% calc(100% - 10px),37% 100%,34% calc(100% - 10px),31% 100%,28% calc(100% - 10px),25% 100%,22% calc(100% - 10px),19% 100%,16% calc(100% - 10px),13% 100%,10% calc(100% - 10px),7% 100%,4% calc(100% - 10px),0 100%); } .estimate-top { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid #aaa; } .estimate h3 { font-size: 29px; line-height: 1.1; margin: 25px 0 13px; } .fine { font-size: 11px; color: #aaa; line-height: 1.7; } .estimate .fine { color: #65655f; } .estimate-item { padding: 12px 0; border-bottom: 1px dashed #b4b4ae; display: flex; justify-content: space-between; gap: 12px; font-size: 11px; } .estimate-item b { white-space: nowrap; font-weight: 500; } .estimate-item small { display: block; font-size: 9px; color: #70706a; } .estimate-total { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin: 25px 0 10px; } .estimate-total span { font-size: 11px; } .estimate-total strong { font-size: 28px; letter-spacing: -.05em; white-space: nowrap; } .estimate .white { background: #141414; color: #eee; border-color: #141414; } .estimate .ghost:hover { background: #d3d3ce; } .estimate .reset { font-size: 10px; margin: 12px auto; display: block; border: 0; } .barcode { height: 26px; width: 130px; margin: 15px auto; background: repeating-linear-gradient(90deg,#222 0 2px,transparent 2px 4px,#222 4px 5px,transparent 5px 9px,#222 9px 12px,transparent 12px 14px); } .ticket-bottom { display: block; text-align: center; font-size: 7px; padding-bottom: 10px; } .field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } .field-grid label, .full-label { display: block; font-size: 11px; color: #aaa; } .full-label { margin-top: 18px; } input, select, textarea { display: block; width: 100%; padding: 13px; background: #1b1b1b; color: #eee; border: 1px solid #444; border-radius: 0; margin-top: 7px; font-size: 13px; min-width: 0; } textarea { resize: vertical; } .service-option { display: grid; grid-template-columns: 20px 1fr auto; gap: 10px; align-items: start; border-top: 1px solid #333; padding: 16px 0; font-size: 12px; cursor: pointer; } .service-option input { width: 15px; height: 15px; margin: 3px 0; accent-color: #fff; } .service-option small { display: block; color: #aaa; font-size: 10px; } .service-option strong { font-size: 11px; font-weight: 400; white-space: nowrap; } .pricing-warning { padding: 12px; border: 1px solid #555; margin-bottom: 20px; } .assistant-strip { display: flex; align-items: center; gap: 35px; border-top: 1px solid #333; border-bottom: 1px solid #333; } .assistant-strip h2 { font-size: 36px; } .assistant-strip p:not(.eyebrow) { font-size: 12px; color: #aaa; margin-bottom: 0; } .assistant-strip .eyebrow { margin-bottom: 12px; } .assistant-strip .button { margin-left: auto; white-space: nowrap; } .assistant-orb { width: 110px; height: 110px; border: 1px solid #777; border-radius: 50%; display: grid; place-items: center; font-size: 80px; flex-shrink: 0; animation: orb 35s linear infinite; } .approach-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 55px; } .approach-grid article { border-top: 1px solid #555; padding-top: 25px; } .approach-grid .mono { color: #999; } .approach-grid h3 { font-size: 24px; line-height: 1.2; font-weight: 500; margin-top: 30px; } .approach-grid p { font-size: 12px; line-height: 1.8; color: #999; max-width: 300px; } .faq-section { border-top: 1px solid #333; } .faq-layout { display: grid; grid-template-columns: 1fr 1.5fr; gap: 70px; } .faq details { border-top: 1px solid #444; } .faq details:last-child { border-bottom: 1px solid #444; } .faq summary { list-style: none; cursor: pointer; font-size: 14px; padding: 24px 0; display: flex; justify-content: space-between; gap: 15px; } .faq summary::-webkit-details-marker { display: none; } .faq summary span { font-size: 23px; line-height: 1; } .faq details[open] summary span { transform: rotate(45deg); } .faq p { font-size: 12px; color: #aaa; margin: 0 0 25px; max-width: 540px; line-height: 1.9; } .contact-section { background: #e9e9e5; color: #141414; } .contact-heading { display: flex; justify-content: space-between; align-items: center; } .contact-heading h2 { font-size: clamp(40px,6vw,90px); } .contact-arrow { width: 110px; height: 110px; display: grid; place-items: center; border: 1px solid #aaa; border-radius: 50%; font-size: 65px; transition: transform .4s; } .contact-arrow:hover { transform: rotate(45deg); background: white; } .contact-grid { display: grid; grid-template-columns: 1.3fr 1fr .7fr; gap: 35px; margin-top: 70px; border-top: 1px solid #bbb; padding-top: 35px; } .contact-grid>.mono, .contact-grid .mono { color: #666; } .contact-grid p { font-size: 13px; } .contact-phone { display: block; font-size: clamp(18px,2.2vw,32px); letter-spacing: -.05em; margin: 20px 0 8px; } .contact-grid .muted { color: #666; } .social-link { display: block; border-bottom: 1px solid #bbb; padding: 8px 0; font-size: 14px; } .social-link:first-of-type { margin-top: 15px; } .footer { padding: 35px 4vw; } .footer-word { font-weight: 850; font-size: 20.9vw; line-height: 1.05; letter-spacing: -.085em; display: flex; justify-content: space-between; } .footer-word span { font-size: 5vw; letter-spacing: 0; font-weight: 400; align-self: flex-start; padding-top: 25px; } .footer-bottom { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #333; padding: 25px 0 10px; color: #888; font-size: 8px; } .footer-bottom .text-link { font-size: 9px; } .floating-assistant { position: fixed; bottom: 20px; right: 20px; z-index: 40; border: 1px solid #777; background: #202020ee; border-radius: 50px; padding: 10px 18px; display: flex; align-items: center; gap: 10px; font-size: 11px; box-shadow: 0 5px 25px #0005; } .floating-assistant span { font-size: 25px; line-height: 1; } .toast { position: fixed; bottom: 85px; left: 50%; transform: translate(-50%,20px); background: #eee; color: #111; padding: 13px 22px; opacity: 0; pointer-events: none; transition: .25s; z-index: 150; font-size: 12px; max-width: 90vw; } .toast.show { opacity: 1; transform: translate(-50%,0); } dialog { background: #151515; color: #eee; border: 1px solid #555; padding: 24px; max-height: 90dvh; max-width: calc(100vw - 30px); } dialog::backdrop { background: #000d; backdrop-filter: blur(10px); } .gallery-dialog { width: 1050px; } .dialog-top, .dialog-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; } .dialog-top { margin-bottom: 18px; } .dialog-bottom { margin-top: 18px; font-size: 12px; } .icon-button { border: 1px solid #555; width: 36px; height: 36px; font-size: 20px; flex-shrink: 0; } .gallery-dialog>img { width: 100%; height: 65dvh; object-fit: contain; } .project-dialog { width: 530px; } .project-dialog h2 { font-size: 35px; } .project-dialog p { font-size: 12px; color: #bbb; } .project-dialog textarea { font-size: 11px; } .reveal { transition: opacity .8s var(--ease),transform .8s var(--ease); } .js-motion .reveal:not(.seen) { opacity: 0; transform: translateY(23px); } /* Separate consultant */.chat-page { min-height: 100vh; } .chat-header .text-link { font-size: 12px; } .chat-layout { max-width: 1320px; margin: auto; padding: 55px 4vw; display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 35px; } .chat-side h1 { font-size: 42px; letter-spacing: -.06em; line-height: 1.04; margin: 20px 0; } .chat-side p { font-size: 12px; color: #aaa; } .chat-topics { display: grid; gap: 7px; margin-top: 30px; } .chat-topics button { text-align: left; border: 1px solid #444; padding: 12px 15px; font-size: 12px; display: flex; justify-content: space-between; } .chat-topics button:hover { background: #eee; color: #111; } .chat-visual { border: 1px solid #333; margin-top: 25px; padding: 20px; } .chat-visual .detail-svg { width: 100%; height: 90px; } .chat-visual small { font-size: 10px; color: #aaa; } .chat-window { height: 740px; max-height: 85vh; min-height: 560px; border: 1px solid #444; display: flex; flex-direction: column; min-width: 0; } .chat-window-head { padding: 20px; border-bottom: 1px solid #444; display: flex; justify-content: space-between; align-items: center; } .chat-window-head b { font-size: 13px; } .chat-window-head small { display: block; font-size: 10px; color: #aaa; } .chat-window-head button { font-size: 10px; color: #aaa; } .chat-messages { overflow: auto; flex: 1; padding: 22px; display: flex; flex-direction: column; gap: 15px; scroll-behavior: smooth; } .message { font-size: 13px; line-height: 1.8; max-width: 90%; white-space: pre-wrap; overflow-wrap: anywhere; } .message.bot { padding: 18px; background: #222; align-self: flex-start; } .message.user { align-self: flex-end; background: #e3e3de; color: #111; padding: 13px 18px; } .message small { display: block; margin-top: 12px; color: #aaa; font: 9px monospace; } .chat-compose { padding: 15px; border-top: 1px solid #444; display: flex; gap: 10px; } .chat-compose input { margin: 0; } .chat-compose button { width: 48px; background: #eee; color: #111; font-size: 22px; flex-shrink: 0; } .chat-disclaimer { font-size: 9px; color: #aaa; padding: 0 15px 13px; } .ai-toggle { margin-top: 25px; border-top: 1px solid #444; padding-top: 20px; } .ai-toggle button { font-size: 11px; } .ai-consent { display: flex; gap: 12px; font-size: 12px; align-items: flex-start; margin: 20px 0; } .ai-consent input { width: 18px; flex-shrink: 0; } .ai-badge { font-size: 9px; border: 1px solid #666; padding: 5px 9px; } @keyframes flow{ to {  stroke-dashoffset: -104; } } @keyframes marquee{ to {  transform: translateX(-33.333%); } } @keyframes hero-pan{ to {  transform: scale(1.065) translateX(-1%); } } @keyframes orb{ to {  transform: rotate(360deg); } } @media (min-width:1700px){ .section {  padding-left: max(4vw,calc((100vw - 1560px)/2));  padding-right: max(4vw,calc((100vw - 1560px)/2)); }  .hero-content {  padding-left: max(4vw,calc((100vw - 1560px)/2)); } } @media (max-width:1100px){ .header nav {  gap: 17px; }  .brand {  font-size: 22px; }  .brand-small {  display: none; }  .header-cta {  font-size: 11px; }  .character-section {  gap: 35px; }  .lab-layout {  grid-template-columns: minmax(0,1fr) 270px; }  .config-shell {  gap: 25px;  grid-template-columns: minmax(0,1fr) 320px; }  .hero h1 {  font-size: 9vw; }  .hero {  min-height: 680px; }  .project-image {  height: 260px; }  .project-card:nth-child(3n+2) .project-image {  height: 225px; }  .part-tabs {  grid-template-columns: 1fr 1fr; }  .exhaust-svg {  height: 230px; }  .assistant-strip {  gap: 25px; }  .assistant-orb {  width: 80px;  height: 80px;  font-size: 60px; }  .assistant-strip h2 {  font-size: 30px; } } @media (max-width:800px){ html {  scroll-padding-top: 75px; }  .header {  height: 72px;  padding: 0 5vw; }  .menu-button {  display: block;  font-size: 22px; }  .header-cta {  margin-left: auto;  margin-right: 23px; }  .header nav {  display: none;  position: absolute;  top: 72px;  left: 0;  right: 0;  background: #161616;  padding: 25px 5vw;  border-bottom: 1px solid #555;  flex-direction: column;  font-size: 15px;  gap: 20px; }  .header nav.open {  display: flex; }  .section {  padding: 75px 5vw; }  .hero-content {  padding: 65px 5vw 110px; }  .hero h1 {  font-size: 12vw; }  .hero-visual {  width: 75%;  opacity: .65; }  .hero-bottom {  left: 5vw;  right: 5vw; }  .hero-bottom span:nth-child(2) {  display: none; }  .hero-stamp {  width: 105px;  height: 105px;  bottom: 150px; }  .hero-copy {  font-size: 13px; }  .heading-row {  align-items: flex-start; }  .heading-row p {  font-size: 11px; }  .lab-layout {  grid-template-columns: 1fr; }  .part-info {  border-left: 0;  border-top: 1px solid #444;  min-height: 0;  display: grid;  grid-template-columns: 120px 1fr;  column-gap: 25px;  padding: 25px; }  .part-info>.mono {  grid-column: 1/-1; }  .part-info #part-icon {  grid-row: 2/5; }  .part-info h3 {  margin-top: 20px; }  .part-info .text-link {  justify-self: start;  grid-column: 2; }  .part-info .part-symptom {  margin: 0; }  .part-info p {  font-size: 12px; }  .part-tabs {  grid-template-columns: repeat(4,1fr); }  .character-section {  grid-template-columns: 1fr 1fr;  gap: 22px; }  .character-section h2 {  font-size: 34px; }  .mode-tabs {  flex-wrap: wrap; }  .mode-tabs button {  padding: 8px 10px;  font-size: 10px; }  .sound-top {  font-size: 8px;  gap: 8px;  padding: 16px; }  .sound-bottom {  padding: 16px; }  .sound-panel canvas {  height: 230px; }  .gallery {  grid-template-columns: 1fr 1fr; }  .project-card:nth-child(n) .project-image {  height: 280px; }  .gallery-controls>.mono {  display: none; }  .config-shell {  grid-template-columns: 1fr; }  .estimate {  position: static;  clip-path: none; }  .estimate h3 br {  display: none; }  .step-panel {  min-height: 400px; }  .assistant-strip {  flex-wrap: wrap; }  .assistant-strip .button {  margin: 0 0 0 105px; }  .approach-grid {  gap: 25px; }  .approach-grid h3 {  font-size: 20px; }  .faq-layout {  grid-template-columns: 1fr;  gap: 35px; }  .contact-heading h2 {  font-size: 50px; }  .contact-grid {  grid-template-columns: 1fr 1fr;  gap: 30px; }  .contact-grid>div:last-child {  grid-column: 1/-1;  display: flex;  gap: 25px;  align-items: center; }  .contact-grid>div:last-child .social-link {  margin: 0;  border: 0; }  .contact-grid>div:last-child .mono {  display: none; }  .chat-layout {  grid-template-columns: 220px minmax(0,1fr);  gap: 20px;  padding: 30px 4vw; }  .chat-side h1 {  font-size: 32px; }  .chat-window {  height: 700px; }  .chat-window-head {  padding: 15px; }  .chat-messages {  padding: 15px; }  .message {  font-size: 12px; } } @media (max-width:560px){ .header-cta {  font-size: 10px;  margin-right: 16px;  gap: 13px; }  .brand {  font-size: 21px; }  .brand-symbol {  font-size: 35px; }  .hero {  min-height: 760px;  align-items: flex-start; }  .hero-content {  padding-top: 56px; }  .hero h1 {  font-size: 15.4vw;  line-height: .96;  margin-top: 32px; }  .hero .eyebrow {  font-size: 9px; }  .hero-visual {  width: 100%;  opacity: .5; }  .hero-visual:after {  background: linear-gradient(90deg,#101010b0,transparent),linear-gradient(0deg,#101010,transparent 55%); }  .visual-note, .cross {  display: none; }  .hero-grid {  inset: 20px; }  .hero-stamp {  bottom: 105px;  right: 9vw;  width: 83px;  height: 83px; }  .hero-stamp span {  font-size: 8px; }  .hero-stamp svg {  width: 23px; }  .hero-copy {  font-size: 12px;  margin-top: 25px; }  .hero-buttons {  flex-direction: column;  align-items: flex-start;  gap: 16px; }  .hero-bottom {  font-size: 8px;  bottom: 24px; }  .ticker {  padding: 15px 0;  font-size: 18px; }  .ticker span {  font-size: 22px; }  .section {  padding-top: 65px;  padding-bottom: 65px; }  .eyebrow {  font-size: 9px;  margin-bottom: 22px; }  .heading-row {  flex-direction: column;  gap: 22px; }  h2 {  font-size: 34px; }  .heading-row p {  font-size: 12px; }  .section-heading {  margin-bottom: 30px; }  .lab-toolbar {  font-size: 8px;  padding: 15px;  height: auto;  gap: 12px; }  .lab-toolbar>span:last-child {  font-size: 7px; }  .blueprint {  padding: 22px 15px; }  .exhaust-svg {  height: 180px; }  .blueprint-label {  font-size: 8px; }  .part-tabs {  grid-template-columns: 1fr 1fr; }  .part-tabs button {  font-size: 10px; }  .diagram-note {  font-size: 9px; }  .part-info {  padding: 22px;  grid-template-columns: 70px 1fr;  gap: 0 18px; }  .part-info h3 {  font-size: 21px; }  .part-info .detail-svg {  width: 75px;  height: 70px; }  .part-info p {  font-size: 11px; }  .part-info .text-link {  font-size: 10px; }  .character-section {  grid-template-columns: 1fr;  gap: 35px; }  .character-copy>.body-copy {  font-size: 12px; }  .mode-tabs {  flex-wrap: nowrap; }  .sound-panel canvas {  height: 220px; }  .gallery {  gap: 23px 12px; }  .project-card:nth-child(n) .project-image {  height: 210px; }  .project-tag {  font-size: 8px;  top: 8px;  left: 8px; }  .project-caption {  font-size: 10px;  gap: 5px; }  .project-caption small {  display: none; }  .project-arrow {  width: 28px;  height: 28px;  right: 8px;  bottom: 8px; }  .segmented button {  font-size: 10px;  padding: 9px 13px; }  .gallery-foot {  font-size: 11px;  align-items: flex-start;  gap: 16px;  flex-direction: column; }  .config-steps {  gap: 0;  justify-content: space-between; }  .config-steps button {  font-size: 10px; }  .config-steps button span {  font-size: 9px;  margin-right: 6px; }  .step-panel {  min-height: 415px; }  .step-panel h3 {  font-size: 23px; }  .goal {  padding: 20px 14px;  gap: 12px; }  .goal b {  font-size: 13px; }  .goal small {  font-size: 10px; }  .goal-number {  font-size: 9px; }  .goal-check {  font-size: 20px; }  .config-nav .button {  padding: 12px 17px;  min-height: 46px;  font-size: 11px; }  .field-grid {  gap: 12px; }  .service-option {  grid-template-columns: 18px 1fr;  gap: 10px;  font-size: 11px; }  .service-option strong {  grid-column: 2; }  .estimate {  padding: 25px; }  .estimate h3 {  font-size: 28px; }  .assistant-strip {  gap: 20px; }  .assistant-orb {  width: 55px;  height: 55px;  font-size: 40px; }  .assistant-strip>div:nth-child(2) {  flex: 1; }  .assistant-strip h2 {  font-size: 25px; }  .assistant-strip p:not(.eyebrow) {  font-size: 11px; }  .assistant-strip .eyebrow {  font-size: 7px; }  .assistant-strip .button {  margin-left: 75px;  font-size: 11px; }  .approach-grid {  grid-template-columns: 1fr;  gap: 30px;  margin-top: 35px; }  .approach-grid h3 {  margin: 18px 0 12px;  font-size: 24px; }  .approach-grid h3 br {  display: none; }  .approach-grid p {  max-width: 100%; }  .faq summary {  font-size: 12px;  padding: 20px 0; }  .contact-heading h2 {  font-size: 41px; }  .contact-arrow {  width: 58px;  height: 58px;  font-size: 35px;  flex-shrink: 0; }  .contact-heading {  gap: 20px; }  .contact-heading .serif {  display: block; }  .contact-grid {  grid-template-columns: 1fr;  margin-top: 35px;  gap: 32px; }  .contact-phone {  font-size: 30px;  margin-top: 12px; }  .contact-grid>div:last-child {  gap: 20px; }  .contact-grid .social-link {  font-size: 12px; }  .footer-word {  font-size: 20.5vw; }  .footer-word span {  padding-top: 13px; }  .footer-bottom {  flex-wrap: wrap;  gap: 15px;  font-size: 7px; }  .footer-bottom>span {  width: 100%; }  .footer {  padding-bottom: 70px; }  .floating-assistant {  bottom: 14px;  right: 14px;  font-size: 10px;  padding: 8px 14px; }  .dialog-bottom {  font-size: 10px; }  .gallery-dialog {  padding: 15px; }  .gallery-dialog>img {  height: 60dvh; }  .project-dialog {  padding: 20px; }  .project-dialog h2 {  font-size: 30px; }  .chat-layout {  display: flex;  flex-direction: column;  padding: 30px 5vw;  gap: 25px; }  .chat-side h1 {  font-size: 36px;  margin: 0; }  .chat-side>.eyebrow {  margin-bottom: 15px; }  .chat-side>p:not(.eyebrow) {  margin-bottom: 15px; }  .chat-topics {  display: flex;  overflow-x: auto;  margin-top: 15px;  gap: 7px;  padding-bottom: 8px; }  .chat-topics button {  flex-shrink: 0;  font-size: 10px;  padding: 8px 12px;  gap: 20px; }  .chat-visual {  margin-top: 10px;  padding: 12px;  display: flex;  align-items: center;  gap: 15px; }  .chat-visual>div {  width: 100px;  flex-shrink: 0; }  .chat-visual .detail-svg {  height: 60px;  margin: 0; }  .chat-visual small {  font-size: 9px; }  .ai-toggle {  margin-top: 15px;  padding-top: 10px; }  .chat-window {  height: 620px;  max-height: none;  min-height: 0; }  .chat-window-head {  padding: 15px;  font-size: 11px; }  .chat-window-head b {  font-size: 12px; }  .message {  font-size: 12px;  max-width: 95%; }  .chat-header .text-link {  font-size: 10px; } } @media (prefers-reduced-motion:reduce){ html {  scroll-behavior: auto; }  *, *:before, *:after {  animation: none!important;  transition: none!important; }  .js-motion .reveal:not(.seen) {  opacity: 1;  transform: none; } } /* Mobile tuning: increased tap targets, reduced spacing and fonts for <768px */@media (max-width: 768px) { html {  font-size: 15px; }  /* base remains similar */ .header {  height: 68px;  padding: 0 4vw; }  .brand {  font-size: 20px; }  .brand-symbol {  font-size: 36px; }  .brand-small {  display: none; }  .header nav {  display: none;  position: fixed;  top: 68px;  left: 0;  right: 0;  background: #0f0f0f;  padding: 18px 6vw;  border-bottom: 1px solid #222;  flex-direction: column;  gap: 12px;  z-index: 80; }  .header nav a {  padding: 14px 6px;  font-size: 16px;  border-bottom: 1px solid #222; }  .menu-button {  display: block;  font-size: 22px;  background: #0002;  padding: 12px;  border-radius: 8px; }  .menu-button:focus {  outline: 2px solid #fff; }  .header nav.open {  display: flex; }  .hero {  min-height: 620px; }  .hero-content {  padding: 40px 5vw 90px; }  .hero h1 {  font-size: 9.6vw; }  .hero-copy {  font-size: 13px; }  .hero-buttons .button, .hero-buttons .text-link {  min-height: 56px;  padding: 14px 18px; }  .hero-visual {  width: 75%;  opacity: .7; }  .hero-stamp {  right: 5vw;  bottom: 130px;  width: 95px;  height: 95px; }  .ticker {  font-size: 18px;  padding: 14px 0; }  .section {  padding: 60px 5vw; }  .heading-row {  flex-direction: column;  gap: 12px; }  h2 {  font-size: 28px; }  .lab-shell {  padding: 12px; }  .lab-toolbar {  height: 48px;  padding: 0 15px; }  .lab-layout {  grid-template-columns: 1fr; }  .part-info {  border-left: 0;  border-top: 1px solid #2b2b2b;  padding: 20px; }  .part-info h3 {  font-size: 20px; }  .character-section {  grid-template-columns: 1fr;  gap: 28px; }  .sound-panel canvas {  height: 220px; }  .gallery {  grid-template-columns: 1fr 1fr;  gap: 18px; }  .project-card .project-image {  height: 220px; }  .config-shell {  grid-template-columns: 1fr; }  .estimate {  position: static;  top: auto;  margin-top: 18px; }  .config-steps {  gap: 12px; }  .step-panel {  min-height: 360px; }  .goal {  padding: 16px; }  input, textarea, select {  font-size: 14px; }  .button {  padding: 12px 16px;  min-height: 56px; }  .text-link {  padding: 12px 0; }  .project-tag {  top: 10px;  left: 10px;  padding: 5px 8px; }  .project-arrow {  right: 8px;  bottom: 8px;  width: 30px;  height: 30px; }  .floating-assistant {  padding: 10px 14px;  border-radius: 32px; }  dialog {  width: calc(100vw - 28px); } } /* Larger mobile/compact tablet adjustments for <480px */@media (max-width:480px){ .header {  height: 64px; }  .hero h1 {  font-size: 14.4vw; }  .hero-content {  padding: 28px 4vw 80px; }  .hero-visual {  width: 100%;  opacity: .55; }  .hero-stamp {  display: none; }  .reading-progress {  height: 3px; }  .button {  font-size: 14px;  padding: 12px 14px; }  .text-link {  font-size: 13px; }  .project-image {  height: 200px; }  .footer-word {  font-size: 22vw; } } /* Full-screen work photo viewer; keeps the existing gallery design intact. */.gallery-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; inset: 0; border: 0; box-sizing: border-box; } .gallery-dialog>img { height: calc(100dvh - 132px); max-height: none; } @media (max-width:800px){ .contact-grid>div:last-child {  flex-wrap: wrap; } } @media (max-width:560px){ .gallery-dialog {  padding: 15px; }  .gallery-dialog>img {  height: calc(100dvh - 112px); } } /* Interface audit: behavior and accessibility, original design retained. */html:has(dialog[open]) { overflow: hidden; } dialog { overscroll-behavior: contain; } .works-section :focus-visible, .contact-section :focus-visible, .estimate :focus-visible { outline-color: #161616; } [data-svg-part]:focus-visible { outline: 2px solid #fff; outline-offset: 5px; } .gallery-dialog[open] { display: flex; flex-direction: column; padding-top: max(24px,env(safe-area-inset-top)); padding-right: max(24px,env(safe-area-inset-right)); padding-bottom: max(24px,env(safe-area-inset-bottom)); padding-left: max(24px,env(safe-area-inset-left)); } .gallery-dialog>.dialog-top, .gallery-dialog>.dialog-bottom { flex-shrink: 0; } .gallery-dialog>img { flex: 1 1 0; min-height: 0; height: 0; } #photo-caption { min-width: 0; overflow-wrap: anywhere; } @media (max-width:560px){ .gallery-dialog[open] {  padding-top: max(15px,env(safe-area-inset-top));  padding-right: max(15px,env(safe-area-inset-right));  padding-bottom: max(15px,env(safe-area-inset-bottom));  padding-left: max(15px,env(safe-area-inset-left)); } } @media (prefers-reduced-motion:reduce){ .chat-messages {  scroll-behavior: auto; } } /* End interface audit */
/* RESPONSIVE LAYOUT START — same design, phone and tablet sizing. */
/* Keep grids shrinkable; allow real content wrapping instead of hiding overflow. */
.heading-row>*,.contact-heading>*,.config-shell>*,.chat-layout>*,.field-grid>*,.goal>span:nth-child(2){min-width:0}
.estimate-car,#estimate-car,.estimate-item>span,.chat-visual small,.project-caption>span{overflow-wrap:anywhere}
.chat-messages{min-height:0;overscroll-behavior:contain}
.chat-window-head,.chat-compose,.chat-disclaimer{flex-shrink:0}
.chat-messages:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.floating-assistant{bottom:max(20px,env(safe-area-inset-bottom));right:max(20px,env(safe-area-inset-right))}
.gallery-dialog{height:100dvh;max-height:100dvh}
.gallery-dialog>.dialog-bottom{gap:12px}
.gallery-dialog .icon-button{width:44px;height:44px;min-width:44px;min-height:44px}
.project-dialog{overflow-y:auto;overscroll-behavior:contain}

/* Tablet: give the configurator and illustration enough space. */
@media(max-width:1100px){
  .footer{padding-bottom:max(90px,calc(70px + env(safe-area-inset-bottom)))}
  .config-shell{grid-template-columns:minmax(0,1fr);gap:28px}
  .estimate{position:static;max-width:100%;clip-path:none}
  .lab-layout{grid-template-columns:minmax(0,1fr)}
  .part-info{border-left:0;border-top:1px solid var(--line);min-height:0}
  .part-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .chat-layout{grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:24px}
  .header nav{gap:16px}
  .part-tabs button,.mode-tabs button,.segmented button,.config-steps button,.chat-topics button,#clear-chat,.text-link,.header-cta,.social-link{min-height:44px}
  .config-steps button{padding-top:10px;padding-bottom:10px}
  input,select,textarea{font-size:16px}
  .chat-compose button{min-height:48px}
  .icon-button{width:44px;height:44px;min-width:44px}
  .estimate-item{gap:16px}
}

/* Phones / portrait tablets: one flow, no clipped controls or side-by-side chat. */
@media(max-width:800px){
  html{scroll-padding-top:84px}
  .header{height:72px;padding:0 4vw;gap:10px}
  .header-cta{margin-left:auto;margin-right:0;align-items:center;gap:8px}
  .menu-button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border-radius:8px}
  .header nav{position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;padding:12px 5vw;gap:0}
  .header nav a{display:flex;align-items:center;min-height:48px;padding:12px 6px}
  .lab-shell{padding:0}
  .lab-toolbar{height:auto;min-height:48px;padding:12px 16px;flex-wrap:wrap;gap:6px 16px}
  .part-info{display:block;padding:24px}
  .part-info .detail-svg{width:150px;height:80px}
  .part-info h3{margin:16px 0 12px}
  .part-info p{font-size:13px}
  .part-info .text-link{font-size:12px;margin-top:12px}
  .character-section{grid-template-columns:minmax(0,1fr);gap:28px}
  .mode-tabs{flex-wrap:wrap}
  .mode-tabs button{flex:1 1 auto;font-size:12px;padding:10px 12px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
  .project-card:nth-child(n) .project-image{height:auto;aspect-ratio:4/5}
  .project-card:nth-child(n){align-self:start}
  .project-caption{flex-wrap:wrap;gap:6px}
  .segmented{flex-wrap:wrap}
  .segmented button{font-size:12px;padding:10px 14px}
  .config-steps{gap:8px}
  .config-steps button{white-space:normal;flex:1;font-size:12px}
  .step-panel{min-height:0}
  .config-nav{gap:12px}
  .goal{min-height:76px}
  .goal-number,.goal-check{flex-shrink:0}
  .assistant-strip .button{margin-left:0;white-space:normal}
  .contact-grid>div:last-child{flex-wrap:wrap;gap:12px 24px}
  .social-link{display:inline-flex;align-items:center}
  .chat-layout{display:flex;flex-direction:column;gap:24px;padding:28px 5vw 40px}
  .chat-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:8px;padding:0}
  .chat-topics button{font-size:12px;gap:8px;padding:10px 12px;overflow-wrap:anywhere}
  .chat-visual{display:flex;gap:18px;align-items:center;padding:16px}
  .chat-visual>div{width:130px;flex-shrink:0}
  .chat-visual .detail-svg{width:100%;height:70px;margin:0}
  .chat-visual small{font-size:11px}
  .chat-window{width:100%;height:min(720px,85svh);min-height:400px;max-height:none}
  .chat-window-head{padding:12px 16px;gap:12px}
  #clear-chat{flex-shrink:0;padding:8px 0;font-size:11px}
  .chat-messages{padding:16px}
  .message{font-size:14px;line-height:1.7;max-width:95%}
  .chat-compose{padding:12px;gap:8px}
  .chat-compose input{font-size:16px;min-width:0}
  .chat-disclaimer{font-size:10px}
  .chat-header .text-link{font-size:12px;gap:8px;align-items:center}
  .chat-side h1{font-size:36px}
  .chat-side>p:not(.eyebrow){font-size:13px}
  .project-dialog{width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}
  .project-dialog textarea{font-size:16px}
}

@media(max-width:560px){
  .hero h1{font-size:14.4vw}
  .hero-content{padding:36px 5vw 110px;width:100%}
  .hero{min-height:640px;height:auto}
  .hero-visual{width:100%}
  .hero-buttons{align-items:stretch;max-width:360px}
  .hero-buttons .text-link{align-self:flex-start}
  .hero-bottom{gap:18px;align-items:flex-end}
  .hero-bottom>span{max-width:60%}
  .hero-bottom>a{flex-shrink:0;padding:12px 0}
  .section{padding:56px 5vw}
  h2{font-size:32px}
  .blueprint{padding:22px 16px}
  .blueprint-label::after{content:' · ЛИСТАЙТЕ ↔'}
  #exhaust-diagram{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  #exhaust-diagram .exhaust-svg{display:block;width:560px;max-width:none;height:210px}
  .part-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
  .part-tabs button{font-size:12px}
  .gallery{gap:22px 12px}
  .project-caption{font-size:11px}
  .project-tag{font-size:8px}
  .field-grid{grid-template-columns:minmax(0,1fr)}
  .field-grid label,.full-label{font-size:12px}
  .goal{padding:16px 12px;gap:10px}
  .goal small{font-size:11px}
  .config-nav .button{min-height:48px;font-size:12px}
  .estimate{padding:22px}
  .estimate-total{flex-wrap:wrap;gap:8px}
  .assistant-strip>div:nth-child(2){flex-basis:calc(100% - 75px)}
  .assistant-strip .button{width:100%;font-size:13px}
  .contact-heading{align-items:flex-start;gap:12px}
  .contact-heading h2{font-size:clamp(30px,8.5vw,41px)}
  .contact-arrow{width:48px;height:48px;min-width:48px;font-size:30px}
  .contact-phone{font-size:clamp(25px,7.5vw,30px)}
  .chat-topics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chat-window-head b{font-size:13px}
  .chat-visual>div{width:100px}
  .floating-assistant{bottom:max(14px,env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));min-height:44px}
  .gallery-dialog .dialog-bottom{font-size:11px}
}

@media(max-width:360px){
  .header{gap:8px}
  .brand{font-size:18px;gap:5px}
  .brand-symbol{font-size:30px}
  .header-cta{font-size:9px;gap:5px}
  .chat-header .text-link{font-size:11px}
  .config-steps button{font-size:11px}
  .config-steps button span{margin-right:3px}
  .chat-window-head{padding:10px;gap:8px}
  .message.bot{padding:14px}
  .chat-messages{padding:12px}
}
.legal-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px 24px;padding:5px 4vw;border-bottom:1px solid #363636;background:#151515;font-size:12px}
.legal-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.legal-consent{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.6;margin-top:18px}
.legal-consent input{width:20px;height:20px;flex:0 0 20px;margin-top:3px;accent-color:#f0f0ed}
.legal-consent a,.legal-note a{text-decoration:underline;text-underline-offset:3px}
.legal-note{font-size:12px;line-height:1.7;color:#b0b0ad}
.legal-links a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:560px){.legal-links{justify-content:flex-start;gap:0 16px;font-size:11px}.legal-consent{font-size:12px}}
/* Visitor feedback: retain the dark identity with a softer text tone. */
:root{--text:#dedbd3;--muted:#b5b2aa}
.project-dialog{color:var(--text)}
.header-contact-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 24px;padding:4px 4vw;border-bottom:1px solid var(--line);background:#151515;font-size:12px;line-height:1.5}
.header-contact-bar a{display:inline-flex;align-items:center;min-height:36px;text-underline-offset:4px}
.header-contact-bar a:hover{text-decoration:underline}
.hero-stamp{width:112px;height:112px;right:6vw;bottom:220px}
.hero-stamp svg{width:30px}
.contact-call{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:14px;flex-shrink:0;text-decoration:none}
.contact-call:hover .contact-arrow{transform:rotate(45deg)}
.back-to-top{position:fixed;z-index:55;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #686862;border-radius:30px;background:#202020;color:var(--text);font-size:12px;box-shadow:0 4px 18px #0005}
.back-to-top span{font-size:21px;line-height:1}
.back-to-top[hidden]{display:none}
.back-to-top:hover{background:#30302e}
.footer{padding-bottom:max(100px,calc(80px + env(safe-area-inset-bottom)))}
.works-section .project-caption small{display:block;color:#494944;font-size:10px;white-space:nowrap}
@media(max-width:800px){.hero-stamp{width:95px;height:95px;bottom:190px}.header-contact-bar{padding:4px 4vw;font-size:11px;gap:0 12px}}
@media(max-width:560px){
 .header-contact-bar{justify-content:flex-start}
 .header-contact-bar a:nth-child(2){order:3;flex-basis:100%}
 .header-contact-bar span{margin-left:auto}
 .hero-stamp{bottom:165px;right:7vw;width:76px;height:76px}
 .hero-stamp svg{width:23px}
 .contact-call{font-size:12px;gap:6px}
 .back-to-top{left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));padding:10px 12px;gap:6px}
 .works-section .project-caption{flex-direction:column;align-items:flex-start;gap:5px}
}
/* Approved improvements: readable details and a compact engineering passport. */
.hero-copy strong{color:var(--text);font-weight:600}
.heading-row>p,.heading-row>div>p,.body-copy,.part-info p{font-size:15px}
.part-info .part-symptom,.fine,.service-option small,.estimate-item small,.sound-bottom p{font-size:13px;line-height:1.65}
.goal small,.field-grid label,.full-label,.part-info .text-link{font-size:14px}
.intake-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;margin:-12px 0 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.intake-notice p{max-width:680px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.intake-notice strong{color:var(--text);display:block}
.intake-notice a{flex-shrink:0;min-height:44px}
.passport-facts{margin:18px 0;font-size:13px;line-height:1.6}
.estimate{position:static}
.chat-disclaimer{font-size:12px;line-height:1.6}
.passport-facts>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;margin:8px 0}
.passport-facts dt{color:#565650}.passport-facts dd{margin:0;overflow-wrap:anywhere}
.passport-diagram{padding:12px 0 16px;border-top:1px solid #b8b8b0;border-bottom:1px solid #b8b8b0;margin-bottom:18px}
.passport-diagram svg{width:100%;display:block}
.passport-diagram [data-passport-part]{fill:#e8e8e2;stroke:#89897f;stroke-width:2}
.passport-diagram .passport-pipe{fill:none;stroke-width:6}
.passport-diagram [data-passport-part].active{stroke:#161616;stroke-width:3;fill:#c7c7bd}
.passport-diagram .passport-pipe.active{fill:none;stroke-width:6}
.passport-diagram p{margin:8px 0 0;color:#565650;font-size:12px}
.project-story{display:block;margin-top:8px;font-size:13px;line-height:1.6;color:#50504b;overflow-wrap:anywhere}
.works-section .project-caption small{font-size:12px}
.gallery-dialog .dialog-bottom{align-items:center}
#photo-caption{max-width:760px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:800px){.intake-notice{align-items:flex-start;flex-direction:column;gap:12px}.gallery-dialog .dialog-bottom{flex-shrink:0}}
@media(max-width:560px){.hero-copy{font-size:14px}.project-caption{font-size:13px}.project-story{font-size:12px}.goal small,.field-grid label,.full-label{font-size:14px}.passport-facts{font-size:14px}.intake-notice{margin-top:0}#photo-caption{font-size:12px}}
/* Two identical groups travel by exactly one group for a seamless loop. */
.ticker>.ticker-track{gap:0;animation:marquee-seamless 45s linear infinite}
.ticker .ticker-group{display:block;flex:0 0 auto;min-width:100vw;margin:0;padding-right:40px;font:inherit;white-space:nowrap;letter-spacing:inherit}
@keyframes marquee-seamless{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker>.ticker-track{animation:none}}
/* RESPONSIVE LAYOUT END */

body.tossen-wp .elementor-element.tossen-root{display:block;padding:0;margin:0;max-width:none;width:100%;gap:0}body.tossen-wp .tossen-root>.e-con-inner{display:block;max-width:none;padding:0}body.tossen-wp .elementor-widget{margin:0}body.tossen-wp .elementor-widget-container{margin:0}body.tossen-wp .header{top:0}body.admin-bar.tossen-wp .header{top:32px}body.tossen-wp .elementor{--widgets-spacing:0px}body.tossen-wp h1,body.tossen-wp h2,body.tossen-wp h3{font-family:Onest,Arial,sans-serif;color:inherit}body.tossen-wp a{color:inherit} @media(max-width:782px){body.admin-bar.tossen-wp .header{top:46px}}
body.tossen-wp{overflow-x:clip}.tossen-wp .ticker{overflow:hidden;max-width:100%}
