/* OD-LAYOUT-PRIMITIVES v1 — structure only: display, flex/grid, overflow, wrapping, ratio, geometry.
   Put this @layer first; product CSS outside the layer wins ordinary layout rules.
   Native hidden and closed-dialog states take precedence over component display rules. */
@layer od-layout {
  [hidden]:not([hidden="until-found" i]) { display: none !important; }
  dialog:not([open]) { display: none !important; }

  :where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-field,.od-stat,.od-cell,.od-tile) > :where(*) { min-width: 0; }

  /* containers */
  .od-stack   { display: flex; flex-direction: column; gap: var(--od-gap, 8px); }
  .od-row     { display: flex; align-items: center; gap: var(--od-gap, 8px); }
  .od-row-top { display: flex; align-items: flex-start; gap: var(--od-gap, 8px); }
  .od-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--od-gap, 8px); }
  .od-fill    { flex: 1 1 0; min-width: 0; }
  .od-fixed   { flex: none; }
  .od-grid    { display: grid; gap: var(--od-gap, 12px); grid-template-columns: repeat(var(--od-cols, 3), minmax(0, 1fr)); }

  /* stacked information: each piece is its own line — never sibling inline spans */
  .od-stat, .od-field, .od-cell { display: grid; gap: var(--od-gap, 2px); }
  :where(.od-stat,.od-field,.od-cell) > :where(*) { display: block; }
  .od-tile { display: grid; grid-template-rows: auto 1fr; }
  :where(.od-tile) > :where(*) { display: block; }

  /* media keeps its intrinsic ratio by default; never a distorted or cropped
     cover by accident. height:auto lets the ratio win over an <img height="…">
     attribute. Cropping to a uniform box is an explicit opt-in: set --od-ratio
     AND add .od-media-cover together (per the core rule, only where a crop is
     deliberate — tile thumbs, decorative fills — never on full-frame content). */
  .od-media { display: block; width: 100%; height: auto; aspect-ratio: var(--od-ratio, auto); }
  .od-media-cover { object-fit: cover; }

  /* functional inline SVG icons opt into bounded geometry; content SVGs keep their own */
  .od-icon { display: inline-block; inline-size: var(--od-icon-size, 1em); block-size: var(--od-icon-size, 1em); flex: none; }

  /* data text only — authored copy is rewritten to its budget instead */
  .od-truncate { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .od-clamp-2, .od-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
  .od-clamp-2 { -webkit-line-clamp: 2; }
  .od-clamp-3 { -webkit-line-clamp: 3; }
  .od-lines-2 { min-height: calc(2 * 1.4em); }   /* block-level reservation for a shared baseline */
  .od-nowrap  { white-space: nowrap; }           /* 数字+单位 · 价格+起 · 日期+星期 */
  .od-keep    { word-break: keep-all; overflow-wrap: anywhere; } /* CJK labels break at spaces / <wbr> first */

  /* screen skeleton (optional): bars take their own space, the middle scrolls — no padding guessed for chrome */
  .od-screen { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
  .od-scroll { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }

  /* horizontal rail: the next item peeks at the edge; trailing room survives overflow */
  .od-rail { display: flex; gap: var(--od-gap, 8px); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
             padding-inline: var(--od-rail-pad, 16px); scroll-padding-inline: var(--od-rail-pad, 16px); }
  .od-rail::-webkit-scrollbar { display: none; }
  :where(.od-rail) > :where(*) { flex: none; scroll-snap-align: start; }
  :where(.od-rail) > :where(:last-child) { margin-inline-end: var(--od-rail-pad, 16px); }

  .od-spacer { flex: none; visibility: hidden; pointer-events: none; }
  .od-touch  { min-width: 44px; min-height: 44px; }
}
:root [hidden]:where(:not([hidden="until-found" i])) { display: none; }
/* /OD-LAYOUT-PRIMITIVES v1 */

@font-face{font-family:"DM Sans";src:url("fonts/dm-sans-0.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("fonts/dm-sans-1.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url("fonts/dm-sans-2.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
:root{--white:#fff;--ground:#f5f6f8;--soft:#eceff3;--ink:#171a22;--muted:#545c6b;--blue:#2458f5;--blue-hover:#1643ca;--blue-pale:#edf2ff;--line:#dce0e7;--control-line:#8993a4;--dark:#151820;--dark-muted:#bdc4d0;--success:#17633f;--success-ground:#edf6f0;--warning:#785014;--warning-ground:#fff6e6;--error:#a52934;--error-ground:#fff0f1;--font:"DM Sans","Helvetica Neue",Helvetica,sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5625rem;--text-2xl:2rem;--text-3xl:2.5rem;--text-display:clamp(2.5rem,4.4vw,4rem);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--radius-small:4px;--radius:8px;--radius-panel:12px;--time:180ms;--width:1248px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:var(--font);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,summary,select,textarea{-webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button{color:inherit}button,a,input,select,textarea,summary{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--blue)}.dark :focus-visible{outline-color:var(--white)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.03em;line-height:1.15;text-wrap:balance}h1{font-size:var(--text-display)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-xl);line-height:1.3;letter-spacing:-.02em}p{max-width:68ch}p+p{margin-top:var(--s4)}ul,ol{padding-left:var(--s5)}li+li{margin-top:var(--s2)}img,video{max-width:100%;height:auto}svg{vertical-align:middle}a,button{touch-action:manipulation}.wrap{width:min(var(--width),calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:var(--s3);left:var(--s4);padding:var(--s3) var(--s4);background:var(--white);color:var(--ink);z-index:50;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.prototype-strip{background:var(--ground);font-size:var(--text-xs);color:var(--muted)}.prototype-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-block:var(--s2)}.prototype-label{white-space:nowrap}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding-block:var(--s5);min-height:88px}.brand{display:inline-flex;gap:var(--s3);align-items:center;text-decoration:none;font-size:1.5rem;font-weight:600;letter-spacing:-.04em;flex:none;line-height:1.2}.brand-symbol{color:var(--blue);flex:none}.desktop-nav{display:flex;align-items:center;gap:var(--s6)}.desktop-nav a,.header-action,.mobile-menu a{font-size:var(--text-sm);font-weight:500;text-decoration:none;letter-spacing:.02em}.desktop-nav a{padding-block:var(--s3)}.desktop-nav [aria-current]{color:var(--blue)}.header-action{display:flex;align-items:center;justify-content:center;gap:var(--s4);min-height:44px;padding:var(--s2) var(--s4);border:1px solid var(--line);border-radius:var(--radius-small)}.header-action span{font-size:1.25rem}.mobile-menu{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:52px;padding:var(--s3) var(--s5);font-weight:500;font-size:var(--text-base);letter-spacing:.02em;line-height:1.4;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-small);background:var(--blue);color:var(--white);transition:background var(--time) ease-out,transform var(--time) ease-out}.button.secondary{background:var(--white);color:var(--ink);border-color:var(--control-line)}.button.quiet{background:var(--ground);color:var(--ink)}.button:active{transform:translateY(1px)}.button:disabled{background:var(--soft);color:var(--muted);border-color:var(--line)}.button.full{width:100%}.text-button{background:none;border:0;padding:var(--s2) 0;min-height:44px;color:inherit;font-size:var(--text-sm);font-weight:500;text-decoration:underline;text-underline-offset:4px;letter-spacing:.02em}.inline-link{font-weight:500}.icon-button{display:flex;justify-content:center;align-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--white);font-size:1.5rem;line-height:1}.muted{color:var(--muted)}.fineprint{font-size:var(--text-sm);line-height:1.6;color:var(--muted)}.small{font-size:var(--text-sm)}.slogan{font-size:var(--text-base);font-weight:500;letter-spacing:0;margin-bottom:var(--s5)}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--s8);align-items:center;padding-top:var(--s8);padding-bottom:var(--s9)}.hero-copy h1{max-width:11.4em}.hero-description{font-size:var(--text-lg);line-height:1.6;color:var(--muted);margin-top:var(--s5);max-width:42ch}.hero-note{margin-top:var(--s6);font-size:var(--text-sm);color:var(--muted)}.format-line{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s6);font-size:var(--text-sm);font-weight:500}.format-line span+span{border-left:1px solid var(--line);padding-left:var(--s4)}.upload-shell{background:var(--dark);color:var(--white);border-radius:var(--radius-panel);padding:var(--s6);align-self:stretch;display:flex;flex-direction:column;justify-content:center}.upload-shell .fineprint,.upload-shell .muted{color:var(--dark-muted)}.upload-shell-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);font-size:var(--text-sm);margin-bottom:var(--s5);font-weight:500}.upload-indicator{display:flex;align-items:center;gap:var(--s2);color:var(--dark-muted);font-size:var(--text-xs)}.upload-indicator::before{content:"";width:6px;height:6px;background:var(--dark-muted);border-radius:50%}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--s4);min-height:300px;padding:var(--s6) var(--s5);border:1px dashed #697384;border-radius:var(--radius);transition:background var(--time)}.drop-zone.drag-over{background:#232d43;border-color:var(--white)}.file-glyph{display:block;width:48px;height:56px;color:#d8dfed;margin-bottom:var(--s2)}.drop-zone h2{font-size:var(--text-xl);line-height:1.3;letter-spacing:-.02em}.drop-zone p{font-size:var(--text-sm);color:var(--dark-muted)}.upload-shell .button{min-width:240px}.upload-price{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding-top:var(--s5);margin-bottom:var(--s2)}.upload-price strong{font-size:var(--text-lg);font-weight:500}.upload-price .fineprint{font-size:var(--text-xs)}.demo-file-button{color:var(--dark-muted);margin-top:var(--s2)}.file-input{display:none}.file-error{color:#ffbdc4!important;font-size:var(--text-sm)}.section{padding-block:var(--s9)}.tone-section{background:var(--ground)}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--s8);margin-bottom:var(--s7)}.section-heading>p{max-width:44ch;color:var(--muted)}.section-heading h2{max-width:17ch}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s7);list-style:none;padding:0;margin:0;counter-reset:step}.steps li{counter-increment:step;margin:0;padding-top:var(--s5);border-top:1px solid var(--line)}.steps li::before{content:counter(step,decimal-leading-zero);display:block;font-size:var(--text-sm);margin-bottom:var(--s5);color:var(--muted);font-variant-numeric:tabular-nums}.steps h3{font-size:var(--text-lg);margin-bottom:var(--s3)}.steps p{color:var(--muted);max-width:35ch}.capability-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--s9)}.capability-intro h2{max-width:15ch}.capability-intro p{margin-top:var(--s5);color:var(--muted)}.capability-rows{display:grid;gap:0}.capability-row{padding-block:var(--s5);border-bottom:1px solid var(--line)}.capability-row:first-child{padding-top:0}.capability-row h3{font-size:var(--text-lg);margin-bottom:var(--s2)}.capability-row p{color:var(--muted)}.limitations{margin-top:var(--s6);font-size:var(--text-sm);color:var(--muted)}.pricing-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s9);align-items:start}.pricing-copy h2{max-width:15ch}.pricing-copy>p{margin-top:var(--s5);color:var(--muted);max-width:43ch}.price-panel{padding:var(--s7);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-panel)}.price-label{font-weight:500}.price{display:flex;align-items:baseline;gap:var(--s3);margin-block:var(--s4);font-variant-numeric:tabular-nums}.price strong{font-size:clamp(2.5rem,5vw,4rem);font-weight:500;line-height:1;letter-spacing:-.04em;white-space:nowrap}.price span{font-size:var(--text-sm);color:var(--muted)}.price-panel ul{list-style:none;padding:0;margin-block:var(--s5)}.price-panel li{padding-left:var(--s5);position:relative}.price-panel li::before{content:"—";position:absolute;left:0}.risk-copy{font-size:var(--text-sm);line-height:1.7;color:var(--ink);margin-top:var(--s4)}.risk-copy strong{font-weight:600}.faq-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:var(--s9)}.faq details{padding-block:var(--s5);border-bottom:1px solid var(--line)}.faq details:first-child{padding-top:0}.faq summary{display:flex;justify-content:space-between;gap:var(--s5);font-weight:500;list-style:none;font-size:var(--text-lg);line-height:1.45}.faq summary::after{content:"+";flex:none;color:var(--muted)}.faq details[open] summary::after{content:"−"}.faq summary::-webkit-details-marker{display:none}.faq details p{margin-top:var(--s4);color:var(--muted);padding-right:var(--s5)}.site-footer{background:var(--ground);padding-block:var(--s8) var(--s5)}.footer-top{display:flex;justify-content:space-between;gap:var(--s8)}.footer-top p{color:var(--muted);margin-top:var(--s4)}.footer-top nav{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s8);row-gap:var(--s4);align-items:start}.footer-top nav a{font-size:var(--text-sm);text-decoration:none}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin-top:var(--s7);font-size:var(--text-xs);color:var(--muted)}.demo-dialog{width:min(520px,calc(100% - 32px));padding:var(--s6);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--white);color:var(--ink);max-height:90dvh;overflow:auto}.demo-dialog::backdrop{background:rgba(10,16,28,.55)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s4)}.dialog-heading h2{font-size:var(--text-xl)}.demo-dialog p{font-size:var(--text-sm);margin-bottom:var(--s5)}.demo-dialog label{display:block;margin-bottom:var(--s2);font-weight:500}.demo-dialog select{margin-bottom:var(--s4);width:100%}.dialog-actions{display:flex;flex-wrap:wrap;gap:var(--s5);align-items:center;margin-top:var(--s5);font-size:var(--text-sm)}input:not([type=checkbox]):not([type=file]),select,textarea{display:block;max-width:100%;width:100%;background:var(--white);color:var(--ink);border:1px solid var(--control-line);border-radius:var(--radius-small);padding:var(--s3) var(--s4);min-height:48px}input[type=file]{display:block;max-width:100%;width:100%;font-size:var(--text-sm);padding-block:var(--s2)}input[type=file]::file-selector-button{font:inherit;padding:var(--s3) var(--s4);border:1px solid var(--control-line);border-radius:var(--radius-small);background:var(--white);color:var(--ink);margin-right:var(--s3);cursor:pointer}input[type=checkbox]{accent-color:var(--blue);width:20px;height:20px;flex:none;margin:3px 0 0}label{font-weight:500}textarea{resize:vertical;min-height:120px}.field{display:grid;gap:var(--s2)}.field+.field{margin-top:var(--s5)}.field-error{color:var(--error);font-size:var(--text-sm);margin-top:var(--s2)}.check-row{display:flex;align-items:start;gap:var(--s3);font-size:var(--text-sm);line-height:1.6;font-weight:400;cursor:pointer;padding-block:var(--s3)}.check-row>span{display:block}.toast{position:fixed;bottom:var(--s5);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--white);padding:var(--s4) var(--s5);border-radius:var(--radius);z-index:80;max-width:calc(100% - 32px);font-size:var(--text-sm)}.page-heading{padding-top:var(--s8);padding-bottom:var(--s7)}.page-heading h1{max-width:18ch}.page-heading>p{font-size:var(--text-lg);color:var(--muted);margin-top:var(--s5);max-width:58ch}.page-heading.centered{max-width:880px;text-align:center;margin-inline:auto}.page-heading.centered h1{margin-inline:auto;max-width:20ch}.page-heading.centered p{margin-inline:auto}.pricing-main{max-width:1040px;margin-inline:auto;display:grid;grid-template-columns:1fr .9fr;gap:var(--s8);padding-block:var(--s5) var(--s9);align-items:start}.included h2{font-size:var(--text-xl);margin-bottom:var(--s5)}.included dl{margin:0}.included dt{font-weight:500;margin-top:var(--s5)}.included dd{margin:var(--s2) 0 0;color:var(--muted)}.notice{padding:var(--s5);background:var(--ground);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.7}.notice.warning{background:var(--warning-ground);color:var(--warning)}.notice.error{background:var(--error-ground);color:var(--error)}.notice.success{background:var(--success-ground);color:var(--success)}.notice strong{display:block;margin-bottom:var(--s1)}.repair-main{background:var(--ground);padding-block:var(--s7) var(--s9);min-height:70vh}.repair-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--s5);margin-bottom:var(--s6)}.repair-heading h1{font-size:var(--text-2xl);letter-spacing:-.03em}.repair-heading p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--s2)}.job-summary{text-align:right;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.job-summary span{display:block}.paid-label{color:var(--success);font-weight:500}.workflow{display:flex;gap:var(--s6);padding:0;margin:0 0 var(--s6);list-style:none;counter-reset:workflow;flex-wrap:wrap}.workflow li{display:flex;align-items:center;gap:var(--s2);margin:0;color:var(--muted);font-size:var(--text-sm);counter-increment:workflow}.workflow li::before{content:counter(workflow);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);width:24px;height:24px;flex:none;border-radius:50%;font-size:var(--text-xs)}.workflow .current{color:var(--ink);font-weight:500}.workflow .current::before{color:var(--white);background:var(--ink);border-color:var(--ink)}.repair-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s6);align-items:start}.work-panel{background:var(--white);padding:var(--s7);border:1px solid var(--line);border-radius:var(--radius-panel);min-width:0}.work-panel h2{font-size:var(--text-2xl);margin-bottom:var(--s4)}.work-panel>p{color:var(--muted)}.work-panel>.notice{margin-block:var(--s5)}.work-panel .upload-shell{margin-top:var(--s5);padding:var(--s5)}.work-panel .upload-shell .drop-zone{min-height:260px}.work-panel .upload-shell h2{font-size:var(--text-xl);margin:0}.work-panel .upload-shell p{color:var(--dark-muted)}.work-sidebar{display:grid;gap:var(--s5)}.side-panel{padding:var(--s5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}.side-panel h2{font-size:var(--text-base);letter-spacing:0;line-height:1.5;margin-bottom:var(--s3)}.side-panel p,.side-panel li{font-size:var(--text-sm);color:var(--muted)}.side-panel ul{margin:0;padding-left:var(--s4)}.side-panel a{font-size:var(--text-sm)}.file-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s5);background:var(--ground);border-radius:var(--radius);margin-block:var(--s5)}.file-row>div{min-width:0}.file-row strong{display:block;font-weight:500;overflow-wrap:anywhere}.file-row small{display:block;color:var(--muted);margin-top:var(--s1)}.file-badge{flex:none;font-size:var(--text-sm);border:1px solid var(--line);padding:var(--s2);border-radius:var(--radius-small)}.action-row{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s5)}.checkout-total{display:flex;justify-content:space-between;gap:var(--s4);align-items:baseline;margin-block:var(--s5);font-variant-numeric:tabular-nums}.checkout-total strong{font-size:var(--text-2xl);font-weight:500;white-space:nowrap}.payment-policy{padding:var(--s5);background:var(--ground);border-radius:var(--radius);margin-top:var(--s5)}.payment-policy p{font-size:var(--text-sm)}.state-label{font-size:var(--text-sm);font-weight:500;margin-bottom:var(--s4);color:var(--muted)}.state-label.success{color:var(--success)}.state-label.error{color:var(--error)}.state-label.warning{color:var(--warning)}.status-graphic{display:flex;align-items:center;justify-content:center;inline-size:56px;block-size:56px;border-radius:50%;background:var(--ground);font-size:var(--text-xl);margin-bottom:var(--s5)}.status-graphic.success{background:var(--success-ground);color:var(--success)}.status-graphic.warning{background:var(--warning-ground);color:var(--warning)}.status-graphic.error{background:var(--error-ground);color:var(--error)}.progress-track{height:8px;background:var(--soft);border-radius:var(--radius-small);margin-top:var(--s6);overflow:hidden}.progress-track>span{display:block;height:100%;width:var(--progress,40%);background:var(--blue)}.progress-meta{display:flex;justify-content:space-between;gap:var(--s5);margin-top:var(--s3);font-size:var(--text-sm);color:var(--muted)}.status-list{display:grid;gap:var(--s4);list-style:none;padding:0;margin-top:var(--s6)}.status-list li{display:flex;justify-content:space-between;gap:var(--s4);margin:0;padding-bottom:var(--s4);border-bottom:1px solid var(--line);font-size:var(--text-sm)}.status-list span{color:var(--muted)}.media-shell{background:var(--dark);color:var(--white);border-radius:var(--radius);padding:var(--s4);margin-top:var(--s5)}.media-topline{display:flex;justify-content:space-between;gap:var(--s4);font-size:var(--text-xs);margin-bottom:var(--s3);color:var(--dark-muted)}.media-shell video{display:block;width:100%;aspect-ratio:854/480;object-fit:contain;background:#080a0e;border-radius:var(--radius-small)}.media-caption{font-size:var(--text-xs);line-height:1.6;color:var(--dark-muted);margin-top:var(--s3)}.media-caption a{color:var(--white)}.result-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);margin-top:var(--s5)}.result-facts div{font-size:var(--text-sm)}.result-facts strong,.result-facts span{display:block}.result-facts strong{font-weight:500}.result-facts span{color:var(--muted);margin-top:var(--s1)}.manual-offer{border-top:1px solid var(--line);padding-top:var(--s6);margin-top:var(--s6)}.manual-offer h3{font-size:var(--text-lg);margin-bottom:var(--s3)}.manual-offer p{font-size:var(--text-sm);color:var(--muted)}.manual-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s8);padding-bottom:var(--s9);align-items:start}.manual-intro h2{font-size:var(--text-xl);margin-bottom:var(--s4)}.manual-intro ol{padding-left:var(--s5);color:var(--muted)}.manual-intro li+li{margin-top:var(--s5)}.form-panel{background:var(--ground);padding:var(--s7);border-radius:var(--radius-panel)}.form-panel h2{font-size:var(--text-xl);margin-bottom:var(--s4)}.form-panel>p{color:var(--muted);font-size:var(--text-sm);margin-bottom:var(--s5)}.form-panel .notice{background:var(--white)}.form-panel .button{margin-top:var(--s5)}.manual-timeline{padding:0;list-style:none;display:grid;gap:var(--s5);margin-block:var(--s6)}.manual-timeline li{margin:0;display:flex;align-items:start;gap:var(--s4)}.timeline-mark{width:28px;height:28px;display:flex;justify-content:center;align-items:center;flex:none;border-radius:50%;background:var(--success-ground);color:var(--success)}.manual-timeline li strong{display:block;font-weight:500}.manual-timeline li p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--s1)}.guide-hero{display:grid;grid-template-columns:1.2fr .65fr;gap:var(--s8);align-items:end;padding-top:var(--s8);padding-bottom:var(--s7)}.guide-hero h1{font-size:clamp(2.25rem,4vw,3.5rem);max-width:23ch}.guide-hero .lead{font-size:var(--text-lg);color:var(--muted);margin-top:var(--s5)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:var(--s3);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--s5)}.guide-meta{font-size:var(--text-sm);color:var(--muted);padding-bottom:var(--s2)}.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s9);align-items:start;padding-bottom:var(--s9)}.prose{max-width:70ch;font-size:1.0625rem;line-height:1.75}.prose h2{font-size:var(--text-2xl);margin-top:var(--s8);margin-bottom:var(--s5);line-height:1.25}.prose h2:first-child{margin-top:0}.prose h3{font-size:var(--text-lg);margin-top:var(--s6);margin-bottom:var(--s3)}.prose p+p{margin-top:var(--s5)}.prose ol,.prose ul{margin-block:var(--s5);padding-left:var(--s5)}.prose li+li{margin-top:var(--s4)}.prose .notice{margin-block:var(--s6)}.prose code{font-size:.9em;background:var(--ground);padding:2px 4px;border-radius:var(--radius-small);overflow-wrap:anywhere}.prose pre{white-space:pre-wrap;word-break:break-word;background:var(--dark);color:var(--white);border-radius:var(--radius);padding:var(--s5);font-size:var(--text-sm);line-height:1.7}.prose pre code{background:none;color:inherit;padding:0}.prose .source-note{font-size:var(--text-sm);color:var(--muted)}.guide-aside{display:grid;gap:var(--s6)}.toc{padding:var(--s5);background:var(--ground);border-radius:var(--radius)}.toc h2{font-size:var(--text-base);letter-spacing:0;margin-bottom:var(--s4)}.toc a{display:block;font-size:var(--text-sm);text-decoration:none;margin-top:var(--s3)}.guide-cta{padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius)}.guide-cta h2{font-size:var(--text-lg);margin-bottom:var(--s3)}.guide-cta p{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--s5)}.guide-cta .button{font-size:var(--text-sm);padding-inline:var(--s3);width:100%}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);margin-block:var(--s6)}.comparison>div{background:var(--ground);padding:var(--s5);border-radius:var(--radius)}.comparison h3{margin:0 0 var(--s3)}.comparison p{font-size:var(--text-base)}.email-canvas{background:var(--ground);padding-block:var(--s7) var(--s9)}.email-meta{max-width:720px;margin:0 auto var(--s5);font-size:var(--text-sm);color:var(--muted)}.email-card{max-width:720px;margin-inline:auto;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s7)}.email-brand{font-size:var(--text-lg);margin-bottom:var(--s7)}.email-card h1{font-size:var(--text-2xl);line-height:1.3;max-width:22ch;margin-bottom:var(--s5)}.email-card .notice{margin-block:var(--s5)}.email-card .button{margin-block:var(--s5)}.email-card .fineprint{margin-top:var(--s6)}.email-state{display:flex;align-items:center;gap:var(--s2);color:var(--success);font-size:var(--text-sm);font-weight:500;margin-bottom:var(--s5)}.email-footer{border-top:1px solid var(--line);padding-top:var(--s5);margin-top:var(--s6);font-size:var(--text-xs);color:var(--muted)}.noscript{padding:var(--s5);margin-bottom:var(--s5);background:var(--warning-ground);color:var(--warning)}
@media(hover:hover){.button:hover:not(:disabled){background:var(--blue-hover);color:var(--white)}.button.secondary:hover:not(:disabled),.button.quiet:hover:not(:disabled){background:var(--soft);color:var(--ink)}.desktop-nav a:hover,.footer-top a:hover,.toc a:hover,.text-button:hover,.inline-link:hover{color:var(--blue);text-decoration:underline}.header-action:hover{border-color:var(--ink);background:var(--ground)}.dark .text-button:hover{color:var(--white)}.icon-button:hover{background:var(--ground)}}
@media(min-width:1440px){.hero{grid-template-columns:1.1fr 1fr}.hero h1{font-size:4rem}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:var(--s7)}.hero h1{font-size:3.25rem}.upload-shell{padding:var(--s5)}.drop-zone{padding:var(--s5);min-height:300px}.capability-layout,.pricing-layout,.faq-layout{gap:var(--s8)}.repair-grid{grid-template-columns:minmax(0,1fr) 272px}.work-panel{padding:var(--s6)}.pricing-main{gap:var(--s7)}.guide-layout{gap:var(--s8)}.manual-layout{gap:var(--s7)}}
@media(max-width:850px){.desktop-nav{gap:var(--s5)}.hero{grid-template-columns:1fr 1fr;gap:var(--s6);padding-block:var(--s7) var(--s8)}.hero h1{font-size:2.75rem}.hero-description{font-size:var(--text-base)}.drop-zone{padding:var(--s5) var(--s4)}.drop-zone h2{font-size:var(--text-lg)}.upload-shell .button{min-width:0;width:100%;padding-inline:var(--s3);font-size:var(--text-sm)}.upload-shell-heading{align-items:start}.upload-indicator{display:none}.upload-price{flex-direction:column;gap:var(--s1)}.section{padding-block:var(--s8)}.section-heading{gap:var(--s7)}.section-heading h2{font-size:var(--text-2xl)}.steps{gap:var(--s5)}.steps p{font-size:var(--text-sm)}.capability-layout{grid-template-columns:.8fr 1fr;gap:var(--s7)}.capability-intro h2,.pricing-copy h2,.faq-layout h2{font-size:var(--text-2xl)}.pricing-layout{gap:var(--s7)}.price-panel{padding:var(--s6)}.repair-grid{grid-template-columns:minmax(0,1fr)}.work-sidebar{grid-template-columns:1fr 1fr}.pricing-main{grid-template-columns:1fr 1fr;gap:var(--s6)}.manual-layout{grid-template-columns:1fr 1.2fr;gap:var(--s6)}.form-panel{padding:var(--s6)}.guide-hero{grid-template-columns:1fr;gap:var(--s5)}.guide-layout{grid-template-columns:minmax(0,1fr) 224px;gap:var(--s6)}.guide-cta{padding:var(--s4)}.guide-cta .button{font-size:var(--text-xs)}.footer-top{gap:var(--s6)}.footer-top nav{column-gap:var(--s5)}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.notice-detail{display:none}.prototype-strip .wrap{padding-block:var(--s2)}.site-header{min-height:80px;padding-block:var(--s4);gap:var(--s4)}.brand{font-size:1.375rem;gap:var(--s2)}.desktop-nav,.header-action{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{font-size:var(--text-sm);min-height:44px;display:flex;align-items:center;gap:var(--s3);padding-inline:var(--s3);border:1px solid var(--line);border-radius:var(--radius-small);list-style:none}.mobile-menu summary::after{content:"+";font-size:1.25rem}.mobile-menu[open] summary::after{content:"−"}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;top:calc(100% + 8px);right:0;min-width:232px;max-width:calc(100vw - 40px);padding:var(--s4);display:grid;gap:var(--s2);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);z-index:30;box-shadow:0 8px 24px #171a221a}.mobile-menu a{padding:var(--s3) var(--s2);min-height:44px}.hero{grid-template-columns:1fr;gap:var(--s6);padding-top:var(--s6);padding-bottom:var(--s8)}.slogan{margin-bottom:var(--s4);font-size:var(--text-sm)}.hero h1{font-size:clamp(2.375rem,9.5vw,3rem);max-width:15ch}.hero-description{margin-top:var(--s4);max-width:36ch}.hero-note,.format-line{display:none}.upload-shell{padding:var(--s5);border-radius:var(--radius)}.upload-shell-heading{margin-bottom:var(--s4)}.drop-zone{min-height:260px;gap:var(--s3);padding:var(--s5) var(--s4)}.file-glyph{width:36px;height:44px;margin:0}.upload-shell .button{font-size:var(--text-base);min-height:52px}.drop-zone h2{font-size:var(--text-lg)}.upload-price{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--s2)}.section{padding-block:var(--s8)}.section-heading{display:block;margin-bottom:var(--s6)}.section-heading h2{max-width:18ch;margin-bottom:var(--s4)}.steps{grid-template-columns:1fr;gap:var(--s6)}.steps li{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:var(--s4);padding-top:var(--s5)}.steps li::before{grid-row:1/3;margin:0;line-height:1.6}.steps h3{margin-bottom:var(--s2)}.steps p{max-width:none;font-size:var(--text-base)}.capability-layout,.pricing-layout,.faq-layout{grid-template-columns:1fr;gap:var(--s6)}.capability-intro h2{max-width:20ch}.capability-intro p{margin-top:var(--s4)}.capability-row{padding-block:var(--s5)}.pricing-copy h2{max-width:18ch}.pricing-copy p{margin-top:var(--s4)}.price-panel{padding:var(--s5)}.price strong{font-size:3.5rem}.faq summary{font-size:var(--text-base)}.faq details{padding-block:var(--s5)}.site-footer{padding-top:var(--s7)}.footer-top{display:grid;gap:var(--s6)}.footer-top nav{grid-template-columns:1fr;gap:var(--s2)}.footer-top nav a{min-height:44px;display:flex;align-items:center}.footer-bottom{align-items:start;gap:var(--s3);margin-top:var(--s6)}.footer-bottom>span{max-width:23ch;padding-top:var(--s3)}.footer-bottom .text-button{flex:none}.page-heading{padding-top:var(--s7);padding-bottom:var(--s6)}.page-heading h1{font-size:2.5rem}.page-heading>p{font-size:var(--text-base);margin-top:var(--s4)}.page-heading.centered{text-align:left}.page-heading.centered p{margin-left:0}.pricing-main{grid-template-columns:1fr;padding-top:0;gap:var(--s7);padding-bottom:var(--s8)}.pricing-main>.price-panel{order:0}.included{order:1}.repair-main{padding-top:var(--s6);padding-bottom:var(--s8)}.repair-heading{display:grid;gap:var(--s3)}.repair-heading h1{font-size:var(--text-xl)}.job-summary{text-align:left;display:flex;flex-wrap:wrap;gap:var(--s3)}.workflow{gap:var(--s3);justify-content:space-between;margin-bottom:var(--s5)}.workflow li{font-size:var(--text-xs);gap:var(--s1)}.workflow li::before{width:20px;height:20px}.repair-grid{gap:var(--s5)}.work-panel{padding:var(--s5);border-radius:var(--radius)}.work-panel h2{font-size:var(--text-xl)}.work-panel .upload-shell{padding:var(--s4);margin-inline:0}.work-panel .upload-shell .drop-zone{padding:var(--s5) var(--s3);min-height:256px}.work-panel .upload-shell .button{font-size:var(--text-sm)}.work-sidebar{grid-template-columns:1fr}.file-row{padding:var(--s4);gap:var(--s3)}.file-badge{font-size:var(--text-xs)}.action-row{align-items:stretch;gap:var(--s3)}.action-row .button{width:100%}.payment-policy{padding:var(--s4)}.check-row{font-size:var(--text-sm)}.media-shell{padding:var(--s3)}.media-topline{flex-wrap:wrap;gap:var(--s1)}.result-facts{grid-template-columns:1fr;gap:var(--s4)}.manual-layout{grid-template-columns:1fr;gap:var(--s6);padding-bottom:var(--s8)}.form-panel{padding:var(--s5)}.manual-intro ol{margin-bottom:0}.guide-hero{padding-top:var(--s6);padding-bottom:var(--s6)}.guide-hero h1{font-size:2.375rem;max-width:17ch}.guide-hero .lead{font-size:var(--text-base);margin-top:var(--s4)}.guide-layout{display:flex;flex-direction:column;gap:var(--s6);padding-bottom:var(--s8)}.guide-aside{order:0;width:100%}.guide-aside .guide-cta{display:none}.guide-aside .toc{padding:var(--s5)}.prose{order:1;font-size:var(--text-base);max-width:100%}.prose h2{font-size:var(--text-xl);margin-top:var(--s7);margin-bottom:var(--s4)}.prose h3{font-size:var(--text-lg)}.comparison{grid-template-columns:1fr;gap:var(--s4)}.email-canvas{padding-top:var(--s5);padding-bottom:var(--s8)}.email-card{padding:var(--s5)}.email-card h1{font-size:var(--text-xl)}.email-brand{margin-bottom:var(--s6)}.demo-dialog{padding:var(--s5)}.dialog-heading h2{font-size:var(--text-lg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button:active{transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Primary-agent visual refinements after preserving the OpenDesign source. */
.drop-zone input.file-input { display:none; }
@media (min-width:1101px) { .hero h1 { font-size:3.5rem; max-width:none; } }
@media (min-width:1001px) and (max-width:1100px) { .hero h1 { font-size:2.75rem; max-width:none; } }
@media (min-width:701px) and (max-width:1000px) { .hero { grid-template-columns:1fr; gap:32px; } .hero h1 { font-size:3rem; max-width:none; } }
@media (max-width:700px) { .hero h1 { font-size:2rem; max-width:none; } }

/* Preserve readable prices when text is enlarged. */
.pricing-layout > *, .pricing-main > * { min-width:0; }
.price, .checkout-total { flex-wrap:wrap; }
.price .price-currency { font-size:1rem; font-weight:500; letter-spacing:0; }
/* Live workflow controls use the approved prototype's typography and spacing. */
input.file-input { display:none; }
.recovery-link { margin-top:var(--s6); overflow-wrap:anywhere; }
.recovery-link input { display:block; width:100%; min-width:0; margin-top:var(--s3); padding:12px; font:inherit; border:1px solid var(--line,#d9dde3); }
.reference-box { margin:24px 0; padding:20px; border:1px solid var(--line,#d9dde3); }
.reference-box h3 { margin-bottom:8px; }
.repair-progress { padding:24px 0; color:var(--blue,#2458F5); }
[aria-busy=true] { opacity:.8; }
.analytics-consent { position:fixed; z-index:20; right:20px; bottom:20px; width:min(440px,calc(100% - 40px)); padding:20px; background:var(--paper,#fff); color:var(--ink,#15202b); border:1px solid var(--line,#d9dde3); }
.analytics-consent p { margin:0 0 16px; font-size:.9375rem; line-height:1.5; }
.analytics-consent > div { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.analytics-consent .button { padding:10px 14px; min-height:44px; font-size:.875rem; }
.analytics-consent a { font-size:.875rem; text-decoration:underline; }
.site-footer nav .text-button { align-self:flex-start; font:inherit; color:inherit; }
@media (max-width:440px) { .analytics-consent { right:12px; bottom:12px; width:calc(100% - 24px); padding:16px; } }
