@font-face{font-family:'Visor Display';src:url('/fonts/VisorDisplay-Regular.woff2?v=03') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--ui-radius:22px;--ui-height:44px;--ui-gap:12px;--ui-edge:#d3dfc638;--ui-ink:#ecf1e6;--ui-glass:linear-gradient(130deg,#899d7e1c,#354b3a29);--display-face:'Visor Display','Avenir Next',sans-serif}
/* One corner geometry and one minimum control size throughout this interface. */
button,.pill,.site-header,.site-menu summary,.site-header .site-menu nav,.site-header nav a,.archive-pills a,.browse-projects-button,.opening-finder button,.finish-contact a,#project-browser,.browser-project,.browser-project img,.web-overview-card img,.six-card{border-radius:var(--ui-radius)!important}
button,.pill,.archive-pills a,.opening-finder button{min-height:var(--ui-height)}
.site-header{border-color:var(--ui-edge)}
.site-menu summary,.browser-tabs button,.opening-finder button,.browse-projects-button,.journey-scroll,.story-dome .dome-controls button{border:1px solid var(--ui-edge);background:var(--ui-glass);box-shadow:inset 0 1px 0 #ffffff08;color:var(--ui-ink)}
:is(button,a,summary):focus-visible{outline:2px solid #f2bd91;outline-offset:4px}
:is(.case-head h1,.archive-exit h2,.hx-finish h2,.story-section-title h2,.story-word,#project-browser h2,.reading h1,.web-overview h1){font-family:var(--display-face);font-weight:400;letter-spacing:-.025em;line-height:1.12;font-synthesis:none}
.story-word{line-height:1.16}.hx-line{font-family:var(--display-face)!important;font-weight:400!important;letter-spacing:.025em!important;font-style:normal!important;text-shadow:0 0 1px #e0f1de66,0 0 18px #acc5ab33!important}
.archive-exit h2,.hx-finish h2,#project-browser h2{background:linear-gradient(110deg,#f0f4e8,#c9dbca 70%,#e3c4a5);background-clip:text;-webkit-background-clip:text;color:transparent}
/* Grain belongs to the display treatment; the glyph outlines stay clean and editable. */
@supports(mask-image:url('')){.archive-exit h2,.hx-finish h2,#project-browser h2,.hx-line{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence baseFrequency='.82' numOctaves='3' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 .18 .18 .18 0 .72'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23g)' d='M0 0h220v100H0z'/%3E%3C/svg%3E");mask-repeat:repeat}}
/* The scroll cue is a real shared-language control; the old competing cues retire. */
.hx4-cue,.hx-progress,.story-foot{display:none!important}.journey-scroll{position:fixed;z-index:145;left:50%;bottom:58px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 18px;min-height:40px;font:400 12px/1.3 'Avenir Next',sans-serif;backdrop-filter:blur(14px);white-space:nowrap}.journey-scroll span:last-child{font-size:17px}.journey-scroll:hover{border-color:#efd0aa80;background-color:#46564055}
.hx4-rail{bottom:20px!important}
/* Quiet centred rotation, with browsing offset left rather than another stacked row. */
.story-dome .dome-surface{bottom:160px}.story-dome .dome-readout{bottom:112px;max-width:230px}.story-dome .dome-readout a{font-size:13px!important;line-height:1.3}.story-dome .dome-readout p{font-size:10px!important;line-height:1.35;margin:4px 0 0;max-width:230px}.story-dome .dome-controls{bottom:52px;gap:12px}.story-dome .dome-controls p{display:none}.story-dome .dome-controls button{width:44px;height:44px;padding:0;flex:none}.story-dome .dome-controls .dome-motion-toggle{width:auto;min-width:80px;padding-inline:14px;font-size:11px}.opening-finder{left:12px;bottom:52px;transform:none!important;padding:0;margin:0;max-width:45%;display:block}.opening-finder button{font-size:12px;padding:10px 16px;white-space:nowrap}.opening-finder>a{display:none}
.archive-exit .browse-projects-button{min-height:52px;padding:12px 18px;font-size:17px}.archive-exit .archive-pills{gap:var(--ui-gap);padding-block:var(--ui-gap) 24px}.archive-exit .archive-pills a{padding:11px 16px}
#project-browser{padding:28px;transform-origin:center;overflow:auto;background:radial-gradient(ellipse at 10% 0,#76966b22,transparent 55%),#17251c;border-color:var(--ui-edge)}
#project-browser::backdrop{background:#06100bd9;backdrop-filter:blur(14px);animation:browser-veil .4s ease both}#project-browser.is-closing::backdrop{opacity:0;transition:opacity .25s ease}#project-browser.is-closing>*{opacity:0;transition:opacity .15s ease}
#project-browser header{align-items:start;margin-bottom:20px}#project-browser header .eyebrow{margin-bottom:12px}#project-browser header h2{font-size:42px;margin-bottom:0;line-height:1.12}#project-browser header button{margin:0;padding:10px 17px;min-width:90px;font-size:13px}.browser-tabs{gap:var(--ui-gap)}.browser-tabs button{font-size:12px;padding:10px 16px}.browser-tabs [aria-pressed=true]{background:#debd9e;color:#19241a;border-color:#debd9e}
.browser-projects{gap:var(--ui-gap);padding-bottom:8px}.browser-project{grid-template-columns:62px minmax(0,1fr) 16px;gap:14px;padding:14px;border:1px solid var(--ui-edge);background:linear-gradient(125deg,#80937012,#20332555);min-height:94px;transition:background-color .18s,border-color .18s}.browser-project img{width:62px;height:62px;object-fit:cover}.browser-project strong{font-family:'Avenir Next',sans-serif;font-size:15px;font-weight:500;line-height:1.3}.browser-project small{font-family:'Avenir Next',sans-serif;font-size:11px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.browser-project:hover,.browser-project:focus-visible{border-color:#dabc9980;background-color:#79916b1a}.browser-project:hover strong{text-decoration:none}.browser-project>span:last-child{color:#e2bb92}.browser-count{margin-block:20px 12px}
@keyframes browser-veil{from{opacity:0}to{opacity:1}}
@media(max-width:700px){:root{--ui-gap:10px}#project-browser{padding:20px;width:calc(100vw - 24px);height:90dvh}#project-browser header{gap:12px}#project-browser header h2{font-size:30px}#project-browser header button{min-width:76px;padding-inline:13px}.browser-project{min-height:90px;padding:12px;gap:12px}.browser-project img{width:58px;height:58px}.browser-projects{gap:10px}.browser-tabs button{font-size:11px;padding-inline:13px}.story-dome .dome-surface{bottom:170px}.story-dome .dome-readout{bottom:122px}.story-dome .dome-controls{bottom:64px;left:auto;right:4px;justify-content:flex-end;gap:8px}.story-dome .dome-controls button{width:40px;height:44px}.story-dome .dome-controls .dome-motion-toggle{min-width:64px;padding-inline:10px;font-size:10px}.opening-finder{left:0;bottom:64px;max-width:45%;width:auto}.opening-finder button{font-size:10px;padding-inline:11px;min-height:44px}.journey-scroll{bottom:57px;font-size:11px;min-height:38px;padding:8px 15px}.story-dome .dome-controls p{display:none}}
@media(prefers-reduced-motion:reduce){#project-browser::backdrop{animation:none}.browser-project{transition:none}}
@media(forced-colors:active){.archive-exit h2,.hx-finish h2,#project-browser h2{background:none;color:CanvasText;mask-image:none}.journey-scroll{background:Canvas}}
.hx4 .hx4-hello .visor-greeting{display:block;font-family:var(--display-face);font-size:clamp(32px,5.6vw,76px);font-weight:400;line-height:1.08;letter-spacing:-.02em;text-transform:none;color:#f0f5e9;text-shadow:0 0 12px #dcebdd25,0 2px 14px #07160db3}
@media(min-aspect-ratio:1/1){.visor-greeting br{display:none}.visor-greeting br:after{content:' '}.hx4 .hx4-hello .visor-greeting{font-size:clamp(38px,5vw,68px)}}
#project-browser header{position:sticky;top:-28px;z-index:3;background:linear-gradient(180deg,#17251c 75%,#17251ce8);padding-block:10px 18px;backdrop-filter:blur(12px)}
@media(max-width:700px){#project-browser header{top:-20px}.browser-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.browser-tabs button{width:100%;white-space:nowrap}}

/* Organic revision: a solid readable core with atmosphere carried by a second layer. */
.archive-exit h2,.hx-finish h2,#project-browser h2,.hx-line{mask-image:none!important;-webkit-mask-image:none!important}
.hx4 .hx4-hello .visor-greeting:not(.visor-haze){position:relative;color:#edf3e5;text-shadow:0 0 1px #ecf4df44,0 2px 14px #07160d99}
.hx4 .hx4-hello .visor-haze{position:absolute;inset:0;filter:blur(4px);opacity:.22;color:#c9dcc4;pointer-events:none;mix-blend-mode:screen}
/* A small, reversible vapor pulse keeps the control and its action available. */
.vapor-pressed{animation:button-vapor-pulse 650ms cubic-bezier(.22,1,.36,1)!important}
@keyframes button-vapor-pulse{0%{filter:blur(0);opacity:1}35%{filter:blur(1.5px) brightness(1.18);opacity:.72}100%{filter:blur(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.vapor-pressed{animation:none!important}}
.journey-scroll{gap:8px!important;padding-inline:13px!important;min-height:44px!important}
.journey-scroll span:first-child{font-size:16px!important;line-height:1;display:flex;align-items:center}
.hx4 .hx-line:not(.hx4-hello){font-size:clamp(1.6rem,calc(4.4vw + 12px),3.8rem);bottom:calc(9svh + 18px + env(safe-area-inset-bottom))}
.hx4 .hx4-hello.hx4-line-top{bottom:calc(4.5svh + 18px + env(safe-area-inset-bottom));width:min(90vw,650px)}
@media(max-aspect-ratio:3/4){.hx4 .hx4-hello.hx4-line-top{bottom:calc(19svh + 18px + env(safe-area-inset-bottom))}}
@media(min-aspect-ratio:1/1){.hx4 .hx4-hello.hx4-line-top{width:min(84vw,1050px);bottom:calc(11svh + 18px + env(safe-area-inset-bottom))}}
.web-orbit-section .web-vortex-shell{height:min(620px,70svh);min-height:440px;padding:0;margin:0;overflow:hidden;border:1px solid #c7d6bc24;border-radius:22px;background:radial-gradient(ellipse at 50% 55%,#354a3544,transparent 65%)}
.web-orbit-section .web-vortex-mount,.web-orbit-section .web-vortex{height:100%;min-height:0}
.web-orbit-section .web-vortex-field{opacity:.38}
.web-orbit-section .interaction-handoff{display:none}
@media(max-width:700px){.web-orbit-section .web-vortex-shell{height:520px;min-height:0}.hx4 .hx-line:not(.hx4-hello){font-size:clamp(1.6rem,7vw,2.5rem)}}

/* Small capitals preserve sentence case for assistive technology. */
.hx4 .hx-line:not(.hx4-hello){text-transform:uppercase}
.hx4 .hx4-hello .visor-greeting{font-variant-caps:small-caps;font-synthesis:small-caps;text-transform:none;line-height:1.15}
.hx4 .hx4-hello.hx4-line-top{bottom:calc(4.5svh + 46px + env(safe-area-inset-bottom))}
@media(max-aspect-ratio:3/4){.hx4 .hx4-hello.hx4-line-top{bottom:calc(19svh + 46px + env(safe-area-inset-bottom))}}
@media(min-aspect-ratio:1/1){.hx4 .hx4-hello.hx4-line-top{bottom:calc(11svh + 46px + env(safe-area-inset-bottom))}}
/* Shared sentence-case small caps for all three astronaut phrases. */
.hx4 .hx-line:not(.hx4-hello){text-transform:none;font-variant-caps:small-caps;font-synthesis:small-caps}
/* Phone: keep the three reveal phrases together in the lower third, above the rail. */
@media(max-width:700px) and (orientation:portrait){
 .hx4 .hx-line:not(.hx4-hello){bottom:calc(25svh + 15px + env(safe-area-inset-bottom));font-size:clamp(32.6px,calc(7vw + 7px),47px);max-width:90vw}
 .hx4 .hx4-hello.hx4-line-top{bottom:calc(25svh + 15px + env(safe-area-inset-bottom));width:min(90vw,650px)}
 .hx4 .hx4-hello .visor-greeting{font-size:clamp(39px,calc(5.6vw + 7px),60px)}
}
