/* Small, shared header controls: a snapping gauntlet and a living sun/moon. */
.top-actions.cosmic-header .appearance-trigger,.resume-header.cosmic-header .appearance-trigger,.cosmic-header .theme-button,.case-theme-controls>button{position:relative;inset:auto;display:grid;place-items:center;flex:none;width:46px;height:46px;min-height:44px;margin:0;padding:10px;border:1px solid var(--site-line);border-radius:8px;background:var(--site-surface);color:var(--site-ink);box-shadow:none;cursor:pointer;overflow:visible}
.cosmic-control::before,.cosmic-portrait::before{content:'';position:absolute;inset:5px;border-radius:50%;background:var(--site-accent-soft);filter:blur(8px);opacity:.55;pointer-events:none;animation:cosmic-breathe 3.8s ease-in-out infinite}
.cosmic-header .cosmic-control svg,.case-theme-controls .cosmic-control svg,.cosmic-portrait>svg{position:relative;z-index:1;display:block;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.cosmic-control .cosmic-gem,.cosmic-portrait .cosmic-gem{fill:var(--site-accent);stroke:var(--site-accent);filter:drop-shadow(0 0 3px var(--site-accent))}
.cosmic-control .cosmic-spark{fill:var(--site-yellow);animation:cosmic-spark 2.8s ease-in-out infinite}
.cosmic-control .celestial-rays{transform-origin:16px 16px;animation:celestial-turn 16s linear infinite}
.cosmic-control .celestial-stars{animation:cosmic-spark 3.4s ease-in-out infinite}
.cosmic-header .cosmic-control:hover,.cosmic-control:focus-visible{transform:none;border-color:var(--site-accent);background:var(--site-accent-soft)}
.cosmic-control:active{translate:0 1px}
.cosmic-control::after{content:attr(data-hint);position:absolute;top:calc(100% + 9px);left:50%;padding:6px 9px;border:1px solid var(--site-line);border-radius:4px;background:var(--site-surface);color:var(--site-ink);font:11px/1.3 var(--font-ui);white-space:nowrap;pointer-events:none;opacity:0;translate:-50% -3px;transition:opacity .14s,translate .14s;z-index:9}
.cosmic-control:is(:hover,:focus-visible)::after{opacity:1;translate:-50% 0}
.hero .portrait-toggle.cosmic-portrait{width:54px;height:54px;background:var(--site-surface);border:1px solid var(--site-line);border-radius:12px;box-shadow:none}
.cosmic-portrait .portrait-orbit{transform-origin:16px 16px;animation:celestial-turn 12s linear infinite}
.case-theme-controls,.resume-theme-controls{display:flex;align-items:center;gap:7px;flex:none}
.case-theme-controls{margin-left:auto}
.resume-header.cosmic-header{gap:18px}
.resume-header.cosmic-header nav{margin-left:auto}
.snap-scene{--snap-paper:var(--site-surface);--snap-ink:var(--site-ink);--snap-gold:#ead7a6;position:fixed;inset:0;z-index:120;pointer-events:none;overflow:hidden}
.snap-scene[hidden]{display:none}
:root[data-scheme="night"] .snap-scene{--snap-gold:#4b4230}
.snap-walker{position:absolute;left:max(20px,calc(50vw - 210px));bottom:max(20px,env(safe-area-inset-bottom));width:240px;transform:translateX(0);animation:snap-walk-in .75s cubic-bezier(.2,.7,.3,1) both}
.snap-character{position:relative;width:100%}
.snap-scene[data-phase="walking"] .titan-leg{transform-box:fill-box;transform-origin:50% 4%;animation:titan-stride .36s ease-in-out 2}
.snap-scene[data-phase="walking"] .titan-leg-back{animation-delay:-.18s}
.snap-scene[data-phase="walking"] .titan-figure{animation:titan-step .18s ease-in-out 4}
.snap-speech{position:absolute;left:150px;bottom:calc(100% - 25px);width:330px;min-height:194px;padding:24px 26px 36px;box-sizing:border-box;opacity:1;transform:translateY(0);transition:opacity .16s,transform .16s;pointer-events:auto}
.snap-scene[data-phase="walking"] .snap-speech{opacity:0;transform:translateY(5px);pointer-events:none}
.snap-bubble-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.snap-bubble-outline path{fill:var(--snap-paper);stroke:var(--snap-ink);stroke-width:1.7;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.snap-bubble-outline .bubble-pencil-echo{fill:none;stroke-width:.65;opacity:.45}
.snap-scene .snap-close{position:absolute;top:-12px;right:-10px;z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:var(--snap-paper);color:var(--site-muted);font:22px/1 var(--font-ui);cursor:pointer}
.snap-speech #snap-quote{position:relative;margin:0;color:var(--snap-ink);font:400 22px/1.35 var(--font-action);letter-spacing:0}
.snap-read-line{position:relative;display:table;isolation:isolate;padding:1px 3px;margin:0 -3px}
.snap-read-line::before{content:'';position:absolute;z-index:-1;inset:20% -2px 8%;background:var(--site-yellow);transform:scaleX(0);transform-origin:left center}
.snap-read-line[data-read-state="reading"]::before{animation:snap-read .8s linear both}
.snap-read-line[data-read-state="read"]::before{transform:scaleX(1)}
.snap-scene-actions{position:relative;margin-top:8px}
.snap-scene-actions button{min-height:44px;padding:5px 0;border:0;background:transparent;color:var(--site-muted);font:15px/1.3 var(--font-action);cursor:pointer}
.snap-scene-actions button:hover{color:var(--site-accent)}
.snap-scene.snap-leaving .snap-walker{animation:snap-walk-out .36s ease-in both}
body.snap-scene-open:not(.snap-portrait-return) .hero .face-stage{opacity:.12;transition:opacity .25s}
body.snap-portrait-return .hero .face-stage{opacity:1;transition:opacity .4s}
.snap-titan{display:block;width:100%;height:auto;overflow:visible}
.snap-titan :is(.titan-paper,.titan-armour,.titan-plate,.titan-gauntlet-fill){stroke:var(--snap-ink);stroke-width:1.8}
.snap-titan .titan-paper{fill:var(--snap-paper)}
.snap-titan .titan-armour{fill:var(--site-subtle)}
.snap-titan .titan-plate,.snap-titan .titan-gauntlet-fill{fill:var(--snap-gold)}
.snap-titan .titan-ink,.snap-titan .titan-chin{fill:none;stroke:var(--snap-ink);stroke-width:1.8}
.snap-titan .titan-hatch{fill:none;stroke:var(--snap-ink);stroke-width:.8;opacity:.45}
.snap-titan .titan-chin{stroke-width:1.5}
.snap-titan .titan-pencil{fill:none;stroke:var(--snap-ink);stroke-width:.65;opacity:.25}
.snap-titan .gauntlet-stones{stroke:var(--snap-ink);stroke-width:1.2}
.snap-titan .thanos-middle{transform-box:fill-box;transform-origin:50% 88%;transform:rotate(0);transition:transform .16s cubic-bezier(.3,.1,.9,.7)}
.snap-titan .thanos-thumb{transform-box:fill-box;transform-origin:70% 100%;transform:rotate(0);transition:transform .16s ease-out}
.snap-scene[data-phase="snapped"] .thanos-middle{transform:rotate(76deg)}
.snap-scene[data-phase="snapped"] .thanos-thumb{transform:rotate(-25deg)}
.snap-titan .snap-ink-rays{fill:none;stroke:var(--site-accent);stroke-width:2;opacity:0}
.snap-scene[data-phase="snapped"] .snap-ink-rays{animation:snap-ink-impact .6s ease-out both}
.snap-impact{position:absolute;left:77%;top:18%;width:32px;height:32px;border:1px solid var(--site-accent);border-radius:50%;opacity:0;pointer-events:none}
.snap-scene[data-phase="snapped"] .snap-impact{animation:snap-ring .65s ease-out both}
.snap-scene-open .project-motion{--ui-play-state:paused!important}
@keyframes cosmic-breathe{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:.8;transform:scale(1.13)}}
@keyframes cosmic-spark{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes celestial-turn{to{transform:rotate(360deg)}}
@keyframes snap-walk-in{from{transform:translateX(calc(-50vw - 300px))}to{transform:translateX(0)}}
@keyframes snap-walk-out{to{opacity:0;transform:translateX(55px)}}
@keyframes titan-stride{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(11deg)}}
@keyframes titan-step{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes snap-read{to{transform:scaleX(1)}}
@keyframes snap-ring{0%{opacity:.55;transform:scale(.3)}100%{opacity:0;transform:scale(3.4)}}
@keyframes snap-ink-impact{0%{opacity:0}15%,45%{opacity:1}100%{opacity:0}}
@media(max-width:960px){
 .top-actions.cosmic-header .appearance-trigger,.resume-header.cosmic-header .appearance-trigger,.cosmic-header .theme-button{width:44px;height:44px;min-width:44px;padding:9px}
 .top-actions.cosmic-header .site-signature{max-width:calc(100% - 152px)}
 .hero .portrait-toggle.cosmic-portrait{width:46px;height:46px;border-radius:10px}
 .case-theme-controls{display:none}
 .resume-header.cosmic-header{display:flex;flex-wrap:wrap;gap:8px 12px}
 .resume-header.cosmic-header .resume-home{margin-right:auto}
 .resume-header.cosmic-header .resume-home>.signature-logo{width:min(200px,calc(100vw - 145px))}
 .resume-header.cosmic-header nav{order:3;width:100%;justify-content:center;margin-left:0}
 .cosmic-control::after{display:none}
 .snap-walker{left:max(12px,calc(50vw - 180px));bottom:max(16px,env(safe-area-inset-bottom));width:170px}
 .snap-speech{left:54px;bottom:calc(100% - 25px);width:min(280px,calc(100vw - 78px));min-height:180px;padding:20px 18px 31px}
 .snap-speech #snap-quote{font-size:18px;line-height:1.35}
 .snap-scene-actions{margin-top:3px}

}
@media(max-width:360px){.snap-speech #snap-quote{font-size:17px}}
@media(max-height:560px){.snap-walker{width:115px;bottom:12px;left:max(15px,calc(50vw - 190px))}.snap-speech{left:76px;bottom:calc(100% - 50px);width:min(280px,calc(100vw - 105px));min-height:150px;padding:15px 19px 26px}.snap-speech #snap-quote{font-size:17px}}
@media(prefers-reduced-motion:reduce){
 .cosmic-control *,.cosmic-control::before,.cosmic-portrait *,.cosmic-portrait::before,.snap-scene,.snap-scene *{animation:none!important;transition:none!important}
 .cosmic-control::before,.cosmic-portrait::before{opacity:.35}
}
/* Whole-site snap: dust layers cover everything (including the header); Thanos stays above them. */
.snap-dust-layer{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none}
.snap-dust-cover{z-index:9990}
.snap-dust-particles{z-index:9991}
body.snap-dusting .snap-scene{z-index:9995}
