/* Groundwork interface. Shared navigation and reading rhythm consume UI tokens;
   scene composition and materials have a separate palette and lifecycle. */

/* 1. Masthead: the same mark, rhythm, active state and responsive menu everywhere. */
.gw-masthead{--gw-edge:var(--gw-gutter);box-sizing:border-box;position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(100% - var(--gw-edge) * 2,var(--gw-container));min-height:88px;margin-inline:auto;padding-block:16px;border:0;font:400 var(--gw-ui)/1.4 var(--gw-font);color:var(--gw-ink)}
.gw-masthead .gw-brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:inherit;font-size:15px;font-weight:500;letter-spacing:-.045em;text-decoration:none;white-space:nowrap}
.gw-masthead .gw-mark{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.gw-masthead .gw-dot{color:var(--gw-signal)}
.gw-masthead .gw-section{margin-left:2px;color:var(--gw-muted);font-weight:400;letter-spacing:-.02em}
.gw-masthead>.site-nav{display:flex;align-items:center;gap:0 26px;margin-left:auto}
.gw-masthead nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none;white-space:nowrap;border:0}
.gw-masthead nav a::after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:var(--gw-signal);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.gw-masthead nav a:hover{color:var(--gw-signal-text)}
.gw-masthead nav a:hover::after,.gw-masthead nav a[aria-current="page"]::after{transform:none}
.gw-masthead nav a[aria-current="page"]{font-weight:500;color:var(--gw-ink)}
.gw-masthead :is(a,summary):focus-visible{outline:2px solid var(--gw-signal);outline-offset:4px}
.gw-masthead nav a.gw-nav-action{justify-content:center;gap:8px;padding:10px 17px;border-radius:var(--gw-radius);background:var(--gw-signal);color:var(--gw-paper-raised);font-weight:500}
.gw-masthead nav a.gw-nav-action:hover{background:var(--gw-hover);color:var(--gw-paper-raised)}
.gw-masthead nav a.gw-nav-action::after{content:none}
.gw-masthead nav a.gw-nav-action[aria-current="page"]{box-shadow:0 0 0 2px var(--gw-paper),0 0 0 3px var(--gw-signal)}
.gw-masthead>.gw-mobile-menu{display:block;position:relative;margin:0;flex:none;border:0;padding:0;color:var(--gw-muted);font-size:14px;background:transparent}
.gw-mobile-menu>summary{display:flex;align-items:center;justify-content:center;gap:7px;min-width:56px;min-height:44px;cursor:pointer;list-style:none;border:0;padding:0;background:transparent;color:inherit;font:inherit}
.gw-mobile-menu>summary::-webkit-details-marker{display:none}
.gw-mobile-menu>summary::after{content:none}
.gw-mobile-menu>summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .2s}
.gw-mobile-menu[open]>summary svg{transform:rotate(180deg)}
.gw-mobile-menu .gw-menu-label{display:none}
.gw-mobile-menu .gw-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:230px;max-width:calc(100vw - 40px);padding:14px 20px;border:1px solid var(--gw-rule);border-radius:var(--gw-radius);background:var(--gw-paper-raised);box-shadow:0 12px 40px color-mix(in srgb,var(--gw-ink) 8%,transparent)}
.gw-mobile-menu .gw-menu-panel>.site-nav{display:none}
.gw-mobile-menu .gw-secondary-nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
.gw-mobile-menu .gw-secondary-nav a{font-size:14px;color:var(--gw-muted)}
@media(max-width:1180px){
  .gw-masthead{gap:20px;min-height:80px;padding-block:12px}
  .gw-masthead>.site-nav{display:none}
  .gw-mobile-menu .gw-menu-label{display:inline}
  .gw-mobile-menu .gw-more-label{display:none}
  .gw-mobile-menu .gw-menu-panel{width:320px;padding:18px 24px}
  .gw-mobile-menu .gw-menu-panel>.site-nav{display:flex;flex-direction:column;align-items:stretch;gap:4px}
  .gw-mobile-menu .gw-menu-panel nav a{font-size:16px;min-height:46px}
  .gw-mobile-menu .gw-menu-panel .gw-nav-action{margin-block:8px 12px}
  .gw-mobile-menu .gw-secondary-nav{border-top:1px solid var(--gw-rule);padding-top:10px}
  .gw-mobile-menu .gw-secondary-nav a{font-size:14px}
}
@media(max-width:560px){
  .gw-masthead{min-height:76px}
  .gw-masthead .gw-section{display:none}
  .gw-masthead .gw-brand{font-size:14px;gap:8px}
  .gw-masthead .gw-mark{width:23px;height:23px}
}
@media print{.gw-masthead{display:none}}
/* Ownership keeps its own links; it takes the same mark, height and current-page bar. */
html.ownership-page:not(.ownership-city-page) .ownership-header{min-height:72px;font-size:var(--gw-ui)}
html.ownership-page:not(.ownership-city-page) .ownership-header .brand{font-size:15px}
html.ownership-page:not(.ownership-city-page) .ownership-header nav{font-size:var(--gw-ui)}
html.ownership-page:not(.ownership-city-page) .ownership-header nav [aria-current]{text-decoration:none;font-weight:500;box-shadow:inset 0 -2px var(--gw-signal)}

