/* Shared control language. Loaded after component styles on every modern page. */
:root{
 --control-height:48px;--control-compact-height:44px;--control-radius:999px;--control-field-radius:12px;
 --control-tonal:var(--soft);--control-hover:var(--tonal);--control-focus:var(--art-accent);
 --control-transition:background-color 180ms ease,color 180ms ease,filter 180ms ease,box-shadow 180ms ease;
}
:root .button{
 min-height:var(--control-height);border:0;border-radius:var(--control-radius);padding:12px 22px;gap:10px;
 font:600 14px/20px var(--font);letter-spacing:0;background-image:none;box-shadow:none;
 transition:var(--control-transition);transform:none;
}
:root .button.button-primary{background:var(--button-bg);color:var(--button-fg);border:0;box-shadow:none}
:root .button.button-secondary{background:var(--control-tonal);color:var(--ink);border:0;box-shadow:none}
:root .button.button-primary:hover{background:var(--button-bg);color:var(--button-fg);filter:brightness(.96);box-shadow:none;transform:none}
:root .button.button-secondary:hover{background:var(--control-hover);color:var(--ink);filter:none;box-shadow:none;transform:none}
:root .button:active{filter:brightness(.92);transform:none;box-shadow:none}
:root .button:disabled{opacity:.45;filter:none;cursor:default}
:root .play-label{min-height:var(--control-compact-height);border:0;border-radius:var(--control-radius);box-shadow:none;padding:10px 16px;font-size:12px}
:root .research-film .play-label{background:var(--button-bg);color:var(--button-fg)}
:root .research-film:hover .play-label{background:var(--button-bg);color:var(--button-fg);filter:brightness(.96);transform:none;box-shadow:none}

/* Secondary actions share a tonal fill; copy/download remain quiet text actions. */
:root .cv-document .cv-expand{min-height:var(--control-compact-height);padding:10px 16px;border:0;border-radius:var(--control-radius);background:var(--control-tonal);color:var(--ink);font:600 13px/20px var(--font);box-shadow:none}
:root .cv-document .cv-expand:hover{background:var(--control-hover)}
:root .citation-actions :is(button,a),:root .decision-preference-equal{
 display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-compact-height);padding:10px 12px;
 border:0;border-radius:var(--control-radius);background:transparent;color:var(--green);font:600 12px/20px var(--font);
 text-decoration:none;transition:var(--control-transition);
}
:root .citation-actions :is(button,a):hover,:root .decision-preference-equal:hover{background:var(--control-tonal);color:var(--green)}
:root .model-card-action{padding:10px 14px;margin-left:-14px;border-radius:var(--control-radius);text-decoration:none;font-size:13px}
:root .model-card-action:hover{background:var(--control-tonal)}
:root .cv-affiliation-badges a{border:0;border-radius:var(--control-radius);background:var(--control-tonal);padding:10px 14px;min-height:var(--control-compact-height)}
:root .cv-affiliation-badges a:hover{background:var(--control-hover)}

/* Segmented selectors: one tonal track, one filled active segment. */
:root :is(.citation-tabs,.cv-filters,.decision-view-buttons,.decision-field-buttons){
 display:flex;gap:2px;padding:2px;border:0;border-radius:var(--control-radius);background:var(--control-tonal);min-height:var(--control-height);
}
:root .decision-field-buttons{width:max-content;max-width:100%;flex-wrap:wrap;border-radius:24px}
:root :is(.citation-tabs,.cv-filters,.decision-view-buttons,.decision-field-buttons) button{
 display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-compact-height);
 padding:10px 12px;border:0;border-radius:var(--control-radius);background:transparent;color:var(--muted);
 font:500 12px/20px var(--font);white-space:nowrap;box-shadow:none;transition:var(--control-transition);
}
:root :is(.citation-tabs,.cv-filters,.decision-view-buttons,.decision-field-buttons) button:hover{background:var(--control-hover);color:var(--ink)}
:root :is(.citation-tabs,.cv-filters,.decision-view-buttons,.decision-field-buttons) button:is([aria-selected=true],[aria-pressed=true]){
 background:var(--button-bg);color:var(--button-fg);border:0;font-weight:600;
}

/* Icon actions are circles; the persistent header uses the compact size. */
:root :is(.hero-socials,.cv-profile-links) :is(.social-link,.cv-profile-link){
 display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;min-width:48px;min-height:48px;
 padding:0;border:0;border-radius:50%;background:var(--control-tonal);color:var(--ink);
 transition:var(--control-transition),transform 180ms ease;
}
:root :is(.hero-socials,.cv-profile-links) :is(.social-link,.cv-profile-link):is(:hover,:focus-visible){background:var(--button-bg);color:var(--button-fg)}
:root :is(.model-panel-close,.model-exit,.video-size-toggle){
 display:grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;
 padding:0;border:0;border-radius:50%;background:var(--control-tonal);color:var(--ink);box-shadow:none;transition:var(--control-transition);
}
:root :is(.model-panel-close,.model-exit,.video-size-toggle):hover{background:var(--control-hover)}
:root .header :is(.theme-toggle,.motion-toggle){
 width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;box-shadow:none;
}
:root .header :is(.theme-toggle,.motion-toggle):active{border-radius:50%;transform:none}
:root :is(.decision-slider select,.decision-field-controls select,.cv-search input){
 min-height:48px;border:1px solid var(--line);border-radius:var(--control-field-radius);background:var(--surface);color:var(--ink);
}
:root :is(.button,.cv-profile-link,.social-link,.model-panel-close,.model-exit,.video-size-toggle,.theme-toggle,.motion-toggle,.model-card-action,.cv-expand,.decision-preference-equal):focus-visible,
:root :is(.citation-toolbar,.cv-filters,.decision-view-buttons,.decision-field-buttons) :is(button,a):focus-visible,
:root :is(.decision-slider select,.decision-field-controls select,.cv-search input):focus-visible{
 outline:2px solid var(--control-focus);outline-offset:3px;
}
@media(max-width:640px){:root .contact-card-actions .button{padding-inline:10px;font-size:13px}}
html[data-motion=reduce] :is(.button,.social-link,.cv-profile-link,.play-label){transition:none;transform:none}
@media(prefers-reduced-motion:reduce){:root :is(.button,.social-link,.cv-profile-link,.play-label){transition:none;transform:none}}

/* Video resizing is useful only in the desktop multi-column research grid. */
@media(max-width:640px){:root .video-size-toggle{display:none}}
