:root{--portal-void:#000;--portal-crimson:#ff1a00;--portal-red:#c00;--portal-red-dim:#600;--portal-text:#f5f0ee;--portal-muted:#d8d0ce;--portal-glass:#0800008c;--portal-glass-border:#ff1e0038}.portal-portfolio{min-height:100vh;color:var(--portal-text);background:var(--portal-void);position:relative}.portal-canvas-wrap{z-index:0;background:#000;position:fixed;inset:0}.portal-canvas-ambient{display:none}@keyframes portal-pulse{0%{opacity:.85}to{opacity:1}}.portal-canvas-wrap canvas{z-index:1;position:relative}.portal-canvas-fallback{z-index:0;background:radial-gradient(#1a0000 0%,#000 70%);position:fixed;inset:0}.portal-vignette{z-index:1;pointer-events:none;background:radial-gradient(90% 80% at 55%,#0000 40%,#00000059 85%,#000000a6 100%);position:fixed;inset:0}.portal-grain{z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.5s steps(2,end) infinite portal-grain;position:fixed;inset:0}.portal-scanlines{z-index:2;pointer-events:none;opacity:.015;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ff28000a 2px 3px);position:absolute;inset:0}@keyframes portal-grain{0%{transform:translate(0)}to{transform:translate(-2%,1%)}}.portal-sections{z-index:10;position:relative}.portal-section{justify-content:center;align-items:center;min-height:125vh;padding:120px 24px 80px;display:flex}.portal-inner{width:100%;max-width:1180px;margin:0 auto}.portal-section-hero{justify-content:flex-start;align-items:center;min-height:100vh;padding-top:clamp(132px,14vh,168px);padding-bottom:0}.portal-hero{pointer-events:auto;z-index:20;max-width:520px;margin-left:max(24px,5vw);margin-right:auto;padding-top:8px;position:relative}.portal-eyebrow{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--portal-crimson);margin-bottom:20px;font-size:11px}.portal-hero .portal-eyebrow{color:#f5f0eeeb;text-shadow:0 1px 14px #000000f2;-webkit-backdrop-filter:blur(12px);background:#0800008c;border:1px solid #ff320038;border-radius:999px;align-items:center;gap:10px;margin-bottom:22px;padding:8px 14px 8px 12px;display:inline-flex}.portal-hero .portal-eyebrow:before{content:"";background:#f30;border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 12px #ff3200e6}.portal-hero-title,.portal-section-title{font-family:var(--font-cormorant),Georgia,serif;font-weight:400;line-height:.95}.portal-hero-title{font-size:clamp(48px,9vw,96px)}.portal-section-title{margin-bottom:16px;font-size:clamp(36px,6vw,64px)}.portal-gradient-text{background:linear-gradient(135deg,#fff 0%,#f40 45%,#900 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.portal-hero-sub{color:#f5f0ee;max-width:560px;font-size:15px;line-height:1.8}.portal-section-desc,.portal-body{color:#f5f0eef2;text-shadow:0 1px 16px #000000e6;max-width:560px;font-size:15px;line-height:1.8}.glass-portal{border:1px solid var(--portal-glass-border);-webkit-backdrop-filter:blur(20px);background:linear-gradient(145deg,#140000a6,#05000073);border-radius:16px;transition:border-color .35s,box-shadow .35s;box-shadow:inset 0 1px #ff3c0014,0 24px 80px -32px #ff000026}.glass-portal:hover{border-color:#ff280066;box-shadow:inset 0 1px #ff3c001f,0 0 40px #ff14001f}.portal-stats{flex-wrap:wrap;gap:12px;margin:32px 0;display:flex}.portal-stat{min-width:120px;padding:16px 20px}.portal-stat-value{color:var(--portal-text);text-shadow:0 2px 16px #000000d9;font-size:28px;font-weight:600;display:block}.portal-stat-label{letter-spacing:.14em;text-transform:uppercase;color:#f5f0eee6;text-shadow:0 1px 12px #000000e6;font-size:10px}.portal-hero-actions{flex-wrap:wrap;gap:12px;display:flex}.portal-scroll-hint{letter-spacing:.22em;text-transform:uppercase;color:#f5f0eeb3;margin-top:48px;font-size:11px;animation:2.5s ease-in-out infinite portal-breathe}@keyframes portal-breathe{0%,to{opacity:.35}50%{opacity:.9}}.portal-magnetic{cursor:pointer;background:0 0;border:none;padding:0}.portal-magnetic-inner{letter-spacing:.1em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:14px 28px;font-size:12px;font-weight:500;transition:box-shadow .3s,border-color .3s;display:inline-flex}.portal-magnetic-primary .portal-magnetic-inner{border:1px solid #ff643c59;box-shadow:inset 0 1px #ffdcc840,0 4px 20px #ff1e0038;color:#fff!important;background:linear-gradient(145deg,#ff3a1a 0%,#c41400 100%)!important}.portal-nav-hire.portal-magnetic-primary .portal-magnetic-inner{letter-spacing:.14em;padding:10px 22px;font-size:10px;box-shadow:inset 0 1px #ffdcc833,0 2px 14px #ff1e002e}.portal-nav-hire:hover .portal-magnetic-inner{border-color:#ff784680;box-shadow:inset 0 1px #ffdcc84d,0 4px 22px #ff280047}.portal-magnetic-ghost .portal-magnetic-inner{color:var(--portal-text);border:1px solid var(--portal-glass-border);background:#0006}.portal-magnetic-ghost:hover .portal-magnetic-inner{border-color:#ff280080;box-shadow:0 0 24px #ff140026}.portal-nav{z-index:100;pointer-events:none;padding:20px 32px;transition:padding .4s,background .4s;position:fixed;top:0;left:0;right:0}.portal-nav-scrolled{padding:12px 32px}.portal-nav-inner{pointer-events:auto;-webkit-backdrop-filter:blur(24px);background:#0600008c;border:1px solid #ffffff0f;border-radius:999px;justify-content:space-between;align-items:center;gap:24px;max-width:1320px;margin:0 auto;padding:10px 14px 10px 22px;transition:background .4s,border-color .4s,box-shadow .4s;display:flex;box-shadow:inset 0 1px #ffffff0a,0 8px 40px #00000073}.portal-nav-scrolled .portal-nav-inner{background:#040000b8;border-color:#ff28001a;box-shadow:inset 0 1px #ffffff0d,0 12px 48px #0000008c}.portal-logo{font-family:var(--font-cormorant),serif;letter-spacing:.14em;color:var(--portal-text);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:baseline;gap:1px;padding:4px 0;font-size:20px;font-weight:500;transition:opacity .25s;display:inline-flex}.portal-logo:hover{opacity:.85}.portal-logo-text{color:var(--portal-text)}.portal-logo-dot{color:var(--portal-crimson)}.portal-nav-links{flex:1;justify-content:center;display:none}@media (min-width:900px){.portal-nav-links{display:flex}}.portal-nav-track{background:#ffffff05;border:1px solid #ffffff0a;border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex}.portal-nav-link{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.1em;text-transform:uppercase;color:#f5f0ee73;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:8px 16px;font-size:10px;font-weight:400;transition:color .3s,background .3s,border-color .3s,box-shadow .3s;position:relative}.portal-nav-link:hover{color:#f5f0eee6}.portal-nav-link.active{color:#fff;background:#ff230024;border-color:#ff461e47;box-shadow:inset 0 1px #ffa0781f,0 0 20px #ff1e0014}.portal-nav-cta{flex-shrink:0}.portal-tags{flex-wrap:wrap;gap:8px;display:flex}.portal-tag{letter-spacing:.06em;color:#f64;background:#ff14000f;border:1px solid #ff280040;border-radius:999px;padding:5px 12px;font-size:11px}.portal-card-title{margin-bottom:12px;font-size:18px;font-weight:600}.portal-about-grid{gap:20px;margin-top:32px;display:grid}@media (min-width:768px){.portal-about-grid{grid-template-columns:1fr 1fr}}.portal-about-card{padding:28px}.portal-skills-grid{gap:16px;margin-top:32px;display:grid}@media (min-width:640px){.portal-skills-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.portal-skills-grid{grid-template-columns:repeat(3,1fr)}}.portal-skill-card{padding:24px}.portal-skill-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.portal-skill-head .portal-card-title{margin-bottom:0}.portal-skill-category-icon{color:#f64;background:#ff1e001a;border:1px solid #ff280038;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.portal-skill-list{margin:0;padding:0;list-style:none}.portal-skill-list li{color:#f5f0eeeb;text-shadow:0 1px 12px #000000d9;border-bottom:1px solid #ff1e000f;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.portal-skill-icon{color:#f86;background:#ff140014;border:1px solid #ff280024;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.portal-projects-grid{perspective:1400px;align-items:start;gap:28px;margin-top:36px;display:grid}@media (min-width:768px){.portal-projects-grid{grid-template-columns:repeat(2,1fr);gap:24px}}@media (min-width:1280px){.portal-projects-grid{grid-template-columns:repeat(4,1fr);gap:22px}}@media (min-width:1100px){.portal-projects-grid{gap:28px}}.portal-project-card{transform-style:preserve-3d;-webkit-backdrop-filter:blur(18px);background:linear-gradient(165deg,#120202d1,#0800009e);border:1px solid #ff280024;border-radius:20px;padding:0;transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .45s,box-shadow .45s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ff785014,0 20px 60px #00000073}.portal-project-card:hover{border-color:color-mix(in srgb,var(--project-accent,#f30)35%,#ff280040);box-shadow:inset 0 1px 0 #ffa0781f,0 0 0 1px color-mix(in srgb,var(--project-accent,#f30)12%,transparent),0 28px 80px #0000008c,0 0 48px color-mix(in srgb,var(--project-accent,#f30)12%,transparent);transform:translateY(-10px)}.portal-project-card--featured{border-color:color-mix(in srgb,var(--project-accent,#fde047)42%,#ff1e0033);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--project-accent,#fde047)20%,transparent),0 0 0 1px color-mix(in srgb,var(--project-accent,#fde047)14%,transparent),0 24px 70px #00000080,0 0 56px color-mix(in srgb,var(--project-accent,#fde047)10%,transparent)}@media (min-width:768px){.portal-project-card--featured{transform:translateY(-6px)}.portal-project-card--featured:hover{transform:translateY(-14px)}}.portal-project-frame{border-radius:inherit;pointer-events:none;z-index:4;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0a}.portal-project-glow{border-radius:inherit;background:linear-gradient(145deg,color-mix(in srgb,var(--project-accent,#ff2800)28%,transparent),transparent 48%);opacity:0;pointer-events:none;z-index:1;transition:opacity .45s;position:absolute;inset:-1px}.portal-project-card:hover .portal-project-glow{opacity:1}.portal-project-shine{border-radius:inherit;pointer-events:none;z-index:5;background:linear-gradient(115deg,#0000 28%,#ffffff12 46%,#0000 58%);transition:transform .85s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translate(-130%)}.portal-project-card:hover .portal-project-shine{transform:translate(130%)}.portal-project-media{position:relative}.portal-project-image{background:#0a0000;height:196px;position:relative;overflow:hidden}.portal-project-card--featured .portal-project-image{height:228px}.portal-project-shot{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .7s cubic-bezier(.22,1,.36,1),filter .5s}.portal-project-card:hover .portal-project-shot{filter:brightness(1.04)saturate(1.05);transform:scale(1.05)}.portal-project-image-overlay{background:linear-gradient(180deg,#00000026 0%,transparent 28%),linear-gradient(180deg,transparent 42%,#000000b8 100%),linear-gradient(90deg,color-mix(in srgb,var(--project-accent,#f30)10%,transparent),transparent 45%);pointer-events:none;position:absolute;inset:0}.portal-project-holo{pointer-events:none;opacity:.6;background:linear-gradient(115deg,#0000 30%,#ffffff1a 48%,#0000 62%);transition:transform .75s;position:absolute;inset:0;transform:translate(-120%)}.portal-project-card:hover .portal-project-holo{transform:translate(120%)}.portal-project-index{z-index:3;font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.18em;color:#f5f0ee8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000073;border:1px solid #ffffff14;border-radius:999px;padding:5px 9px;font-size:10px;position:absolute;top:14px;left:14px}.portal-project-logo{z-index:3;border:1px solid color-mix(in srgb,var(--project-accent,#f30)40%,#ff280040);width:54px;height:54px;box-shadow:0 12px 32px #00000080,0 0 24px color-mix(in srgb,var(--project-accent,#f30)12%,transparent);background:linear-gradient(145deg,#0c0000f2,#060000e0);border-radius:16px;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-24px;left:18px}.portal-project-card--featured .portal-project-logo{border-radius:18px;width:60px;height:60px}.portal-project-logo-img{object-fit:contain;width:34px;height:34px}.portal-project-card--featured .portal-project-logo-img{width:38px;height:38px}.portal-project-badge{z-index:3;letter-spacing:.16em;text-transform:uppercase;color:#1a1200;background:var(--project-accent,#fde047);font-size:9px;font-weight:600;font-family:var(--font-jetbrains-mono),monospace;box-shadow:0 0 24px color-mix(in srgb,var(--project-accent,#fde047)45%,transparent),inset 0 1px 0 #ffffff59;border-radius:999px;padding:6px 12px;position:absolute;top:14px;right:14px}.portal-project-body{z-index:2;padding:32px 22px 22px;position:relative}.portal-project-card--featured .portal-project-body{padding-top:36px}.portal-project-header{margin-bottom:12px}.portal-project-title{font-family:var(--font-cormorant),Georgia,serif;color:#f8f4f2;letter-spacing:.02em;margin:0 0 8px;font-size:1.55rem;font-weight:500;line-height:1.1}.portal-project-card--featured .portal-project-title{font-size:1.7rem}.portal-project-accent-line{background:linear-gradient(90deg,var(--project-accent,#f30),color-mix(in srgb,var(--project-accent,#f30)30%,transparent));width:36px;height:2px;box-shadow:0 0 12px color-mix(in srgb,var(--project-accent,#f30)40%,transparent);border-radius:999px;display:block}.portal-project-desc{color:#f5f0eed1;font-size:14px;line-height:1.75;font-family:var(--font-jetbrains-mono),ui-monospace,monospace;margin:0 0 16px;font-weight:400}.portal-project-stack{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.portal-project-tag{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.08em;text-transform:uppercase;color:#f5f0eee0;background:#ff14000f;border:1px solid #ff280033;border-radius:999px;padding:5px 11px;font-size:10px;transition:border-color .25s,background .25s}.portal-project-card:hover .portal-project-tag{border-color:color-mix(in srgb,var(--project-accent,#f30)30%,#ff280038);background:color-mix(in srgb,var(--project-accent,#f30)8%,#ff14000a)}.portal-project-actions{align-items:center;gap:10px;display:flex}.portal-project-btn{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:11px;font-weight:500;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s,background .25s,color .25s;display:inline-flex}.portal-project-btn--primary{color:#fff;background:linear-gradient(145deg,#ff3a1a,#c41400);border:1px solid #ff643c59;flex:1;box-shadow:inset 0 1px #ffdcc833,0 4px 16px #ff1e0033}.portal-project-btn--primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffdcc847,0 6px 22px #ff280047}.portal-project-btn--ghost{color:#f5f0eee6;background:#00000059;border:1px solid #ff280038}.portal-project-btn--ghost:hover{border-color:color-mix(in srgb,var(--project-accent,#f30)40%,#ff28004d);color:#fff;box-shadow:0 0 20px color-mix(in srgb,var(--project-accent,#f30)12%,transparent);transform:translateY(-1px)}.portal-project-links{align-items:center;gap:16px;margin-top:12px;display:flex}.portal-link{color:var(--portal-crimson);letter-spacing:.06em;align-items:center;gap:6px;font-size:13px;text-decoration:none;transition:color .2s;display:inline-flex}.portal-link:hover{color:#f86}.portal-timeline{gap:20px;margin-top:32px;display:grid;position:relative}.portal-timeline:before{content:"";background:linear-gradient(180deg,var(--portal-crimson),var(--portal-red-dim),transparent);width:1px;position:absolute;top:0;bottom:0;left:20px}.portal-timeline-item{margin-left:8px;padding:24px 24px 24px 48px;position:relative}.portal-timeline-dot{background:var(--portal-crimson);width:10px;height:10px;box-shadow:0 0 16px var(--portal-crimson);border-radius:50%;position:absolute;top:28px;left:12px}.portal-timeline-period{letter-spacing:.14em;text-transform:uppercase;color:var(--portal-crimson);margin-bottom:8px;font-size:11px}.portal-timeline-co{color:#f5f0eed9;margin-bottom:12px;font-size:14px}.portal-timeline-list{color:#f5f0eeeb;text-shadow:0 1px 14px #000000e6;padding-left:18px;font-size:14px;line-height:1.7}.portal-timeline-list li{margin-bottom:6px}.portal-contact-wrap{z-index:10;position:relative}.portal-contact-wrap .eyebrow{color:var(--portal-crimson)!important}.portal-contact-wrap p,.portal-contact-wrap label,.portal-contact-wrap footer{text-shadow:0 1px 14px #000000e6;color:#f5f0eeeb!important}.portal-contact-wrap input,.portal-contact-wrap textarea{color:#f5f0ee!important}.portal-contact-wrap input::placeholder,.portal-contact-wrap textarea::placeholder{color:#f5f0ee73!important}.portal-contact-wrap .glass-panel{border-color:var(--portal-glass-border)!important;background:var(--portal-glass)!important}.portal-contact-wrap .universe-btn-primary{color:#fff!important;background:linear-gradient(135deg,#f20,#900)!important}@media (max-width:768px){.portal-nav{padding:14px 16px}.portal-nav-inner{padding:10px 16px}.portal-nav .portal-nav-hire{display:none}.portal-section{padding:100px 20px 60px}}body.portal-loading .portal-sections,body.portal-loading .portal-nav,body.portal-loading .portal-vignette,body.portal-loading .portal-grain,body.portal-loading .portal-canvas-wrap,body.portal-loading .portal-canvas-fallback{opacity:0;visibility:hidden;pointer-events:none}body.portal-revealing .portal-canvas-wrap{opacity:1;visibility:visible;transition:opacity 2.2s cubic-bezier(.22,1,.36,1)}body.portal-revealing .portal-vignette,body.portal-revealing .portal-grain{opacity:1;visibility:visible;transition:opacity 1.8s cubic-bezier(.22,1,.36,1) .15s}body.portal-revealing .portal-sections,body.portal-revealing .portal-nav{opacity:1;pointer-events:auto;transition:opacity 1.6s cubic-bezier(.22,1,.36,1) .2s}body.portal-ready .portal-canvas-wrap,body.portal-ready .portal-vignette,body.portal-ready .portal-grain{opacity:1;visibility:visible}body.portal-ready .portal-sections{animation:1.4s cubic-bezier(.22,1,.36,1) forwards portal-site-enter}body.portal-ready .portal-nav{opacity:0;animation:1.2s cubic-bezier(.22,1,.36,1) .1s forwards portal-nav-enter}@keyframes portal-site-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-nav-enter{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.portal-loader{z-index:9999;transform-origin:50%;transform:scale(var(--loader-scale,1));filter:brightness(var(--loader-bright,1));will-change:transform,opacity,filter;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.portal-loader-canvas{z-index:2;pointer-events:none;opacity:1;width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.portal-loader-ambient{z-index:0;pointer-events:none;position:absolute;inset:0}.portal-loader-bg{background:radial-gradient(80% 60% at 50% 46%,#5a08008c,#0000 72%),radial-gradient(45% 35% at 52% 48%,#ff320038,#0000 68%),radial-gradient(120% 80% at 50% 100%,#28000066,#0000 55%),#000;position:absolute;inset:0}.portal-loader-nebula{filter:blur(40px);background:radial-gradient(50% 40% at 30% 35%,#ff280014,#0000 70%),radial-gradient(40% 35% at 72% 62%,#ff501e0f,#0000 65%);animation:8s ease-in-out infinite alternate portal-loader-nebula;position:absolute;inset:-10%}.portal-loader-stars{opacity:.75;background-image:radial-gradient(1px 1px at 12% 22%,#ff783ca6,#0000),radial-gradient(1px 1px at 78% 18%,#ff5a2880,#0000),radial-gradient(1.5px 1.5px at 34% 68%,#ff8c5073,#0000),radial-gradient(1px 1px at 88% 72%,#ff643266,#0000),radial-gradient(1.5px 1.5px at 52% 12%,#ffffff59,#0000),radial-gradient(1px 1px at 8% 78%,#ff502859,#0000),radial-gradient(1.5px 1.5px at 66% 42%,#ff783c66,#0000),radial-gradient(1px 1px at 42% 88%,#ffffff47,#0000),radial-gradient(1px 1px at 22% 48%,#fff3,#0000),radial-gradient(1px 1px at 91% 38%,#ffffff38,#0000);background-size:100% 100%;animation:5s ease-in-out infinite alternate portal-loader-twinkle;position:absolute;inset:0}.portal-loader-scanlines{z-index:4;pointer-events:none;opacity:.02;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ff3c000f 2px 3px);position:absolute;inset:0}.portal-loader-vignette{background:radial-gradient(88% 78%,#0000 32%,#000000c7 100%);position:absolute;inset:0}.portal-loader-grain{opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.5s steps(2,end) infinite portal-grain;position:absolute;inset:0}.portal-loader-lens{opacity:.35;mix-blend-mode:multiply;background:radial-gradient(42% 38% at 50% 44%,#0000 30%,#00000026 100%);position:absolute;inset:0}.portal-loader-hud{z-index:5;font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.24em;text-transform:uppercase;color:#f5f0ee38;pointer-events:none;flex-direction:column;gap:4px;font-size:8px;display:flex;position:absolute}.portal-loader-hud--tl{top:28px;left:28px}.portal-loader-hud--tr{align-items:flex-end;top:28px;right:28px}.portal-loader-hud--bl{bottom:28px;left:28px}.portal-loader-hud--br{align-items:flex-end;bottom:28px;right:28px}.portal-loader-hud-live{color:#ff502873;animation:2.4s ease-in-out infinite portal-loader-blink}.portal-loader-ui{z-index:6;width:100%;max-width:320px;transform:translate(calc(var(--mx,0)*6px),calc(var(--my,0)*4px));will-change:transform,opacity;flex-direction:column;align-items:center;margin-top:clamp(180px,24vh,240px);padding:0 20px;display:flex;position:relative}.portal-loader-card{-webkit-backdrop-filter:blur(28px)saturate(1.2);background:linear-gradient(155deg,#0c000094,#0400006b),linear-gradient(#ff3c000a,#0000 40%);border:1px solid #ff320024;border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:100%;padding:26px 28px 22px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ff8c5a14,inset 0 -1px #0006,0 28px 90px #000000a6,0 0 48px #ff1e000f}.portal-loader-card-shine{pointer-events:none;background:linear-gradient(115deg,#0000 38%,#ffb48c0f 48%,#0000 58%);position:absolute;inset:0}.portal-loader-card-frame{border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff08}.portal-loader-title{font-family:var(--font-cormorant),Georgia,serif;letter-spacing:.22em;text-shadow:0 0 40px #ff28002e,0 2px 16px #000000d9;background:linear-gradient(#fff 0%,#f5f0ee 45%,#d4886a 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2rem,5.5vw,2.6rem);font-weight:500}.portal-loader-dot{color:#f30;-webkit-text-fill-color:#f30}.portal-loader-progress-wrap{width:88px;height:88px;margin-top:4px;position:relative}.portal-loader-progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.portal-loader-progress-track{fill:none;stroke:#ff28001a;stroke-width:1.5px}.portal-loader-progress-fill{fill:none;stroke:url(#portal-loader-gradient);stroke-width:2px;stroke-linecap:round;stroke-dasharray:283;filter:drop-shadow(0 0 4px #ff3c0073);transition:stroke-dashoffset .12s linear}.portal-loader-progress-depth{fill:none;stroke:#ff28000f;stroke-width:.75px;opacity:.8}.portal-loader-orbit-dot{transform-origin:50%;background:#fa7;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;transition:transform .12s linear;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #ff6428e6,0 0 16px #ff3c0080}.portal-loader-spark{opacity:0;width:2px;height:2px;transform:rotate(var(--spark-angle,0deg))translateX(46px);animation:2.4s ease-out infinite portal-loader-spark;animation-delay:var(--spark-delay,0s);background:#ffc896e6;border-radius:50%;margin:-1px 0 0 -1px;position:absolute;top:50%;left:50%}.portal-loader-percent{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.04em;color:#ffb48ceb;text-shadow:0 0 10px #ff500059;justify-content:center;align-items:center;font-size:12px;font-weight:500;display:flex;position:absolute;inset:0}.portal-loader-sequence{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.32em;text-transform:uppercase;color:#f5f0ee6b;margin:2px 0 0;font-size:9px}.portal-loader-status{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.28em;text-transform:uppercase;color:#f5f0ee80;min-height:1.2em;margin:0;font-size:8px;animation:.45s ease-out portal-loader-status-in}.portal-loader-warp-flash{z-index:20;pointer-events:none;opacity:calc(clamp((var(--warp,0) - .55)*2.2,0,.98));background:radial-gradient(circle at 50% 46%,#0000 0%,#000 72%);transition:opacity .35s;position:absolute;inset:0}@keyframes portal-loader-spark{0%,72%,to{opacity:0;transform:rotate(var(--spark-angle,0deg))translateX(46px)scale(.4)}78%{opacity:.9}86%{opacity:0;transform:rotate(calc(var(--spark-angle,0deg) + 8deg))translateX(44px)scale(1.2)}}@keyframes portal-loader-twinkle{0%{opacity:.5}to{opacity:.9}}@keyframes portal-loader-nebula{0%{opacity:.6;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}@keyframes portal-loader-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes portal-loader-status-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.portal-loader-hud{opacity:.6;font-size:7px}.portal-loader-ui{max-width:290px;margin-top:clamp(140px,22vh,200px)}.portal-loader-card{padding:22px 18px 18px}}@media (prefers-reduced-motion:reduce){body.portal-ready .portal-sections,body.portal-ready .portal-nav{opacity:1;animation:none;transform:none}body.portal-revealing .portal-sections,body.portal-revealing .portal-nav,body.portal-revealing .portal-vignette,body.portal-revealing .portal-grain,body.portal-revealing .portal-canvas-wrap{opacity:1;transition:none}.portal-loader-stars,.portal-loader-grain,.portal-loader-nebula,.portal-loader-hud-live,.portal-loader-spark,.portal-loader-orbit-dot,.tempo-loader-orbit-ring,.tempo-loader-glow,.tempo-loader-accretion,.tempo-loader-orbit-dot,.tempo-loader-hud-live{animation:none!important}}.tempo-loader{--tempo-progress:0;--tempo-beat:.5;--tempo-glow:.45;--tempo-reveal:0;--tempo-warp:0;--mx:0;--my:0;z-index:9999;transform:scale(calc(1 + var(--tempo-reveal)*.08));filter:brightness(calc(1 + var(--tempo-reveal)*.22));will-change:opacity,transform,filter;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.tempo-loader-ambient{pointer-events:none;position:absolute;inset:0}.tempo-loader-hud{z-index:4;font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.28em;text-transform:uppercase;color:#ff643c73;pointer-events:none;opacity:calc(.55 - var(--tempo-reveal)*.5);flex-direction:column;gap:4px;font-size:8px;display:flex;position:absolute}.tempo-loader-hud--tl{top:28px;left:28px}.tempo-loader-hud--tr{align-items:flex-end;top:28px;right:28px}.tempo-loader-hud--bl{bottom:28px;left:28px}.tempo-loader-hud--br{align-items:flex-end;bottom:28px;right:28px}.tempo-loader-hud-tag{color:#ff8c5ab3;font-size:9px}.tempo-loader-hud-live{color:#f40;animation:2.2s ease-in-out infinite tempo-hud-blink}.tempo-loader-stage{z-index:3;width:100%;max-width:360px;transform:translate(calc(var(--mx)*8px),calc(var(--my)*5px));opacity:calc(1 - var(--tempo-reveal)*.4);padding:0 24px;position:relative}.tempo-loader-card{-webkit-backdrop-filter:blur(32px)saturate(1.25);background:linear-gradient(155deg,#0e00009e,#0400007a),linear-gradient(#ff3c000d,#0000 42%);border:1px solid #ff320029;border-radius:20px;flex-direction:column;align-items:center;gap:14px;padding:32px 34px 28px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffa06e1a,inset 0 -1px #00000073,0 32px 100px #000000b8,0 0 64px #ff1e0014}.tempo-loader-card-shine{pointer-events:none;background:linear-gradient(118deg,#0000 36%,#ffbe9612 48%,#0000 60%);position:absolute;inset:0}.tempo-loader-card-frame{border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0a}.tempo-loader-ring-wrap{width:112px;height:112px;margin-bottom:4px;position:relative}.tempo-loader-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.tempo-loader-ring-depth{fill:none;stroke:#ff28000d;stroke-width:.75px}.tempo-loader-ring-track{fill:none;stroke:#ff28001f;stroke-width:1.25px}.tempo-loader-ring-fill{fill:none;stroke:url(#tempo-ring-gradient);stroke-width:2px;stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:calc(283*(1 - var(--tempo-progress)));filter:drop-shadow(0 0 6px #ff3c0080)}.tempo-loader-orbit{pointer-events:none;position:absolute;inset:10px}.tempo-loader-orbit-ring{filter:drop-shadow(0 0 10px #ff320066);border:1px solid #ff501ebf;border-color:#ff501ebf #ff280033 #0000 #0000;border-radius:50%;animation:3s linear infinite tempo-orbit-spin;position:absolute;inset:0}.tempo-loader-orbit-ring--delay{opacity:.5;border-top-color:#ff8c508c;animation-duration:4.2s;animation-direction:reverse;inset:10px}.tempo-loader-orbit-dot{transform-origin:50% 46px;background:#f50;border-radius:50%;width:4px;height:4px;margin-left:-2px;animation:3s linear infinite tempo-orbit-dot;position:absolute;top:0;left:50%;box-shadow:0 0 10px #ff3c00e6}.tempo-loader-core{place-items:center;display:grid;position:absolute;inset:22px}.tempo-loader-accretion{opacity:calc(.55 + var(--tempo-beat)*.25);background:conic-gradient(from 200deg,#0000 0deg,#ff3c008c 40deg,#ff782859 80deg,#0000 140deg,#ff280040 220deg,#ff501473 300deg,#0000 360deg);border-radius:50%;animation:8s linear infinite tempo-accretion-spin;position:absolute;inset:-4px;-webkit-mask:radial-gradient(circle,#0000 42%,#000 52% 68%,#0000 72%);mask:radial-gradient(circle,#0000 42%,#000 52% 68%,#0000 72%)}.tempo-loader-horizon{width:52px;height:52px;box-shadow:inset 0 0 28px #ff280073,0 0 calc(14px + var(--tempo-beat)*16px)#ff320066;background:radial-gradient(circle at 50% 38%,#200 0%,#0a0000 42%,#000 68%);border-radius:50%}.tempo-loader-glow{opacity:var(--tempo-glow);background:radial-gradient(circle,#ff3c0052,#0000 70%);border-radius:50%;animation:1.4s ease-in-out infinite tempo-pulse;position:absolute;inset:-14px}.tempo-loader-lens-flare{width:120%;height:2px;opacity:calc(.25 + var(--tempo-beat)*.2);background:linear-gradient(90deg,#0000,#ff783c59,#0000);position:absolute;transform:rotate(-12deg)}.tempo-loader-percent{font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.06em;color:#ffa078d9;text-shadow:0 0 16px #ff3c0066;font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:500;position:absolute;top:38px}.tempo-loader-percent-suffix{opacity:.65;margin-left:1px;font-size:9px}.tempo-loader-title{font-family:var(--font-cormorant),Georgia,serif;letter-spacing:.22em;text-indent:.22em;text-shadow:0 0 40px #ff280033,0 2px 18px #000000e6;background:linear-gradient(#fff 0%,#f5f0ee 48%,#d4886a 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(1.85rem,5vw,2.35rem);font-weight:500}.tempo-loader-dot{color:#f30;-webkit-text-fill-color:#f30}.tempo-loader-status{min-height:1.2em;font-family:var(--font-jetbrains-mono),monospace;letter-spacing:.22em;text-transform:uppercase;color:#ff78508c;margin:0;font-size:9px;animation:.5s ease-out tempo-status-in}.tempo-loader-status[data-key]{animation:.45s ease-out tempo-status-in}.tempo-loader-meter{border-radius:999px;width:100%;height:3px;margin-top:4px;position:relative;overflow:hidden}.tempo-loader-meter-track{background:#ff3c001a;position:absolute;inset:0}.tempo-loader-meter-fill{width:calc(var(--tempo-progress)*100%);background:linear-gradient(90deg,#400,#c20 55%,#f63 88%,#fc9);position:absolute;inset:0 auto 0 0;box-shadow:0 0 18px #ff3c008c}.tempo-loader-meter-glow{top:-6px;left:calc(var(--tempo-progress)*100% - 8px);width:16px;height:14px;opacity:calc(.4 + var(--tempo-beat)*.4);pointer-events:none;background:radial-gradient(circle,#ff6432e6,#0000 70%);position:absolute}.tempo-loader-warp-flash{z-index:5;pointer-events:none;opacity:calc(var(--tempo-warp)*.35*(1 - var(--tempo-reveal)*.3));mix-blend-mode:screen;background:radial-gradient(60% 50% at 50% 48%,#ff501e80,#0000 70%);position:absolute;inset:0}@keyframes tempo-orbit-spin{to{transform:rotate(360deg)}}@keyframes tempo-orbit-dot{to{transform:rotate(360deg)}}@keyframes tempo-accretion-spin{to{transform:rotate(360deg)}}@keyframes tempo-pulse{0%,to{opacity:.45;transform:scale(.94)}50%{opacity:.9;transform:scale(1.05)}}@keyframes tempo-hud-blink{0%,to{opacity:.55}50%{opacity:1}}@keyframes tempo-status-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.tempo-loader-hud{opacity:.45;font-size:7px}.tempo-loader-card{border-radius:16px;padding:26px 22px 22px}.tempo-loader-ring-wrap{width:96px;height:96px}.tempo-loader-core{inset:18px}.tempo-loader-horizon{width:44px;height:44px}.tempo-loader-percent{font-size:11px;top:32px}}
