:root{--line:#0f6d3a;--text:#74ff98;--text-soft:#47bc66;--accent:#0f6;--alert:#cf6;--shadow:rgba(0,255,120,.25)}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;text-size-adjust:100%;background:radial-gradient(circle at top,#0a1f11 0,#010803 44%,#000 100%);color:var(--text);font-family:Share Tech Mono,Courier New,monospace}body{overflow:hidden}img{max-width:100%;display:block}a{color:var(--accent)}button,summary{font-family:inherit;color:inherit}h1,h2,h3,h4,p,ul{margin:0}h1,h2,h3,h4{font-family:VT323,Share Tech Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.pipboy-chassis{width:100dvw;height:100dvh;padding:.6rem;border:2px solid #3d463c;background:radial-gradient(circle at 18% 12%,rgba(111,128,97,.22),transparent 40%),linear-gradient(155deg,#2c3128,#1f241e 42%,#34382f);box-shadow:inset 0 0 0 1px #5c6553,inset 0 0 22px rgba(0,0,0,.45);position:relative}.chassis-rivet{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#aab09f,#4f5648 64%,#252a23);border:1px solid #20231e;z-index:3}.chassis-rivet.top-left{top:10px;left:10px}.chassis-rivet.top-right{top:10px;right:10px}.chassis-rivet.bottom-left{bottom:10px;left:10px}.chassis-rivet.bottom-right{bottom:10px;right:10px}.chassis-controls{position:absolute;right:8px;top:64px;display:grid;grid-gap:10px;gap:10px;z-index:3}.chassis-controls span{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 28% 28%,#ffc36a,#8c6328 55%,#2f2518);border:1px solid #2a1e11;box-shadow:0 0 6px rgba(255,197,83,.28)}.shell{width:100%;height:100%;display:grid;grid-template-rows:auto auto auto 1fr auto;grid-gap:.5rem;gap:.5rem;position:relative;z-index:2;align-content:start;justify-items:stretch}.modal-window,.panel,.subpanel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(9,28,15,.95),rgba(2,10,5,.95));box-shadow:inset 0 0 0 1px rgba(0,255,120,.12),0 0 18px var(--shadow);border-radius:10px;min-width:0}.panel{padding:.5rem .62rem}.topbar{justify-content:space-between}.brand,.topbar{display:flex;align-items:center;gap:.5rem}.brand{min-width:0}.brand h1{font-size:clamp(1.18rem,2.4vw,1.65rem);line-height:1}.meta{color:var(--alert);white-space:nowrap}.blip{width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 18px rgba(0,255,110,.9);animation:pulse 1.4s infinite}.nav-tabs,.sub-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:.32rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.nav-tabs::-webkit-scrollbar,.sub-tabs::-webkit-scrollbar{display:none}.sub-tab-btn,.tab-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:.12rem;white-space:nowrap;line-height:1;font-size:.98rem;background:transparent;border:1px solid var(--line);border-radius:999px;padding:.12rem .42rem;cursor:pointer}.sub-tab-btn.active,.tab-btn.active{background:rgba(0,255,102,.14);border-color:#7cffac}.tab-icon{color:var(--alert)}.viewport{overflow:hidden;padding:.45rem;min-height:0}.screen-grid{display:grid;grid-gap:.42rem;gap:.42rem;align-content:start;align-items:start;height:100%;overflow:auto;padding-right:.15rem}.status-layout{grid-template-columns:1.1fr 1fr;grid-template-rows:auto auto auto;align-content:start;grid-auto-rows:max-content}.status-map,.status-time{grid-column:1/-1}.status-time h2{font-size:clamp(1.5rem,3vw,2rem)}.special-layout{grid-template-columns:260px 1fr}.special-screen{position:relative;overflow:hidden}.scan-sweep{position:absolute;inset:-40% 0 auto 0;height:42%;background:linear-gradient(180deg,rgba(80,255,140,0),rgba(80,255,140,.1) 38%,rgba(120,255,165,.18) 50%,rgba(80,255,140,.08) 62%,rgba(80,255,140,0));pointer-events:none;z-index:2;animation:specialSweep 3.4s linear infinite}.special-screen>:not(.scan-sweep){position:relative;z-index:3}.subpanel{padding:.5rem;display:flex;flex-direction:column;gap:.34rem;min-height:0;height:auto}.hero{display:grid;grid-template-columns:98px 1fr;align-items:start;min-width:0;grid-auto-rows:max-content;height:auto}.hero-avatar{width:100%;max-width:98px;aspect-ratio:1/1.12;object-fit:cover;object-position:center 18%;border:1px solid var(--line);border-radius:8px}.hero-meta{display:grid;grid-gap:.22rem;gap:.22rem;min-width:0}.hero-meta p{line-height:1.24;overflow-wrap:anywhere}.hero-links{display:flex;flex-wrap:wrap;gap:.3rem}.hero-links a{text-decoration:none;border:1px solid var(--line);border-radius:6px;padding:.08rem .28rem}.muted{color:var(--text-soft)}.status-mini ul{margin:0;padding-left:1rem;display:grid;grid-gap:.14rem;gap:.14rem}.spain-map{width:min(100%,920px);height:clamp(250px,35vh,380px);margin:0 auto;border:1px solid rgba(15,109,58,.75);border-radius:8px;overflow:hidden;position:relative}.map-fallback{width:100%;height:100%;display:grid;place-content:center;grid-gap:.35rem;gap:.35rem;text-align:center;color:var(--text-soft);padding:.6rem}.map-canvas{width:100%;height:100%}.map-canvas-embed{border:0;filter:grayscale(1) sepia(1) hue-rotate(72deg) saturate(4.4) brightness(.82) contrast(1.08);pointer-events:auto}.spain-map:after{content:"";position:absolute;inset:0;background:rgba(20,255,120,.05);pointer-events:none}.special-rows{display:grid;grid-gap:.22rem;gap:.22rem}.special-row{width:100%;text-align:left;background:transparent;border:1px solid var(--line);border-radius:7px;padding:.15rem .36rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.special-row.active{background:rgba(0,255,102,.14)}.special-center{align-items:center;justify-content:center}.vault-boy{width:104px;height:160px;position:relative}.vault-boy span{position:absolute;background:var(--accent)}.vault-boy .head{width:34px;height:34px;border-radius:999px;top:4px;left:35px}.vault-boy .body{width:36px;height:54px;border-radius:10px;top:44px;left:34px}.vault-boy .arm{width:13px;height:40px;border-radius:9px;top:52px}.vault-boy .arm.left{left:16px;transform:rotate(25deg)}.vault-boy .arm.right{right:16px;transform:rotate(-25deg)}.vault-boy .leg{width:13px;height:52px;border-radius:9px;top:102px}.vault-boy .leg.left{left:35px;transform:rotate(8deg)}.vault-boy .leg.right{left:56px;transform:rotate(-8deg)}.special-body-image{width:min(190px,68%);height:auto;object-fit:contain;filter:drop-shadow(0 0 10px rgba(0,255,120,.28))}.rpg-track{border:1px solid var(--line);height:12px;overflow:hidden;background:rgba(0,255,110,.06)}.rpg-track.large{height:14px}.rpg-fill{display:block;height:100%;background:linear-gradient(90deg,#0b9f48,#58ff8b);animation:fillIn .9s ease-out}.skills-categories-nav{display:flex;flex-wrap:wrap;gap:.25rem}.category-btn{border:1px solid var(--line);border-radius:999px;background:transparent;padding:.08rem .34rem;cursor:pointer}.category-btn.active{background:rgba(0,255,102,.14);border-color:#7cffac}.skills-categories{display:grid;grid-gap:.35rem;gap:.35rem;min-height:0}.skill-category{border:1px solid rgba(15,109,58,.8);border-radius:8px;padding:.4rem;display:grid;grid-gap:.28rem;gap:.28rem}.skill-category h3{font-size:1rem;color:var(--alert)}.skills-grid{display:flex;flex-wrap:wrap;gap:.24rem;align-items:flex-start;align-content:flex-start}.project-tag,.skill-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.1rem .4rem;line-height:1.12;overflow-wrap:anywhere}.directory-list{display:grid;grid-gap:.28rem;gap:.28rem}.directory-item{width:100%;text-align:left;background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:8px;padding:.34rem .42rem;display:grid;grid-gap:.1rem;gap:.1rem;cursor:pointer}.directory-item:hover{border-color:#7cffac}.directory-title{font-family:VT323,Share Tech Mono,monospace;font-size:.95rem}.directory-meta{color:var(--alert)}.directory-sub{color:var(--text-soft);overflow-wrap:anywhere}.coming-soon{justify-content:center}.contact-list{list-style:none;padding:0;display:grid;grid-gap:.35rem;gap:.35rem}.contact-item{border-left:2px solid var(--line);padding-left:.4rem}.ticker{overflow:hidden;padding:.25rem .55rem}.ticker-viewport{width:100%;overflow:hidden}.ticker-single{min-height:1.35em;display:inline-block;max-width:none;white-space:nowrap;overflow:visible;margin:0;will-change:transform}.ticker-single:not(.is-overflowing){max-width:100%;overflow:hidden;text-overflow:ellipsis}.ticker-single.is-overflowing{animation:tickerSinglePass var(--ticker-duration,14s) linear 1}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.66);display:grid;place-items:center;padding:.7rem;z-index:25}.modal-window{width:min(900px,100%);max-height:86vh;overflow:hidden;padding:.7rem;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);grid-gap:.4rem;gap:.4rem}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:.45rem}.close-btn{border:1px solid var(--line);background:transparent;border-radius:7px;padding:.16rem .45rem;cursor:pointer}.modal-tags{display:flex;flex-wrap:wrap;gap:.26rem}.project-body{color:var(--text-soft);line-height:1.4;overflow-wrap:anywhere;overflow:auto;max-height:50vh;padding-right:.2rem}.project-body h3,.project-body h4,.project-body p,.project-body ul{margin-top:.28rem}.project-body ul{padding-left:1rem}.md-image{max-width:100%;border:1px solid rgba(15,109,58,.8);border-radius:8px}.crt-overlay,.noise-overlay{pointer-events:none;position:fixed;inset:0}.crt-overlay{background:repeating-linear-gradient(180deg,rgba(0,255,120,.07),rgba(0,255,120,.07) 1px,transparent 0,transparent 3px);opacity:.28;z-index:5}.noise-overlay{background-image:radial-gradient(hsla(0,0%,100%,.05) 1px,transparent 0);background-size:3px 3px;mix-blend-mode:soft-light;opacity:.08;z-index:4}@media (max-width:1000px){.special-layout,.status-layout{grid-template-columns:1fr;grid-template-rows:auto}.hero{grid-template-columns:1fr}.hero-avatar{max-width:124px}}@media (max-width:740px){body{overflow:auto}.pipboy-chassis{height:auto;min-height:100dvh;padding:.36rem}.chassis-controls,.chassis-rivet,.meta{display:none}.shell{height:auto;min-height:calc(100dvh - .72rem);grid-template-rows:auto auto auto auto auto;align-content:start}.panel{padding:.42rem .46rem}.brand h1{font-size:1.18rem}.viewport{min-height:0;overflow:visible}.screen-grid{height:auto;overflow:visible}.status-layout{display:flex;flex-direction:column;gap:.42rem;height:auto}.status-layout .subpanel{flex:0 0 auto}.sub-tab-btn,.tab-btn{font-size:.92rem;padding:.14rem .46rem}.spain-map{width:100%;height:280px}.map-canvas,.map-canvas-embed,.spain-map{touch-action:pan-x pan-y}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fillIn{0%{width:0}}@keyframes specialSweep{0%{transform:translateY(0)}to{transform:translateY(300%)}}@keyframes tickerSinglePass{0%,14%{transform:translateX(0)}86%,to{transform:translateX(var(--ticker-shift,-120px))}}