/* Frosted surfaces, distinct entrances, and bounded navigation feedback. */
:root,html[data-theme="dark"] { --glass:rgba(19,25,20,.65); --glass-edge:rgba(207,237,187,.16); --glass-glow:rgba(196,247,107,.07); --glass-shadow:0 16px 60px rgba(0,0,0,.18); }
html[data-theme="light"] { --glass:rgba(255,255,255,.69); --glass-edge:rgba(90,120,67,.2); --glass-glow:rgba(97,143,53,.065); --glass-shadow:0 16px 50px rgba(48,72,37,.075); }
body { isolation:isolate; }
.page-aurora { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.page-aurora i { position:absolute; display:block; border-radius:50%; filter:blur(85px); opacity:.075; will-change:transform; animation:ambient-drift 26s ease-in-out infinite alternate; }
.page-aurora i:nth-child(1) { width:45vw;height:45vw;top:15%;left:-22%;background:#c4f76b; }
.page-aurora i:nth-child(2) { width:40vw;height:40vw;top:55%;right:-25%;background:#91c5f9;animation-delay:-12s; }
.page-aurora i:nth-child(3) { width:25vw;height:25vw;top:-15%;right:12%;background:#c2abfa;animation-delay:-7s; }
.site-header,.site-header.is-scrolled { padding:12px 0!important; background:transparent!important; border:0!important; backdrop-filter:none!important; }
.site-header .nav-shell,.site-header.is-scrolled .nav-shell { min-height:64px!important; padding:0 18px!important; border:1px solid var(--glass-edge)!important; border-radius:16px!important; background:var(--glass)!important; backdrop-filter:blur(22px) saturate(145%); -webkit-backdrop-filter:blur(22px) saturate(145%); box-shadow:var(--glass-shadow); }
.brand { gap:10px!important; align-items:center!important; }
.brand-mark { width:36px!important;height:36px!important;flex:0 0 36px!important; }
.brand-mark img { width:36px!important;height:36px!important; }
.brand-copy { font-size:16px!important;line-height:1.2!important; }
.brand-copy small { display:block!important;font-size:8px!important;line-height:1.4!important;margin-top:3px;letter-spacing:.075em!important; }
.project-card,.orbit-node,.contact-form,.archive-cta,.lab-card,.article-index-card,.toc-card { background:var(--glass)!important; border-color:var(--glass-edge)!important; backdrop-filter:blur(18px) saturate(125%); -webkit-backdrop-filter:blur(18px) saturate(125%); box-shadow:inset 0 1px 0 rgba(255,255,255,.035),var(--glass-shadow); }
.project-card::before { opacity:.8; }
.project-card:hover { box-shadow:inset 0 1px 0 var(--glass-edge),0 24px 70px rgba(0,0,0,.16); }
.system-controls { background:var(--glass)!important;backdrop-filter:blur(16px);border-color:var(--glass-edge); }
.contact-form { position:relative;overflow:hidden; }
.contact-form::before { content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 0 0,var(--glass-glow),transparent 58%);pointer-events:none; }
.contact-form .field,.contact-form .button,.contact-form .contact-note,.contact-form [role="status"] { position:relative; }
.field input,.field textarea,.field select { background:color-mix(in srgb,var(--bg) 68%,transparent)!important; }
.button,.icon-button,.filter-button,.system-controls button { transition:transform .22s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease!important; }
.button:hover { transform:translateY(-2px); }
.button:active,.icon-button:active,.filter-button:active,.system-controls button:active { transform:scale(.97); }
.button-primary { position:relative;overflow:hidden; }
.button-primary::before { content:"";position:absolute;inset:-80% -45%;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translateX(-120%) rotate(12deg);pointer-events:none; }
.button-primary:hover::before { animation:button-sheen .8s ease; }
.hero-line { display:block; }
body.is-intro-ready .hero-line { animation:headline-enter .85s cubic-bezier(.16,1,.3,1) both; }
body.is-intro-ready .hero-line:nth-child(2) { animation-delay:.12s; }
body.is-intro-ready .hero-intro { animation:soft-enter .7s .02s both; }
body.is-intro-ready .hero-lead { animation:soft-enter .8s .2s both; }
body.is-intro-ready .hero-actions { animation:soft-enter .8s .3s both; }
.is-visible[data-entrance="work"] { animation:section-rise .8s cubic-bezier(.16,1,.3,1) both; }
.is-visible[data-entrance="capabilities"] { animation:section-focus .8s cubic-bezier(.16,1,.3,1) both; }
.is-visible[data-entrance="about"] { animation:section-side .9s cubic-bezier(.16,1,.3,1) both; }
.is-visible[data-entrance="writing"] { animation:section-trace .85s ease both; }
.is-visible[data-entrance="contact"] { animation:section-focus .85s cubic-bezier(.16,1,.3,1) both; }
.project-card.is-visible { animation:card-enter .7s cubic-bezier(.16,1,.3,1) both; animation-delay:var(--entrance-delay,0ms); }
.section-flash { animation:section-highlight 1.1s ease; }
.site-entry { position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--bg);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(26px);clip-path:inset(0);transition:clip-path .6s cubic-bezier(.76,0,.24,1),opacity .6s;animation:entry-fallback 0s 2.2s forwards; }
.site-entry[hidden] { display:none!important; }
.entry-shell { text-align:center;transition:opacity .35s,transform .6s; }
.entry-orbit { position:relative;display:grid;place-items:center;width:110px;height:110px;margin:0 auto 28px; }
.entry-orbit img { width:58px;height:58px;animation:mark-breathe 1.7s ease-in-out infinite; }
.entry-orbit::before { content:"";position:absolute;inset:0;border:1px solid var(--glass-edge);border-top-color:var(--accent);border-radius:50%;animation:entry-orbit 1.4s linear infinite; }
.entry-orbit::after { content:"";position:absolute;inset:9px;border:1px dashed var(--glass-edge);border-radius:50%;animation:entry-orbit 5s linear infinite reverse; }
.entry-name { display:block;font:500 20px var(--display-font);letter-spacing:-.035em; }
.entry-caption { display:block;margin-top:10px;color:var(--muted);font:8px var(--mono-font);letter-spacing:.17em; }
.entry-line { height:1px;width:160px;overflow:hidden;background:var(--line);margin:28px auto 0; }
.entry-line i { display:block;height:100%;width:65%;background:var(--accent);animation:entry-line 1.1s ease-in-out infinite; }
.site-entry.is-exiting { clip-path:inset(0 0 100% 0);opacity:0;pointer-events:none; }
.site-entry.is-exiting .entry-shell { opacity:0;transform:translateY(-20px); }
.route-curtain { position:fixed;inset:10px;z-index:900;display:flex;align-items:center;justify-content:center;gap:18px;border:1px solid var(--glass-edge);border-radius:20px;background:var(--glass);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);transform:translateY(calc(100% + 20px));opacity:0;pointer-events:none;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s; }
.route-curtain img { width:40px;height:40px; }
.route-curtain span { font:13px var(--display-font); }
.route-curtain.is-opening { transform:translateY(0);opacity:1; }
.is-pressed { filter:brightness(1.12); }
body[data-motion="paused"] [data-entrance],body[data-motion="paused"] .project-card,body[data-motion="paused"] .hero-line,body[data-motion="paused"] .hero-intro,body[data-motion="paused"] .hero-lead,body[data-motion="paused"] .hero-actions { animation:none!important;opacity:1!important;clip-path:none!important; }
body[data-motion="paused"] .site-entry { animation-play-state:running!important; }
@keyframes ambient-drift { to{transform:translate3d(9vw,-7vh,0) scale(1.16)} }
@keyframes headline-enter { from{opacity:0;transform:translateY(35px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)} }
@keyframes soft-enter { from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)} }
@keyframes section-rise { from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)} }
@keyframes section-focus { from{opacity:0;transform:translateY(14px) scale(.975);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)} }
@keyframes section-side { from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)} }
@keyframes section-trace { from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)} }
@keyframes card-enter { from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0} }
@keyframes section-highlight { 0%,100%{filter:brightness(1)}35%{filter:brightness(1.12)} }
@keyframes entry-orbit { to{transform:rotate(360deg)} }
@keyframes mark-breathe { 50%{transform:scale(1.055);filter:drop-shadow(0 0 12px var(--glass-glow))} }
@keyframes entry-line { from{transform:translateX(-110%)}to{transform:translateX(170%)} }
@keyframes entry-fallback { to{opacity:0;visibility:hidden;pointer-events:none} }
@keyframes button-sheen { to{transform:translateX(120%) rotate(12deg)} }
@media(max-width:760px){.site-header,.site-header.is-scrolled{padding:8px 0!important}.site-header .nav-shell,.site-header.is-scrolled .nav-shell{min-height:58px!important;padding:0 12px!important;border-radius:12px!important}.brand-mark,.brand-mark img{width:30px!important;height:30px!important}.brand-mark{flex-basis:30px!important}.brand-copy{font-size:14px!important}.brand-copy small{font-size:7px!important;margin-top:2px}.project-card,.contact-form{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.page-aurora i{animation:none;opacity:.045}.route-curtain{inset:6px;border-radius:14px}.site-nav.is-open{background:var(--glass)!important;backdrop-filter:blur(24px);border:1px solid var(--glass-edge)!important;border-radius:14px!important}.site-entry{backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){.site-entry,.route-curtain{display:none!important}.page-aurora i{animation:none;will-change:auto}.hero-line,[data-entrance],.project-card{animation:none!important;clip-path:none!important;opacity:1!important;translate:0 0!important}.button,.icon-button{transition:none!important}.button:hover{transform:none}.section-flash{animation:none!important}}
@media print{.site-entry,.route-curtain,.page-aurora{display:none!important}.site-header .nav-shell{backdrop-filter:none;background:white!important}.project-card,.contact-form{backdrop-filter:none;background:white!important}}
