/* One explorer bar connects the portfolio's modes, music and discoveries. */
.scroll-console{display:contents}
.section-timeline,.section-timeline .timeline-label{background:transparent!important;border:0!important;box-shadow:none!important}
.header-radio.is-docked{position:fixed;top:18px;right:48px;z-index:49;padding:5px 12px;background:#17101feb;border:1px solid var(--line);border-radius:40px;box-shadow:0 6px 24px #0004;backdrop-filter:blur(12px)}
.nav .header-radio .radio-player.playing .radio-eq{display:flex!important;height:20px;align-items:end;gap:3px;margin-left:3px}.nav .header-radio.is-docked .radio-info{display:flex!important}.nav .header-radio .radio-player:not(.playing) .radio-eq{display:none!important}
@media(max-width:760px){.header-radio.is-docked{right:18px;top:10px;padding:3px 10px}.header-radio.is-docked .radio-title{min-height:36px!important}.header-radio.is-docked .radio-toggle,.header-radio.is-docked .radio-volume-button{height:36px!important;min-height:36px!important}.section-timeline .timeline-label{padding-inline:0!important}}
.portfolio-header .nav{display:flex;height:auto;min-height:114px;gap:38px;padding:22px 0;border-bottom:1px solid var(--line)}
.portfolio-header .wordmark{flex:none;white-space:nowrap}
.explorer-console{position:relative;flex:1;min-width:0;z-index:45;border:1px solid var(--line);border-radius:12px;background:linear-gradient(120deg,#1c142b,#120f1d);transition:border-color .2s,box-shadow .2s}
.explorer-console.expanded{border-color:#6b4a84;box-shadow:0 18px 60px #0005;border-radius:12px 12px 0 0}
.explorer-console .explorer-hud{grid-template-columns:minmax(170px,1fr) minmax(120px,1fr) auto 18px;gap:22px;min-height:68px;border:0;padding:12px 18px;border-radius:12px}
.explorer-hud:after{display:none}.explorer-console .hud-open{display:block;font-size:20px;text-align:center;transition:transform .2s}.expanded .hud-open{transform:rotate(180deg)}
.explorer-console .hud-level{height:42px;width:40px}.explorer-console .hud-level small{font-size:9px}.explorer-console .hud-rank small{font-size:9px;letter-spacing:.08em}.explorer-console .hud-rank strong{font-size:14px}
.explorer-console .hud-progress-label{font-size:11px}.hud-discoveries{display:flex;flex-direction:column;gap:2px;text-align:right;font-size:11px;color:var(--muted)}.hud-discoveries b{font-size:18px;color:var(--accent);font-weight:500}
.explorer-panel{position:absolute;left:-1px;right:-1px;top:100%;background:linear-gradient(130deg,#1c142b,#120f1d);border:1px solid #6b4a84;border-top:0;border-radius:0 0 12px 12px;padding:0 18px 18px;box-shadow:0 24px 45px #0006;animation:explorer-reveal .2s ease-out}
.explorer-panel .hud-quest{border:0;border-top:1px solid var(--line);padding:16px 0;gap:10px}.explorer-panel .hud-quest small{font-size:10px}.explorer-panel .hud-quest strong{font-size:13px}.explorer-panel .quest-reward{display:block;font-size:12px}.explorer-panel .quest-icon{font-size:24px}
.explorer-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:8px;overflow:visible}
.explorer-action{padding:14px;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.explorer-action:nth-child(3n){border-right:0}.explorer-action:nth-child(n+4){border-bottom:0}.explorer-action:last-child{grid-column:2/4;border-right:0}
.explorer-action>small{display:block;font-size:10px;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}.explorer-action>button,.explorer-action>a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;width:100%;font-size:14px;text-align:left;padding:0;border:0;border-radius:0;background:none;color:var(--text)}
.explorer-action>button:hover,.explorer-action>a:hover{color:var(--accent)}.explorer-action svg{display:block;width:26px;height:24px;color:var(--accent);flex:none}.explorer-action>button>span:last-child:not([data-mode-label]){color:var(--accent)}
.explorer-action .portal-button{flex-direction:row-reverse}.explorer-action .portal-button span{display:block;font-size:14px}.explorer-action .portal-button svg{width:32px}
.explorer-radio .radio-player{display:flex;position:relative;inset:auto;gap:8px;background:none;border:0;border-radius:0;padding:0;min-height:44px}.explorer-radio .radio-toggle{display:grid;place-items:center;width:30px;height:44px;flex:none}.explorer-radio .radio-disc{width:27px;height:27px}.explorer-radio .radio-info{display:flex!important}.explorer-radio .radio-info .mono{display:none}.explorer-radio .radio-title{display:block;font-size:13px;min-height:44px;padding:0;white-space:normal}.explorer-radio .radio-volume-button{display:block!important;min-width:28px;height:44px;padding:0;margin-left:auto}.explorer-radio .radio-eq{display:none!important}.explorer-radio .radio-volume{top:48px;right:-12px;left:auto;width:170px;z-index:2}.explorer-radio .radio-volume input{width:100%}
@keyframes explorer-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* Labels sit left of the rail. Only the current chapter asks for attention. */
.section-timeline{width:106px;right:18px}.section-timeline a{justify-content:flex-end;gap:0;width:100%}.section-timeline .timeline-track{left:auto;right:12px}.section-timeline .timeline-point{margin:0 8px 0 0;width:9px;height:9px}
.section-timeline .timeline-label{position:absolute;right:34px;top:50%;transform:translateY(-50%) translateX(4px);display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:2px;max-width:145px;font-size:13px;line-height:1.4;padding:4px 0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s;color:var(--muted);background:var(--bg)}
.section-timeline a[aria-current] .timeline-label,.section-timeline a:hover .timeline-label,.section-timeline a:focus-visible .timeline-label{opacity:1;visibility:visible;transform:translateY(-50%);color:var(--accent)}
.case-timeline{width:170px;overflow:visible;max-height:none}.case-timeline .timeline-label{width:130px}.case-timeline a{gap:0}

/* The assistant grows directly out of its bottom-edge tab. */
.ask-trigger{position:fixed;right:24px;bottom:0;z-index:50;display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));border:1px solid #695084;border-bottom:0;border-radius:18px 18px 0 0;background:linear-gradient(115deg,#261537,#15101f);color:var(--text);box-shadow:0 -8px 45px #7517f81c;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.ask-trigger:before{content:'';position:absolute;inset:0 auto auto -45%;height:1px;width:45%;background:linear-gradient(90deg,transparent,var(--accent),#fff,transparent);animation:guide-gleam 8s ease-in-out infinite}
.ask-trigger:after{display:none}.ask-trigger:hover{transform:translateY(-4px);padding-bottom:calc(18px + env(safe-area-inset-bottom));border-color:var(--accent);box-shadow:0 -8px 45px #7517f834}
.assistant-eye{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid #685077;border-radius:50%;background:#7517f819;color:var(--accent)}.assistant-eye svg{display:block;width:24px;height:24px;margin:0;transform:none}
.ask-tab-copy{text-align:left;display:flex;flex-direction:column;gap:5px}.ask-tab-copy small{font-size:9px;letter-spacing:.1em;line-height:1;color:#bba4ce}.ask-tab-copy strong{font-size:15px;font-weight:500;line-height:1.3}.ask-tab-arrow{color:var(--accent);font-size:22px;margin-left:5px}
.ask-trigger[aria-expanded=true]{transform:translateY(105%);visibility:hidden;pointer-events:none}
.assistant{right:24px;bottom:0;width:min(470px,calc(100vw - 32px));height:min(610px,calc(100dvh - 30px));max-height:calc(100dvh - 30px);border:1px solid #8561a0;border-bottom:0;border-radius:22px 22px 0 0;background:linear-gradient(145deg,#241530,#110e1b 48%);box-shadow:0 0 0 1px #7517f82b,0 -12px 90px #7517f82b,0 15px 80px #0009;z-index:55;transform-origin:bottom right;animation:guide-open .35s cubic-bezier(.2,.8,.2,1) both;overflow:hidden;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}
.assistant:before{content:'';position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),#c885ff,transparent)}
.assistant.closing{animation:guide-close .2s ease-in both;pointer-events:none}
.assistant-head{display:flex;align-items:center;gap:12px;padding:25px 22px 22px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#7517f80f,transparent)}.assistant-head>div{flex:1;min-width:0}.assistant-head .assistant-eye{width:42px;height:42px}.assistant-head h2{font-size:24px;line-height:1.2;letter-spacing:-.04em;margin:7px 0}.assistant-head .assistant-kicker{font-size:10px;letter-spacing:.09em;color:var(--accent)}.assistant-head #assistantStatus{font-size:11px;color:var(--muted)}.assistant-head .close{width:36px;height:44px;min-width:36px;align-self:flex-start;font-size:25px}
.assistant .chat-log{flex:1;min-height:80px;padding:24px 22px;max-height:none}.assistant .chat-message{font-size:16px;line-height:1.7;margin-bottom:20px}.assistant .chat-message.user{background:#2d1b3b;border:1px solid #513462;border-radius:12px 12px 3px 12px;padding:12px 15px}.assistant .chat-message.assistant-msg{color:#ded5e7}.assistant .chat-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 22px 18px}.assistant .chat-suggestions button{font-size:12px;min-height:38px;border:1px solid #50395f;background:#21152e;border-radius:6px;padding:8px 11px}.assistant .chat-suggestions button:hover{border-color:var(--accent);color:var(--accent)}
.assistant .chat-compose{margin:0 18px;padding:8px;border:1px solid #77538d;border-radius:10px;background:#0f0c17;display:flex;align-items:center;gap:6px}.assistant .chat-compose:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #7517f822}.assistant .chat-compose input{flex:1;min-width:0;font-size:16px;padding:10px;border:0;background:none;outline:0}.assistant .chat-compose button{width:42px;height:42px;flex:none;background:var(--accent);color:var(--bg);border-radius:6px;font-size:24px}.assistant .assistant-foot{border:0;padding:16px 23px;font-size:11px}.assistant .assistant-foot button{font-size:12px;min-height:30px}
@keyframes guide-gleam{0%,65%{left:-45%;opacity:0}72%{opacity:1}90%,100%{left:110%;opacity:0}}
@keyframes guide-open{from{opacity:0;transform:translateY(40px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes guide-close{to{opacity:0;transform:translateY(30px) scale(.98)}}
@media(max-width:1100px){.portfolio-header .nav{gap:24px}.explorer-console .explorer-hud{grid-template-columns:minmax(160px,1fr) minmax(110px,1fr) 16px;gap:15px}.hud-discoveries{display:none}.section-timeline{right:10px;width:87px}.case-timeline{width:130px}.case-timeline .timeline-label{width:97px}}
@media(max-width:760px){
 .portfolio-header .nav{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:20px 0;min-height:0;height:auto}.portfolio-header .wordmark{align-self:flex-start;font-size:21px}.explorer-console .explorer-hud{padding:12px;grid-template-columns:minmax(115px,1fr) minmax(95px,1fr) 14px;gap:12px}.explorer-console .hud-rank small{display:none}.explorer-console .hud-rank strong{font-size:12px}.explorer-console .hud-level{width:32px;height:35px}.explorer-console .hud-identity{gap:8px}.explorer-console .hud-progress-label{font-size:10px}.explorer-console .hud-progress-label>span{display:none}.explorer-panel{padding:0 12px 12px;max-height:calc(100dvh - 170px);overflow:auto}.explorer-panel .hud-quest>span:nth-child(2){display:block}.explorer-panel .hud-quest strong{font-size:12px}.explorer-panel .hud-quest small{font-size:9px}.explorer-panel .quest-reward{font-size:11px}.explorer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-action{padding:12px;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}.explorer-action:nth-child(2n){border-right:0!important}.explorer-action:last-child{grid-column:1/-1;border:0!important}.explorer-action>small{font-size:9px}.explorer-action>button,.explorer-action>a,.explorer-action .portal-button span{font-size:13px}.explorer-radio .radio-player{gap:3px}.explorer-radio .radio-title{font-size:12px}.explorer-radio .radio-volume-button{min-width:24px}
 .section-timeline,.case-timeline{right:0;width:44px;max-height:none;overflow:visible}.section-timeline .timeline-track{right:21px;left:auto}.section-timeline .timeline-point{margin-right:18px;width:7px;height:7px}.section-timeline a{justify-content:flex-end;width:44px}.section-timeline .timeline-label{right:43px;top:50%;font-size:11px;max-width:130px;width:max-content;white-space:normal;padding:5px 8px;border:1px solid var(--line);border-radius:4px}.section-timeline .timeline-label small{display:inline;font-size:9px}.section-timeline .timeline-label{flex-direction:row;gap:6px;align-items:center}.case-timeline .timeline-label{max-width:112px}
 .ask-trigger{right:12px;min-height:66px;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-radius:15px 15px 0 0}.ask-tab-copy strong{font-size:14px}.ask-tab-copy small{font-size:8px}.ask-trigger .assistant-eye{width:34px;height:34px}.assistant{right:8px;width:calc(100vw - 16px);height:min(610px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}.assistant-head{padding:20px 16px;gap:10px}.assistant-head h2{font-size:21px}.assistant-head .assistant-eye{width:36px;height:36px}.assistant .chat-log{padding:20px 17px}.assistant .chat-suggestions{padding-inline:17px;gap:6px}.assistant .chat-suggestions button{font-size:11px}.assistant .chat-compose{margin-inline:12px}.assistant .assistant-foot{padding-inline:17px}
}
@media(max-height:500px){.case-timeline{--timeline-step:44px}.assistant-head{padding:12px 16px}.assistant .chat-log{padding:12px 16px}.assistant .chat-suggestions{padding-bottom:10px}.assistant .assistant-foot{padding-block:4px}.explorer-panel{max-height:calc(100dvh - 95px);overflow:auto}}
@media(prefers-reduced-motion:reduce){.explorer-panel,.assistant,.assistant.closing,.ask-trigger:before{animation:none}.ask-trigger,.timeline-label{transition:none}}
.career-timeline .career-stop{padding:34px 0 38px;border-bottom:1px solid var(--line)}
.career-timeline .timeline-point{top:43px}.career-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-bottom:22px}.career-heading h3{font-size:clamp(28px,3.5vw,43px);font-weight:450;letter-spacing:-.04em;line-height:1.2}.career-heading p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:10px}.career-heading>p{max-width:36ch;margin:0;align-self:center}.career-projects{list-style:none;margin:0;padding:0}.career-projects li+li{border-top:1px solid #332b4080}.career-projects a{display:grid;grid-template-columns:1fr auto 20px;gap:25px;align-items:center;min-height:84px;padding:16px 0}.career-projects a>span:first-child{min-width:0}.career-projects strong{font-size:18px;font-weight:450;line-height:1.4}.career-projects small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.career-project-date{font-size:12px;color:var(--muted)}.career-projects a>span:last-child{color:var(--accent)}.career-projects a:hover strong{color:var(--accent)}.career-projects a:hover{background:#7517f80a}.additional-work{display:flex;align-items:center;flex-wrap:wrap;gap:20px 35px;margin:40px 0 0;padding-left:44px}.additional-work>.eyebrow{width:100%;font-size:10px}.additional-work>a{font-size:19px}.additional-work>a span{font-size:12px;color:var(--muted);display:block;margin-top:6px}.additional-work>a:hover{color:var(--accent)}
@media(max-width:760px){.career-heading{grid-template-columns:1fr;gap:10px;margin-bottom:12px}.career-heading>p{max-width:none}.career-heading h3{font-size:30px}.career-projects a{grid-template-columns:1fr 18px;gap:4px 12px;min-height:93px}.career-project-date{grid-column:1;grid-row:2;font-size:11px}.career-projects a>span:last-child{grid-column:2;grid-row:1/3}.career-projects strong{font-size:18px}.career-projects small{font-size:12px;line-height:1.6}.career-timeline .career-stop{padding-block:25px}.career-timeline .timeline-point{top:34px}.additional-work{padding-left:32px;gap:20px}.career-heading .work-entry-meta{font-size:10px}}
.review-demo{padding:28px;border:1px solid #6c4b84;border-radius:12px;background:linear-gradient(120deg,#24172f,#15101f);margin:30px 0 12px}.review-demo-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.review-demo-head .eyebrow{font-size:10px}.review-state{font-size:12px;color:#edc59a;border:1px solid #705337;border-radius:30px;padding:5px 10px}.review-demo h3{font-size:26px;letter-spacing:-.03em;line-height:1.3;margin:25px 0 12px}.review-demo>p{font-size:16px}.review-demo code{font-size:14px;color:#dfb4ff}.review-demo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:25px}.review-demo-actions>span{font-size:12px;color:var(--muted);flex:1;min-width:180px}.reviewed .review-state{color:var(--accent);border-color:var(--accent)}
/* Screens meet their frames; complete product views keep their own proportions. */
.work-grid .project-media{border:0;aspect-ratio:16/10}
.work-grid .project-media.mclaren{padding:0;background:#101014}.work-grid .project-media.mclaren img{width:100%;height:100%;object-fit:contain;border-radius:0;box-shadow:none}.work-grid .project:hover .project-media.mclaren img{transform:none}
.work-grid .project-media.cozonac{padding:0;background:#0d0d0d}.work-grid .project-media.cozonac img{width:100%;height:100%;object-fit:contain;border-radius:0}
.work-grid .system-project{padding:0;display:grid;place-items:center;background:#000;border:0}
.work-grid .system-project img{width:100%;height:100%;object-fit:contain;border:0;border-radius:0;box-shadow:none;transform:none}
.work-grid .project:hover .system-project img,.work-grid .project:hover .cozonac img{transform:none}
.case-chapter figure:has(img[src*="search-"]){border:0;border-radius:6px;overflow:hidden;background:transparent}
.case-chapter figure:has(img[src*="search-"]) figcaption{padding:14px 0}
.case-chapter figure:has(img[src*="search-"]) img{width:100%;display:block}
.case-page .full-figure:has(img[src*="search-"]),.case-page .full-figure:has(img[src*="data-ingestion"]){padding:0;border:0;background:#000}

@media(max-width:760px){.review-demo{padding:18px}.review-demo-head{align-items:start}.review-demo-head .eyebrow{font-size:9px}.review-state{font-size:10px;white-space:nowrap}.review-demo h3{font-size:23px}}
.explorer-console{container-type:inline-size}.explorer-console.expanded .explorer-hud .hud-open{transform:rotate(180deg)}.explorer-console:not(.expanded) .explorer-hud:hover .hud-open{transform:none}
.explorer-panel{max-height:calc(100dvh - 120px);overflow:auto}
@container(max-width:600px){.explorer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-action{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.explorer-action:nth-child(3n){border-right:1px solid var(--line)}.explorer-action:nth-child(2n){border-right:0}.explorer-action:last-child{grid-column:1/-1;border:0}.explorer-action:nth-child(4){border-bottom:1px solid var(--line)}}
body.astro .section-timeline,body:has(.assistant:not([hidden])) .section-timeline,body:has(dialog[open]) .section-timeline{display:none}
@media(max-width:760px){.explorer-panel{max-height:calc(100dvh - 175px)}}
@media(max-width:380px){.explorer-console .explorer-hud{grid-template-columns:minmax(105px,1fr) minmax(72px,.65fr) 12px;gap:8px}.explorer-action{padding:10px}.explorer-radio .radio-volume-button{min-width:22px}.explorer-radio .radio-toggle{width:25px}.explorer-radio .radio-disc{width:23px;height:23px}}
/* Compact profile: progress belongs to the identity, with radio always within reach. */
@media(max-width:760px){.section-timeline .timeline-label{width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0!important}}
.portfolio-header .nav{min-height:90px;padding:14px 0;gap:24px;justify-content:flex-end}.portfolio-header .wordmark{margin-right:auto}.compact-console{flex:0 1 305px}.compact-console .explorer-hud{display:grid;grid-template-columns:minmax(0,1fr) 14px;gap:14px;min-height:58px;padding:9px 13px}.compact-console .hud-identity{min-width:0;gap:10px}.compact-console .hud-level{height:36px;width:33px}.compact-console .hud-level b{font-size:20px}.compact-console .hud-level small{font-size:8px}.compact-console .hud-rank{flex:1;min-width:0}.compact-console .profile-title{display:flex;align-items:baseline;gap:14px;justify-content:space-between;margin-bottom:8px}.compact-console .hud-rank strong{font-size:13px;line-height:1.2;white-space:nowrap}.compact-console .profile-title small{display:block;font-size:10px;letter-spacing:0;white-space:nowrap;color:var(--muted)}.compact-console .hud-track{height:3px;border-radius:3px}.compact-console .explorer-panel{padding:8px 10px 10px;max-height:calc(100dvh - 95px)}.compact-console .explorer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-console .explorer-action{padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.compact-console .explorer-action:nth-child(2n){border-right:0}.compact-console .explorer-action:nth-child(n+3){border-bottom:0}.compact-console .explorer-action:last-child{grid-column:auto}.compact-console .explorer-action>small{font-size:9px;letter-spacing:.06em;margin-bottom:0}.compact-console .explorer-action>button,.compact-console .explorer-action>a,.compact-console .portal-button span{font-size:12px;min-height:40px}.compact-console .explorer-action svg{width:23px;height:20px}.compact-console .explorer-action>button{gap:5px}.compact-console .explorer-action:last-child>button{font-size:11px}.compact-console .portal-button{justify-content:space-between}
.header-radio{flex:none}.nav .header-radio .radio-player{display:flex;gap:8px;padding:0;position:relative;background:none;border:0;inset:auto}.nav .header-radio .radio-toggle{width:32px;height:44px;display:grid;place-items:center}.nav .header-radio .radio-disc{width:27px;height:27px}.nav .header-radio .radio-info{display:flex!important}.nav .header-radio .radio-info .mono{display:block!important;font-size:8px;line-height:1.5;letter-spacing:.06em}.nav .header-radio .radio-title{font-size:11px;min-height:20px}.nav .header-radio .radio-eq{display:none!important}.nav .header-radio .radio-volume-button{display:block!important;min-width:24px;min-height:44px}.nav .header-radio .radio-volume{top:48px;right:0;left:auto;z-index:60}.header-radio input{width:100%}
body:has(.compact-console.expanded) .section-timeline{display:none}
@media(max-width:1050px) and (min-width:761px){.portfolio-header .nav{gap:16px}.compact-console{flex-basis:285px}.nav .header-radio .radio-info{display:none!important}}
@media(max-width:760px){.portfolio-header .nav{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:12px 20px;min-height:0;padding:15px 0}.portfolio-header .wordmark{grid-column:1;grid-row:1;align-self:center}.header-radio{grid-column:2;grid-row:1}.compact-console{grid-column:1/-1;width:100%;flex:none}.compact-console .explorer-hud{grid-template-columns:minmax(0,1fr) 14px;min-height:55px;padding:9px 12px;gap:18px}.compact-console .hud-rank strong{font-size:13px}.compact-console .profile-title small{font-size:10px}.compact-console .profile-title{gap:15px}.compact-console .explorer-panel{max-height:calc(100dvh - 152px)}.compact-console .explorer-action{padding:10px;border-bottom:1px solid var(--line)!important}.compact-console .explorer-action:nth-child(n+3){border-bottom:0!important}.compact-console .explorer-action:last-child{grid-column:auto}.nav .header-radio .radio-info .mono{display:none!important}.nav .header-radio .radio-title{min-height:44px}.nav .header-radio .radio-player{gap:6px}.nav .header-radio .radio-volume-button{min-width:25px}.nav .header-radio .radio-volume{top:44px}.compact-console .explorer-action>button,.compact-console .explorer-action>a,.compact-console .portal-button span{font-size:13px}.compact-console .explorer-action:last-child>button{font-size:12px}}
@media(max-width:350px){.compact-console .explorer-action>button,.compact-console .explorer-action>a,.compact-console .portal-button span{font-size:11px}.compact-console .explorer-action:last-child>button{font-size:10px}}
/* The explorer identity and radio travel together once the header leaves view. */
.scroll-console.is-docked{position:fixed;display:flex;align-items:center;gap:9px;top:16px;right:46px;width:330px;max-width:calc(100vw - 36px);padding:5px 10px 5px 5px;z-index:49;border:1px solid var(--line);border-radius:12px;background:#17101ff2;box-shadow:0 8px 30px #0005;backdrop-filter:blur(16px)}
.scroll-console.is-docked .compact-console{position:static;container-type:normal;flex:1;min-width:0;border:0;border-radius:7px;background:none;box-shadow:none}
.scroll-console.is-docked .explorer-hud{min-height:42px;padding:5px 7px;gap:7px;grid-template-columns:minmax(0,1fr) 9px;border-radius:7px}
.scroll-console.is-docked .hud-identity{gap:8px}.scroll-console.is-docked .hud-level{width:25px;height:30px;flex:none}.scroll-console.is-docked .hud-level b{font-size:17px}.scroll-console.is-docked .hud-level small{font-size:7px}
.scroll-console.is-docked .profile-title{margin-bottom:6px}.scroll-console.is-docked .profile-title>small{display:none}.scroll-console.is-docked .hud-rank strong{font-size:11px;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.scroll-console.is-docked .hud-track{height:2px}.scroll-console.is-docked .hud-open{font-size:12px}
.scroll-console.is-docked .header-radio{padding-left:10px;border-left:1px solid var(--line);flex:none}.nav .scroll-console.is-docked .radio-player{gap:5px}.nav .scroll-console.is-docked .radio-info{display:flex!important}.nav .scroll-console.is-docked .radio-info .mono{display:none!important}.nav .scroll-console.is-docked .radio-title{font-size:10px;min-height:36px}.nav .scroll-console.is-docked .radio-toggle{width:27px;height:38px;min-height:38px}.nav .scroll-console.is-docked .radio-disc{width:24px;height:24px}.nav .scroll-console.is-docked .radio-volume-button{min-width:20px;min-height:38px}.nav .scroll-console.is-docked .radio-eq{height:16px;gap:2px;margin-left:0}
.scroll-console.is-docked .explorer-panel{left:-1px;right:-1px;top:calc(100% + 7px);width:auto;max-height:calc(100dvh - 88px);border:1px solid var(--line);border-radius:12px;padding:8px 10px 10px;box-shadow:0 15px 40px #0006}.scroll-console.is-docked .explorer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.scroll-console.is-docked .explorer-action:last-child{grid-column:auto}.scroll-console.is-docked .explorer-action{padding:10px}.scroll-console.is-docked .explorer-action>button,.scroll-console.is-docked .explorer-action>a,.scroll-console.is-docked .portal-button span{font-size:12px}.scroll-console.is-docked .explorer-action:last-child>button{font-size:11px}
@media(max-width:760px){.scroll-console.is-docked{top:10px;right:18px;gap:6px;width:320px}.scroll-console.is-docked .header-radio{padding-left:7px}.scroll-console.is-docked .explorer-hud{padding-inline:5px}}
@media(max-width:350px){.scroll-console.is-docked .hud-identity{gap:6px}.scroll-console.is-docked .hud-rank strong{font-size:10px}.scroll-console.is-docked .explorer-hud{gap:5px}.nav .scroll-console.is-docked .radio-player{gap:3px}.nav .scroll-console.is-docked .radio-toggle{width:24px}}
