/* One continuous retro-computing world. Decorative layers never intercept input. */
.intro-running .intro-scene{z-index:10000;inset:0;overflow:auto;animation:boot-entrance 1.7s linear both;background:#060b08f5;backdrop-filter:blur(12px);padding:24px}
.intro-scene:before,.intro-scene:after,.intro-light{display:none!important}
.intro-running .hero-copy,.intro-running .hero-art,.intro-running .header{animation:none}
.bios-panel{width:min(440px,100%);margin:auto;font-family:var(--mono);color:#b8ef9f;text-shadow:0 0 12px #b8ef9f30}
.bios-heading{display:flex;align-items:center;gap:20px;padding-bottom:20px;border-bottom:1px solid #b8ef9f33;margin-bottom:20px}
.bios-logo{font:500 42px/1 var(--display);letter-spacing:-3px;color:#eeeee4}
.bios-heading>span:last-child{font-size:13px;letter-spacing:1px}
.bios-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;font:clamp(12px,3.4vw,15px)/1.65 var(--mono);margin:0}
.bios-panel pre span{display:block;animation:bios-line .15s steps(2,end) both;animation-delay:calc(var(--line)*.135s)}
.bios-panel pre span:last-child{color:#eeeee4}
.bios-track{height:2px;margin-top:20px;background:#b8ef9f15;overflow:hidden}
.bios-track:after{content:'';display:block;width:100%;height:100%;background:#b8ef9f;transform-origin:left;animation:bios-load 1.35s steps(12) both;box-shadow:0 0 12px #b8ef9f}
@keyframes bios-line{from{opacity:0;transform:translateX(-3px)}to{opacity:1;transform:none}}
@keyframes bios-load{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes boot-entrance{0%,82%{opacity:1;visibility:visible}87%{opacity:.92;filter:none}90%{filter:drop-shadow(1px 0 #aaecba)}100%{opacity:0;visibility:hidden;filter:none}}
.retro-dialog{position:fixed;z-index:99999;inset:auto 0 auto;top:calc(var(--terminal-top,0px) + var(--terminal-height,100dvh)/2);transform:translateY(-50%);margin:0 auto;width:min(680px,calc(100% - 32px));height:min(540px,calc(var(--terminal-height,100dvh) - 32px));max-height:calc(var(--terminal-height,100dvh) - 32px);overflow:hidden}
.retro-dialog[open]{display:flex;flex-direction:column}
.terminal-bar,.terminal-form,.terminal-footer{flex-shrink:0}
.terminal-output{flex:1;min-height:0;height:auto;max-height:none;overscroll-behavior:contain}
.terminal-bar{min-height:48px;padding:8px 15px}
.terminal-close{width:40px;height:36px;flex-shrink:0}
.terminal-form{padding:8px 16px 12px}
.terminal-footer{line-height:1.5;padding-bottom:12px}
@media(max-height:340px){.terminal-footer{display:none}.terminal-bar{min-height:42px;padding-block:3px}.terminal-form{padding-block:4px}}
/* The original photograph is clipped only at its outer hardware silhouette. */
.crt-hardware{mix-blend-mode:normal;clip-path:polygon(23.5% 3.9%,76.4% 3.9%,77.2% 4.3%,77.7% 5.4%,77.8% 12.8%,79.3% 16%,79.5% 19%,79.5% 55.7%,79.1% 57.4%,77.8% 59.3%,77.8% 64%,77.4% 65.7%,76.5% 66.2%,75.5% 66.3%,75.3% 67.2%,66.2% 67.5%,66.2% 69.2%,67.5% 69.2%,68% 69.8%,69.7% 73.8%,69.7% 76.2%,76.3% 76.2%,77.2% 76.5%,77.7% 77.5%,80.3% 89.7%,80.5% 91%,80.3% 94.5%,79.7% 95.3%,20.2% 95.3%,19.3% 94.8%,19% 93.7%,18.9% 90.4%,19.2% 89%,22% 77.2%,22.6% 76.3%,30.3% 76.2%,30.3% 73.8%,32.1% 69.5%,32.6% 69.2%,33.8% 69.2%,33.8% 67.5%,24.7% 67.2%,24.4% 66.3%,23.4% 66.2%,22.5% 65.5%,22.2% 64%,22.2% 59.3%,20.8% 57%,20.5% 55%,20.4% 20%,20.6% 16%,22.2% 12.8%,22.2% 5.5%,22.7% 4.4%)}
.hero-art{background:none;border:0;box-shadow:none;overflow:visible;isolation:isolate;transform:translateY(-50%) perspective(1100px) rotateX(var(--crt-rx,0deg)) rotateY(var(--crt-ry,0deg)) rotateZ(var(--crt-rz,0deg)) scale(var(--crt-scale,1));will-change:transform}
.crt-aura{position:absolute;z-index:-2;inset:-10% -2% 0;background:radial-gradient(ellipse at 55% 46%,#b7e49224,transparent 56%);pointer-events:none;animation:aura-breathe 11s ease-in-out infinite}
.crt-shadow{position:absolute;z-index:-1;width:59%;height:12%;left:20%;bottom:0;background:radial-gradient(ellipse,#b8ef9f14,#0005 48%,transparent 71%);transform:rotateX(65deg) scale(1.2);filter:blur(8px);pointer-events:none}
.crt-screen{padding:2.5% 2.7%;background:radial-gradient(ellipse at 45% 30%,#17271b,#050a06 88%)}
.crt-screen pre{line-height:1.3}
.crt-controls{bottom:-1%;z-index:8}
.crt-controls button{min-height:34px;font-size:12px;transition:background .2s,box-shadow .2s}
.crt-controls button:hover{background:#24311b;box-shadow:0 0 20px #b8ef9f1c}
.hero{overflow:visible;background:none;isolation:isolate}
.hero-copy{position:relative;z-index:3}
.hero-copy:before{content:'';position:absolute;inset:-35px -16px -30px -25px;background:radial-gradient(ellipse at 35% 50%,#080b09f5 12%,#080b09d9 45%,#080b0900 74%);z-index:-1;pointer-events:none}
.hero-grid{display:none}
.section{background:transparent}
.about-grid{background:#0c130ef5;box-shadow:0 18px 60px #0003,inset 0 1px #c9dfae14}
.section-kicker,.section-heading{position:relative;isolation:isolate}
.section-kicker:before,.section-heading:before{content:'';position:absolute;inset:-10px -20px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#080b09ed,#080b09c9 60%,#080b0900)}
.capability,.timeline-item,.education-card{background:#0d1510f5}
.toolkit{background:#0a120df5}
.process-disclosure{background:#09110beb;padding-inline:12px}
.world-fog{position:absolute;inset:-15%;pointer-events:none;will-change:opacity}
.ambient-stage{background:#080b09;perspective:1000px}
.fog-retro{background:radial-gradient(ellipse at 73% 26%,#40593360,transparent 45%),radial-gradient(ellipse at 8% 65%,#4f482d35,transparent 45%);opacity:var(--era-retro,1)}
.fog-code{background:radial-gradient(ellipse at 15% 35%,#447c543b,transparent 46%),radial-gradient(ellipse at 85% 60%,#76974b40,transparent 44%);opacity:var(--era-code,0)}
.fog-cloud{background:radial-gradient(ellipse at 88% 58%,#37686675,transparent 47%),radial-gradient(ellipse at 10% 26%,#4d665e45,transparent 43%);opacity:var(--era-cloud,0)}
.fog-ai{background:radial-gradient(ellipse at 85% 50%,#46689b65,transparent 44%),radial-gradient(ellipse at 5% 70%,#754f9a50,transparent 42%);opacity:var(--era-ai,0)}
.scene-grid{inset:-30%;opacity:.8;background-size:80px 80px;transform:translate3d(var(--far-x,0px),var(--far-y,0px),0) rotate(-6deg)}
.world-floor{position:absolute;left:-30%;right:-30%;bottom:-55%;height:115%;background-image:linear-gradient(#97b28c22 1px,transparent 1px),linear-gradient(90deg,#97b28c22 1px,transparent 1px);background-size:90px 90px;transform:perspective(640px) rotateX(61deg) translate3d(var(--mid-x,0px),var(--floor-y,0px),0);mask-image:linear-gradient(transparent,#0006 50%,#000);opacity:.45}
#ambient-canvas{opacity:1}
.world-object{position:absolute;pointer-events:none;will-change:transform,opacity;transform:translate3d(var(--object-x,0px),var(--object-y,0px),0) rotate(var(--object-r,0deg));opacity:var(--object-opacity,.2)}
.world-object img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.far-computer{width:clamp(210px,23vw,390px);left:-11%;top:8%;filter:blur(1px) saturate(.65)}
.distant-computer{width:135px;right:25%;top:-8%;filter:blur(2px) saturate(.5)}
.world-workstation{width:clamp(330px,32vw,540px);right:-16%;top:44%;filter:saturate(.6)}
.lower-computer{width:230px;left:-9%;top:81%;filter:blur(1.5px) saturate(.5)}
.world-console{border:1px solid #9ec18b61;background:#09160d70;border-radius:4px;box-shadow:0 18px 50px #0003;font-family:var(--mono);color:#bed4ac;overflow:hidden}
.console-title{padding:8px 12px;background:#94b88b14;border-bottom:1px solid #8aaf7936;display:flex;justify-content:space-between;gap:18px;font-size:12px;letter-spacing:.4px}
.world-console pre{margin:0;padding:14px 17px;font:13px/1.8 var(--mono);white-space:pre}
.giant-console{width:550px;left:19%;top:0;filter:blur(.7px)}
.giant-console pre{font-size:26px;color:#acc79370;padding:22px 28px}.giant-console .console-title{font-size:14px}
.code-console{width:260px;left:-60px;top:53%}
.cloud-console{width:285px;right:-55px;top:19%}
.syntax-key{color:#e3cc91}
.terminal-caret{animation:terminal-blink 1.2s steps(2,end) infinite}
.data-fragment{right:5%;top:83%;font:22px/1.5 var(--mono);color:#93c7d3;filter:blur(.5px)}
.data-fragment span{font-size:12px;letter-spacing:2px}
.world-floppy{width:200px;left:-70px;top:30%;filter:blur(2px);mix-blend-mode:lighten}
.foreground-console{width:220px;right:-125px;top:70%;filter:blur(3px)}
.world-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#080b0910,#080b091a 10%,#080b0940 28%,#080b0930 68%,transparent 90%),linear-gradient(#080b0930,transparent 25%,transparent 85%,#080b0960);pointer-events:none}
.ambient-grain{opacity:.035}
.world-chapter{position:absolute;left:22px;bottom:23px;display:flex;align-items:center;gap:12px;color:#b5c5ab8c;font:11px var(--mono);letter-spacing:1.3px;transform:rotate(-90deg) translateY(100%);transform-origin:bottom left;white-space:nowrap}
.chapter-index{color:#d1c799}.chapter-line{width:64px;height:1px;background:linear-gradient(90deg,#a3bc8659,transparent)}
.cursor-trail{position:fixed;inset:0;pointer-events:none;z-index:90}
.cursor-trail i{position:absolute;left:0;top:0;width:3px;height:3px;border-radius:50%;background:#d6f3b9;opacity:0;box-shadow:0 0 7px #b8ef9f80;will-change:transform,opacity}
.custom-cursor{will-change:transform;transition:width .15s,height .15s,opacity .2s;left:0!important;top:0!important}
.capability .window-title{position:relative;overflow:hidden}
.capability .window-title:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,#dcf3be16 50%,transparent 75%);transform:translateX(-100%);animation:window-sweep 19s ease-in-out infinite}
.capability:nth-child(2) .window-title:after{animation-delay:6s}.capability:nth-child(3) .window-title:after{animation-delay:12s}
.capability:hover .window-title{color:#e5f5d7}
.timeline-item:hover{border-color:#acc99280;box-shadow:0 12px 30px #0003}
.button:focus-visible,.crt-controls button:focus-visible,.terminal-launcher:focus-visible{outline:2px solid #d6f2b4;outline-offset:5px}
@keyframes aura-breathe{50%{opacity:.6;transform:scale(.94)}}
@keyframes terminal-blink{50%{opacity:0}}
@keyframes window-sweep{0%,80%{transform:translateX(-100%)}93%,100%{transform:translateX(100%)}}
@media(min-width:1500px){.far-computer{left:-5%}.world-workstation{right:-11%}.lower-computer{left:-3%}.code-console{left:0}.cloud-console{right:0}}
@media(max-width:1050px){.world-chapter{display:none}.far-computer{left:-18%}.world-workstation{right:-25%}.giant-console{left:5%}.code-console{left:-140px}.cloud-console{right:-150px}.hero-art{right:-3%;width:51%}}
@media(max-width:700px){
 .hero{overflow:hidden}.hero-copy:before{inset:-20px;background:radial-gradient(ellipse,#080b09fa 25%,#080b0980 60%,transparent 76%)}
 .hero-art{width:min(120%,500px);right:auto;transform:perspective(1100px) rotateX(var(--crt-rx,0deg)) rotateY(var(--crt-ry,0deg));margin-top:0;margin-bottom:25px}
 .crt-controls{bottom:-4%;gap:7px}.crt-controls button{font-size:12px;min-height:36px}.crt-shadow{filter:none}
 .world-floor{background-size:65px 65px;opacity:.25}.scene-grid{opacity:.45}
 .distant-computer,.lower-computer,.giant-console,.code-console,.cloud-console,.world-floppy,.foreground-console,.data-fragment,.cursor-trail{display:none}
 .far-computer{width:180px;left:-90px;top:28%;filter:none}.world-workstation{width:230px;right:-125px;top:70%;filter:none}
 .world-fog{inset:0}.world-vignette{background:linear-gradient(90deg,transparent,#080b0980 25%,#080b0980 75%,transparent)}
 .capability .window-title:after{animation:none}.retro-dialog::backdrop{backdrop-filter:blur(3px)}
}
.low-power .distant-computer,.low-power .foreground-console,.low-power .world-floppy,.low-power .cursor-trail{display:none}
.low-power .world-object{filter:none}
.motion-paused .hero-art,.motion-paused .world-object,.motion-hidden .world-object{will-change:auto}
.motion-paused .cursor-trail,.motion-paused .custom-cursor{display:none}
.motion-paused .capability:hover,.motion-paused .education-card:hover{transform:none}
.motion-paused .bios-panel pre span{animation:none;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.world-object,.hero-art{will-change:auto}.cursor-trail{display:none}.intro-scene{display:none!important}}
/* Confine halo overflow without clipping the floating hardware itself. */
html{overflow-x:clip}
.crt-aura{inset:-10% 5% 0}
.crt-motes{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:hidden}
.crt-motes i{position:absolute;width:3px;height:3px;background:#e2edb0;border-radius:50%;box-shadow:0 0 8px #daf5bd66;opacity:0;animation:crt-mote 17s linear infinite}
.crt-motes i:nth-child(1){left:15%;top:72%}.crt-motes i:nth-child(2){left:83%;top:35%;animation-delay:-7s}.crt-motes i:nth-child(3){left:75%;top:89%;animation-delay:-12s}
@keyframes crt-mote{0%,100%{opacity:0;transform:translate3d(0,20px,0)}20%,65%{opacity:.4}85%{opacity:0;transform:translate3d(-12px,-60px,0)}}
@media(max-width:700px){.crt-motes{display:none}}
@media(max-height:440px){.intro-running .intro-scene{padding:12px}.bios-heading{padding-bottom:6px;margin-bottom:8px;gap:15px}.bios-logo{font-size:30px}.bios-heading>span:last-child{font-size:11px}.bios-panel pre{font-size:12px;line-height:1.4}.bios-track{margin-top:10px}}
/* Small interaction cues; keep the existing retro composition and motion. */
.header .nav-github{white-space:nowrap}
.header .nav-github:hover,.header .nav-github:focus-visible{color:var(--accent)}
.disclosure-action{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;color:var(--accent);font:13px var(--mono)}
.disclosure-action:before{content:'Ver más'}
.process-disclosure[open] .disclosure-action:before{content:'Cerrar'}
.process-disclosure>summary{border-radius:3px;transition:background .2s,box-shadow .2s}
.process-disclosure>summary:hover,.process-disclosure>summary:focus-visible{background:#b8ef9f0b;box-shadow:inset 0 0 0 1px #b8ef9f32}
.workflow-tabs button{border-radius:4px;transition:color .2s,background .2s,box-shadow .2s}
.workflow-tabs button:after{content:'Ver →';font:12px/1.4 var(--mono);color:#b4c2a8}
.workflow-tabs button[aria-selected=true]:after{content:'Viendo';color:var(--accent)}
.workflow-tabs button:hover,.workflow-tabs button:focus-visible{background:#b8ef9f0a;box-shadow:inset 0 0 0 1px #b8ef9f32}
.toolkit summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px 9px;cursor:pointer;transition:background .2s,box-shadow .2s}
.toolkit summary>.tool-label{font:inherit;color:inherit;line-height:1.5;transform:none!important}
.toolkit summary>.tool-toggle{grid-column:3;grid-row:1;font-size:22px}
.toolkit summary:before{grid-column:1;grid-row:1;margin:0}
.toolkit summary:after{content:'Explorar →';grid-column:2 / -1;font:13px/1.4 var(--mono);color:var(--accent)}
.toolkit details[open] summary:after{content:'Cerrar'}
.toolkit summary:hover,.toolkit summary:focus-visible{background:#b8ef9f0b;box-shadow:inset 0 0 0 1px #b8ef9f32}
@media(max-width:1050px){.header nav{gap:17px}}
@media(max-width:700px){.header nav>a.nav-github{display:inline-flex;gap:5px;align-items:center}.header nav{gap:13px}.header .nav-github{font-size:13px}.process-disclosure>summary{gap:12px}.workflow-tabs button:after{font-size:12px;letter-spacing:-.5px}}
@media(max-width:380px){.header nav{gap:10px}.header .nav-contact{padding:8px 10px}}
/* Zero-gravity placement: independent depth and rotation, always behind content. */
.ambient-stage .world-object{transform:translate3d(var(--object-x,0px),var(--object-y,0px),var(--object-z,0px)) rotateX(var(--object-rx,0deg)) rotateY(var(--object-ry,0deg)) rotateZ(var(--object-r,0deg));transform-origin:50% 50%;backface-visibility:hidden}
.ambient-stage .far-computer{width:clamp(190px,21vw,330px);left:-3%;top:6%;filter:blur(1.4px) saturate(.65)}
.ambient-stage .distant-computer{width:140px;right:32%;top:12%;filter:blur(2.3px) saturate(.5)}
.ambient-stage .world-workstation{width:clamp(270px,27vw,430px);right:-6%;top:45%;filter:blur(.5px) saturate(.6)}
.ambient-stage .lower-computer{width:190px;left:24%;top:78%;filter:blur(1.2px) saturate(.5)}
.ambient-stage .giant-console{width:470px;left:32%;top:-5%;filter:blur(1px)}
.ambient-stage .code-console{width:235px;left:3%;top:48%;filter:blur(.4px)}
.ambient-stage .cloud-console{width:255px;right:8%;top:13%;filter:blur(.7px)}
.ambient-stage .data-fragment{right:29%;top:78%;filter:blur(1px)}
.ambient-stage .world-floppy{width:165px;left:8%;top:76%;filter:blur(2px)}
.ambient-stage .foreground-console{width:200px;right:-8%;top:80%;filter:blur(3px)}
.ambient-stage .world-floor{inset:-30%;height:auto;transform:translate3d(var(--far-x,0px),var(--far-y,0px),-260px) rotateX(12deg) rotateY(-18deg) rotateZ(21deg);opacity:.12;mask-image:radial-gradient(ellipse,#0008,transparent 70%)}
@media(max-width:1050px){.ambient-stage .far-computer{left:-8%}.ambient-stage .world-workstation{right:-12%}.ambient-stage .code-console{left:-5%}.ambient-stage .cloud-console{right:-5%}}
@media(max-width:700px){
 .ambient-stage .far-computer{width:160px;left:-70px;top:21%;filter:none}
 .ambient-stage .world-workstation{width:200px;right:-90px;top:73%;filter:none}
 .ambient-stage .code-console{display:block;width:170px;left:52%;top:45%;filter:none;max-height:145px}
 .ambient-stage .code-console pre{font-size:11px;padding:10px 12px}.ambient-stage .code-console .console-title{font-size:11px}
 .ambient-stage .world-floor{opacity:.08}
}
.low-power .ambient-stage .world-object{filter:none}
