/* DSA composition system. Grid candidates + hard content constraints + optical review.
   These are product choices, not a universal aesthetic formula. See Алгоритм компоновки ДСА.md. */
:root {
  --page-width:1280px;
  --gutter:clamp(24px,5vw,72px);
  --page-inset:max(var(--gutter),calc((100% - var(--page-width))/2));
  --space-unit:4px;
  --space-control:8px;
  --space-related:16px;
  --space-group:24px;
  --space-block:32px;
  --layout-gap:clamp(24px,3.4vw,48px);
  --section-space:clamp(64px,7.5vw,112px);
  --header-height:80px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-xl:16px;
  --text-small:13px;
  --text-body:15px;
  --text-heading:clamp(32px,3.25vw,48px);
}
html {scroll-padding-top:calc(var(--header-height) + 24px)}
body {line-height:1.6}
h1,h2,h3 {text-wrap:balance}
p {text-wrap:pretty}
.header,.section,footer {padding-inline:var(--page-inset)}
.header {gap:24px;height:var(--header-height)}
.logo {width:200px}
.nav {gap:24px}
.nav a {font-size:14px}
.header-phone {font-size:13px}
.header-cart,.header-account {min-height:44px;font-size:13px}
.header .cart-label,.header-account span {font-size:13px}
.header .menu-button {min-width:44px;min-height:44px}
.button {min-height:48px;padding:12px 20px;font-size:14px;gap:12px}
.button>span {flex-shrink:0}
.eyebrow {font-size:13px;letter-spacing:0}
.section {padding-block:var(--section-space);scroll-margin-top:calc(-1 * var(--section-space))}
.section h2,.shop-heading h2 {font-size:var(--text-heading);line-height:1.12;letter-spacing:-.045em}
.section-heading,.projects .section-heading {
  display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);
  align-items:end;gap:var(--layout-gap);margin-bottom:40px;
}
.section-note {max-width:34ch;font-size:15px;line-height:1.65;padding:0;color:var(--muted-foreground)}
.intro .section-heading {display:block}

/* Primary image gets seven columns; the heading and action stay one visual group. */
.hero {
  max-width:none;margin:0;padding:48px var(--page-inset) 64px;
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:var(--layout-gap);align-items:center;min-height:0;
}
.hero-content {min-width:0;padding:0 0 28px}
.hero h1 {font-size:clamp(48px,4.45vw,72px);line-height:1.06;letter-spacing:-.055em;max-width:100%}
.hero-actions {margin-top:32px;gap:12px;align-items:stretch}
.hero-actions .button {font-size:14px;padding-inline:18px}
.hero-image-wrap {width:100%;aspect-ratio:1.2;max-height:min(560px,calc(100svh - 256px));min-height:330px;border-radius:var(--radius-xl)}
.hero-image {object-position:50% 61%}
.hero-media figcaption {padding-top:12px;font-size:12px}
.hero-media figcaption a {min-height:32px}

/* Equal-width navigation and illustration; aligned with the heading. */
.solution-layout {grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--layout-gap)}
.solution-list {background:transparent;border:0;border-radius:0;padding:0;gap:8px}
.solution {padding:24px;min-height:112px;border:1px solid transparent;border-radius:var(--radius-lg);gap:0}
.solution:not(.active) {border-bottom-color:var(--border)}
.solution.active {background:var(--muted);border-color:var(--border);box-shadow:none}
.solution-name {font-size:19px;line-height:1.35;letter-spacing:-.025em}
.solution-name small {font-size:14px;margin-top:8px;line-height:1.5}
.solution-panel {min-width:0;border-radius:var(--radius-xl)}
.solution-image-wrap {height:auto;aspect-ratio:16/9;border-radius:var(--radius-xl)}
.image-tag {font-size:12px;left:20px;bottom:20px;padding:6px 10px;border-radius:6px}
.solution-caption {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;padding-top:20px;align-items:start}
.solution-caption p {font-size:15px;line-height:1.6;max-width:48ch}
.solution-caption a {font-size:14px;min-height:44px;align-items:flex-start;padding-top:2px}