/* 2. Spacious headlines with a bounded reading measure and quiet metadata. */
html:is(.query-guide,.ut-courses) h1,
html.ownership-page:not(.ownership-city-page) :is(.profile-hero,.text-hero) h1{font-size:var(--gw-h1);line-height:1.06;letter-spacing:-.045em;font-weight:400;max-width:22ch}
html.query-guide .query-reading h2,html.ut-courses h2{font-size:var(--gw-h2);line-height:1.15;letter-spacing:-.035em;font-weight:400}
html.query-guide .query-reading h3{font-size:var(--gw-h3)}
html.query-guide body{font-size:var(--gw-body)}
html.query-guide :is(.query-byline,.query-rail,.query-source-note,.query-note,.query-figure figcaption,.query-mobile-contents){font-size:var(--gw-meta)}
html.query-guide :is(.query-findings dt,.query-tool label,.query-calendar-list .query-calendar-date,.query-degree-school li span,.query-degree-school li a,.query-degree-school li small){font-size:var(--gw-meta)}
html.query-guide :is(.query-rail h2,.query-sources li span,.query-table-hint,.query-calendar-list small,.query-degree-school>summary>span,.query-list-address,.query-findings small,.query-mobile-contents summary span:not([data-nosnippet-text])){font-size:13px}
html.query-guide table{font-size:var(--gw-ui)}
html.query-guide :is(.query-byline,.query-source-note,.query-note,.query-sources li span,.query-findings small,thead th){color:var(--gw-muted)}
html.ownership-page:not(.ownership-city-page) :is(.section-path,.small-label,.small-note,.profile-answer-label,.profile-flags>span,.breadcrumb a,.breadcrumb>span,dt,.profile-aside nav a,.profile-aside .text-link,.ownership-footer,.ownership-footer p,.ownership-footer a){font-size:var(--gw-meta)}

/* 3. Answer-first hero: open composition, direct copy and one primary action. */
html.query-guide .query-path,
html.ownership-page:not(.ownership-city-page) :is(.profile-hero,.text-hero) .section-path{margin:0 0 var(--gw-space-4);font:500 var(--gw-kicker)/1.5 var(--gw-font);letter-spacing:.1em;text-transform:uppercase;color:var(--gw-signal-text)}
html.query-guide .query-path a{color:inherit}
html.query-guide .query-hero{padding-block:var(--gw-space-9) var(--gw-space-8)}
html.query-guide h1{margin-bottom:var(--gw-space-5)}
html.query-guide .query-answer,html.ut-courses .course-dek{max-width:var(--gw-measure);padding-left:0;border:0;font-size:var(--gw-lead);line-height:1.6;color:var(--gw-muted)}
html.ownership-page:not(.ownership-city-page) .profile-hero :is(.profile-answer-label,.profile-answer,.profile-owner-detail){padding-left:0;border:0;margin-block:0}
html.ownership-page:not(.ownership-city-page) .profile-hero .profile-answer-label{padding-top:2px;margin-top:var(--gw-space-5)}
html.ownership-page:not(.ownership-city-page) .profile-hero .profile-owner-detail{padding-bottom:4px;margin-bottom:var(--gw-space-5)}
html.query-guide .query-primary{border-radius:var(--gw-radius);background:var(--gw-signal);color:var(--gw-paper-raised);border-color:var(--gw-signal);min-height:48px;padding:12px 22px}
html.query-guide .query-primary:hover{background:var(--gw-hover);border-color:var(--gw-hover)}
@media(max-width:800px){
  html.query-guide .query-hero{padding-block:var(--gw-space-7)}
  html.query-guide h1{margin-bottom:var(--gw-space-4)}
  html.query-guide .query-answer,html.ut-courses .course-dek{padding-left:0}
  html.ownership-page:not(.ownership-city-page) .profile-hero :is(.profile-answer-label,.profile-answer,.profile-owner-detail){padding-left:0}
}

