/* Shared editorial surfaces; green remains the model-selection accent. */
:root { --paper:#faf8f4; --ink:#062a18; --green:#008b24; --muted:#616660; --border:#d9dcd5; color:var(--ink); background:var(--paper); }
:focus-visible { outline:2px solid #087333; outline-offset:4px; }
.home { --home-gutter:32px; max-width:none; padding:24px var(--home-gutter) 48px; }
.site-header { min-height:56px; padding-bottom:20px; }
.site-name { font-size:22px; letter-spacing:-1px; }
.site-header nav { gap:36px; }
.site-header nav>a::before { content:"+"; margin-right:10px; color:var(--muted); }
.header-scan { border-radius:100px; padding-inline:18px; border-color:#aeb5aa; }
.welcome { grid-template-columns:minmax(0,1.65fr) minmax(0,.9fr); gap:32px; padding:48px 0; align-items:center; }
.welcome-eyebrow { color:var(--muted); font-size:12px; margin:0 0 24px; letter-spacing:.06em; }
.welcome h1 { font-size:clamp(48px,5.7vw,88px); line-height:.99; letter-spacing:-.065em; font-weight:650; text-wrap:initial; }
.welcome-intro { align-self:end; justify-self:end; max-width:360px; padding-bottom:0; }
.welcome-description { color:#4b514b; font-size:15px; line-height:1.6; margin:0 0 24px; }
.welcome-action { border-radius:0 100px 100px 100px; background:#063d1d; margin-top:44px; min-height:56px; font-size:16px; padding:16px 28px; gap:24px; white-space:nowrap; }
.welcome-action:hover { background:#09502a; }
.welcome-panorama { margin:0 calc(-1 * var(--home-gutter)) 32px; }
.welcome-panorama img { display:block; width:100%; height:auto; aspect-ratio:3.3 / 1; object-fit:cover; }
.catalog-tools { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; }
.home .catalog-search-form { width:360px; max-width:42%; flex-shrink:0; }
.catalog-search-field { height:48px; border-radius:4px; border-color:#aeb5aa; background:transparent; }
.catalog-filters { margin:0; padding:0; gap:8px; }
.catalog-filters button { min-height:44px; padding:9px 16px; border-radius:100px; border-color:transparent; }
.catalog-filters button[aria-pressed=true] { background:var(--green); border-color:var(--green); }
.catalog-filters button:hover:not([aria-pressed=true]) { background:#e9ece5; }
.home .catalog-heading { margin:28px 0 20px; }
.catalog-heading h2 { font-size:38px; font-weight:650; letter-spacing:-.04em; }
#catalog-count { align-self:center; color:#515750; border:1px solid var(--border); border-radius:100px; padding:1px 9px; }
.model-grid { gap:24px; }
.model-card a { border:0; border-radius:0; background:transparent; overflow:visible; }
.model-card-picture { border-radius:4px; background:#efeee9; overflow:hidden; }
.model-card-copy { position:relative; padding:18px 36px 18px 0; border-bottom:1px solid var(--border); flex:1; }
.model-card-copy::after { content:"↗"; position:absolute; right:2px; top:14px; font-size:24px; font-weight:400; }
.model-card-name { font-size:18px; font-weight:550; letter-spacing:-.025em; text-wrap:initial; }
.model-card-meta { color:var(--muted); font-size:13px; }
.model-card-badge { top:12px; right:12px; padding:7px 9px; border-radius:100px; }
.model-card a:hover .model-card-copy { border-color:#606d5e; }
.catalog-footer { margin-top:24px; }
.qr-dialog,.exit-dialog { border-radius:16px; border-color:var(--border); box-shadow:0 24px 80px #17201925; }
.qr-dialog .primary-button,.exit-dialog .primary-button { background:#063d1d; }
.exit-dialog p { color:#525a51; }
.viewer .circle-button,.viewer .view-tool { min-width:44px; min-height:44px; border:1px solid #d9dcd5; box-shadow:0 2px 6px #17201908; }
.viewer .sidebar-close { width:44px; height:44px; top:16px; right:12px; }
.viewer .bottom-menu { border:1px solid #d9dcd5; box-shadow:0 4px 20px #17201908; }
.viewer .settings-option,.viewer .settings-action,.viewer .palette-setting { border-radius:8px; border-color:#d9dcd5; }
.viewer .settings-option,.viewer .settings-action { min-height:60px; }
.viewer .settings-option:hover,.viewer .settings-action:hover { background:#f0f3ed; border-color:#9ca995; }
.viewer .spec-row { border-bottom-color:#e0e4dc; }
.viewer .spec-row__sub,.viewer .settings-feedback,.viewer .palette-setting p { color:#616660; }
.viewer .selected-card { border-color:#cdd4c7; border-radius:12px; box-shadow:0 8px 32px #17201912; }
.viewer .instruction-banner { background:#002809; }
.viewer .instruction-banner .passport-wave { display:none; }
@media(min-width:1100px) and (hover:hover) and (pointer:fine) {
  .viewer .bottom-menu { border-radius:100px; }
  .viewer .bottom-menu button { border-radius:100px; }
}
@media(max-width:1100px) {
  .welcome { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px; padding:40px 0; }
  .welcome-copy { grid-column:1; }
  .welcome-intro { grid-column:2; padding:0; }
  .welcome h1 { font-size:clamp(44px,6vw,64px); }
  .welcome-eyebrow { margin-bottom:16px; }
  .catalog-tools { flex-direction:column; align-items:stretch; gap:16px; }
  .home .catalog-search-form { width:100%; max-width:none; }
}
@media(max-width:600px) {
  .home { --home-gutter:20px; padding:18px var(--home-gutter) 32px; }
  .site-name { font-size:19px; }
  .site-header nav { gap:14px; }
  .site-header nav>a { display:none; }
  .header-scan { padding-inline:12px; }
  .welcome { display:block; padding:24px 0; }
  .welcome h1 { font-size:clamp(38px,10.5vw,60px); line-height:1.04; letter-spacing:-.055em; }
  .welcome-action { margin-top:24px; }
  .welcome-intro { margin-top:20px; margin-left:0; max-width:none; justify-self:start; }
  .welcome-panorama { margin-bottom:0; }
  .welcome-panorama img { height:200px; aspect-ratio:auto; object-position:center; }
  .welcome-description { max-width:none; font-size:15px; margin:0; text-align:left; }
  .catalog-tools { padding:20px 0 8px; gap:16px; }
  .home .catalog-heading { margin:8px 0 20px; }
  .catalog-filters { gap:4px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding:4px; margin:-4px; }
  .catalog-filters button { flex:0 0 auto; padding-inline:13px; font-size:13px; }
  .model-grid { gap:24px 14px; }
  .model-card-copy { padding:12px 18px 14px 0; }
  .model-card-copy::after { font-size:18px; top:10px; right:0; }
  .model-card-name { font-size:15px; }
  .model-card-meta { font-size:12px; }
  .model-card-badge { top:8px; right:8px; padding:5px 7px; }
  .catalog-heading h2 { font-size:30px; }
  .exit-dialog { border-radius:20px 20px 0 0; }
}
@media(prefers-reduced-motion:no-preference) {
  .viewer :is(#panel-details,#panel-settings):not([hidden]) {
    opacity:1;
    transition:opacity 200ms cubic-bezier(0.23,1,0.32,1);
  }
  .viewer:has(.tab:focus-visible) :is(#panel-details,#panel-settings) { transition:none; }
  @starting-style {
    .viewer :is(#panel-details,#panel-settings):not([hidden]) { opacity:0; }
  }
  .header-scan,.welcome-action,.catalog-filters button,.viewer .settings-action { transition:background-color .18s ease,border-color .18s ease; }
  html { scroll-behavior:smooth; }
  html:has(:focus-visible) { scroll-behavior:auto; }
  :is(.site-header nav>a,.header-scan,.welcome-action,.catalog-filters button,
      .viewer .bottom-menu button,.viewer .spec-switch button,.viewer .circle-button,
      .viewer .view-tool,.viewer .settings-action,.viewer .selection-menu button,
      .viewer .view-presets button,.primary-button,.secondary-button,.exit-dialog-cancel) {
    transition:scale 160ms cubic-bezier(0.23,1,0.32,1),opacity 160ms cubic-bezier(0.23,1,0.32,1);
  }
  :is(.site-header nav>a,.header-scan,.welcome-action,.catalog-filters button,
      .viewer .bottom-menu button,.viewer .spec-switch button,.viewer .circle-button,
      .viewer .view-tool,.viewer .settings-action,.viewer .selection-menu button,
      .viewer .view-presets button,.primary-button,.secondary-button,.exit-dialog-cancel):active:not(:disabled):not(:focus-visible) {
    scale:.97;
    opacity:.82;
  }
}
