/* Royal Grodno: shared navy/orange language with the public website. */
body {
  --bg: #f6f5f1;
  --paper: #ffffff;
  --ink: #081333;
  --muted: #5c6476;
  --line: #d9dce5;
  --green: #071333;
  --accent: #b05b21;
  --soft: #edf0f6;
}
body.dark {
  --bg: #070e2d;
  --paper: #101b3b;
  --ink: #f8f9fc;
  --muted: #bec6d8;
  --line: #374360;
  --green: #f4b561;
  --accent: #f4b561;
  --soft: #19254a;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline-color: #f4b561;
}
.sidebar {
  background: #070e2d;
  color: #f8f9fc;
}
.sidebar nav a,
.side-caption,
.side-bottom,
.side-bottom div {
  color: #c6cee2;
}
.sidebar nav a.active {
  background: #24345f;
  color: #ffffff;
}
.wordmark span,
.dot {
  color: #f4b561;
  background-color: #f4b561;
}
.wordmark span {
  background: none;
}
.photo-caption {
  color: #081333;
}
dialog::backdrop {
  background: #070e2db3;
}
.toast {
  background: #101b3b;
}
.catalog-reset {
  min-height: 38px;
  padding: 6px 12px;
  margin: 0 0 16px;
  font-size: 12px;
}
.catalog-reset:hover,
.catalog-reset:focus-visible {
  border-color: var(--accent);
}
.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.contact-primary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border-color: var(--accent);
}
.contact-primary h2 { font-size: clamp(23px, 2.4vw, 30px); }
.contact-primary-actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
@media (max-width: 1100px) {
  .contact-primary { display: block; }
  .contact-primary-actions { margin-top: 16px; }
}
.contact-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
}
.contact-card h2 {
  font-size: clamp(23px, 2.4vw, 29px);
}
.contact-card .status-chip {
  margin-top: auto;
  align-self: flex-start;
}
.chip-row a.chip {
  display: inline-flex;
  align-items: center;
}
@media (max-width: 760px) {
  .contact-primary { display: block; }
  .contact-primary-actions { margin-top: 16px; }
  .contact-primary-actions .button { width: 100%; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-card { min-height: 0; gap: 9px; }
  .contact-card .status-chip { margin-top: 8px; }
}
@media (max-width: 760px) {
  .bottom-nav {
    background: #070e2d;
  }
  .bottom-nav a {
    color: #c6cee2;
  }
  .bottom-nav a.active {
    color: #f4b561;
    background: #1b2851;
  }
}
/* Keep the resident catalogue compact without hiding search results. */
.tenant-card .card-open {
  display: inline-block;
  margin-top: 12px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
}
.tenant-card:hover { border-color: var(--accent); }
.tenant-card h3.long-title { font-size: 13px; letter-spacing: -.25px; }
.catalog-reset[hidden] { display: none; }
#tenant-more { margin: 18px 0 24px; text-align: center; }
#tenant-more .button { min-width: 190px; }
@media (max-width: 760px) {
  .resident-categories {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: 2px 2px 8px;
    scrollbar-width: thin;
  }
  .resident-categories .chip { flex: none; }
}
/* Visitor app v13: legibility, consistent controls, and compact mobile catalogue. */
#content:focus { outline: none; }
.nav-symbol svg { display: block; width: 21px; height: 21px; margin: 0 auto; }
.sidebar .nav-symbol svg { margin: 0; }
.button, .chip, .catalog-reset { min-height: 44px; }
.button { font-weight: 650; }
.field { font-size: 13px; }
.field input, .field select, .field textarea { font-size: 16px; }
.tenant-card .meta { font-size: 12px; line-height: 1.4; }
@media (max-width: 760px) {
  .hero p, .page-head p { font-size: 15px; line-height: 1.55; }
  .quick-card p, .service-card p { font-size: 14px; line-height: 1.5; }
  .bottom-nav a { min-height: 54px; font-size: 11px; }
  .bottom-nav .nav-symbol { line-height: 1; margin-bottom: 3px; }
  .bottom-nav .nav-symbol svg { width: 22px; height: 22px; }
  .tenant-grid { grid-template-columns: 1fr; gap: 9px; }
  .tenant-card {
    min-height: 112px;
    padding: 14px 56px 14px 14px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 11px;
    align-content: center;
  }
  .tenant-card .monogram { grid-column: 1; grid-row: 1 / span 4; width: 38px; height: 38px; margin: 0; font-size: 18px; }
  .tenant-card h3, .tenant-card h3.long-title { grid-column: 2; font-size: 16px; line-height: 1.3; }
  .tenant-card .category { grid-column: 2; margin: 3px 0 0; font-size: 12px; }
  .tenant-card .meta { grid-column: 2; margin-top: 5px; font-size: 12px; }
  .tenant-card .card-open { grid-column: 2; margin-top: 6px; font-size: 12px; }
  .tenant-card .save { right: 7px; top: 8px; }
}
/* Visitor app v14: compact, task-led More tab. */
.more-intro{display:flex;align-items:center;gap:14px;padding:15px 18px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;margin:0 0 26px;max-width:920px}
.more-intro-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:var(--soft);color:var(--accent)}
.more-intro-icon svg,.more-icon svg{width:23px;height:23px;display:block}
.more-intro strong{font:600 17px/1.25 Georgia,serif;letter-spacing:-.2px}
.more-intro p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45;max-width:650px}
.more-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px;max-width:1100px}
.more-group h2{font:700 11px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.more-list{display:grid;gap:8px}
.more-item{display:flex;align-items:center;gap:14px;min-height:92px;padding:15px 17px;border:1px solid var(--line);border-radius:12px;background:var(--paper);transition:border-color .18s,transform .18s,box-shadow .18s}
.more-item:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 22px #07133312}
.more-item:focus-visible{outline:3px solid #f4b561;outline-offset:3px}
.more-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;background:var(--soft);color:var(--accent)}
.more-copy{display:grid;gap:3px;min-width:0}
.more-copy strong{font:600 clamp(17px,1.5vw,20px)/1.2 Georgia,serif;letter-spacing:-.35px;color:var(--ink)}
.more-copy small{font:13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--muted)}
.more-arrow{margin-left:auto;align-self:center;font-size:20px;color:var(--accent);line-height:1}
@media(max-width:900px){.more-groups{grid-template-columns:1fr;gap:23px}}
@media(max-width:760px){.more-intro{padding:13px;gap:11px;margin-bottom:23px}.more-intro-icon{width:36px;height:36px}.more-intro strong{font-size:16px}.more-intro p{font-size:12px}.more-item{min-height:80px;padding:13px;gap:12px}.more-icon{width:42px;height:42px}.more-copy strong{font-size:17px}.more-copy small{font-size:12px}.more-arrow{font-size:18px}}
@media(max-width:340px){.more-item{gap:9px}.more-icon{width:38px;height:38px}.more-copy small{font-size:11px}}
@media(prefers-reduced-motion:reduce){.more-item{transition:none}.more-item:hover{transform:none}}
/* Visitor app v15: clear recovery from empty search results. */
.catalog-empty{max-width:620px;margin:12px 0 22px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-align:left}
.catalog-empty h3{font:600 24px/1.2 Georgia,serif;letter-spacing:-.4px}
.catalog-empty p{color:var(--muted);font-size:14px;line-height:1.5;margin:8px 0 17px}
.catalog-empty .button{min-height:44px}
@media(max-width:760px){.catalog-empty{padding:19px}.catalog-empty h3{font-size:21px}.catalog-empty .button{width:100%}#resident-dialog .dialog-actions .button{min-height:44px}}
@media(max-width:760px){.catalog-toolbar .filter-grow{flex:1 0 100%;min-width:0}.catalog-toolbar .field:not(.filter-grow){flex:1 1 calc(50% - 5px);min-width:0}.catalog-toolbar .field select{min-width:0}}
/* Visitor app v16: turn Discover into a useful place-led journey. */
.discover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.discover-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;overflow:hidden;min-width:0}
.discover-card img{width:100%;height:clamp(190px,21vw,300px);object-fit:cover}
.discover-card-body{padding:22px}
.discover-card h2{font-size:clamp(25px,2.6vw,36px);margin:3px 0 8px}
.discover-card p{font-size:14px;color:var(--muted);line-height:1.5;min-height:42px}
.discover-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.discover-actions .button{min-height:44px}
.discover-updates{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:33px 0 14px;padding:24px;background:var(--soft);border:1px solid var(--line);border-radius:13px}
.discover-updates h2{font-size:clamp(25px,2.5vw,32px)}
.discover-updates p{max-width:650px;color:var(--muted);font-size:14px;line-height:1.5}
.discover-updates .button{flex:none}
@media(max-width:760px){.discover-grid{grid-template-columns:1fr;gap:14px}.discover-card img{height:210px}.discover-card-body{padding:18px}.discover-card h2{font-size:28px}.discover-card p{min-height:0}.discover-actions .button{flex:1 1 100%}.discover-updates{display:block;padding:19px}.discover-updates .button{width:100%;margin-top:10px}}
/* Visitor app v17: legible address history and compact city guide. */
.history-addresses{margin-bottom:18px}
.history-intro{position:relative;overflow:hidden;padding:clamp(22px,4vw,46px);margin:0 0 32px;border-radius:15px;background:linear-gradient(125deg,#0d183a,#1e3158);color:#fff}
.history-intro:after{content:'10 / 14';position:absolute;right:24px;bottom:-18px;font:700 clamp(75px,13vw,180px)/1 Georgia,serif;letter-spacing:-.08em;color:#ffffff0b;pointer-events:none}
.history-intro-copy{position:relative;z-index:1;max-width:760px}
.history-intro .service-label{color:#f4b561}
.history-intro h2{color:#fff;font:600 clamp(29px,4vw,48px)/1.08 Georgia,serif;letter-spacing:-.04em;margin:14px 0}
.history-intro p{color:#e0e5ef;max-width:680px;font-size:clamp(15px,1.5vw,18px);line-height:1.65}
.history-intro .audio-bar{margin:20px 0 8px;display:flex;flex-wrap:wrap;gap:8px}
.history-intro .button.secondary{background:#f4b561;color:#111d3f;border-color:#f4b561}
.history-intro .button.ghost{border-color:#a5b0ca;color:#fff}
.history-intro .local-tag{color:#c6cfe2}
.history-compare{max-width:1000px;gap:14px}
.history-compare figure{overflow:hidden;border-radius:12px;background:var(--paper)}
.history-compare img{width:100%;height:clamp(190px,22vw,290px);object-fit:cover}
.history-compare figcaption{padding:10px 14px;font-size:12px;line-height:1.4}
.history-section-hint{color:var(--muted);font-size:13px}
.history-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1100px;margin-bottom:30px}
.history-timeline article{display:block;min-width:0;padding:19px 20px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.history-timeline .period{display:flex;align-items:center;gap:10px;color:var(--accent);font-weight:700;font-size:12px;letter-spacing:.04em;margin-bottom:10px}
.history-event-no{color:#9aa6b9;font-size:12px}
.history-timeline h3{font-size:clamp(17px,1.8vw,22px);line-height:1.25;margin:0 0 8px}
.history-timeline p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.history-gallery{max-width:1100px}
.history-gallery figure{overflow:hidden;border-radius:12px;background:var(--paper)}
.history-gallery img{width:100%;height:clamp(180px,20vw,265px);object-fit:contain;background:#e7e3db}
.history-gallery figcaption{padding:9px 12px;font-size:12px;line-height:1.4}
.history-nearby{margin:42px 0 20px}
.history-nearby-head{max-width:690px;margin-bottom:20px}
.history-nearby-head h2{font:600 clamp(29px,3.5vw,43px)/1.1 Georgia,serif;letter-spacing:-.04em;margin:9px 0}
.history-nearby-head p{font-size:15px;line-height:1.55;color:var(--muted)}
.nearby-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nearby-card{position:relative;min-width:0;padding:23px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.nearby-number{float:right;color:#d8b173;font:600 32px/1 Georgia,serif}
.nearby-card h3{font:600 clamp(20px,2.3vw,27px)/1.2 Georgia,serif;letter-spacing:-.02em;margin:9px 0}
.nearby-card p{font-size:14px;line-height:1.5;color:var(--muted);min-height:43px}
.nearby-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:19px;font-size:13px;font-weight:650}
.nearby-actions a{color:var(--accent);text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}
.nearby-actions a:focus-visible{outline:3px solid #f4b561;outline-offset:3px}
@media(max-width:760px){.history-intro{padding:23px;margin-bottom:26px}.history-intro:after{font-size:88px;right:15px;bottom:-7px}.history-intro h2{font-size:31px}.history-intro p{font-size:15px}.history-intro .button{flex:1 1 auto}.history-compare{grid-template-columns:1fr}.history-compare img{height:210px}.history-timeline,.nearby-grid{grid-template-columns:1fr}.history-timeline article{padding:17px}.history-gallery img{height:210px}.nearby-card{padding:19px}.nearby-card p{min-height:0}}
/* Visitor app v18: distinct home journeys and a self-guided town walk. */
.hero-shortcuts{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 17px;font-size:13px;font-weight:700}
.hero-shortcuts a{min-height:44px;display:inline-flex;align-items:center;color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.home-walk{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(200px,.8fr);gap:28px;align-items:center;margin:27px 0 9px;padding:clamp(22px,2.6vw,30px);border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink)}
.home-walk .service-label{color:var(--accent)}
.home-walk h2{font:600 clamp(26px,2.6vw,34px)/1.14 Georgia,serif;letter-spacing:-.03em;margin:6px 0 8px;color:var(--ink)}
.home-walk p{color:var(--muted);font-size:14px;line-height:1.5;max-width:580px}
.home-walk .button{display:inline-flex;align-items:center;min-height:44px;margin-top:7px;padding:0;border:0;background:transparent;color:var(--accent);font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;box-shadow:none}
.home-walk ol{list-style:none;display:flex;gap:7px;align-content:center;flex-wrap:wrap;margin:0;padding:0}
.home-walk li{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--ink);font:500 12px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.home-walk li:before{content:none}
.walk-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(225px,.52fr);gap:24px;padding:clamp(22px,3vw,38px);border-radius:14px;background:#101c41;color:#fff;margin:0 0 24px}
.walk-summary .service-label{color:#f4b561}
.walk-summary h2{font:600 clamp(29px,3.4vw,43px)/1.1 Georgia,serif;letter-spacing:-.04em;color:#fff;margin:9px 0}
.walk-summary p{color:#d8e0ee;font-size:15px;line-height:1.55;max-width:640px}
.walk-map-actions{display:grid;align-content:center;gap:9px}
.walk-map-actions .button{min-height:48px;text-align:center;justify-content:center}
.walk-map-actions .button:first-child{background:#f4b561;color:#0b1737;border-color:#f4b561}
.walk-map-actions .button.secondary{background:transparent;color:#fff;border-color:#9da9c2}
.walk-stops{list-style:none;counter-reset:stop;margin:0;padding:0;max-width:1020px}
.walk-stops li{display:grid;grid-template-columns:66px minmax(0,1fr);gap:15px;position:relative}
.walk-stops li:not(:last-child):before{content:'';position:absolute;left:29px;top:62px;bottom:-2px;width:2px;background:var(--line)}
.walk-stop-index{z-index:1;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#f4b561;color:#0b1737;font:700 16px Georgia,serif}
.walk-stop-body{padding:2px 0 29px}
.walk-stop-body h2{font:600 clamp(21px,2.4vw,29px)/1.2 Georgia,serif;letter-spacing:-.02em;margin:5px 0}
.walk-stop-body p{color:var(--muted);font-size:14px;line-height:1.55;margin:5px 0 9px;max-width:680px}
.walk-stop-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;font-weight:650}
.walk-stop-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.walk-note{max-width:1020px;margin:6px 0 20px;padding:20px 24px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.walk-note strong{font:600 21px Georgia,serif}.walk-note p{color:var(--muted);font-size:14px;line-height:1.5}.walk-note a{color:var(--accent);font-size:13px;font-weight:700;text-decoration:underline}
@media(max-width:760px){.hero-shortcuts{gap:8px 15px}.home-walk,.walk-summary{grid-template-columns:1fr;gap:11px}.home-walk{padding:20px;margin-top:20px}.home-walk h2{font-size:27px}.home-walk p{font-size:14px;margin:8px 0}.home-walk ol{margin:2px 0 0}.home-walk .button{width:auto}.walk-map-actions .button{width:100%}.walk-summary{padding:22px}.walk-stops li{grid-template-columns:48px minmax(0,1fr);gap:12px}.walk-stops li:not(:last-child):before{left:22px;top:49px}.walk-stop-index{width:45px;height:45px;font-size:13px}.walk-stop-body{padding-bottom:21px}.walk-stop-links{gap:4px 14px}.walk-note{padding:18px}}
@media(max-width:760px){.hero h1{font-size:clamp(40px,11vw,45px)}.hero-photo{min-height:265px}.photo-caption{left:12px;bottom:12px;padding:7px 10px;border-radius:5px;background:#fffffff0;font-size:10px;letter-spacing:.08em}}
/* Visitor app v19: lighter first-screen composition and mobile navigation. */
@media(max-width:760px){.bottom-nav{background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -8px 24px #0813330c}.bottom-nav a{color:var(--muted)}.bottom-nav a.active{color:var(--accent);background:var(--soft)}}
/* Visitor app v20: concise actions and consistent pictograms. */
.quick-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.quick-card .symbol{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--accent);font-size:0}
.quick-card .symbol svg{display:block;width:22px;height:22px}
.quick-card h3{margin-top:7px}
.quick-card p{margin:0;color:var(--muted)}
.quick-card .quick-action{display:inline-flex;align-items:center;min-height:44px;margin-top:auto;color:var(--accent);font-size:13px;font-weight:700}
.quick-card:hover .quick-action,.quick-card:focus-visible .quick-action{text-decoration:underline;text-underline-offset:3px}
.home-history .service-card{display:flex;flex-direction:column;min-height:174px}
.home-history .service-card h3{margin:8px 0 4px}
.home-history .service-card p{margin:0;color:var(--muted)}
.home-history .service-card>span{margin-top:auto;padding-top:10px;color:var(--accent);font-size:13px;font-weight:700}
@media(max-width:760px){.quick-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:2px 13px;min-height:0;padding:15px}.quick-card .symbol{grid-row:1/4;grid-column:1;width:38px;height:38px}.quick-card h3{grid-column:2;margin:0}.quick-card p{grid-column:2;margin:0}.quick-card .quick-action{grid-column:2;min-height:34px;margin:0}.home-history .service-card{min-height:0;padding:18px}.home-history .service-card h3{font-size:20px}}
/* Visitor app v21: Topaz is the only 3D project basis. */
.topaz-intro{display:flex;align-items:center;gap:16px;margin:0 0 16px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.topaz-intro .service-label{flex:none;color:var(--accent)}
.topaz-intro p{margin:0;color:var(--muted);font-size:14px}
.topaz-buildings{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}
.topaz-buildings button{min-height:44px;padding:9px 17px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:650}
.topaz-buildings button[aria-pressed=true]{border-color:var(--accent);background:var(--soft);color:var(--accent)}
.topaz-buildings button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.map-layout.topaz-only{display:block}
.map-layout.topaz-only .map-frame{display:block;width:100%;height:640px;min-height:640px}
.map-layout.topaz-only .route-actions{margin-top:12px}
@media(max-width:760px){.topaz-intro{display:block;padding:15px}.topaz-intro p{margin:7px 0 0}.topaz-buildings{display:grid;grid-template-columns:1fr 1fr}.topaz-buildings button{padding:8px}.map-layout.topaz-only .map-frame{min-height:690px}}
/* Visitor app v22: consistent navigation icons and comfortable reading/tap sizes. */
.sidebar nav a{min-height:46px;line-height:1.25}
.sidebar .nav-symbol{flex:none;width:21px}
.page-head h1{font-size:clamp(34px,3.8vw,48px);line-height:1.1;letter-spacing:-.035em}
.page-head p{font-size:clamp(14px,1.15vw,16px);line-height:1.55}
.section-head a,.footer a{display:inline-flex;align-items:center;min-height:44px}
.section-head a{font-weight:650;color:var(--accent)}
.section-head a:hover,.section-head a:focus-visible,.footer a:hover,.footer a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.top-actions button{width:44px;height:44px}
.button,.chip,.topaz-buildings button{transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.button:hover,.topaz-buildings button:hover{border-color:var(--accent)}
.button:active,.chip:active,.topaz-buildings button:active{transform:translateY(1px)}
@media(max-width:760px){
  .page-head h1{font-size:clamp(31px,9vw,39px)}
  .section-head{align-items:center}
  .section-head a{max-width:92px;text-align:right;line-height:1.25}
  .top-actions button{width:44px;height:44px}
  .bottom-nav a{min-height:58px}
}
@media(prefers-reduced-motion:reduce){.button,.chip,.topaz-buildings button{transition:none}}
/* Visitor app v23: keep the walking route airy and easy to scan. */
.walk-summary{grid-template-columns:minmax(0,1fr) minmax(230px,.55fr);gap:24px;padding:clamp(21px,2.6vw,30px);background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 25px #08133308}
.walk-summary .service-label{color:var(--accent);margin-bottom:7px}
.walk-summary h2{color:var(--ink);font-size:clamp(25px,2.8vw,34px);line-height:1.15;margin:4px 0 8px}
.walk-summary p{color:var(--muted);font-size:14px;line-height:1.5;margin:0;max-width:540px}
.walk-map-actions{gap:8px}
.walk-map-actions .button{min-height:48px;padding:10px 14px;font-size:13px}
.walk-map-actions .button:first-child{background:#f4b561;color:#0b1737;border-color:#f4b561}
.walk-map-actions .button.secondary{background:var(--paper);color:var(--ink);border-color:var(--line)}
@media(max-width:760px){
  .walk-summary{grid-template-columns:1fr;gap:17px;padding:20px;margin-bottom:25px}
  .walk-summary h2{font-size:27px}
  .walk-summary p{font-size:14px}
  .walk-map-actions{grid-template-columns:1fr 1fr;gap:7px}
  .walk-map-actions .button{font-size:12px;line-height:1.3;min-height:54px;padding:8px 10px}
}
@media(max-width:380px){.walk-map-actions{grid-template-columns:1fr}.walk-map-actions .button{min-height:48px}}
/* Visitor app v24: a lighter, faster-to-scan walking guide. */
.walk-stops{max-width:900px;margin:4px 0 24px}
.walk-stops li{grid-template-columns:44px minmax(0,1fr);gap:17px;padding:17px 0 19px;border-bottom:1px solid var(--line)}
.walk-stops li:not(:last-child):before{left:19px;top:56px;bottom:-17px;width:1px;background:var(--line)}
.walk-stop-index{width:39px;height:39px;border:1px solid #f4b561;background:var(--paper);color:var(--accent);font:700 12px/1 Georgia,serif}
.walk-progress{margin:24px 0 8px;color:var(--muted);font:400 14px/20px Manrope,sans-serif;text-wrap:pretty}
button.walk-stop-index{padding:0;cursor:pointer;transition:background .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1)}
button.walk-stop-index:hover{transform:scale(1.06)}
button.walk-stop-index:active{transform:scale(.98)}
button.walk-stop-index:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
button.walk-stop-index[aria-pressed="true"]{background:#f4b561;color:#0b1737}
@media(prefers-reduced-motion:reduce){button.walk-stop-index{transition:none}button.walk-stop-index:hover,button.walk-stop-index:active{transform:none}}
.walk-stop-body{padding:0}
.walk-stop-body .service-label{display:block;margin:1px 0 2px;font-size:10px;letter-spacing:.1em}
.walk-stop-body h2{font-size:clamp(20px,2vw,25px);line-height:1.2;margin:0 0 3px}
.walk-stop-body p{font-size:13.5px;line-height:1.5;margin:0 0 11px;max-width:650px}
.walk-stop-links{gap:7px;font-size:12px}
.walk-stop-links a{min-height:40px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);text-decoration:none;line-height:1.2}
.walk-stop-links a:hover,.walk-stop-links a:focus-visible{border-color:var(--accent);color:var(--accent);text-decoration:none}
.walk-note{max-width:900px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 18px;align-items:center;padding:17px 20px;background:var(--paper);border-left:3px solid #f4b561}
.walk-note strong{font-size:19px;line-height:1.2}
.walk-note p{grid-column:1;font-size:13px;line-height:1.45;margin:6px 0 0}
.walk-note a{grid-column:2;grid-row:1/3;display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}
.walk-note a:hover,.walk-note a:focus-visible{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  .walk-stops{margin-top:0}
  .walk-stops li{grid-template-columns:33px minmax(0,1fr);gap:12px;padding:13px 0 15px}
  .walk-stops li:not(:last-child):before{left:16px;top:45px;bottom:-13px}
  .walk-stop-index{width:32px;height:32px;font-size:11px}
  .walk-stop-body h2{font-size:20px}
  .walk-stop-body p{font-size:13px;margin-bottom:8px}
  .walk-stop-links{gap:6px}
  .walk-stop-links a{min-height:44px;font-size:12px;padding:8px 10px}
  .walk-note{display:block;padding:16px 17px}
  .walk-note strong{font-size:18px}
  .walk-note p{margin:6px 0}
  .walk-note a{min-height:44px}
}
/* Visitor app v25: opt-in first-screen concept; the default home remains unchanged. */
.hero--concept{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-height:460px;gap:clamp(26px,3vw,46px)}
.hero--concept .hero-photo{min-height:460px;border-radius:14px;box-shadow:0 18px 40px #07133317}
.hero--concept .hero-photo img{object-position:center 52%}
.hero--concept .photo-caption{font-weight:700;letter-spacing:.11em}
.hero-concept-copy{min-width:0}
.hero--concept h1{font-size:clamp(42px,4.8vw,68px);line-height:1.03;letter-spacing:-.048em}
.hero--concept h1 em{color:var(--accent);font-weight:400}
.hero--concept p{max-width:465px;font-size:16px;line-height:1.5;margin:17px 0 0}
.hero--concept .searchbox{max-width:470px;margin-top:22px}
.hero--concept .searchbox button{width:48px;min-width:48px;padding:0;background:#0b1737;color:#fff}
.hero--concept .searchbox button svg{display:block;width:20px;height:20px}
.hero-concept-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hero-concept-actions .button{min-height:48px;font-size:13px}
.hero-concept-walk{display:inline-flex;align-items:center;min-height:44px;margin-top:11px;color:var(--accent);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.hero--concept{grid-template-columns:1fr;gap:19px}.hero--concept .hero-photo{min-height:280px;height:280px;order:0}.hero-concept-copy{order:1}}
@media(max-width:760px){
  .hero--concept{gap:17px;min-height:0}
  .hero--concept .hero-photo{min-height:205px;height:205px;order:0;border-radius:10px;box-shadow:none}
  .hero--concept .hero-photo img{object-position:center 48%}
  .hero--concept .photo-caption{font-size:9px;letter-spacing:.07em}
  .hero-concept-copy{order:1}
  .hero--concept .eyebrow{margin-bottom:8px;font-size:10px;letter-spacing:.15em}
  .hero--concept h1{font-size:clamp(35px,9.3vw,43px);line-height:1.03}
  .hero--concept p{font-size:14px;line-height:1.45;margin:9px 0 0}
  .hero--concept .searchbox{margin-top:15px}
  .hero--concept .searchbox input{font-size:16px}
  .hero-concept-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .hero-concept-actions .button{padding:9px 11px;text-align:center;font-size:12px;min-height:48px}
  .hero-concept-walk{margin-top:5px}
}
@media(max-width:350px){.hero-concept-actions{grid-template-columns:1fr}}

/* Public preview: let visitors reach the model before the explanation. */
.topaz-intro{display:block;padding:0 16px}
.topaz-intro summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;color:var(--ink);font-weight:600;list-style:none}
.topaz-intro summary::-webkit-details-marker{display:none}
.topaz-intro summary::after{content:"+";color:var(--accent);font-size:20px}
.topaz-intro[open] summary::after{content:"−"}
.topaz-intro p{margin:0 0 16px;font-size:14px;line-height:20px}
.topaz-intro summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:760px){.topaz-intro{padding:0 16px}.topaz-intro p{margin:0 0 16px}}

/* Preview v30: show an address immediately, load heavy 3D only on request. */
.model-slot{min-width:0}
.model-poster{display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:#070e2d}
.model-poster>img{display:block;width:100%;height:220px;object-fit:cover}
.model-poster-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:24px;color:#fff}
.model-poster-copy span{font-size:14px;line-height:20px;font-weight:600}
.model-poster-copy strong{font:600 36px/40px Manrope,sans-serif}
.model-load{margin-top:8px;min-height:48px;border:0;border-radius:8px;background:#f4b561;color:#070e2d;font:600 16px/24px Manrope,sans-serif;transition:transform .5s cubic-bezier(.22,1,.36,1),background .3s cubic-bezier(.22,1,.36,1)}
.model-load:hover{background:#ffd08a;transform:translateY(-2px)}
.model-load:active{transform:scale(.98)}
.model-load:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:760px){.model-poster>img{height:184px}.model-poster-copy strong{font-size:30px;line-height:36px}}
@media(prefers-reduced-motion:reduce){.model-load{transition:background .3s cubic-bezier(.22,1,.36,1)}.model-load:hover,.model-load:active{transform:none}}

/* v32: shaped loading state for the first public visit. */
.loading-shell{max-width:980px;margin:0 auto;padding:48px 24px 64px;color:#000830}
.loading-label{margin:0 0 24px;font:500 14px/20px Manrope,sans-serif;color:#596173}
.loading-hero{display:grid;align-content:center;gap:16px;min-height:320px;padding:32px;border:1px solid #e2e2df;border-radius:16px;background:#fff}
.loading-line,.loading-search,.loading-cards span{display:block;background:#e8e8e4;border-radius:8px}
.loading-line{height:32px}.loading-line-wide{width:68%}.loading-line-mid{width:49%}.loading-line-short{width:36%;height:16px;margin-top:8px}.loading-search{width:min(100%,420px);height:48px;margin-top:24px;border:1px solid #d8d9dd;background:#f5f5f2}
.loading-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}.loading-cards span{height:120px;border:1px solid #e2e2df;background:#fff}
@media(max-width:600px){.loading-shell{padding:24px 20px 48px}.loading-hero{min-height:320px;padding:24px}.loading-line-wide{width:90%}.loading-line-mid{width:70%}.loading-cards{gap:8px}.loading-cards span{height:80px}}

/* Archive imagery gives each address a distinct entry into its history. */
.home-history .history-home-card{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);min-height:196px;padding:8px;gap:16px;overflow:hidden;transition:transform 300ms cubic-bezier(.22,1,.36,1),box-shadow 300ms cubic-bezier(.22,1,.36,1)}
.home-history .history-home-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(7,14,45,.12)}
.home-history .history-home-card:active{transform:translateY(-1px)}
.history-home-image{position:relative;min-height:180px;overflow:hidden;border-radius:8px;background:#d7d2c7}
.history-home-image img{width:100%;height:100%;object-fit:cover;filter:sepia(.18);transition:transform 500ms cubic-bezier(.22,1,.36,1)}
.history-home-card:hover .history-home-image img{transform:scale(1.04)}
.history-home-image span{position:absolute;left:12px;bottom:12px;padding:4px 8px;background:rgba(255,255,255,.92);color:#111d3f;font-size:12px;line-height:16px;border-radius:4px}
.history-home-copy{display:flex;flex-direction:column;min-width:0;padding:16px 16px 12px 0}
.home-history .history-home-copy>span{margin-top:auto;padding-top:12px;color:var(--accent);font-size:14px;font-weight:600}
.history-deep-link{display:inline-flex;width:max-content;max-width:100%;margin-top:16px;color:#fff;text-decoration:underline;text-underline-offset:4px;font-size:14px;line-height:20px;font-weight:600}
.history-deep-link:hover{color:#f4b561}
@media(max-width:760px){.home-history .history-home-card{grid-template-columns:minmax(0,38%) minmax(0,1fr);min-height:152px;padding:8px;gap:12px}.history-home-image{min-height:136px}.history-home-copy{padding:8px 8px 8px 0}.home-history .history-home-copy h3{font-size:18px;line-height:28px}.history-home-copy p{font-size:14px;line-height:20px}.history-home-image span{font-size:12px;bottom:8px;left:8px}}
@media(max-width:360px){.home-history .history-home-card{grid-template-columns:1fr}.history-home-image{height:148px}.history-home-copy{padding:8px}}
@media(prefers-reduced-motion:reduce){.home-history .history-home-card,.history-home-image img{transition:none}.home-history .history-home-card:hover,.history-home-card:hover .history-home-image img{transform:none}}
@media(max-width:760px){.history-intro h2{font-size:24px;line-height:32px;letter-spacing:-.02em;overflow-wrap:break-word;text-wrap:balance}}

.history-deep-link{display:block}

/* A quiet alternative for visitors who use Yandex Maps. */
.walk-alt-maps{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:-8px 0 24px;color:var(--muted);font:500 14px/20px Manrope,sans-serif}
.walk-alt-maps a{display:inline-flex;align-items:center;min-height:40px;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:4px;transition:opacity 300ms cubic-bezier(.22,1,.36,1)}
.walk-alt-maps a:hover{opacity:.7}
.walk-alt-maps a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:440px){.walk-alt-maps{gap:4px 16px}.walk-alt-maps span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.walk-alt-maps a{transition:none}}
