/* Portal layout: one page scroll, persistent wayfinding, existing studio worlds. */
html { scroll-padding-top: 100px; }
body { overflow: auto; }
.shell { overflow: visible; }
.masthead { height: 80px; padding: 0 32px; pointer-events: auto; }
.mast-actions { gap: 25px; }
.mast-link { font-size: 11px; letter-spacing: .08em; padding: 12px 0; }
.counter { display: none; }
.experience { display: grid; grid-template-columns: 250px minmax(0, 1fr); height: auto; min-height: 100dvh; padding-top: 80px; align-items: start; }
.tree-stage { position: sticky; top: 80px; height: calc(100dvh - 80px); min-height: 0; overflow-y: auto; padding: 26px 18px 28px; scrollbar-width: thin; }
.nav-intro { margin: 0 10px 22px; }
.nav-intro p { font-size: 12px; }
.project-search { display: grid; gap: 9px; margin: 0 8px 12px; font-size: 11px; color: var(--muted); }
.project-search input { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 6px; padding: 12px 10px; background: #111820; color: var(--ink); font: inherit; font-size: 12px; }
.project-search input:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
#search-empty { padding: 10px; font-size: 13px; line-height: 1.5; }
.tree { display: flex; flex-direction: column; gap: 2px; overflow: visible; }
.nav-group { margin: 19px 12px 7px; color: var(--gold); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.node, .node:nth-of-type(even), .node.is-active, .node:hover { width: 100%; min-height: 42px; padding: 10px 12px; white-space: normal; }
.node-index { display: none; }
.node-label { font-size: 13px; line-height: 1.4; }
.node.is-active { background: #e1c58a; color: #171711; }
.node[hidden], .nav-group[hidden] { display: none; }
.tree-label, .hint { display: none; }
.nav-utilities { display: grid; gap: 6px; margin: 25px 10px 0; padding-top: 18px; border-top: 1px solid var(--line); }
.nav-utilities a, .nav-utilities button { text-align: left; color: var(--muted); font: inherit; font-size: 12px; text-decoration: none; padding: 8px 0; background: none; border: 0; cursor: pointer; }
.nav-utilities a:hover, .nav-utilities button:hover { color: var(--gold-hot); }
.panel-wrap { position: relative; min-height: calc(100dvh - 80px); height: auto; overflow: visible; }
.panel { display: none; position: relative; inset: auto; padding: 34px clamp(26px, 4vw, 70px) 64px; transform: none; transition: none; }
.panel.is-active { display: block; transform: none; }
.panel[hidden] { display: none; }
.panel-scroll { height: auto; overflow: visible; padding: 0; }
.panel-subnav { position: static; margin-bottom: 30px; }
.panel h1 { max-width: 18ch; font-size: clamp(45px, 5vw, 82px); line-height: 1.02; }
.statement { max-width: 65ch; font-size: 19px; margin-bottom: 22px; }
.studio-description { max-width: 70ch; line-height: 1.7; }
.start-here-audience, .featured-projects, .featured-projects-grid, .start-here-about, .contact-path-grid, .collection-layers, .start-cards, .start-grid { max-width: none; }
.portal-feature { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; min-height: 360px; margin: 36px 0 52px; border: 1px solid var(--line); background: #14202a; overflow: hidden; }
.portal-feature > div { padding: clamp(22px, 3vw, 42px); }
.portal-feature h2 { margin: 0 0 18px; color: var(--ink); font: 400 clamp(30px, 3.3vw, 50px)/1.08 Georgia, serif; letter-spacing: -.025em; text-transform: none; }
.portal-feature p:not(.eyebrow) { color: #c7ccd0; font-size: 15px; line-height: 1.7; }
.portal-feature img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; object-position: center 38%; }
.portal-doors { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.portal-doors a { color: var(--gold-hot); border-bottom: 1px solid #8b7851; padding: 9px 0; margin-right: 12px; text-decoration: none; font-size: 13px; font-weight: 650; }
.explore-toggle { display: none; border: 1px solid var(--gold); background: transparent; color: var(--gold-hot); padding: 11px 14px; border-radius: 5px; font: inherit; font-size: 12px; cursor: pointer; }
@media (min-width: 1500px) { .panel { max-width: 1460px; margin: 0 auto; } .experience { grid-template-columns: 270px minmax(0,1fr); } }
@media (max-width: 1050px) {
  .masthead { padding: 0 20px; }
  .mast-actions { gap: 18px; }
  .experience { grid-template-columns: 220px minmax(0,1fr); }
  .tree-stage { padding-inline: 12px; }
  .portal-feature { grid-template-columns: 1fr 40%; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 80px; }
  .masthead { height: 70px; padding: 0 16px; gap: 8px; }
  .brand { gap: 8px; letter-spacing: .06em; }
  .brand-copy { font-size: 10px; }
  .brand-mark { flex-shrink: 0; }
  .brand-copy small { display: none; }
  .mast-actions { gap: 0; }
  .mast-actions .mast-link { display: none; }
  .explore-toggle { display: block; }
  .experience { display: block; height: auto; padding-top: 70px; }
  .tree-stage { display: none; position: fixed; z-index: 19; inset: 70px 0 0; height: calc(100dvh - 70px); padding: 22px 20px 40px; background: #0d141c; border: 0; overflow-y: auto; }
  .tree-stage.is-open { display: block; }
  .nav-intro { display: block; }
  .nav-intro p { max-width: 38ch; }
  .tree { display: flex; flex-direction: column; overflow: visible; }
  .node, .node:nth-of-type(even), .node.is-active, .node:hover { flex: none; min-height: 46px; }
  .node-label { font-size: 15px; }
  .panel-wrap { min-height: calc(100dvh - 70px); }
  .panel { padding: 24px 20px 46px; }
  .panel h1 { font-size: clamp(42px, 10vw, 66px); }
  .statement { font-size: 17px; }
  .portal-feature { grid-template-columns: 1fr; margin: 28px 0 36px; }
  .portal-feature img { height: 260px; max-height: none; object-position: center 35%; }
  .portal-feature h2 { font-size: 36px; }
  .links-row { gap: 12px; }
  .link-stack { max-width: 100%; }
  .start-cards, .contact-path-grid, .featured-projects-grid { grid-template-columns: 1fr; }
}
@media print { .tree-stage, .explore-toggle, .portal-feature { display: none !important; } .experience, .panel-wrap { display: block; padding: 0; } .panel { padding: 0; } }
