*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--bg-2:#111118;--bg-card:#ffffff08;--border:#ffffff14;--border-hover:#ffffff2e;--text:#a0a0b0;--text-h:#f0f0ff;--text-muted:#606070;--accent:#fff;--accent-2:#b8b8c7;--accent-glow:#ffffff29;--font-sans:"Space Grotesk", "Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--ease:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--duration:.6s;--legibility-shadow:0 1px 3px #000000e6, 0 2px 14px #0000008c}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--text-h);letter-spacing:-.02em;font-weight:700;line-height:1.1}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px}::selection{background:var(--accent);color:#fff}.container{width:100%;max-width:1140px;margin:0 auto;padding:0 32px}@media (width<=768px){.container{padding:0 20px}}.section-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);text-shadow:var(--legibility-shadow);align-items:center;gap:12px;margin-bottom:16px;font-size:12px;display:flex}.section-label:before{content:"";background:var(--accent);width:32px;height:1px}.fade-up{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transform:translateY(40px)}.fade-up.visible{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}main{z-index:1;position:relative}@keyframes float-panel{0%,to{transform:translateY(0)rotateX(0)}33%{transform:translateY(-9px)rotateX(.4deg)}66%{transform:translateY(-4px)rotateX(-.2deg)}}.about,.skills,.projects{z-index:1;margin:48px 40px;position:relative}.contact{z-index:1;-webkit-backdrop-filter:blur(28px);transform-style:preserve-3d;background:#0e0e1cc7;border:1px solid #ffffff1c;border-radius:32px;margin:48px 40px;animation:11s ease-in-out -1.8s infinite float-panel;position:relative;box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #ffffff14,0 24px 60px #000000a6,0 60px 140px #00000080,0 0 100px #ffffff0f,0 0 0 1px #ffffff0d}.contact:before{content:"";pointer-events:none;z-index:2;background:linear-gradient(90deg,#0000 0%,#ffffff8c 25%,#b8b8c761 75%,#0000 100%);border-radius:50%;height:1px;position:absolute;top:0;left:5%;right:5%}.contact:after{content:"";filter:blur(16px);pointer-events:none;z-index:-1;background:radial-gradient(#ffffff17 0%,#0000 70%);height:80px;position:absolute;bottom:-50px;left:15%;right:15%}@media (width<=768px){.about,.skills,.projects{margin:20px 12px}.contact{border-radius:20px;margin:20px 12px}}.footer{z-index:1;border-top:1px solid var(--border);position:relative}.footer--slide{border-top:none;width:100%}.footer-inner{max-width:720px;margin:0 auto;padding:0 24px}.footer-rows{font-family:var(--font-mono);flex-direction:column;gap:16px;padding:32px 0;display:flex}.footer-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.footer-row dt{text-align:right;color:var(--text-muted);font-size:13px}.footer-row dd{color:var(--text-h);font-size:13px}.footer-row ul{flex-direction:column;gap:6px;display:flex}.footer-link{color:var(--text-h);transition:color .2s}.footer-link:hover{color:var(--accent)}.footer-social{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:16px;padding:20px 0;display:flex}.footer-social a{color:var(--text-muted);align-items:center;transition:color .2s;display:flex}.footer-social a:hover{color:var(--text-h)}.footer-social svg{width:16px;height:16px}.footer-divider{background:var(--border);width:1px;height:16px}.footer-copy{text-align:center;color:var(--text-muted);padding:20px 0;font-size:12px}@media (width<=600px){.footer-inner{padding:0 16px}.footer-row{grid-template-columns:100px 1fr}.footer-row dt,.footer-row dd{font-size:12px}}body.warp-exit .scroll-viewport,body.warp-exit main{transform-origin:50% var(--warp-origin-y,50%);opacity:0;transition:transform .8s cubic-bezier(.5,0,1,1),opacity .8s cubic-bezier(.5,0,1,1);transform:scale(1.35)}@media (prefers-reduced-motion:reduce){body.warp-exit .scroll-viewport,body.warp-exit main{opacity:1;transition:none;transform:none}}.mode-menu{position:relative}.mode-menu-btn--active{color:var(--mode-color,#7aa2ff)}.mode-menu-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2100;background:#0c0e16eb;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:2px;min-width:260px;padding:6px;display:flex;position:absolute;top:calc(100% + 14px);right:0}.mode-menu-item{color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.mode-menu-item:hover{background:#ffffff0f}.mode-menu-item--on{background:#ffffff1a}.mode-menu-item strong{color:var(--mode-color,#fff);font-size:.85rem}.mode-menu-item span{opacity:.65;font-size:.72rem}.labtransition-overlay{z-index:5000;pointer-events:auto;cursor:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.labtransition-overlay--reduced{background:#05060ce0}.labtransition-flash{opacity:0;background:radial-gradient(circle,#fffffffa,#d2e1ffe6 45%,#ffffffc7);transition:opacity .45s ease-out;position:absolute;inset:0}.labtransition-flash--on{opacity:1;transition-duration:.15s}.labtransition-overlay--released{pointer-events:none;cursor:auto}@media (prefers-reduced-motion:reduce){.labtransition-flash{display:none}}.navbar{z-index:100;transition:padding .4s var(--ease), background .4s, backdrop-filter .4s, border-color .4s;border-bottom:1px solid #0000;padding:24px 0;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);border-color:var(--border);background:#0a0a0fcc;padding:14px 0}.nav-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.nav-logo{font-family:var(--font-mono);color:var(--text-h);letter-spacing:-.02em;flex-shrink:0;font-size:18px;font-weight:500;transition:color .2s}.nav-logo:hover{color:#fff}.logo-bracket{color:var(--accent);font-weight:300}.nav-links{flex:1;justify-content:flex-end;align-items:center;gap:36px;display:flex}.nav-link{color:var(--text);letter-spacing:.02em;font-size:14px;font-weight:500;transition:color .2s;position:relative}.nav-link:after{content:"";background:var(--accent);width:0;height:1px;transition:width .3s var(--ease);position:absolute;bottom:-4px;left:0}.nav-link:hover{color:var(--text-h)}.nav-link:hover:after{width:100%}.nav-link--active{color:var(--text-h)}.nav-link--active:after{width:100%}.nav-cta{color:var(--text-h);border:1px solid var(--border);white-space:nowrap;border-radius:40px;padding:8px 20px;font-size:13px;font-weight:600;transition:border-color .2s,background .2s,color .2s}.nav-cta:hover{border-color:var(--accent);color:#050507;background:#fff}.nav-controls{flex-shrink:0;align-items:center;gap:12px;display:flex}.nav-icon-btn{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#ffffff0a;border-radius:40px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:600;transition:color .18s,background .18s,border-color .18s;display:flex}.nav-icon-btn svg{flex-shrink:0}.nav-icon-btn:hover{color:#fff;background:#ffffff1a}.nav-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-icon-btn-label{line-height:1}.nav-divider{background:var(--border);flex-shrink:0;width:1px;height:20px}.lang-menu{position:relative}.lang-menu-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2100;background:#0c0e16eb;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:2px;min-width:140px;padding:6px;display:flex;position:absolute;top:calc(100% + 14px);right:0}.lang-menu-item{color:var(--text);text-align:left;cursor:pointer;font-size:.82rem;font:inherit;background:0 0;border:0;border-radius:8px;padding:8px 12px}.lang-menu-item:hover{background:#ffffff0f}.lang-menu-item--on{color:#fff;background:#ffffff1a}.nav-burger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.nav-burger span{background:var(--text-h);width:24px;height:2px;transition:transform .3s var(--ease), opacity .3s;border-radius:2px;display:block}.nav-burger.open span:first-child{transform:translateY(7px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-burger:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.nav-mobile{display:none}@media (width<=768px){.nav-links{display:none}.nav-burger{display:flex}.nav-mobile{background:var(--bg);z-index:99;flex-direction:column;justify-content:center;align-items:center;gap:40px;display:flex;position:fixed;inset:0}.nav-mobile .nav-link{font-size:24px}.nav-mobile .nav-cta{padding:12px 32px;font-size:20px}.nav-controls{z-index:200;position:relative}.nav-icon-btn-label{display:none}.nav-icon-btn{padding:6px}}.hw-accel-notice{z-index:9999;border:1px solid var(--border-hover);-webkit-backdrop-filter:blur(14px);width:min(520px,100vw - 32px);color:var(--text);font-family:var(--font-sans);animation:hw-accel-rise .5s var(--ease) both;background:#12121ad1;border-radius:14px;align-items:flex-start;gap:14px;padding:16px 18px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #0000008c}@keyframes hw-accel-rise{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.hw-accel-notice__icon{color:#ffcb5b;flex:none;font-size:20px;line-height:1.4}.hw-accel-notice__text{flex:auto;min-width:0}.hw-accel-notice__title{color:var(--text-h);margin-bottom:4px;font-size:14px;font-weight:600;display:block}.hw-accel-notice__body{color:var(--text);margin:0;font-size:13px;line-height:1.5}.hw-accel-notice__close{border:1px solid var(--border);color:var(--text-h);font-family:var(--font-sans);cursor:pointer;transition:border-color .2s var(--ease), background .2s var(--ease);background:0 0;border-radius:999px;flex:none;align-self:center;padding:7px 14px;font-size:12px}.hw-accel-notice__close:hover{border-color:var(--border-hover);background:var(--bg-card)}@media (width<=520px){.hw-accel-notice{flex-wrap:wrap;bottom:16px}.hw-accel-notice__close{margin-left:auto}}@media (prefers-reduced-motion:reduce){.hw-accel-notice{animation:none}}.hero{align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-canvas{z-index:0;position:absolute;inset:0}.hero-canvas canvas{display:block}.hero-content{z-index:2;padding-top:120px;padding-bottom:60px;position:relative}.hero-tag{font-size:13px;font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);letter-spacing:.04em;text-shadow:var(--legibility-shadow);background:#ffffff0d;border-radius:40px;align-items:center;gap:8px;margin-bottom:28px;padding:6px 16px;display:inline-flex}.hero-tag-dot{background:#4ade80;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse-dot;box-shadow:0 0 8px #4ade80}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.hero-title-holo-wrap{position:relative}.hero-title-holo{-webkit-text-fill-color:transparent;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;will-change:opacity, background;-webkit-background-clip:text;background-clip:text;margin:0;position:absolute;top:0;left:0}.hero-title{letter-spacing:-.04em;color:var(--text-h);text-shadow:var(--legibility-shadow);margin-bottom:16px;font-size:clamp(48px,8vw,96px);font-weight:800;line-height:1}.hero-name{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-role{font-size:clamp(20px,3.5vw,32px);font-family:var(--font-mono);color:var(--text);height:44px;text-shadow:var(--legibility-shadow);align-items:center;margin-bottom:28px;font-weight:400;display:flex}.role-text{color:var(--text-h)}.role-cursor{color:var(--accent);margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-desc{color:var(--text);max-width:520px;text-shadow:var(--legibility-shadow);margin-bottom:40px;font-size:17px;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:16px;margin-bottom:48px;display:flex}.btn{letter-spacing:.01em;transition:all .3s var(--ease);border-radius:40px;align-items:center;gap:8px;padding:14px 32px;font-size:15px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--bg);box-shadow:0 0 24px var(--accent-glow);border:1px solid #ffffffc7}.btn-primary:hover{color:#050507;background:#fff;transform:translateY(-2px);box-shadow:0 0 40px #ffffff3d}.btn-outline{color:var(--text-h);background:#ffffff0a;border:1px solid #ffffff6b}.btn-outline:hover{border-color:var(--accent);color:#050507;background:#fff;transform:translateY(-2px)}.hero-socials{gap:16px;display:flex}.social-link{border:1px solid var(--border);width:42px;height:42px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;transition:border-color .2s,color .2s,transform .2s;display:flex}.social-link:hover{border-color:var(--accent);color:var(--accent);background:#ffffff14;transform:translateY(-3px)}.scroll-indicator{z-index:2;opacity:.5;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;transition:opacity .2s;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.scroll-indicator:hover{opacity:1}.scroll-line{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:60px;animation:2s ease-in-out infinite scroll-drop;display:block}@keyframes scroll-drop{0%{transform-origin:top;opacity:0;transform:scaleY(0)}40%{transform-origin:top;opacity:1;transform:scaleY(1)}60%{transform-origin:bottom;opacity:1;transform:scaleY(1)}to{transform-origin:bottom;opacity:0;transform:scaleY(0)}}.hero .fade-up{animation:fadeUpIn .9s var(--ease) forwards;opacity:0}.hero--awaiting-arrival .fade-up{animation-play-state:paused}.hero--awaiting-arrival .scroll-indicator{opacity:0}.hero .delay-1{animation-delay:.2s}.hero .delay-2{animation-delay:.35s}.hero .delay-3{animation-delay:.5s}.hero .delay-4{animation-delay:.65s}.hero .delay-5{animation-delay:.8s}@keyframes fadeUpIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.rm-overlay{-webkit-backdrop-filter:blur(6px);z-index:500;background:#000000b3;justify-content:center;align-items:center;padding:24px;animation:.2s rm-fade-in;display:flex;position:fixed;inset:0}@keyframes rm-fade-in{0%{opacity:0}to{opacity:1}}.rm-modal{background:var(--bg-2);border:1px solid var(--border-hover);width:100%;max-width:440px;animation:rm-slide-up .25s var(--ease);border-radius:24px;padding:48px 40px 40px;position:relative}@keyframes rm-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.rm-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex;position:absolute;top:18px;right:18px}.rm-close:hover{color:var(--text-h);background:#ffffff1f}.rm-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rm-title{color:var(--text-h);letter-spacing:-.02em;margin-bottom:8px;font-size:22px;font-weight:700}.rm-subtitle{color:var(--text);margin-bottom:28px;font-size:14px;line-height:1.6}.rm-form{flex-direction:column;gap:18px;display:flex}.rm-field{flex-direction:column;gap:7px;display:flex}.rm-field label{color:var(--text);letter-spacing:.02em;font-size:13px;font-weight:500}.rm-field input{border:1px solid var(--border);font-size:14px;font-family:var(--font-sans);color:var(--text-h);background:#ffffff08;border-radius:12px;outline:none;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.rm-field input::placeholder{color:var(--text-muted)}.rm-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.rm-submit{border-radius:12px;justify-content:center;width:100%;margin-top:4px;padding:14px;font-size:15px}.rm-submit:disabled{opacity:.7}.rm-error{color:#ffb4b4;text-align:center;font-size:13px;line-height:1.5}.rm-success{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:16px 0 8px;display:flex}.rm-success-icon{border:1px solid var(--accent);width:60px;height:60px;color:var(--accent);background:#6c63ff1f;border-radius:50%;justify-content:center;align-items:center;animation:.4s cubic-bezier(.34,1.56,.64,1) rm-pop;display:flex}@keyframes rm-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.rm-success-msg{color:var(--text-h);letter-spacing:-.01em;font-size:18px;font-weight:600}.rm-close-btn{border-radius:40px;margin-top:8px;padding:10px 28px;font-size:14px}@media (width<=480px){.rm-modal{padding:40px 24px 32px}}.about{padding:120px 0}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-title{text-shadow:var(--legibility-shadow);margin-bottom:24px;font-size:clamp(32px,4vw,52px);line-height:1.15}.gradient-text{background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.about-body{color:var(--text);text-shadow:var(--legibility-shadow);margin-bottom:20px;font-size:16px;line-height:1.8}.about-resume{color:#fff;transition:all .3s var(--ease);background:#ffffff14;border:1px solid #ffffff7a;border-radius:40px;align-items:center;gap:8px;margin-top:12px;padding:12px 28px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:inset 0 1px #ffffff1a}.about-resume:hover{border-color:var(--accent);color:#050507;background:#fff;transform:translateY(-2px);box-shadow:0 18px 40px #ffffff29}.about-stats{grid-template-columns:1fr 1fr;gap:16px;display:grid}.stat-card{transition:transform .3s var(--ease);flex-direction:column;gap:8px;padding:32px 24px;display:flex}.stat-card:hover{transform:translateY(-4px)}.stat-value{background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;text-shadow:var(--legibility-shadow);-webkit-background-clip:text;background-clip:text;font-size:48px;font-weight:800;line-height:1}.stat-label{color:var(--text-muted);text-shadow:var(--legibility-shadow);font-size:14px;font-weight:500}@media (width<=900px){.about-grid{grid-template-columns:1fr;gap:60px}}@media (width<=480px){.about-stats{grid-template-columns:1fr 1fr}.stat-value{font-size:36px}}.projects{padding:120px 0 80px;overflow:hidden}.gallery-wrap{margin-top:56px;position:relative}.gallery-fade{z-index:2;pointer-events:none;width:160px;position:absolute;top:0;bottom:60px}.gallery-fade-l{background:linear-gradient(to right, var(--bg) 20%, transparent);left:0}.gallery-fade-r{background:linear-gradient(to left, var(--bg) 20%, transparent);right:0}.gallery-arrow{z-index:10;border:1px solid var(--border-hover);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:44px;height:44px;color:var(--text-h);cursor:pointer;background:#0a0a0fcc;border-radius:50%;justify-content:center;align-items:center;transition:border-color .2s,background .2s,opacity .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(calc(-50% - 30px))}.gallery-arrow-prev{left:24px}.gallery-arrow-next{right:24px}.gallery-arrow:hover:not(:disabled){border-color:var(--accent);color:#050507;background:#fff;transform:translateY(calc(-50% - 30px))scale(1.08)}.gallery-arrow:disabled{opacity:.2;cursor:default}.gallery-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gallery-track{scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;outline:none;gap:28px;padding:48px calc(50vw - 280px) 0;display:flex;overflow-x:scroll}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{scroll-snap-align:center;opacity:.45;cursor:pointer;flex-shrink:0;width:560px;transition:transform .5s cubic-bezier(.25,.46,.45,.94),opacity .5s;transform:scale(.86)translateY(28px)}.gallery-slide.active{opacity:1;cursor:default;transform:scale(1)translateY(0)}.gallery-dots{justify-content:center;gap:8px;margin-top:36px;display:flex}.gallery-dot{background:var(--border-hover);cursor:pointer;width:6px;height:6px;transition:width .3s var(--ease), background .3s;border:none;border-radius:40px;padding:0}.gallery-dot.active{background:var(--accent);width:28px}.gallery-dot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gcard{z-index:1;transform-style:preserve-3d;transform:perspective(1200px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg)) scale3d(var(--scale,1), var(--scale,1), var(--scale,1));border-radius:24px;flex-direction:column;transition:background-color .5s cubic-bezier(.16,1,.3,1),border-color .5s cubic-bezier(.16,1,.3,1),box-shadow .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.25,1,.5,1);display:flex;position:relative;overflow:hidden}.gcard:before{content:"";background:radial-gradient(320px circle at var(--mouse-x,50%) var(--mouse-y,50%), #ffffff1f 0%, #ffffff08 40%, transparent 80%), linear-gradient(var(--glare-angle,120deg), transparent 30%, #ffffff0f 40%, #ffffff29 50%, #ffffff0f 60%, transparent 70%);background-size:auto,200% 200%;background-position:center, var(--bg-x,50%) var(--bg-y,50%);z-index:15;pointer-events:none;opacity:var(--glare-opacity,0);mix-blend-mode:overlay;border-radius:24px;transition:opacity .4s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.gcard:after{content:"";background:linear-gradient(135deg,#3b82f614 0%,#8b5cf614 20%,#ec489914 40%,#06b6d414 60%,#10b98114 80%,#3b82f614 100%) 0 0/250% 250%;background-position:var(--bg-x,50%) var(--bg-y,50%);z-index:14;pointer-events:none;opacity:var(--glare-opacity,0);mix-blend-mode:color-dodge;border-radius:24px;transition:opacity .4s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.gallery-slide.active .gcard{box-shadow:0 32px 80px #00000073}.gcard-preview{background:color-mix(in srgb, var(--card-accent) 8%, var(--bg-2));border-bottom:1px solid #dce8ff29;height:220px;position:relative;overflow:hidden}.gcard-preview-glow{background:radial-gradient(ellipse at 30% 40%, color-mix(in srgb, var(--card-accent) 20%, transparent) 0%, transparent 65%);pointer-events:none;position:absolute;inset:0}.gcard-preview-chrome{background:#00000040;border-bottom:1px solid #dce8ff1f;align-items:center;gap:6px;padding:10px 14px;display:flex}.gcard-dot-r,.gcard-dot-y,.gcard-dot-g{border-radius:50%;width:9px;height:9px}.gcard-dot-r{background:#ff5f56}.gcard-dot-y{background:#ffbd2e}.gcard-dot-g{background:#27c93f}.gcard-url-bar{background:#ffffff0f;border-radius:4px;flex:1;height:18px;margin-left:8px}.gcard-preview-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.gcard-mock-nav{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.gcard-mock-logo{background:color-mix(in srgb, var(--card-accent) 60%, white);opacity:.7;border-radius:4px;width:60px;height:10px}.gcard-mock-links{gap:10px;display:flex}.gcard-mock-links span{background:#ffffff1f;border-radius:3px;width:28px;height:8px}.gcard-mock-hero{flex-direction:column;gap:7px;display:flex}.gcard-mock-h1{background:#ffffff2e;border-radius:4px;width:75%;height:12px}.gcard-mock-h1.short{width:50%}.gcard-mock-p{background:#ffffff14;border-radius:3px;width:90%;height:8px}.gcard-mock-p.short{width:65%}.gcard-mock-btn{background:color-mix(in srgb, var(--card-accent) 70%, transparent);border-radius:6px;width:72px;height:22px;margin-top:4px}.gcard-mock-grid{gap:8px;margin-top:2px;display:flex}.gcard-mock-grid div{background:#ffffff0f;border-radius:6px;flex:1;height:30px}.gcard-info{flex-direction:column;gap:12px;padding:24px 28px 28px;display:flex}.gcard-head{justify-content:space-between;align-items:center;display:flex}.gcard-category{font-size:11px;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--card-accent)}.gcard-links{gap:14px;display:flex}.gcard-links a{color:var(--text-muted);transition:color .2s,transform .2s;display:flex}.gcard-links a:hover{color:var(--text-h);transform:translateY(-2px)}.gcard-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.gcard-title{color:var(--text-h);font-size:22px;font-weight:700;line-height:1.2}.gcard-desc{color:var(--text);font-size:14px;line-height:1.75}.gcard-tags{flex-wrap:wrap;gap:8px;margin-top:4px;list-style:none;display:flex}.tag{font-size:11px;font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-muted);border-radius:40px;padding:4px 10px;transition:border-color .2s,color .2s}.gallery-slide.active .tag{border-color:color-mix(in srgb, var(--card-accent) 40%, transparent);color:var(--text)}@media (width<=700px){.gallery-track{gap:16px;padding:32px 7vw 0}.gallery-slide{width:min(86vw,380px)}.gallery-fade{width:60px}.gallery-arrow{display:none}.gcard-preview{height:170px}}.gcard-tabs{border-bottom:1px solid var(--border);gap:0;display:flex}.gcard-tab{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;letter-spacing:.04em;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 16px;transition:color .2s,border-color .2s}.gcard-tab:hover:not(.active){color:var(--text)}.gcard-tab.active{color:var(--card-accent);border-bottom-color:var(--card-accent)}.gcard-tab-panel{align-items:flex-start;min-height:64px;padding-top:4px;display:flex}.gcard-tab-panel .gcard-tags{margin-top:8px}.spotline-preview{flex-direction:column;gap:7px;height:calc(100% - 40px);padding:10px 12px 9px;display:flex;position:relative;overflow:hidden}.spotline-topbar{flex-shrink:0;justify-content:space-between;align-items:center;min-height:18px;display:flex}.spotline-brand{min-width:0;font-size:11px;font-family:var(--font-mono);color:var(--text-h);letter-spacing:.04em;align-items:center;gap:6px;font-weight:700;display:flex}.spotline-brand-mark{background:var(--card-accent);width:9px;height:9px;box-shadow:0 0 16px color-mix(in srgb, var(--card-accent) 80%, transparent);border-radius:3px;flex-shrink:0}.spotline-live{color:#f87171;font-size:9px;font-family:var(--font-mono);letter-spacing:.08em;background:#ef44441a;border-radius:20px;padding:2px 7px 2px 15px;font-weight:700;position:relative}.spotline-live:before{content:"";background:currentColor;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:7px;transform:translateY(-50%)}.spotline-live.on:before{animation:.9s ease-in-out infinite alternate spotline-live-pulse}@keyframes spotline-live-pulse{to{opacity:.35;transform:translateY(-50%)scale(1.8)}}.spotline-dashboard{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(96px,.85fr);gap:8px;min-height:0;display:grid}.spotline-feed,.spotline-insights{background:#0307126b;border:1px solid #ffffff1a;border-radius:8px;min-width:0;min-height:0;overflow:hidden}.spotline-feed{flex-direction:column;display:flex}.spotline-feed-head{font-size:8px;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:5px 7px;display:flex}.spotline-camera{background:radial-gradient(circle at 22% 74%,#f59e0b33,#0000 28%),linear-gradient(145deg,#0f172af2,#18181bf2);flex:1;min-height:0;position:relative;overflow:hidden}.spotline-grid{opacity:.55;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0}.spotline-counter{color:#ffffffb8;font-size:9px;font-family:var(--font-mono);background:#00000047;border-radius:4px;padding:2px 6px;position:absolute;top:7px;left:7px}.spotline-entrance,.spotline-shelf,.spotline-path{border-radius:4px;display:block;position:absolute}.spotline-entrance{background:#ffffff2e;width:25%;height:8%;bottom:10%;left:12%}.spotline-shelf.left{background:#ffffff14;width:12%;height:36%;top:25%;left:8%}.spotline-shelf.right{background:#ffffff14;width:16%;height:54%;top:18%;right:9%}.spotline-path{border:1px dashed #ffffff29;width:37%;height:44%;top:32%;left:30%;transform:skew(-10deg)}.spotline-box{color:#86efac;opacity:0;border:1.5px solid #22c55e;border-radius:4px;transition:opacity .28s,transform .28s,box-shadow .28s;position:absolute;transform:scale(.92)}.spotline-box.in{opacity:1;transform:scale(1);box-shadow:0 0 18px #22c55e38}.spotline-box.customer{width:18%;height:45%;top:28%;left:27%}.spotline-box.queue{width:16%;height:33%;top:36%;left:50%}.spotline-box.zone{border-color:var(--card-accent);color:#fbbf24;width:54%;height:20%;bottom:13%;left:23%}.spotline-box em{color:#06101f;font-size:8px;font-family:var(--font-mono);background:#22c55e;border-radius:3px;padding:1px 4px;font-style:normal;font-weight:700;position:absolute;top:-15px;left:-1px}.spotline-box.zone em{background:var(--card-accent)}.spotline-scan{background:linear-gradient(90deg, transparent, var(--card-accent), transparent);width:100%;height:2px;box-shadow:0 0 18px var(--card-accent);opacity:0;position:absolute;top:0;left:0;transform:translateY(-8px)}.spotline-scan.on{opacity:1;animation:.95s ease-in-out infinite spotline-scan}@keyframes spotline-scan{to{transform:translateY(150px)}}.spotline-insights{opacity:.58;flex-direction:column;gap:6px;padding:7px;transition:opacity .28s;display:flex}.spotline-insights.in{opacity:1}.spotline-stat{opacity:.72;flex-direction:column;gap:4px;transition:opacity .3s,transform .3s;display:flex;transform:translate(6px)}.spotline-insights.in .spotline-stat{opacity:1;transform:translate(0)}.spotline-stat>div{justify-content:space-between;align-items:baseline;gap:5px;display:flex}.spotline-stat-label{color:var(--text-muted);font-size:8px;font-family:var(--font-mono);letter-spacing:.04em}.spotline-stat strong{color:var(--text-h);font-size:12px;font-family:var(--font-mono);line-height:1}.spotline-stat-bar{background:#ffffff14;border-radius:10px;height:4px;overflow:hidden}.spotline-stat-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--card-accent), #22c55e);height:100%;transition:width .55s cubic-bezier(.22,1,.36,1);display:block}.spotline-chart{flex:1;align-items:flex-end;gap:4px;min-height:20px;padding-top:2px;display:flex}.spotline-chart span{background:color-mix(in srgb, var(--card-accent) 62%, white);opacity:.72;border-radius:3px 3px 0 0;flex:1;min-width:0;transition:height .55s cubic-bezier(.22,1,.36,1)}.spotline-result{border:1px solid color-mix(in srgb, var(--card-accent) 36%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--card-accent);font-size:10px;font-family:var(--font-mono);opacity:0;background:#080d18d1;border-radius:20px;align-items:center;gap:5px;padding:5px 9px;font-weight:700;transition:opacity .32s,transform .36s cubic-bezier(.34,1.56,.64,1);display:inline-flex;position:absolute;bottom:9px;left:12px;transform:translateY(6px)scale(.94)}.spotline-result.in{opacity:1;transform:translateY(0)scale(1)}.candle-preview{flex-direction:column;gap:9px;padding:12px 14px 10px;display:flex;overflow:hidden}.candle-chart{align-items:flex-end;gap:7px;height:60px;display:flex}.c-bar{opacity:0;flex-shrink:0;width:12px;transition:opacity .3s,transform .3s;position:relative;transform:translateY(8px)}.c-bar.in{opacity:1;transform:translateY(0)}.c-wick{border-radius:1px;width:2px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.c-body{border-radius:2px;position:absolute;left:0;right:0}.c-bar.up .c-wick,.c-bar.up .c-body{background:#22c55e}.c-bar.down .c-wick,.c-bar.down .c-body{background:#ef4444}.c-bar.predicting .c-wick,.c-bar.predicting .c-body{background:var(--card-accent);animation:.65s ease-in-out infinite alternate c-pulse}.c-bar.confirmed .c-wick,.c-bar.confirmed .c-body{background:#22c55e;animation:none}@keyframes c-pulse{to{opacity:.4}}.candle-predict-row{opacity:0;align-items:center;gap:8px;transition:opacity .3s,transform .3s;display:flex;transform:translateY(4px)}.candle-predict-row.in{opacity:1;transform:translateY(0)}.candle-label{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.candle-badge{font-size:11px;font-family:var(--font-mono);color:#22c55e;background:#22c55e26;border-radius:4px;padding:2px 8px;font-weight:600}.candle-result-row{opacity:0;align-items:center;gap:8px;transition:opacity .3s,transform .3s;display:flex;transform:translateY(4px)}.candle-result-row.in{opacity:1;transform:translateY(0)}.candle-hit{font-size:11px;font-family:var(--font-mono);color:#22c55e;background:#22c55e26;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:flex}.candle-streak{font-size:11px;font-family:var(--font-mono);background:color-mix(in srgb, var(--card-accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--card-accent) 35%, transparent);color:var(--card-accent);border-radius:20px;padding:3px 10px;font-weight:700}.candle-prize{font-size:11px;font-family:var(--font-mono);color:#fbbf24;opacity:0;background:#fbbf241a;border:1px solid #fbbf244d;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;transition:opacity .35s,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.9)}.candle-prize.in{opacity:1;transform:scale(1)}.findx-preview{flex-direction:column;gap:8px;padding:12px 14px 10px;display:flex;overflow:hidden}.findx-search{color:var(--text-h);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-shrink:0;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.findx-search svg{color:var(--card-accent);opacity:.8;flex-shrink:0}.findx-query{align-items:center;gap:1px;min-height:14px;display:flex}.findx-placeholder{color:var(--text-muted);font-size:11px}.findx-cursor{background:var(--card-accent);vertical-align:middle;flex-shrink:0;width:1.5px;height:11px;animation:.7s step-end infinite findx-blink;display:inline-block}@keyframes findx-blink{50%{opacity:0}}.findx-list{flex-direction:column;gap:6px;display:flex}.findx-item{opacity:0;background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;transition:opacity .35s,transform .35s,border-color .35s,background .35s;display:flex;transform:translateY(6px)}.findx-item.in{opacity:1;transform:translateY(0)}.findx-item.match{border-color:color-mix(in srgb, var(--card-accent) 45%, transparent);background:color-mix(in srgb, var(--card-accent) 8%, transparent)}.findx-tag{font-size:9px;font-family:var(--font-mono);letter-spacing:.05em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-weight:600}.findx-tag.lost{color:#ef476f;background:#ef476f2e}.findx-tag.found{color:#06d6a0;background:#06d6a02e}.findx-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.findx-item-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.findx-item-loc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.findx-badge{background:color-mix(in srgb, var(--card-accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--card-accent) 35%, transparent);font-size:11px;font-family:var(--font-mono);color:var(--card-accent);opacity:0;border-radius:20px;align-self:flex-start;align-items:center;gap:5px;padding:5px 10px;transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.88)}.findx-badge.in{opacity:1;transform:scale(1)}.gcard--clickable{cursor:pointer}.gcard-detail-btn{border:1px solid color-mix(in srgb, var(--card-accent) 40%, transparent);background:color-mix(in srgb, var(--card-accent) 10%, transparent);color:var(--card-accent);font-size:12px;font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;border-radius:20px;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:7px 16px;font-weight:500;transition:background .2s,border-color .2s,transform .2s;display:flex}.gcard-detail-btn:hover{background:color-mix(in srgb, var(--card-accent) 20%, transparent);border-color:color-mix(in srgb, var(--card-accent) 70%, transparent);transform:translateY(-1px)}.gcard-detail-btn:focus-visible{outline:2px solid var(--card-accent);outline-offset:3px}.skills{padding:120px 0}.section-header{text-align:center;margin-bottom:64px}.section-title{text-shadow:var(--legibility-shadow);margin-bottom:16px;font-size:clamp(32px,4vw,48px)}.section-sub{color:var(--text-muted);max-width:400px;text-shadow:var(--legibility-shadow);margin:0 auto;font-size:16px}.section-header .section-label{justify-content:center}.section-header .section-label:before{display:none}.skills-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.skill-card{transition:transform .3s var(--ease);padding:28px 24px;position:relative;overflow:hidden}.skill-card:before{content:"";background:linear-gradient(135deg, var(--accent-glow), transparent);opacity:0;border-radius:20px;transition:opacity .4s;position:absolute;inset:0}.skill-card:hover{transform:translateY(-6px)}.skill-card:hover:before{opacity:1}.skill-card-header{z-index:1;align-items:center;gap:12px;margin-bottom:20px;display:flex;position:relative}.skill-icon{font-size:22px}.skill-category{color:var(--text-h);text-shadow:var(--legibility-shadow);font-size:16px;font-weight:700}.skill-list{z-index:1;flex-direction:column;gap:10px;list-style:none;display:flex;position:relative}.skill-item{color:var(--text);text-shadow:var(--legibility-shadow);align-items:center;gap:10px;font-size:14px;transition:color .2s;display:flex}.skill-card:hover .skill-item{color:var(--text-h)}.skill-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}@media (width<=1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.skills-grid{grid-template-columns:1fr}}.contact{padding:120px 0 80px}.contact-inner{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.contact-title{margin-bottom:20px;font-size:clamp(28px,3.5vw,44px);line-height:1.2}.contact-body{color:var(--text);margin-bottom:36px;font-size:15px;line-height:1.8}.contact-links{flex-direction:column;gap:16px;display:flex}.contact-link{border:1px solid var(--border);transition:border-color .25s, background .25s, transform .25s var(--ease);border-radius:14px;align-items:center;gap:16px;padding:16px;display:flex}.contact-link:hover{border-color:var(--accent);color:#050507;background:#fff;transform:translate(6px)}.contact-link:hover .contact-link-icon{color:#050507;background:#05050714}.contact-link:hover .link-label,.contact-link:hover .link-value{color:#050507}.contact-link-icon{width:40px;height:40px;color:var(--accent);background:#ffffff0d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.link-label{font-size:11px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;display:block}.link-value{color:var(--text-h);font-size:14px;font-weight:500;display:block}.contact-form-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;padding:36px}.contact-form{flex-direction:column;gap:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text);letter-spacing:.02em;font-size:13px;font-weight:500}.form-group input,.form-group textarea{border:1px solid var(--border);font-size:14px;font-family:var(--font-sans);color:var(--text-h);resize:none;background:#ffffff08;border-radius:12px;outline:none;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-submit{border-radius:12px;justify-content:center;align-self:flex-start;gap:10px;width:100%;padding:14px}.form-submit:disabled{opacity:.7}.form-error{color:#ffb4b4;font-size:13px;line-height:1.5}.spinner{background:#ffffffe6;flex-shrink:0;width:18px;height:18px;animation:2.5s ease-in-out infinite alternate spinner-morph,1.4s ease-in-out infinite spinner-scale;display:inline-block}@keyframes spinner-morph{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}25%{border-radius:40% 60% 70% 30%/30% 60% 40% 70%}50%{border-radius:30% 60% 60% 40%/70% 30% 50% 60%}75%{border-radius:70% 30% 40% 60%/40% 70% 60% 30%}}@keyframes spinner-scale{0%,to{transform:scale(.9)}50%{transform:scale(1.12)}}.form-success{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.success-icon{color:#4ade80;background:#4ade8026;border:1px solid #4ade80;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:8px;font-size:24px;display:flex}.form-success h3{color:var(--text-h);font-size:22px}.form-success p{color:var(--text);font-size:14px}@media (width<=900px){.contact-inner{grid-template-columns:1fr;gap:60px}.form-row{grid-template-columns:1fr}}.lc-page{background:#f5f5f5;min-height:100vh;padding:48px 40px}.lc-grid{grid-template-columns:repeat(auto-fill,200px);gap:20px;display:grid}.lc-wrap{background:#fff;border-radius:20px;justify-content:center;align-items:center;width:200px;height:200px;display:flex;overflow:hidden}@keyframes morph{0%,to{border-radius:62% 38% 46% 54%/60% 44% 56% 40%}25%{border-radius:38% 62% 54% 46%/44% 58% 42% 56%}50%{border-radius:52% 48% 38% 62%/54% 40% 60% 46%}75%{border-radius:44% 56% 62% 38%/38% 62%}}@keyframes morph2{0%,to{border-radius:40% 60% 60% 40%/60% 30% 70% 40%}33%{border-radius:70% 30% 40% 60%/40% 70% 30% 60%}66%{border-radius:30% 70% 50% 50%/50% 30% 70% 50%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-r{to{transform:rotate(-360deg)}}@keyframes scale{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes fade{0%,to{opacity:1}50%{opacity:.12}}@keyframes squish{0%,to{border-radius:50%;transform:scale(1)}33%{border-radius:52% 48% 62% 38%/48% 52%;transform:scale(.86,1.16)}66%{border-radius:44% 56%/58% 42%;transform:scale(1.12,.88)}}@keyframes ripple{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(2.6)}}@keyframes worm{0%{stroke-dashoffset:0;stroke-dasharray:28 198}50%{stroke-dashoffset:-113px;stroke-dasharray:150 76}to{stroke-dashoffset:-226px;stroke-dasharray:28 198}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-22px)}}@keyframes float-y-r{0%,to{transform:translateY(0)}50%{transform:translateY(22px)}}.bp{background:#111;width:82px;height:82px;animation:3.6s ease-in-out infinite morph,1.8s ease-in-out infinite scale}.am{background:#111;width:110px;height:110px;animation:2.8s ease-in-out infinite morph,9s linear infinite spin}.gr-wrap{justify-content:center;align-items:center;width:130px;height:130px;display:flex}.gr-goo{filter:blur(7px)contrast(18);width:100px;height:100px;position:relative}.gr-dot{transform-origin:0 0;width:22px;height:22px;animation:2.4s linear infinite gr-orbit;animation-delay:calc(var(--i) * -.3s);background:#111;border-radius:50%;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%}@keyframes gr-orbit{0%{transform:rotate(calc(var(--i) * 45deg)) translateX(38px)}to{transform:rotate(calc(var(--i) * 45deg + 360deg)) translateX(38px)}}.od{align-items:center;gap:10px;display:flex}.od-dot{width:24px;height:24px;animation:1.4s ease-in-out infinite squish,1.4s ease-in-out infinite fade;animation-delay:calc(var(--i) * .22s);background:#111;border-radius:50%}.bb{background:#111;width:76px;height:76px;animation:2.4s ease-in-out infinite bb-breathe,4s ease-in-out infinite morph;box-shadow:0 0 #11111159}@keyframes bb-breathe{0%,to{transform:scale(.88);box-shadow:0 0 #11111159}50%{transform:scale(1.1);box-shadow:0 0 0 28px #1110}}.mp-wrap{justify-content:center;align-items:center;width:150px;height:80px;display:flex}.mp-goo{filter:blur(8px)contrast(20);justify-content:space-between;align-items:center;width:130px;height:60px;display:flex}.mp-a,.mp-b{background:#111;border-radius:50%;width:52px;height:52px}.mp-a{animation:2s ease-in-out infinite mp-left,3s ease-in-out infinite morph}.mp-b{animation:2s ease-in-out infinite reverse mp-right,3s ease-in-out infinite morph}@keyframes mp-left{50%{transform:translate(30px)}}@keyframes mp-right{50%{transform:translate(-30px)}}.lv-wrap{justify-content:center;align-items:center;width:80px;height:150px;display:flex}.lv-goo{filter:blur(9px)contrast(18);width:70px;height:140px;position:relative}.lv-a,.lv-b,.lv-c{background:#111;border-radius:50%;position:absolute;left:50%;transform:translate(-50%)}.lv-a{width:52px;height:52px;animation:2.8s ease-in-out infinite lv-bob;bottom:4px}.lv-b{width:40px;height:40px;animation:2.8s ease-in-out -1.4s infinite reverse lv-bob;bottom:4px}.lv-c{width:34px;height:34px;animation:3.6s ease-in-out -.7s infinite lv-rise;bottom:4px}@keyframes lv-bob{0%,to{border-radius:50%;transform:translate(-50%)translateY(0)scale(1)}40%{border-radius:52% 48% 60% 40%/44% 56%}70%{border-radius:44% 56% 50% 50%;transform:translate(-50%)translateY(-80px)scale(.82)}85%{transform:translate(-50%)translateY(-90px)scale(1.08)}}@keyframes lv-rise{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-55px)}}.ss{background:#111;width:72px;height:72px;animation:1s ease-in-out infinite squish,2.2s linear infinite spin}.rb{width:84px;height:84px;position:relative}.rb-ring{animation:2.4s ease-out infinite ripple,3s ease-in-out infinite morph2;animation-delay:calc(var(--i) * .8s);background:#111;border-radius:50%;position:absolute;inset:0}.ik{background:#111;width:58px;height:58px;animation:2.2s ease-out infinite ik-ink,2s ease-in-out infinite morph}@keyframes ik-ink{0%{opacity:1;transform:scale(.1)}to{opacity:0;transform:scale(2.8)}}.wm{width:118px;height:118px;animation:1.9s linear infinite spin}.wm-head{transform-origin:50%;animation:1.9s ease-in-out infinite worm}.bo-wrap{justify-content:center;align-items:center;width:130px;height:130px;display:flex}.bo-goo{filter:blur(8px)contrast(18);width:110px;height:110px;position:relative}.bo-core{background:#111;border-radius:50%;width:46px;height:46px;animation:3s ease-in-out infinite morph;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bo-moon{background:#111;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;animation:2s linear infinite bo-orbit;position:absolute;top:50%;left:50%}@keyframes bo-orbit{to{transform:rotate(360deg)translate(38px)}}.mb-wrap{justify-content:center;align-items:center;width:140px;height:100px;display:flex}.mb-goo{filter:blur(9px)contrast(20);width:130px;height:90px;position:relative}.mb-a,.mb-b,.mb-c{background:#111;border-radius:50%;position:absolute}.mb-a{width:50px;height:50px;animation:1.8s ease-in-out infinite float-y;top:20px;left:10px}.mb-b{width:44px;height:44px;animation:2.2s ease-in-out infinite mb-mid;top:23px;left:42px}.mb-c{width:46px;height:46px;animation:2s ease-in-out infinite float-y-r;top:22px;right:10px}@keyframes mb-mid{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(.9)}}.jr{clip-path:circle(50%);border:13px solid #111;border-radius:50%;width:82px;height:82px;animation:2s ease-in-out infinite jr-jelly,3s linear infinite spin}@keyframes jr-jelly{0%,to{border-radius:50%;transform:scale(1)}25%{border-radius:58% 42% 54% 46%/46% 54%;transform:scale(.9,1.12)}50%{border-radius:42% 58% 46% 54%/54% 46%;transform:scale(1.1,.9)}75%{border-radius:54% 46% 42% 58%/48% 52%;transform:scale(.94,1.06)}}.gv-wrap{flex-direction:column;justify-content:flex-end;align-items:center;width:80px;height:130px;display:flex;position:relative}.gv-blob{background:#111;border-radius:50%;width:58px;height:58px;animation:1.3s cubic-bezier(.33,0,.66,-.4) infinite gv-bounce,2.5s ease-in-out infinite morph}.gv-shadow{background:#ccc;border-radius:50%;width:48px;height:8px;margin-top:4px;animation:1.3s ease-in-out infinite gv-shadow}@keyframes gv-bounce{0%,to{transform:translateY(0)scaleX(1)scaleY(1)}40%{transform:translateY(0)scaleX(1.2)scaleY(.8)}50%{transform:translateY(-55px)scaleX(.9)scaleY(1.1)}90%{transform:translateY(0)scaleX(1.15)scaleY(.85)}}@keyframes gv-shadow{0%,to{opacity:.5;transform:scaleX(1)}50%{opacity:.15;transform:scaleX(.45)}}.to-wrap{width:110px;height:110px;position:relative}.to-drop{transform-origin:0 0;width:16px;height:22px;animation:2s linear infinite to-orbit;animation-delay:calc(var(--i) * -.4s);background:#111;border-radius:50%/60% 60% 40% 40%;margin:-11px 0 0 -8px;position:absolute;top:50%;left:50%}@keyframes to-orbit{to{transform:rotate(360deg)translate(34px)rotate(-360deg)}}.sw-wrap{justify-content:center;align-items:center;width:150px;height:80px;display:flex}.sw-goo{filter:blur(8px)contrast(20);width:140px;height:70px;position:relative}.sw-body{background:#111;border-radius:50%;width:90px;height:48px;animation:2s ease-in-out infinite sw-slide,2.4s ease-in-out infinite morph;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sw-drop{width:28px;height:28px;animation:2s ease-in-out infinite sw-drop-move;animation-delay:calc(var(--i) * -1s);background:#111;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%)}@keyframes sw-slide{0%,to{transform:translate(-50%,-50%)translate(-18px)}50%{transform:translate(-50%,-50%)translate(18px)}}@keyframes sw-drop-move{0%,to{left:8px}50%{left:104px}}.ob{align-items:flex-end;gap:8px;height:80px;display:flex}.ob-bar{width:18px;animation:1.4s ease-in-out infinite ob-wave,2s ease-in-out infinite morph2;animation-delay:calc(var(--i) * .18s);background:#111;border-radius:20px 20px 12px 12px;height:24px}@keyframes ob-wave{0%,to{border-radius:20px 20px 12px 12px;height:24px}50%{border-radius:30px 20px 10px 10px;height:72px}}.cd-wrap{justify-content:center;align-items:center;width:150px;height:90px;display:flex}.cd-goo{filter:blur(8px)contrast(20);width:136px;height:80px;position:relative}.cd-a,.cd-b{background:#111;border-radius:50%;width:56px;height:56px;position:absolute;top:12px}.cd-a{animation:2.2s ease-in-out infinite cd-split-a,3s ease-in-out infinite morph;left:12px}.cd-b{animation:2.2s ease-in-out infinite cd-split-b,3s ease-in-out infinite reverse morph;right:12px}@keyframes cd-split-a{0%,to{transform:translate(20px)}50%{transform:translate(0)}}@keyframes cd-split-b{0%,to{transform:translate(-20px)}50%{transform:translate(0)}}.nc{justify-content:center;align-items:center;width:130px;height:130px;display:flex;position:relative}.nc-core{background:#111;border-radius:50%;width:26px;height:26px;animation:2s ease-in-out infinite morph,2.4s ease-in-out infinite scale}.nc-ring{border:4px solid #0000;border-radius:50%;position:absolute}.nc-ring.r1{border-top-color:#111;border-bottom-color:#111;width:68px;height:68px;animation:2.4s linear infinite spin}.nc-ring.r2{border-left-color:#bbb;border-right-color:#bbb;width:110px;height:110px;animation:3.8s linear infinite spin-r}.nc-blob{background:#111;border-radius:50%;width:12px;height:12px;animation:2s ease-in-out infinite morph;position:absolute}.nb1{transform-origin:0 34px;animation:2.4s linear infinite spin,2.4s linear infinite nc-blob-r;top:31px;left:59px}.nb2{transform-origin:0 55px;animation:3.8s linear infinite spin-r,3.8s linear infinite nc-blob-r2;top:20px;left:59px}.nb3{transform-origin:0 55px;width:10px;height:10px;animation:3.8s linear infinite spin-r,3.8s linear infinite nc-blob-r3;top:99px;left:59px}@keyframes nc-blob-r{to{transform:rotate(-360deg)}}@keyframes nc-blob-r2{to{transform:rotate(360deg)}}@keyframes nc-blob-r3{to{transform:rotate(360deg)}}.gallery-page{z-index:1;box-sizing:border-box;height:100vh;position:relative;overflow:hidden}.lab-sky{z-index:0;pointer-events:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.lab-sky--fallback{background:linear-gradient(#000 0%,#030814 42%,#0d2b63 72%,#7a3a12 88%,#05070d 100%)}.lab-stage{z-index:1;box-sizing:border-box;flex-direction:column;align-items:center;height:100%;padding:72px 24px 0;display:flex;position:relative}.lab-stage[data-landed=false] .gallery-header,.lab-stage[data-landed=false] .carousel-cta{opacity:.18;pointer-events:none}.lab-stage .gallery-header,.lab-stage .carousel-cta{transition:opacity .7s}.gallery-header{text-align:center;flex-shrink:0;padding:20px 0 14px}.gallery-eyebrow{font-family:var(--font-mono);letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.gallery-title{color:var(--text-h);letter-spacing:-.02em;margin:8px 0;font-size:clamp(28px,4.6vw,54px);font-weight:600;line-height:1.1}.gallery-desc{color:var(--text-muted);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em}.lab-scene{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:opacity;outline:none;flex:1;width:100%;min-height:0;position:relative}.lab-scene:active{cursor:grabbing}.lab-scene:focus-visible{border-radius:12px;box-shadow:inset 0 0 0 1px #ffffff47}.lab-ring{width:0;height:0;transform-style:preserve-3d;will-change:transform;position:absolute;top:50%;left:50%}.lab-ring .carousel-card{backface-visibility:hidden}.lab-arrived{z-index:3;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:#ffffffdb;text-shadow:0 0 24px #78aaff8c;pointer-events:none;margin:0;font-size:13px;animation:.52s both lab-arrived-in;position:fixed;bottom:14%;left:50%;transform:translate(-50%)}@keyframes lab-arrived-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.carousel-card{transform-style:preserve-3d;will-change:transform, opacity;border:1px solid #ffffff0f;border-radius:6px;flex-direction:column;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .4s,border-color .35s;display:flex;position:absolute}.carousel-card:before{content:"";background:radial-gradient(320px circle at var(--mouse-x,50%) var(--mouse-y,50%), #ffffff26 0%, #ffffff0a 40%, transparent 80%), linear-gradient(var(--glare-angle,120deg), transparent 30%, #ffffff14 40%, #fff3 50%, #ffffff14 60%, transparent 70%);background-size:auto,200% 200%;background-position:center, var(--bg-x,50%) var(--bg-y,50%);z-index:15;pointer-events:none;opacity:var(--glare-opacity,0);mix-blend-mode:overlay;border-radius:6px;transition:opacity .4s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.carousel-card:after{content:"";background:linear-gradient(135deg,#3b82f61a 0%,#8b5cf61a 20%,#ec48991a 40%,#06b6d41a 60%,#10b9811a 80%,#3b82f61a 100%) 0 0/250% 250%;background-position:var(--bg-x,50%) var(--bg-y,50%);z-index:14;pointer-events:none;opacity:var(--glare-opacity,0);mix-blend-mode:color-dodge;border-radius:6px;transition:opacity .4s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.card-bg{-webkit-backdrop-filter:blur(16px);background:#0a0b1280;border-radius:6px;transition:box-shadow .35s;position:absolute;inset:0;transform:translateZ(-2px);box-shadow:0 18px 60px #00000073}.carousel-card.active .card-bg{box-shadow:0 30px 90px #0009}.planet-surface{z-index:0;border-radius:5px;position:absolute;inset:0;overflow:hidden;transform:translateZ(10px)}.card-dim{pointer-events:none;z-index:10;background:#0a0a0f8c;border-radius:5px;transition:opacity .35s;position:absolute;inset:0;transform:translateZ(34px)}.carousel-card.active .card-dim{opacity:0}.card-glow{pointer-events:none;z-index:-1;border-radius:12px;transition:box-shadow .4s;position:absolute;inset:-1px;transform:translateZ(-8px)}.carousel-card.active .card-glow{box-shadow:0 0 40px -4px var(--exp-color,#ffffff40)}.carousel-card.active{border-color:#ffffff47}.card-symbol{z-index:5;pointer-events:none;background:linear-gradient(#0000,#040409d1);justify-content:flex-end;align-items:center;padding:14px 18px 15px 0;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateZ(26px)}.exhibit-meta{z-index:6;opacity:0;pointer-events:none;align-items:baseline;gap:12px;transition:opacity .4s .1s,transform .4s;display:flex;position:absolute;bottom:13px;left:18px;transform:translateZ(30px)}.carousel-card.active .exhibit-meta{opacity:1}.exhibit-num{font-family:var(--font-mono);color:var(--exp-color);letter-spacing:.08em;font-size:11px}.exhibit-text{flex-direction:column;gap:2px;display:flex}.exhibit-title{color:#fffffff2;letter-spacing:.01em;font-size:14px;font-weight:600;line-height:1.2}.exhibit-tags{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#ffffff6b;font-size:9.5px}.card-symbol-glyph{color:var(--exp-color);filter:drop-shadow(0 0 6px var(--exp-color));opacity:.5;font-size:20px;line-height:1;transition:opacity .35s,filter .35s,transform .35s cubic-bezier(.16,1,.3,1)}.carousel-card.active .card-symbol-glyph{opacity:1;filter:drop-shadow(0 0 12px var(--exp-color));transform:scale(1.18)}.planet-moon .planet-surface{background:#06070a}.planet-moon .planet-surface:before{content:"";opacity:.6;background-image:radial-gradient(circle,#c8c8d473 1px,#0000 2px),radial-gradient(circle,#c8c8d440 1.5px,#0000 2.5px);background-position:0 0,11px 11px;background-size:22px 22px;animation:10s linear infinite particle-float;position:absolute;inset:0}.planet-moon .planet-surface:after{content:"";background:radial-gradient(at 30% 40%,#c8d2e614 0%,#0000 60%);position:absolute;inset:0}.carousel-card.planet-moon:hover .planet-surface:before,.carousel-card.planet-moon.active .planet-surface:before{opacity:1;filter:drop-shadow(0 0 5px #c8c8d4b3);animation:3s linear infinite particle-float}@keyframes particle-float{0%{background-position:0 0,12px 12px}to{background-position:24px -24px,36px -12px}}.planet-mercury .planet-surface{background:#080a0e}.planet-mercury .planet-surface:before{content:"GSAP  TYPE  FX  GSAP  TYPE  FX\a KINETIC TEXT ENGINE  KINETIC\a MOTION  MOTION  MOTION  MOTION\a INTERACTIVE  INTERACTIVE";white-space:pre;font-family:var(--font-mono);letter-spacing:.12em;background:linear-gradient(90deg,#94a3b88c 0%,#94a3b826 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:10px;font-weight:800;line-height:1.85;animation:10s linear infinite text-scroll-horizontal;position:absolute;top:18px;left:-20%}.planet-mercury .planet-surface:after{content:"";background:linear-gradient(90deg,#080a0eb3 0%,#0000 40% 60%,#080a0eb3 100%);position:absolute;inset:0}.carousel-card.planet-mercury:hover .planet-surface:before,.carousel-card.planet-mercury.active .planet-surface:before{background:linear-gradient(90deg,#94a3b8e6 0%,#94a3b866 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;animation:3.5s linear infinite text-scroll-horizontal}@keyframes text-scroll-horizontal{0%{transform:translate(0)}to{transform:translate(10%)}}.planet-venus .planet-surface{background:#080604}.planet-venus .planet-surface:before{content:"";background:var(--exp-color);width:8px;height:8px;box-shadow:0 0 14px 4px var(--exp-color);opacity:.5;transition:all .4s var(--ease);border-radius:50%;animation:2.2s ease-in-out infinite spark-trail;position:absolute;top:40%;left:38%}.planet-venus .planet-surface:after{content:"";background:var(--exp-color);width:4px;height:4px;box-shadow:0 0 8px 2px var(--exp-color);opacity:.35;border-radius:50%;animation:1.6s ease-in-out infinite reverse spark-trail;position:absolute;top:55%;left:55%}.carousel-card.planet-venus:hover .planet-surface:before,.carousel-card.planet-venus.active .planet-surface:before{opacity:1;filter:drop-shadow(0 0 8px var(--exp-color));width:10px;height:10px;animation-duration:.65s}.carousel-card.planet-venus:hover .planet-surface:after,.carousel-card.planet-venus.active .planet-surface:after{opacity:.8;filter:drop-shadow(0 0 6px var(--exp-color));animation-duration:.5s}@keyframes spark-trail{0%{opacity:.8;transform:translate(-25px,-20px)scale(.5)}50%{opacity:.4;transform:translate(10px,15px)scale(1.2)}to{opacity:0;transform:translate(30px,-15px)scale(.2)}}.planet-earth .planet-surface{background:#050907;border:1px solid #22c55e33}.planet-earth .planet-surface:before{content:"";border:2px solid #22c55e8c;width:18px;height:18px;animation:4s ease-in-out infinite alternate gravity-float;position:absolute;top:28%;left:22%;transform:rotate(45deg);box-shadow:0 0 8px #22c55e33}.planet-earth .planet-surface:after{content:"";border:2px solid #22c55e61;border-radius:5px;width:22px;height:22px;animation:5s ease-in-out infinite alternate gravity-float-reverse;position:absolute;bottom:22%;right:22%;box-shadow:0 0 6px #22c55e26}.carousel-card.planet-earth:hover .planet-surface:before,.carousel-card.planet-earth.active .planet-surface:before{border-color:var(--exp-color);filter:drop-shadow(0 0 7px var(--exp-color));animation-duration:1.3s}.carousel-card.planet-earth:hover .planet-surface:after,.carousel-card.planet-earth.active .planet-surface:after{border-color:var(--exp-color);filter:drop-shadow(0 0 7px var(--exp-color));animation-duration:1.6s}@keyframes gravity-float{0%{transform:translateY(0)rotate(45deg)}to{transform:translateY(-12px)rotate(225deg)}}@keyframes gravity-float-reverse{0%{transform:translateY(0)rotate(0)}to{transform:translateY(12px)rotate(-180deg)}}.planet-mars .planet-surface{background:#090505;border:1px solid #ef444433}.planet-mars .planet-surface:before{content:"";background-image:linear-gradient(#ef44441a 1px,#0000 1px),linear-gradient(90deg,#ef44441a 1px,#0000 1px);background-size:16px 16px;position:absolute;inset:0}.planet-mars .planet-surface:after{content:"";background:var(--exp-color);width:100%;height:2px;box-shadow:0 0 12px 2px var(--exp-color);opacity:.55;animation:3.5s ease-in-out infinite laser-scan;position:absolute;top:-20%;left:0}.carousel-card.planet-mars:hover .planet-surface:after,.carousel-card.planet-mars.active .planet-surface:after{opacity:1;filter:drop-shadow(0 0 6px var(--exp-color));height:3px;animation:1.2s ease-in-out infinite laser-scan}@keyframes laser-scan{0%{top:-10%}50%{top:110%}to{top:-10%}}.planet-jupiter .planet-surface{background:#0a0805}.planet-jupiter .planet-surface:before{content:"";background:var(--exp-color);opacity:.22;filter:blur(22px);width:70px;height:70px;transition:var(--transition-smooth);border-radius:50%;position:absolute;top:20%;left:15%}.planet-jupiter .planet-surface:after{content:"";background-image:radial-gradient(circle at 30% 25%, var(--exp-color) 3px, transparent 4px), radial-gradient(circle at 50% 60%, var(--exp-color) 2px, transparent 3px), radial-gradient(circle at 72% 40%, var(--exp-color) 4px, transparent 5px), radial-gradient(circle at 20% 70%, var(--exp-color) 2px, transparent 3px), radial-gradient(circle at 85% 75%, var(--exp-color) 2.5px, transparent 3.5px);opacity:.55;transition:var(--transition-smooth);position:absolute;inset:10px}.carousel-card.planet-jupiter:hover .planet-surface:before,.carousel-card.planet-jupiter.active .planet-surface:before{opacity:.45;filter:blur(12px);transform:scale(1.4)}.carousel-card.planet-jupiter:hover .planet-surface:after,.carousel-card.planet-jupiter.active .planet-surface:after{opacity:1;transform:scale(1.1)rotate(15deg)}.planet-saturn .planet-surface{background:#060503}.planet-saturn .planet-surface:before{content:"A B C D E F G\a 0 1 0 1 0 1 0\a H E L L O W O\a K E Y B O A R\a R A I N D R O\a * & % $ # @ !";white-space:pre;font-family:var(--font-mono);letter-spacing:.05em;background:linear-gradient(#d4a85e8c 0%,#d4a85e1f 80%,#0000 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:11px;line-height:1.7;animation:7s linear infinite matrix-scroll;position:absolute;top:-55px;left:10px}.planet-saturn .planet-surface:after{content:"";background:linear-gradient(#06050399 0%,#0000 30% 70%,#060503cc 100%);position:absolute;inset:0}.carousel-card.planet-saturn:hover .planet-surface:before,.carousel-card.planet-saturn.active .planet-surface:before{background:linear-gradient(#d4a85ef2 0%,#d4a85e66 80%,#0000 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;animation:2.5s linear infinite matrix-scroll}@keyframes matrix-scroll{0%{transform:translateY(0)}to{transform:translateY(40px)}}.planet-uranus .planet-surface{background:#040809}.planet-uranus .planet-surface:before{content:"";background:radial-gradient(circle,#22d3ee12 0%,#0000 70%);border:1px dashed #22d3ee59;border-radius:50%;animation:5s ease-in-out infinite alternate flow-pulse;position:absolute;inset:12px;box-shadow:inset 0 0 20px #22d3ee0d}.planet-uranus .planet-surface:after{content:"";border:1px dashed #22d3ee2e;border-radius:50%;animation:3.5s ease-in-out infinite alternate-reverse flow-pulse;position:absolute;inset:28px}.carousel-card.planet-uranus:hover .planet-surface:before,.carousel-card.planet-uranus.active .planet-surface:before{background:radial-gradient(circle,#22d3ee1f 0%,#0000 75%);border-color:#22d3eecc;animation-duration:1.8s;box-shadow:inset 0 0 30px #22d3ee1a,0 0 20px #22d3ee1f}.carousel-card.planet-uranus:hover .planet-surface:after,.carousel-card.planet-uranus.active .planet-surface:after{border-color:#22d3ee80;animation-duration:1.2s}@keyframes flow-pulse{0%{opacity:.35;transform:scale(.92)}to{opacity:.9;transform:scale(1.08)}}.planet-neptune .planet-surface{background:#040508}.planet-neptune .planet-surface:before{content:"";filter:blur(16px);background:radial-gradient(circle at 28% 28%,#3b82f652 0%,#0000 48%),radial-gradient(circle at 72% 72%,#8b5cf647 0%,#0000 48%);animation:8s ease-in-out infinite alternate fluid-spin;position:absolute;inset:-20px}.planet-neptune .planet-surface:after{content:"";filter:blur(20px);background:radial-gradient(circle at 60% 30%,#60a5fa2e 0%,#0000 40%);animation:12s ease-in-out infinite alternate-reverse fluid-spin;position:absolute;inset:-20px}.carousel-card.planet-neptune:hover .planet-surface:before,.carousel-card.planet-neptune.active .planet-surface:before{filter:blur(8px);opacity:1;animation:2.5s ease-in-out infinite alternate fluid-spin}.carousel-card.planet-neptune:hover .planet-surface:after,.carousel-card.planet-neptune.active .planet-surface:after{filter:blur(12px);opacity:.9;animation:4s ease-in-out infinite alternate-reverse fluid-spin}@keyframes fluid-spin{0%{transform:rotate(0)scale(1)}to{transform:rotate(180deg)scale(1.25)}}.planet-audio{overflow:hidden!important}.planet-audio .planet-surface{background:#07080c;border:1px solid #fcd34d26;border-radius:12px;position:absolute;inset:0;overflow:hidden}.planet-audio .planet-corona{opacity:.4;width:200%;height:60px;transition:all .4s var(--ease);z-index:1;background:linear-gradient(90deg,#fef08a,#fcd34d);animation:8s linear infinite wave-scroll;position:absolute;top:50%;left:0;transform:translateY(-50%);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 20\" preserveAspectRatio=\"none\"><path d=\"M0,10 Q12.5,2 25,10 T50,10 T75,10 T100,10\" fill=\"none\" stroke=\"black\" stroke-width=\"1.5\"/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 20\" preserveAspectRatio=\"none\"><path d=\"M0,10 Q12.5,2 25,10 T50,10 T75,10 T100,10\" fill=\"none\" stroke=\"black\" stroke-width=\"1.5\"/></svg>");-webkit-mask-size:50% 100%;mask-size:50% 100%}.planet-audio .planet-surface:after{content:"";opacity:.25;width:200%;height:50px;transition:all .4s var(--ease);z-index:0;background:linear-gradient(90deg,#fcd34d,#f59e0b);animation:10s linear infinite wave-scroll-reverse;position:absolute;top:50%;left:-100%;transform:translateY(-50%);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 20\" preserveAspectRatio=\"none\"><path d=\"M0,10 Q12.5,18 25,10 T50,10 T75,10 T100,10\" fill=\"none\" stroke=\"black\" stroke-width=\"1\"/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 20\" preserveAspectRatio=\"none\"><path d=\"M0,10 Q12.5,18 25,10 T50,10 T75,10 T100,10\" fill=\"none\" stroke=\"black\" stroke-width=\"1\"/></svg>");-webkit-mask-size:50% 100%;mask-size:50% 100%}.planet-audio .planet-corona{opacity:.6}.planet-audio .planet-surface:after{opacity:.4}.carousel-card.planet-audio:hover .planet-corona,.carousel-card.planet-audio.active .planet-corona{opacity:1;filter:drop-shadow(0 0 8px #fcd34dcc);animation:2.5s linear infinite wave-scroll}.carousel-card.planet-audio:hover .planet-surface:after,.carousel-card.planet-audio.active .planet-surface:after{opacity:.75;filter:drop-shadow(0 0 5px #fcd34d8c);animation:3.5s linear infinite wave-scroll-reverse}.planet-audio .card-glow{box-shadow:0 0 16px -4px #fcd34d26}.carousel-card.planet-audio.active .card-glow{box-shadow:0 0 32px -6px #fcd34d73,0 0 60px -15px #fcd34d33}.carousel-card.planet-audio .card-dim{background:#0a0a0fa6}@keyframes wave-scroll{0%{transform:translateY(-50%)translate(0)}to{transform:translateY(-50%)translate(-50%)}}@keyframes wave-scroll-reverse{0%{transform:translateY(-50%)translate(0)}to{transform:translateY(-50%)translate(50%)}}.planet-main-canvas .planet-surface{background:linear-gradient(#edf2f8 0%,#f8fafc 52%,#d9e3ee 100%)}.planet-main-canvas .planet-surface:before{content:"";clip-path:polygon(4% 5%,96% 1%,92% 84%,72% 92%,45% 86%,19% 96%,0 82%);background:linear-gradient(#0a0d16d1 0 18%,#0000 18%),radial-gradient(at 24% 58%,#02061759,#0000 23%),linear-gradient(100deg,#0000 0 20%,#ffffffc7 34%,#0000 48%),repeating-linear-gradient(90deg,#0a0d1624 0 1px,#0000 1px 6px);border-radius:4px;animation:6s ease-in-out infinite alternate main-canvas-fold;position:absolute;inset:16% 12% 20%;box-shadow:0 18px 26px #0f172a2e}.planet-main-canvas .planet-surface:after{content:"MAIN PAGE";font-family:var(--font-sans);letter-spacing:-.05em;color:#0f172ac7;text-shadow:0 1px #ffffff80;font-size:clamp(22px,4vw,42px);font-weight:800;position:absolute;top:42%;left:24%;transform:rotate(-4deg)}.carousel-card.planet-main-canvas:hover .planet-surface:before,.carousel-card.planet-main-canvas.active .planet-surface:before{animation-duration:2.2s;box-shadow:0 22px 42px #3b82f638}@keyframes main-canvas-fold{0%{filter:saturate(.9);transform:rotate(-2deg)skewY(0)}to{filter:saturate(1.2);transform:rotate(2deg)skewY(-3deg)}}.carousel-cta{flex-direction:column;flex-shrink:0;align-items:center;gap:14px;padding:14px 0 20px;display:flex}.carousel-nav{align-items:center;gap:18px;display:flex}.carousel-arrow{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;transition:border-color .2s,color .2s,background .2s;display:flex}.carousel-arrow:hover{border-color:var(--border-hover);color:var(--text-h);background:#ffffff0d}.carousel-info{font-family:var(--font-mono);color:var(--text-muted);justify-content:center;align-items:baseline;gap:4px;min-width:56px;font-size:12px;display:flex}.carousel-progress{background:#ffffff1a;width:180px;height:1px;overflow:hidden}.carousel-progress span{background:#ffffffbf;height:100%;transition:width .45s cubic-bezier(.16,1,.3,1);display:block}.carousel-active-num{color:var(--text-h);font-size:15px;font-weight:600}.planet-sky .planet-surface{background:linear-gradient(168deg,#3a8db5 0%,#7ec8e3 52%,#b8dff0 100%)}.planet-sky .planet-surface:before{content:"";background:radial-gradient(circle at 38% 38%,#fff078 0%,#ffc337b8 36%,#ff9b194d 66%,#0000 100%);border-radius:50%;width:58px;height:58px;animation:4.5s ease-in-out infinite alternate sky-sun-breathe;position:absolute;top:-10px;right:6px}.planet-sky .planet-surface:after{content:"";background:radial-gradient(60px 28px at 36% 64%,#ffffffed 0%,#0000 100%),radial-gradient(44px 24px at 54% 56%,#fffc 0%,#0000 100%),radial-gradient(32px 18px at 19% 70%,#ffffffa3 0%,#0000 100%),radial-gradient(26px 15px at 75% 76%,#ffffff7a 0%,#0000 100%),radial-gradient(20px 12px at 62% 38%,#ffffff4d 0%,#0000 100%);animation:16s ease-in-out infinite alternate sky-cloud-drift;position:absolute;inset:0}.carousel-card.planet-sky:hover .planet-surface:before,.carousel-card.planet-sky.active .planet-surface:before{filter:drop-shadow(0 0 14px #ffdc50a6);animation-duration:1.8s}.carousel-card.planet-sky:hover .planet-surface:after,.carousel-card.planet-sky.active .planet-surface:after{animation-duration:5.5s}@keyframes sky-sun-breathe{0%{opacity:.82;transform:scale(.91)}to{opacity:1;transform:scale(1.07)}}@keyframes sky-cloud-drift{0%{transform:translate(0)}to{transform:translate(11px)}}.planet-weather .planet-surface{background:#04070e}.planet-weather .planet-surface:before{content:"";background-image:repeating-linear-gradient(173deg,#0000 0 8px,#7ec8e31a 8px 9.5px);animation:1.6s linear infinite weather-rain;position:absolute;inset:0}.planet-weather .planet-surface:after{content:"";filter:blur(15px);background:radial-gradient(circle at 28% 68%,#7ec8e361 0%,#0000 44%),radial-gradient(circle at 72% 38%,#5082c838 0%,#0000 44%),radial-gradient(circle at 52% 52%,#6eb4e124 0%,#0000 54%);animation:8s ease-in-out infinite alternate weather-mood-shift;position:absolute;inset:-22px}.carousel-card.planet-weather:hover .planet-surface:before,.carousel-card.planet-weather.active .planet-surface:before{background-image:repeating-linear-gradient(173deg,#0000 0 6px,#7ec8e33d 6px 7.5px);animation-duration:.5s}.carousel-card.planet-weather:hover .planet-surface:after,.carousel-card.planet-weather.active .planet-surface:after{filter:blur(7px);background:radial-gradient(circle at 28% 68%,#7ec8e399 0%,#0000 44%),radial-gradient(circle at 72% 38%,#5082c86b 0%,#0000 44%),radial-gradient(circle at 52% 52%,#6eb4e147 0%,#0000 54%);animation-duration:2.8s}@keyframes weather-rain{0%{background-position:0 0}to{background-position:-6px 28px}}@keyframes weather-mood-shift{0%{opacity:.65;transform:scale(1)rotate(0)}to{opacity:1;transform:scale(1.22)rotate(18deg)}}.planet-comet .planet-surface{background:radial-gradient(at 70% 20%,#10182c 0%,#050409 70%)}.planet-comet .planet-surface:before{content:"";background:radial-gradient(1.5px 1.5px at 18% 28%,#e2e8f0e6 0%,#0000 100%),radial-gradient(1px 1px at 64% 18%,#e2e8f0b3 0%,#0000 100%),radial-gradient(1.5px 1.5px at 82% 56%,#c8d7f5cc 0%,#0000 100%),radial-gradient(1px 1px at 38% 64%,#e2e8f099 0%,#0000 100%),radial-gradient(1px 1px at 52% 40%,#e2e8f080 0%,#0000 100%),radial-gradient(1.5px 1.5px at 28% 82%,#c8d7f5b3 0%,#0000 100%),radial-gradient(1px 1px at 90% 80%,#e2e8f08c 0%,#0000 100%);animation:3.4s ease-in-out infinite alternate comet-twinkle;position:absolute;inset:0}.planet-comet .planet-surface:after{content:"";background:linear-gradient(90deg,#0000 0%,#a5c8ff80 70%,#fff 100%);border-radius:2px;width:64%;height:2px;animation:3.8s ease-in .6s infinite comet-streak;position:absolute;top:24%;left:-42%;transform:rotate(16deg)}.carousel-card.planet-comet:hover .planet-surface:after,.carousel-card.planet-comet.active .planet-surface:after{animation-duration:1.4s;animation-delay:0s}@keyframes comet-twinkle{0%{opacity:.5}to{opacity:1}}@keyframes comet-streak{0%{opacity:0;transform:translate(0)rotate(16deg)}6%{opacity:1}34%{opacity:0;transform:translate(240%,68px)rotate(16deg)}to{opacity:0;transform:translate(240%,68px)rotate(16deg)}}.planet-meteor .planet-surface{background:radial-gradient(at 30% 100%,#1c0d06 0%,#070409 62%)}.planet-meteor .planet-surface:before{content:"";background:repeating-linear-gradient(118deg,#0000 0 34px,#fb923c29 34px,#ffc8826b 37px,#0000 38px 72px);animation:2.6s linear infinite meteor-fall;position:absolute;inset:-30%}.planet-meteor .planet-surface:after{content:"";filter:blur(4px);background:radial-gradient(at 50% 100%,#fb923c8c 0%,#dc5a1e38 48%,#0000 100%);width:76%;height:42px;animation:2.2s ease-in-out infinite alternate meteor-ember;position:absolute;bottom:-18px;left:12%}.carousel-card.planet-meteor:hover .planet-surface:before,.carousel-card.planet-meteor.active .planet-surface:before{animation-duration:.9s}.carousel-card.planet-meteor:hover .planet-surface:after,.carousel-card.planet-meteor.active .planet-surface:after{animation-duration:.8s}@keyframes meteor-fall{0%{transform:translate(-26px,-14px)}to{transform:translate(26px,14px)}}@keyframes meteor-ember{0%{opacity:.5}to{opacity:1}}.planet-aurora .planet-surface{background:linear-gradient(#01020a 0%,#060d1d 70%,#03050a 100%)}.planet-aurora .planet-surface:before{content:"";filter:blur(7px);background:linear-gradient(100deg,#0000 12%,#34d3994d 26%,#0000 40%),linear-gradient(80deg,#0000 38%,#5eead438 52%,#0000 66%),linear-gradient(105deg,#0000 58%,#a78bfa42 74%,#0000 90%);animation:7s ease-in-out infinite alternate aurora-wave;position:absolute;inset:-20% -10%}.planet-aurora .planet-surface:after{content:"";clip-path:polygon(0 100%,0 55%,16% 38%,34% 62%,52% 30%,70% 58%,86% 40%,100% 60%,100% 100%);background:linear-gradient(#0000 0%,#03050a 72%);height:30%;position:absolute;bottom:-6px;left:0;right:0}.carousel-card.planet-aurora:hover .planet-surface:before,.carousel-card.planet-aurora.active .planet-surface:before{filter:blur(5px);animation-duration:2.4s}@keyframes aurora-wave{0%{opacity:.6;transform:translate(-12px)skew(-3deg)}to{opacity:1;transform:translate(12px)skew(4deg)}}.planet-vortex .planet-surface{background:radial-gradient(circle,#150e2a 0%,#07050f 74%)}.planet-vortex .planet-surface:before{content:"";filter:blur(6px);background:conic-gradient(#0000 0deg,#a78bfa73 70deg,#0000 140deg,#818cf859 215deg,#0000 290deg,#c4b5fd66 330deg,#0000 360deg);border-radius:50%;width:190px;height:190px;margin:-95px 0 0 -95px;animation:9s linear infinite vortex-spin;position:absolute;top:50%;left:50%}.planet-vortex .planet-surface:after{content:"";filter:blur(1px);background:radial-gradient(circle,#e6dcffe6 0%,#a78bfa66 50%,#0000 100%);border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;animation:2.6s ease-in-out infinite alternate vortex-core;position:absolute;top:50%;left:50%}.carousel-card.planet-vortex:hover .planet-surface:before,.carousel-card.planet-vortex.active .planet-surface:before{animation-duration:2.8s}@keyframes vortex-spin{0%{transform:rotate(0)scale(1)}to{transform:rotate(360deg)scale(1)}}@keyframes vortex-core{0%{opacity:.7;transform:scale(.82)}to{opacity:1;transform:scale(1.15)}}.planet-globe .planet-surface{background:radial-gradient(at 60% 30%,#0a1730 0%,#04070f 72%)}.planet-globe .planet-surface:before{content:"";background:radial-gradient(circle at 34% 32%,#60a5fa80 0%,#285ab447 46%,#0a1937e6 100%),repeating-radial-gradient(circle,#7dbeff38 0 1px,#0000 1px 7px);border-radius:50%;width:104px;height:104px;margin:-52px 0 0 -52px;animation:4.2s ease-in-out infinite alternate globe-breathe;position:absolute;top:50%;left:50%;box-shadow:0 0 22px #468cff66,inset -10px -8px 22px #00000ad9}.planet-globe .planet-surface:after{content:"";border:1px solid #7dd3fc66;border-radius:50%;width:150px;height:54px;margin:-27px 0 0 -75px;animation:5.5s ease-in-out infinite alternate globe-orbit;position:absolute;top:50%;left:50%;transform:rotate(-16deg)}.carousel-card.planet-globe:hover .planet-surface:before,.carousel-card.planet-globe.active .planet-surface:before{animation-duration:1.6s;box-shadow:0 0 34px #468cffa6,inset -10px -8px 22px #00000ad9}@keyframes globe-breathe{0%{transform:scale(.97)}to{transform:scale(1.04)}}@keyframes globe-orbit{0%{opacity:.5;transform:rotate(-20deg)}to{opacity:.9;transform:rotate(-12deg)}}.planet-ocean .planet-surface{background:linear-gradient(#0b1026 0%,#2a3158 38%,#b06a3f 50%,#1c3050 56%,#040b18 100%)}.planet-ocean .planet-surface:before{content:"";background:radial-gradient(circle,#ffe2aaf2 0%,#ffb46473 42%,#0000 100%);border-radius:50%;width:40px;height:40px;animation:4.4s ease-in-out infinite alternate ocean-sun;position:absolute;top:30%;left:58%}.planet-ocean .planet-surface:after{content:"";background:repeating-linear-gradient(178deg,#0000 0 9px,#5eead41f 9px 10.5px);animation:3.2s ease-in-out infinite alternate ocean-swell;position:absolute;inset:52% 0 0}.carousel-card.planet-ocean:hover .planet-surface:after,.carousel-card.planet-ocean.active .planet-surface:after{background:repeating-linear-gradient(178deg,#0000 0 8px,#5eead43d 8px 9.5px);animation-duration:1.2s}@keyframes ocean-sun{0%{opacity:.8;transform:translateY(0)scale(.94)}to{opacity:1;transform:translateY(3px)scale(1.05)}}@keyframes ocean-swell{0%{transform:translateY(0)}to{transform:translateY(6px)}}.planet-space .planet-surface{background:radial-gradient(at 42% 36%,#0a0d20 0%,#020208 74%)}.planet-space .planet-surface:before{content:"";background:radial-gradient(1.5px 1.5px at 22% 30%,#dce4fff2 0%,#0000 100%),radial-gradient(1px 1px at 58% 22%,#9db4ffcc 0%,#0000 100%),radial-gradient(2px 2px at 78% 48%,#ffffffe6 0%,#0000 100%),radial-gradient(1px 1px at 36% 58%,#dce4ffa6 0%,#0000 100%),radial-gradient(1.5px 1.5px at 64% 74%,#becdffd9 0%,#0000 100%),radial-gradient(1px 1px at 12% 78%,#dce4ff8c 0%,#0000 100%),radial-gradient(1px 1px at 88% 16%,#dce4ff99 0%,#0000 100%),radial-gradient(1px 1px at 46% 88%,#becdff80 0%,#0000 100%);animation:9s ease-in-out infinite alternate space-parallax;position:absolute;inset:-14px}.planet-space .planet-surface:after{content:"";filter:blur(9px);background:radial-gradient(90px 56px at 70% 32%,#7c5adc38 0%,#0000 100%),radial-gradient(70px 44px at 24% 70%,#466ee62e 0%,#0000 100%);animation:7s ease-in-out infinite alternate space-nebula;position:absolute;inset:-20px}.carousel-card.planet-space:hover .planet-surface:before,.carousel-card.planet-space.active .planet-surface:before{animation-duration:3.5s}.carousel-card.planet-space:hover .planet-surface:after,.carousel-card.planet-space.active .planet-surface:after{filter:blur(6px);animation-duration:2.6s}@keyframes space-parallax{0%{transform:translate(-5px,-3px)scale(1)}to{transform:translate(5px,3px)scale(1.06)}}@keyframes space-nebula{0%{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1.08)}}.planet-solar .planet-surface{background:radial-gradient(#120d04 0%,#050307 70%)}.planet-solar .planet-surface:before{content:"";background:radial-gradient(circle at 42% 40%,#ffe9b3 0%,#fbbf24 44%,#d97706b3 78%,#0000 100%);border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;animation:3.2s ease-in-out infinite alternate solar-pulse;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #fbbf24b3,0 0 0 26px #fbbf240b,0 0 0 52px #fbbf2408,0 0 0 78px #fbbf2405}.planet-solar .planet-surface:after{content:"";background:radial-gradient(4.5px at 100%,#7dbcff 30%,#7dbcff66 70%,#0000 100%);border:1px dashed #fbbf2438;border-radius:50%;width:104px;height:104px;margin:-52px 0 0 -52px;animation:7s linear infinite solar-orbit;position:absolute;top:50%;left:50%}.carousel-card.planet-solar:hover .planet-surface:before,.carousel-card.planet-solar.active .planet-surface:before{animation-duration:1.3s;box-shadow:0 0 26px #fbbf24f2,0 0 0 26px #fbbf2412,0 0 0 52px #fbbf240b,0 0 0 78px #fbbf2408}.carousel-card.planet-solar:hover .planet-surface:after,.carousel-card.planet-solar.active .planet-surface:after{animation-duration:2.4s}@keyframes solar-pulse{0%{transform:scale(.94)}to{transform:scale(1.06)}}@keyframes solar-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.planet-tree .planet-surface{background:linear-gradient(#0a0e14 0%,#0c1310 62%,#11160f 86%,#161a10 100%)}.planet-tree .planet-surface:before{content:"";transform-origin:50% 100%;background:linear-gradient(178deg,#0000 0% 46%,#7a6048d9 47%,#5c4634d9 100%) 50% 100%/3px 56px no-repeat,linear-gradient(132deg,#0000 44%,#735a4499 45%,#0000 47%) 44% 58%/30px 26px no-repeat,linear-gradient(48deg,#0000 44%,#735a4499 45%,#0000 47%) 56% 56%/30px 26px no-repeat,radial-gradient(52px 38px at 50% 36%,#8fbf6f57 0%,#8fbf6f1a 58%,#0000 100%),radial-gradient(30px 24px at 36% 44%,#8fbf6f42 0%,#0000 100%),radial-gradient(30px 24px at 64% 42%,#a8d27138 0%,#0000 100%);animation:5.5s ease-in-out infinite alternate tree-sway;position:absolute;inset:0}.planet-tree .planet-surface:after{content:"";background:radial-gradient(2.5px 2px at 62% 38%,#a8d271e6 0%,#0000 100%),radial-gradient(2px 1.6px at 72% 52%,#8fbf6fb3 0%,#0000 100%),radial-gradient(2px 1.6px at 80% 66%,#e0813f99 0%,#0000 100%);animation:4s ease-in infinite tree-leaves;position:absolute;inset:0}.carousel-card.planet-tree:hover .planet-surface:before,.carousel-card.planet-tree.active .planet-surface:before{animation-duration:2s}.carousel-card.planet-tree:hover .planet-surface:after,.carousel-card.planet-tree.active .planet-surface:after{animation-duration:1.6s}@keyframes tree-sway{0%{transform:skew(-1.6deg)}to{transform:skew(2.2deg)}}@keyframes tree-leaves{0%{opacity:0;transform:translate(0)}18%{opacity:1}to{opacity:0;transform:translate(26px,16px)}}.planet-seoul .planet-surface{background:radial-gradient(at 60% 30%,#161c33 0%,#05060d 72%)}.planet-seoul .planet-surface:before{content:"";background:radial-gradient(circle at 34% 32%,#7aa2ff73 0%,#3c468c47 46%,#080a18eb 100%),repeating-linear-gradient(0deg,#ffd68c38 0 1px,#0000 1px 6px),repeating-linear-gradient(90deg,#ffd68c29 0 1px,#0000 1px 8px);border-radius:50%;width:104px;height:104px;margin:-52px 0 0 -52px;animation:3.4s ease-in-out infinite alternate seoul-flicker;position:absolute;top:50%;left:50%;box-shadow:0 0 22px #7aa2ff66,inset -10px -8px 22px #00000ad9}.planet-seoul .planet-surface:after{content:"";border:1px solid #ff6fa866;border-radius:50%;width:150px;height:54px;margin:-27px 0 0 -75px;animation:5.5s ease-in-out infinite alternate seoul-glow;position:absolute;top:50%;left:50%;transform:rotate(-16deg)}.carousel-card.planet-seoul:hover .planet-surface:before,.carousel-card.planet-seoul.active .planet-surface:before{animation-duration:1.4s;box-shadow:0 0 34px #7aa2ffa6,inset -10px -8px 22px #00000ad9}@keyframes seoul-flicker{0%{opacity:.88}to{opacity:1}}@keyframes seoul-glow{0%{opacity:.45;transform:rotate(-20deg)}to{opacity:.85;transform:rotate(-12deg)}}.planet-cloud .planet-surface{background:radial-gradient(circle at 34% 30%,#eaf4ff 0%,#9cc4f0 46%,#5b86c4 100%)}.planet-cloud .planet-surface:before{content:"";opacity:.85;background:radial-gradient(circle at 60% 62%,#ffffffe6 0 10%,#0000 12%),radial-gradient(circle at 40% 70%,#fffc 0 9%,#0000 11%),radial-gradient(circle at 72% 44%,#ffffffbf 0 7%,#0000 9%);border-radius:50%;position:absolute;inset:0}@media (width<=479px){.lab-stage{padding:64px 12px 0}.gallery-header{padding:12px 0 10px}.gallery-title{margin:6px 0}.carousel-cta{gap:10px;padding:10px 0 14px}.card-symbol-glyph{font-size:16px}}@media (width<=767px) and (width>=480px){.lab-stage{padding:68px 16px 0}.gallery-header{padding:14px 0 10px}}.exp-page{position:fixed;inset:0;overflow:hidden}.exp-page-back{z-index:30;font-family:var(--font-mono);letter-spacing:.06em;color:#ffffff80;-webkit-backdrop-filter:blur(10px);white-space:nowrap;background:#0a0a0f8c;border:1px solid #ffffff24;border-radius:999px;padding:5px 16px;font-size:12px;transition:color .2s,border-color .2s,background .2s;position:absolute;top:20px;left:24px}.exp-page-back:hover{color:#fff;background:#0a0a0fcc;border-color:#ffffff80}.exp-page-bar{z-index:20;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;background:#0a0a0fbf;justify-content:center;align-items:center;gap:16px;padding:14px 32px;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .3s;display:flex;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.exp-page-bar.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.exp-page-code-btn{font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:4px 14px;font-size:12px;transition:all .2s;position:absolute;right:32px}.exp-page-code-btn:hover{color:var(--text-h);border-color:var(--text-muted)}.exp-page-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.exp-page-title{color:var(--text-h);letter-spacing:-.01em;font-size:14px;font-weight:600}.exp-page-tags{flex-wrap:wrap;gap:6px;display:flex}.exp-page-tag{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid var(--exp-color,var(--border));color:var(--exp-color,var(--text-muted));opacity:.75;border-radius:999px;padding:2px 9px;font-size:10px}.exp-page-canvas{position:absolute;inset:0}.exp-page-canvas>*{width:100%;height:100%}.exp-page-loading{height:100%;font-family:var(--font-mono);color:var(--text-muted);justify-content:center;align-items:center;font-size:12px;display:flex}.exp-page-info{display:none}.exp-fullscreen{z-index:110;background:#000;position:fixed;inset:0}.exp-fullscreen-back{z-index:60;font-family:var(--font-mono);letter-spacing:.06em;color:#ffffff80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#00000080;border:1px solid #ffffff24;border-radius:999px;padding:4px 15px;font-size:12px;transition:all .2s;position:absolute;top:20px;left:24px}.exp-fullscreen-back:hover{color:#fff;border-color:#ffffff80}@media (width<=767px){.exp-page-bar{padding:12px 16px}.exp-page-meta{gap:8px}}.cp-page{z-index:1;background:#0d1117;flex-direction:column;min-height:100vh;padding-top:72px;display:flex;position:relative}.cp-bar{-webkit-backdrop-filter:blur(12px);background:#0d1117e6;border-bottom:1px solid #21262d;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 32px;display:flex}.cp-bar-left{align-items:center;gap:16px;display:flex}.cp-back{font-family:var(--font-mono,monospace);color:#8b949e;font-size:12px;transition:color .2s}.cp-back:hover{color:#e6edf3}.cp-back-lab{opacity:.5}.cp-back-lab:hover{opacity:1}.cp-bar-meta{align-items:center;gap:8px;font-size:13px;display:flex}.cp-bar-title{color:#e6edf3;font-weight:600}.cp-bar-sep{color:#30363d}.cp-bar-label{color:#8b949e;font-family:var(--font-mono,monospace);font-size:12px}.cp-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.cp-file-tabs{background:#161b22;border-bottom:1px solid #21262d;flex-shrink:0;align-items:center;gap:4px;padding:8px 16px;display:flex}.cp-tab{font-family:var(--font-mono,monospace);color:#8b949e;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 14px;font-size:12px;transition:all .15s}.cp-tab:hover{color:#e6edf3;background:#21262d}.cp-tab.active{color:#e6edf3;background:#0d1117;border-color:#30363d}.cp-copy{font-family:var(--font-mono,monospace);color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:11px;transition:all .15s}.cp-copy:hover{color:#e6edf3;border-color:#58a6ff}.cp-code-wrap{flex:1;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13.5px;line-height:1.7;display:flex;overflow:auto}.cp-line-nums{color:#3d4450;-webkit-user-select:none;user-select:none;border-right:1px solid #21262d;flex-direction:column;flex-shrink:0;align-items:flex-end;min-width:52px;padding:20px 16px 20px 20px;display:flex}.cp-line-nums span{display:block}.cp-pre{background:0 0;flex:1;margin:0;padding:20px 24px;overflow:visible}.cp-code{color:#e6edf3;white-space:pre;display:block}.cp-comment{color:#6e7681;font-style:italic}.cp-string{color:#a5d6ff}.cp-kw{color:#ff7b72}.cp-hook{color:#d2a8ff}.cp-tag{color:#7ee787}.cp-num{color:#f2cc60}.cp-selector{color:#79c0ff}.cp-prop{color:#7ee787}.cp-value{color:#a5d6ff}@media (width<=767px){.cp-bar{padding:12px 16px}.cp-code-wrap{font-size:12px}.cp-line-nums{min-width:40px;padding:16px 10px 16px 12px}.cp-pre{padding:16px 14px}}@keyframes ppage-fadein{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.ppage{min-height:100vh;animation:ppage-fadein .5s var(--ease) both;padding:100px 2rem 80px}.ppage-inner{max-width:760px;margin:0 auto}.ppage-back{font-size:13px;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:56px;padding:0;text-decoration:none;transition:color .2s;display:inline-flex}.ppage-back:hover{color:var(--text-h)}.ppage-hero{margin-bottom:60px}.ppage-badge{font-size:11px;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--card-accent);margin-bottom:16px;display:inline-block}.ppage-title{color:var(--text-h);letter-spacing:-.03em;margin-bottom:20px;font-size:clamp(40px,7vw,64px);font-weight:700;line-height:1.05}.ppage-tagline{color:var(--text);max-width:600px;font-size:17px;line-height:1.7}.ppage-section{margin-bottom:52px}.ppage-section-label{font-size:11px;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:10px}.ppage-body{color:var(--text);font-size:15px;line-height:1.8}.ppage-features{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ppage-feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;gap:14px;padding:18px 20px;transition:border-color .2s;display:flex}.ppage-feature-card:hover{border-color:color-mix(in srgb, var(--card-accent) 30%, transparent)}.ppage-feature-num{font-size:11px;font-family:var(--font-mono);color:var(--card-accent);opacity:.7;flex-shrink:0;padding-top:2px}.ppage-feature-title{color:var(--text-h);margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.3}.ppage-feature-link{align-items:center;gap:5px;text-decoration:none;transition:color .2s;display:inline-flex}.ppage-feature-link:hover{color:var(--card-accent)}.ppage-feature-desc{color:var(--text);font-size:13px;line-height:1.65}.ppage-tags{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.ppage-tag{font-size:12px;font-family:var(--font-mono);border:1px solid color-mix(in srgb, var(--card-accent) 35%, transparent);color:var(--text);background:color-mix(in srgb, var(--card-accent) 6%, transparent);border-radius:40px;padding:5px 12px}.ppage-role-title{color:var(--text-h);margin-bottom:12px;font-size:14px;font-weight:600}.ppage-bullets{flex-direction:column;gap:8px;list-style:none;display:flex}.ppage-bullets li{color:var(--text);padding-left:18px;font-size:14px;line-height:1.6;position:relative}.ppage-bullets li:before{content:"";background:var(--card-accent);opacity:.7;width:5px;height:1px;position:absolute;top:10px;left:0}.ppage-results{flex-direction:column;gap:10px;list-style:none;display:flex}.ppage-result-item{color:var(--text);align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;display:flex}.ppage-result-icon{background:color-mix(in srgb, var(--card-accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--card-accent) 30%, transparent);width:22px;height:22px;color:var(--card-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.ppage-links{flex-wrap:wrap;gap:12px;display:flex}.ppage-link-btn{border:1px solid var(--border-hover);color:var(--text);background:var(--bg-card);border-radius:8px;align-items:center;gap:7px;padding:10px 22px;font-size:14px;font-weight:500;text-decoration:none;transition:transform .2s,opacity .2s,background .2s;display:inline-flex}.ppage-link-btn:hover{border-color:var(--card-accent);color:var(--text-h);transform:translateY(-2px)}.ppage-link-btn.primary{background:var(--card-accent);border-color:var(--card-accent);color:#050507}.ppage-link-btn.primary:hover{opacity:.88;color:#050507}.ppage-coming-soon{text-align:center;padding-top:80px}.ppage-coming-msg{color:var(--text-muted);margin-top:20px;font-size:16px}.ppage-notfound{min-height:100vh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}@media (width<=600px){.ppage{padding:80px 1.25rem 60px}.ppage-features{grid-template-columns:1fr}.ppage-back{margin-bottom:40px}}.guestbook-page{position:fixed;inset:0;overflow:hidden}.gb-canvas{position:absolute;inset:0}.gb-canvas canvas{cursor:grab;touch-action:none;display:block}.gb-canvas canvas:active{cursor:grabbing}.gb-head{pointer-events:none;position:absolute;top:96px;left:clamp(20px,5vw,64px)}.gb-head h1{color:#fff;margin:0 0 6px;font-size:clamp(1.8rem,4vw,2.6rem)}.gb-head p{color:#ffffff8c;margin:0;font-size:.95rem}.gb-load-error{color:#ffffffb3;background:#140c0cb3;border:1px solid #ff787840;border-radius:10px;padding:10px 14px;font-size:.85rem;position:absolute;top:96px;right:clamp(20px,5vw,64px)}.gb-load-error button{color:#9db9ff;cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.gb-form,.gb-card{-webkit-backdrop-filter:blur(14px);color:#fff;background:#0a0e1ad1;border:1px solid #ffffff17;border-radius:16px;width:min(340px,100vw - 40px);padding:22px;position:absolute;top:50%;right:clamp(20px,4vw,56px);transform:translateY(-50%)}.gb-form h2{margin:0 0 2px;font-size:1.1rem}.gb-coords{color:#9db9ffcc;font-variant-numeric:tabular-nums;margin:0 0 14px;font-size:.78rem}.gb-form label{color:#fff9;margin-bottom:12px;font-size:.8rem;display:block}.gb-form input[type=text],.gb-form input:not([type]),.gb-form textarea{color:#fff;width:100%;font:inherit;resize:none;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:9px;margin-top:5px;padding:9px 11px;font-size:.9rem;display:block}.gb-form input:focus,.gb-form textarea:focus{border-color:#9db9ff99;outline:none}.gb-emoji{border:none;margin:0 0 12px;padding:0}.gb-emoji legend{color:#fff9;margin-bottom:6px;padding:0;font-size:.8rem}.gb-emoji-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.gb-emoji-item input{opacity:0;pointer-events:none;position:absolute}.gb-emoji-item span{cursor:pointer;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:4px 0;font-size:1.05rem;display:flex}.gb-emoji-item input:checked+span{background:#9db9ff2e;border-color:#9db9ff8c}.gb-hp{width:1px;height:1px;position:absolute;left:-9999px}.gb-error{color:#ff9d9d;margin:0 0 10px;font-size:.82rem}.gb-actions{justify-content:flex-end;gap:8px;display:flex}.gb-btn,.gb-btn-ghost{font:inherit;cursor:pointer;border-radius:10px;padding:9px 18px;font-size:.88rem}.gb-btn{color:#0a0e1a;background:#9db9ff;border:none;font-weight:600}.gb-btn:disabled{opacity:.6;cursor:default}.gb-btn-ghost{color:#ffffffb3;background:0 0;border:1px solid #ffffff2e}.gb-card-close{color:#ffffff80;cursor:pointer;background:0 0;border:none;font-size:1.3rem;line-height:1;position:absolute;top:10px;right:12px}.gb-card-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.gb-card-emoji{font-size:1.3rem}.gb-card-head time{color:#fff6;margin-left:auto;font-size:.75rem}.gb-card-msg{color:#ffffffd9;overflow-wrap:break-word;margin:0;font-size:.95rem;line-height:1.55}.gb-toast{color:#cdddff;background:#0a0e1ae6;border:1px solid #9db9ff66;border-radius:12px;padding:12px 22px;font-size:.9rem;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}@media (width<=640px){.gb-form,.gb-card{width:100%;max-height:60vh;padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;inset:auto 0 0;overflow-y:auto;transform:none}.gb-form:before,.gb-card:before{content:"";background:#fff3;border-radius:2px;width:40px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.gb-form input[type=text],.gb-form input:not([type]),.gb-form textarea{font-size:1rem}.gb-head{top:84px}.gb-emoji-grid{grid-template-columns:repeat(8,1fr)}}.mode-badge{z-index:2100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.06em;color:#fff;background:#0c0e16d9;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:8px;padding:6px 10px 6px 12px;font-size:.75rem;display:flex;position:fixed;top:76px;right:16px}.mode-badge-dot{background:var(--mode-color,#7aa2ff);border-radius:50%;width:7px;height:7px}.mode-badge-exit{color:#fff;cursor:pointer;background:#ffffff1a;border:0;border-radius:50%;width:20px;height:20px;font-size:.7rem;line-height:1}