/* 4. Original miniature plates sit beside the answer, or above it on phones. */
html.query-guide .query-hero:has(>.gw-plate-art){display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.82fr);column-gap:clamp(32px,5vw,88px);align-items:start;max-width:none}
html.query-guide .query-hero:has(>.gw-plate-art)>:not(.gw-plate-art){grid-column:1}
html.query-guide .query-hero:has(>.gw-plate-art)>.query-primary{justify-self:start}
html.query-guide .query-path a{text-decoration:none}
html.query-guide .query-hero>.gw-plate-art{grid-column:2;grid-row:1/span 8;align-self:center;margin:0}
.gw-plate-art img{display:block;width:100%;height:auto}
html.query-guide .query-answer:has(+.gw-answer-date) p:last-child{margin-bottom:0;padding-bottom:var(--gw-space-4)}
html.query-guide .gw-answer-date{display:grid;gap:4px;max-width:var(--gw-measure);margin:0 0 var(--gw-space-5);padding:var(--gw-space-3) 0 var(--gw-space-1);border:0;font:400 var(--gw-ui)/1.4 var(--gw-font);color:var(--gw-muted)}
html.query-guide .gw-answer-date strong{font-size:clamp(24px,.6vw + 20px,30px);line-height:1.15;letter-spacing:-.025em;font-weight:500;color:var(--gw-ink)}
@media(max-width:800px){
  html.query-guide .query-hero:has(>.gw-plate-art){grid-template-columns:minmax(0,1fr)}
  html.query-guide .query-hero>.gw-plate-art{grid-column:1;grid-row:1;width:min(64%,240px);margin:0 0 var(--gw-space-3)}
  html.query-guide .gw-answer-date{padding-left:0}
}

/* Native controls share focus, input and table states across reading families. */
:is(html.query-guide,html.ut-courses,html.ownership-page:not(.ownership-city-page)) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-family:var(--gw-font);font-size:16px;min-height:48px;border:1px solid var(--gw-input-line);border-radius:var(--gw-radius);background:var(--gw-paper-raised);color:var(--gw-ink)}
:is(html.query-guide,html.ut-courses,html.ownership-page:not(.ownership-city-page)) :is(input,select,textarea,button,summary,a):focus-visible{outline:2px solid var(--gw-signal);outline-offset:4px}
:is(html.query-guide,html.ut-courses) :is(input,select,textarea):disabled{opacity:.6;background:var(--gw-paper)}
:is(html.query-guide,html.ut-courses) :is(input[type=checkbox],input[type=radio]){accent-color:var(--gw-signal)}
html.query-guide .query-reading details{border-color:var(--gw-rule)}
html.query-guide .query-reading summary{min-height:48px;cursor:pointer}
:is(html.query-guide,html.ut-courses) :is(table th,table td){padding-block:16px;border-color:var(--gw-rule)}
@media(prefers-reduced-motion:reduce){.gw-masthead nav a::after,.gw-mobile-menu>summary svg{transition:none}}
/* Keep the shared skip link available to keyboards without consuming layout. */
body>.skip-link{position:absolute;left:var(--gw-gutter,20px);top:0;z-index:100;transform:translateY(-150%);padding:12px 18px;background:var(--gw-ink);color:var(--gw-paper);border-radius:4px;text-decoration:none}
body>.skip-link:focus{transform:translateY(12px)}