/* The catalogue has one search axis and a repeatable card geometry. */
.shop-heading {margin-bottom:36px}
.shop-heading h2 {max-width:20ch}
.shop-ai-search {padding-bottom:24px;margin-bottom:24px}
.shop-label {font-size:14px;margin-bottom:12px}
.shop-search-control {padding:8px;gap:16px;border-radius:var(--radius-lg)}
.shop-search-control input {font-size:16px;height:48px;min-width:0}
.shop-search-control .button {min-height:48px;font-size:14px;min-width:112px}
.shop-search-control>svg {margin-left:12px}
.shop-search-status,.shop-search-notes {font-size:13px;margin-top:12px}
.shop-search-chips li {font-size:13px}
.shop-text-button {font-size:14px;min-height:44px}
.shop-products {grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.shop-product {border-radius:var(--radius-xl);box-shadow:none}
.shop-product-visual {aspect-ratio:1.5;background:#f7f7f7}
.shop-product-visual img {object-fit:contain;padding:12px}
.shop-product-body {padding:24px;gap:0}
.shop-product-code {font-size:11px;margin-bottom:12px;letter-spacing:.025em;overflow-wrap:anywhere}
.shop-product-name {font-size:21px;line-height:1.3;letter-spacing:-.025em;min-height:2.6em;text-wrap:balance}
.shop-product-engine {font-size:14px!important;margin-top:8px}
.shop-product-specs {padding:20px 0;margin-top:24px}
.shop-product-specs dt {font-size:12px;line-height:1.5;margin-bottom:8px}
.shop-product-specs dd {font-size:16px}
.shop-supply {font-size:13px!important;line-height:1.6;min-height:3.2em;margin-top:16px}
.shop-product-bottom {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:24px}
.shop-product-bottom .button {min-height:44px;font-size:13px;padding-inline:16px}
.shop-price {font-size:24px;letter-spacing:-.035em}
.shop-price-sub {font-size:12px}
.shop-price-locked {font-size:14px;line-height:1.45}
.shop-load-more {margin-top:32px}
.shop-skeleton {border-radius:var(--radius-xl)}

/* Map coordinates stay owned by the camera. Only the surrounding geometry changes. */
.projects {padding-bottom:var(--section-space)}
.project-atlas {border-radius:var(--radius-xl);margin-inline:0}
.map-stage {height:clamp(440px,46vw,620px)}
.map-project-panel {width:45%;padding:24px}
.project-gallery {aspect-ratio:1.65;border-radius:var(--radius-md)}
.project-panel-copy h3 {font-size:28px;letter-spacing:-.035em}
.project-panel-copy>p {font-size:15px}
.project-panel-meta>span {font-size:13px}
.project-panel-meta strong {font-size:26px}
.project-panel-footer a {min-height:44px;font-size:13px}
.map-close,.gallery-arrows button,.viewer-controls button,.photo-viewer-close {width:44px;height:44px}
.gallery-thumb {width:60px;height:44px}
.region-projects button {min-height:44px;font-size:13px}

/* Keep project details in the layout; the photo takes the remaining height. */
@media(min-width:801px) {
  .project-atlas {display:grid}
  .map-stage {grid-area:1/1;height:auto;min-height:clamp(540px,calc(100svh - 240px),640px)}
  .map-project-panel {grid-area:1/1;position:relative;inset:auto;justify-self:end;min-width:0;overflow:visible}
  .map-project-panel:not([hidden]) {display:flex;flex-direction:column}
  .map-project-panel>* {flex-shrink:0}
  .project-panel-top {margin-bottom:8px}
  .region-projects {margin-bottom:8px}
  .project-gallery {aspect-ratio:auto;flex:1 1 180px;min-height:180px}
  .gallery-expand img {object-fit:contain}
  .gallery-thumbs {padding-top:8px;padding-bottom:4px}
  .project-panel-copy {padding-top:12px}
  .project-panel-meta {padding-bottom:12px}
  .project-panel-copy h3 {font-size:clamp(20px,1.8vw,24px);margin:12px 0 8px}
  .project-panel-copy>p {font-size:14px;line-height:1.5}
  .project-panel-footer {margin-top:12px;padding-top:12px}
}

/* Process columns and photography share the same edges as the catalogue. */
.process {grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:48px}
.process article {padding:24px 24px 0 0}
.process article+article {padding-left:24px}
.process-num {width:32px;height:32px;margin-bottom:24px;font-size:12px}
.process h3 {font-size:21px;line-height:1.3;margin-bottom:12px}
.process p {font-size:15px;line-height:1.6;max-width:27ch}
.engineering-photo {height:clamp(380px,37vw,500px);border-radius:var(--radius-xl)}
.engineering-photo img {filter:none;object-position:50% 52%}
.engineering-photo>div {left:40px;bottom:40px;max-width:75%}
.engineering-photo .eyebrow {font-size:13px}
.engineering-photo>div>p:nth-child(2) {font-size:clamp(30px,3.1vw,44px);line-height:1.15;margin-top:16px}
.engineering-photo>div>span {font-size:13px;margin-top:24px}

/* A five/seven split gives real form labels room, with no empty pseudo-column. */
.contact {grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--layout-gap);align-items:start}
.contact-copy {position:sticky;top:calc(var(--header-height) + 40px)}
.contact h2 {font-size:var(--text-heading);margin-top:0}
.contact-links {margin-top:32px;gap:8px}
.contact-links a {min-height:44px}
.contact-phone {font-size:clamp(22px,2.1vw,28px)}
.contact-email {font-size:16px}
.brief-form {min-width:0;padding:32px;border-radius:var(--radius-xl);box-shadow:none;margin:0}
.form-heading {margin-bottom:32px}
.form-heading h3 {font-size:24px;line-height:1.3}
.brief-form label {font-size:14px;margin-bottom:24px}
.brief-form input,.brief-form textarea,.brief-form select {font-size:16px;min-height:48px;padding:12px;margin-top:8px;border-radius:var(--radius-md)}
.brief-form input::placeholder,.brief-form textarea::placeholder {font-size:14px}
.brief-form textarea {min-height:112px}
.form-row {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form-field {margin-bottom:24px}
.form-field label {margin-bottom:0}
.field-error,.form-note {font-size:12px;line-height:1.65}
.form-status {font-size:14px}
.brief-form>.button {min-height:48px}
.dsa-attachments {margin-block:24px}
.dsa-attachments-title {font-size:14px}
.dsa-attachments-heading {margin-bottom:12px}
.dsa-attachments-drop {min-height:96px;padding:20px;border-radius:var(--radius-md)}
.dsa-attachments-choose {min-height:44px}
.dsa-attachments-help {font-size:12px;margin-top:12px;line-height:1.65}
.dsa-attachment-actions button {min-width:44px;min-height:44px}
.footer-top {grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:var(--layout-gap)}
.footer-top p,.footer-top>a:last-child,.footer-bottom {font-size:13px}
.footer-top>a:last-child {text-align:right;max-width:24ch}
.footer-bottom {flex-wrap:wrap;gap:16px}
footer {padding-block:48px 28px}

/* Purchase surfaces use the same reading scale and control dimensions. */
.shop-dialog {border-radius:var(--radius-xl);max-width:calc(100vw - 48px)}
.shop-product-dialog {width:1000px}
.shop-product-detail {grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.shop-detail-media {padding:64px 32px 32px;gap:16px;justify-content:flex-start}
.shop-detail-media img {aspect-ratio:1.2;object-fit:contain;background:var(--muted)}
.shop-detail-media>p {font-size:12px}
.shop-detail-copy {padding:64px 32px 32px}
.shop-detail-copy h2 {font-size:32px;letter-spacing:-.035em;line-height:1.2}
.shop-detail-copy .shop-product-engine {font-size:15px!important}
.shop-detail-specs {margin:24px 0}
.shop-detail-specs dt,.shop-detail-specs dd {font-size:14px;padding-block:12px}
.shop-detail-source {font-size:12px}
.shop-detail-copy .shop-price-locked {max-width:none;margin-top:16px}
.shop-dialog-close {width:44px;height:44px;top:16px;right:16px}
.shop-cart-dialog {width:620px;max-width:100vw;border-radius:var(--radius-xl) 0 0 var(--radius-xl)}
.shop-cart-head {padding:28px 32px}
.shop-cart-head h2 {font-size:28px;padding-right:48px;line-height:1.25}
.shop-cart-head .eyebrow {font-size:13px}
.shop-cart-body {padding:0 32px 32px}
.shop-cart-line {grid-template-columns:80px minmax(0,1fr);gap:20px;padding-block:28px}
.shop-cart-thumb {width:80px;height:80px;border-radius:var(--radius-md)}
.shop-cart-line h3 {font-size:16px}
.shop-cart-line-meta {font-size:13px!important}
.shop-quote-form label,.shop-quote-form>p:first-of-type {font-size:14px}
.shop-quote-form input {font-size:16px;height:48px;padding:12px}
.shop-totals>div {font-size:15px}
.shop-quote-form h3 {font-size:22px}
.shop-cart-dock {bottom:20px;right:var(--gutter);padding:14px 16px;min-width:240px;border-radius:12px}
.shop-cart-dock strong {font-size:13px}
.shop-cart-dock #shop-dock-summary {font-size:12px}
.shop-toast {right:var(--gutter)}

/* The account uses the same outer edges; dense work stays in an intrinsic-width rail. */
.account-main {max-width:none;padding:48px var(--page-inset) 80px}
.account-auth {width:min(100%,480px);margin:16px auto}
.account-auth-card {padding:32px;border-radius:var(--radius-xl);box-shadow:none}
.account-auth-card h1 {font-size:30px;line-height:1.2}
.account-auth-tabs {margin-bottom:32px}
.account-auth-tabs button {min-height:44px}
.account-form input {font-size:16px;min-height:48px;border-radius:var(--radius-md)}
.account-workspace-heading {padding-bottom:32px;gap:24px}
.account-workspace-heading h1 {font-size:26px;line-height:1.3}
.account-layout {grid-template-columns:208px minmax(0,1fr);gap:var(--layout-gap);padding-top:32px}
.account-sidebar {align-self:start;position:sticky;top:32px}
.account-sidebar>a {padding:14px 16px;min-height:48px}
.account-panel-heading {margin-bottom:32px}
.account-panel-heading h2 {font-size:30px;line-height:1.25}
.account-settings-form {max-width:720px}
.account-form-row {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.account-quotes-list {border-radius:var(--radius-lg)}
.account-quote {padding:28px;gap:20px 32px}
.account-quote h3 {font-size:16px}
.account-quote-date,.account-quote-meta,.account-quote-customer {font-size:13px}
.account-quote-total {font-size:24px}
.account-footer {padding:24px var(--page-inset);font-size:13px}

@media(min-width:801px) and (max-width:1100px) {
  .solution {padding:20px;min-height:112px}
  .solution-name {font-size:17px}
  .solution-name small {font-size:13px}
  .solution-image-wrap {aspect-ratio:1.4}
  .solution-caption {grid-template-columns:1fr;gap:8px}
  .map-project-panel {width:48%;padding:20px}
  .project-panel-copy h3 {font-size:24px}
}
@media(max-width:1360px) {.header-phone{display:none}.header{gap:20px}.nav{gap:20px}}
@media(max-width:1150px) {
  .header:has(.header-account) {gap:16px}
  .header:has(.header-account) .logo {width:180px}
  .shop-products {grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-product-name {font-size:22px}
  .form-row {grid-template-columns:1fr;gap:0}
  .brief-form {padding:28px}
}
@media(max-width:1023px) {
  :root {--header-height:72px}
  .header {justify-content:space-between}
  .header .logo {margin-right:auto}
  .header-account>span {display:inline}
  .header .menu-button {order:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;padding:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md)}
  .menu-button span {width:18px;height:1.5px;background:var(--primary);display:block;transition:transform 180ms}
  .menu-button[aria-expanded=true] span:first-child {transform:translateY(3.25px) rotate(45deg)}
  .menu-button[aria-expanded=true] span:last-child {transform:translateY(-3.25px) rotate(-45deg)}
  .nav {display:none;position:absolute;left:var(--gutter);right:var(--gutter);top:calc(var(--header-height) + 8px);margin:0;padding:8px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 32px #00000012}
  .nav.open {display:flex;flex-direction:column;align-items:stretch;gap:0;animation:hero-enter .16s ease-out}
  .nav a {font-size:15px;padding:14px 16px;border-radius:8px;min-height:48px}
  .nav a[aria-current=true] {background:var(--muted)}
  .nav a[aria-current=true]:after {display:none}
  .hero {padding-block:40px 48px;gap:28px}
  .hero h1 {font-size:clamp(40px,5.2vw,54px)}
  .hero-actions {flex-direction:column;align-items:flex-start;margin-top:24px;gap:8px}
  .hero-actions .button {min-width:208px}
  .hero-image-wrap {aspect-ratio:1;min-height:360px;max-height:500px}
  .hero-content {padding-bottom:16px}
  .section-heading,.projects .section-heading {gap:32px;grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .process {grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 0}
  .process article:nth-child(3) {padding-left:0;border-left:0}
  .process p {max-width:32ch}
  .contact {grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:32px}
  .account-layout {grid-template-columns:176px minmax(0,1fr);gap:32px}
  .account-sidebar>a {padding:12px;font-size:14px}
  .account-panel-heading {flex-wrap:wrap;gap:20px}
  .account-panel-actions {margin-left:auto}
  .account-form-row {display:block}
  .account-quote {padding:24px;gap:16px 24px}
}
@media(max-width:800px) {
  .hero {grid-template-columns:1fr;gap:28px;padding-block:36px 48px}
  .hero h1 {font-size:clamp(40px,6.8vw,56px);max-width:16ch}
  .hero-content {padding:0}
  .hero-actions {flex-direction:row;align-items:stretch;gap:12px}
  .hero-actions .button {min-width:0}
  .hero-image-wrap {aspect-ratio:1.65;min-height:0;max-height:440px}
  .hero-image {object-position:50% 60%}
  .section-heading,.projects .section-heading {grid-template-columns:1fr;gap:20px;margin-bottom:32px}
  .section-note {max-width:48ch;margin:0}
  .solution-layout {display:grid;grid-template-columns:1fr;gap:24px}
  .solution-list {display:grid;grid-template-columns:1fr;gap:4px}
  .solution {min-height:92px;padding:20px}
  .solution-name {font-size:18px}
  .solution-name small {font-size:14px;margin-top:6px}
  .solution-image-wrap {aspect-ratio:1.6;height:auto}
  .solution-caption {grid-template-columns:1fr;gap:8px;padding-top:16px}
  .shop-heading {margin-bottom:32px}
  .shop-product-body {padding:20px}
  .shop-product-name {font-size:20px}
  .shop-products {gap:20px}
  .shop-price {font-size:22px}
  .map-stage {height:440px}
  .map-project-panel {position:relative;inset:auto;width:100%;padding:24px;overflow:visible;border-left:0;border-top:1px solid var(--border)}
  .project-panel-copy h3 {font-size:28px}
  .contact {display:grid;grid-template-columns:1fr;gap:32px}
  .contact-copy {position:static}
  .contact h2 br {display:none}
  .contact-links {margin-top:24px}
  .brief-form {margin:0;padding:28px}
  .form-row {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .footer-top {grid-template-columns:1fr 1fr;gap:24px}
  .footer-top>a:last-child {grid-column:1/-1;text-align:left;max-width:none}
  .shop-product-detail {grid-template-columns:1fr}
  .shop-detail-media {padding:24px 24px 0;background:#fff}
  .shop-detail-media img {aspect-ratio:1.8}
  .shop-detail-media>p {max-width:90%}
  .shop-detail-copy {padding:24px}
}
@media(max-width:600px) {
  :root {--gutter:20px;--header-height:72px;--section-space:64px;--layout-gap:24px;--text-heading:clamp(30px,8vw,38px)}
  .header:has(.header-account) {gap:8px;padding-inline:16px}
  .header:has(.header-account) .logo {width:clamp(108px,34vw,156px)}
  .header .header-account {order:1;padding:0;width:44px;min-height:44px}
  .header .header-account>span {display:none}
  .header .header-cart {order:2;padding:8px;min-height:44px;min-width:44px;gap:4px}
  .header .header-cart .cart-label {display:none}
  .header .header-cart .cart-count {min-width:10px;background:transparent}
  .hero {padding-top:32px;padding-bottom:32px;gap:28px}
  .hero h1 {font-size:clamp(38px,9.6vw,54px);letter-spacing:-.052em;line-height:1.06}
  .hero-actions {margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hero-actions .button {min-height:48px;font-size:13px;gap:8px;padding:12px 10px;white-space:normal;text-align:center}
  .hero-actions .button>span {display:none}
  .hero-image-wrap {aspect-ratio:1.35;border-radius:12px}
  .hero-media figcaption {font-size:12px;padding-top:8px}
  .section-note {font-size:15px}
  .solution {padding:18px 20px;min-height:92px}
  .solution-image-wrap {aspect-ratio:1.4;border-radius:12px}
  .image-tag {left:16px;bottom:16px;font-size:11px}
  .solution-caption p,.solution-caption a {font-size:14px}
  .shop-products {grid-template-columns:minmax(0,1fr);gap:24px}
  .shop-product-visual {aspect-ratio:1.55}
  .shop-product-body {padding:24px}
  .shop-product-name {font-size:23px;min-height:0}
  .shop-product-specs {margin-top:20px}
  .shop-supply {min-height:0}
  .shop-product-bottom {flex-wrap:wrap}
  .shop-price {font-size:25px}
  .shop-search-control {gap:8px;padding:6px;border-radius:12px}
  .shop-search-control>svg {margin-left:6px;width:18px}
  .shop-search-control input {font-size:16px}
  .shop-search-control input::placeholder {font-size:13px}
  .shop-search-control .button {min-width:64px;font-size:13px;min-height:44px;padding:12px;gap:0}
  .shop-search-control .button>span:last-child {display:none}
  .shop-search-status,.shop-search-notes {font-size:12px}
  .map-stage {height:360px}
  .project-atlas {margin-inline:0;border-radius:12px}
  .map-project-panel {padding:20px}
  .project-gallery {aspect-ratio:1.4}
  .project-panel-copy h3 {font-size:25px}
  .project-panel-meta strong {font-size:23px}
  .project-panel-meta>span {font-size:12px}
  .project-panel-footer {gap:8px;flex-wrap:wrap}
  .project-panel-footer a {font-size:12px}
  .process {grid-template-columns:1fr;gap:0;margin-bottom:32px}
  .process article,.process article+article {display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:20px;padding:24px 0;border-left:0}
  .process-num {grid-row:1/3;margin:0}
  .process h3 {font-size:20px;margin:0 0 8px}
  .process p {grid-column:2;max-width:none;font-size:14px}
  .engineering-photo {height:380px;border-radius:12px}
  .engineering-photo>div {left:24px;right:24px;bottom:28px;max-width:none}
  .engineering-photo .eyebrow {font-size:12px;max-width:24ch}
  .engineering-photo>div>p:nth-child(2) {font-size:29px}
  .engineering-photo>div>span {font-size:12px}
  .contact-phone {font-size:25px}
  .contact-email {font-size:16px}
  .brief-form {padding:24px 20px;border-radius:12px}
  .form-heading {margin-bottom:28px}
  .form-heading h3 {font-size:23px}
  .form-row {grid-template-columns:1fr;gap:0}
  .brief-form label {font-size:14px}
  .brief-form input,.brief-form textarea,.brief-form select {font-size:16px}
  .footer-top {grid-template-columns:1fr;gap:24px}
  .footer-top p,.footer-top>a:last-child,.footer-bottom {font-size:12px}
  .footer-top>a:last-child {justify-self:start}
  footer {padding-block:36px 104px}
  .shop-dialog {max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);border-radius:12px}
  .shop-detail-media {padding:16px 16px 0}
  .shop-detail-copy {padding:24px 20px}
  .shop-detail-copy h2 {font-size:28px}
  .shop-detail-specs dt,.shop-detail-specs dd {font-size:13px}
  .shop-cart-dialog {max-width:100vw;max-height:100svh;border-radius:0}
  .shop-cart-head {padding:24px 20px}
  .shop-cart-head h2 {font-size:25px}
  .shop-cart-head .shop-dialog-close {top:24px;right:16px}
  .shop-cart-body {padding:0 20px 28px}
  .shop-cart-line {grid-template-columns:56px minmax(0,1fr);gap:16px;padding-block:24px}
  .shop-cart-thumb {width:56px;height:56px}
  .shop-cart-line h3 {font-size:15px}
  .shop-cart-line-bottom {flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px}
  .shop-line-total {margin-left:0;text-align:left;font-size:18px}
  .shop-cart-dock {right:16px;bottom:max(16px,env(safe-area-inset-bottom));min-width:224px;max-width:calc(100vw - 32px);padding:12px 16px}
  .shop-cart-dock strong {font-size:13px}
  .shop-cart-dock #shop-dock-summary {font-size:11px}
  .account-main {padding:28px var(--gutter) 48px}
  .account-header {padding-inline:20px}
  .account-header .logo {width:144px}
  .account-header-link {font-size:13px}
  .account-auth {margin:0 auto}
  .account-auth-card {padding:24px 20px;border-radius:12px}
  .account-auth-card h1 {font-size:28px}
  .account-layout {display:block;padding-top:20px}
  .account-sidebar {position:static;display:flex;flex-direction:row;gap:4px;margin-bottom:28px;padding-bottom:12px;border-bottom:1px solid var(--border)}
  .account-sidebar>a {flex:1;justify-content:center;font-size:13px;padding:10px 6px;gap:6px;min-height:44px}
  .account-workspace-heading {padding-bottom:24px;gap:12px;align-items:start}
  .account-workspace-heading h1 {font-size:21px}
  .account-company-icon {display:none}
  .account-menu summary {font-size:12px;padding:10px;gap:6px}
  .account-panel-heading {margin-bottom:24px;gap:16px}
  .account-panel-heading h2 {font-size:27px}
  .account-panel-heading .account-muted {font-size:14px}
  .account-panel-actions {margin-left:0}
  .account-quote {grid-template-columns:1fr;padding:24px 20px;gap:16px}
  .account-quote-total {text-align:left}
  .account-quote-files,.account-quote-meta {grid-column:1;grid-row:auto;justify-content:flex-start}
  .account-form-row {display:block}
  .account-footer {padding:24px 20px;font-size:12px;flex-wrap:wrap}
}
@media(max-width:360px) {
  :root {--gutter:16px}
  .hero-actions .button {font-size:12px;gap:6px;padding-inline:8px}
  .shop-product-body {padding:20px}
  .shop-price {font-size:23px}
  .account-sidebar>a {font-size:12px}
  .account-sidebar>a svg {display:none}
  .account-auth-tabs button {font-size:13px}
  .project-panel-meta {gap:10px}
}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}.hero-image,.hero-enter,.reveal-ready{animation:none;transition:none;opacity:1;transform:none}}
.shop-ai-search > .shop-text-button {
  margin-top:12px;
}
