/* WEB 3.0.2 — smoked glass, quiet edge reflections. */
:root{color-scheme:dark}
.orb,.bg-orb{pointer-events:none!important;filter:blur(1px)!important;opacity:.18!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:0!important;box-shadow:none!important;background:none!important;animation:quietGlassDrift 32s ease-in-out infinite alternate!important;isolation:isolate}
.orb::after,.bg-orb::after{content:none!important;background:none!important}
.orb::before,.bg-orb::before{content:"";position:absolute;inset:8%;border-radius:42% 58% 36% 64% / 60% 37% 63% 40%;border:24px solid rgba(141,171,161,.12);background:transparent;box-shadow:inset 3px 4px 5px rgba(233,255,247,.72),inset -9px -12px 16px rgba(2,5,5,.95),inset -2px -3px 3px rgba(47,219,145,.55),3px 4px 3px rgba(233,255,247,.55),-4px -3px 7px rgba(255,81,69,.32),14px 18px 24px rgba(0,0,0,.6);transform:rotate(-24deg) scaleY(.8)}
.orb.red,.bg-orb.o1{left:-260px!important;top:46%!important;width:480px!important;height:520px!important}
.orb.green,.bg-orb.o2{right:-230px!important;top:-150px!important;width:490px!important;height:500px!important;animation-delay:-12s!important}
.bg-orb.o3{display:none}
@keyframes quietGlassDrift{from{transform:translate3d(0,0,0) rotate(-4deg)}to{transform:translate3d(12px,16px,0) rotate(4deg)}}
body::before{animation-duration:36s!important;opacity:.45}
body::after{opacity:.06}
/* Quiet surfaces keep the content legible over the decorative forms. */
.panel,.card,.glass,.form-card,.auth-gate-card{background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 32%),rgba(9,13,14,.91)!important;border-color:rgba(221,244,234,.16)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.17),inset 0 -1px 0 rgba(255,255,255,.025),0 22px 65px rgba(0,0,0,.35)!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important}
.panel::before,.card::before,.glass::before,.form-card::before{opacity:.25}
nav,#titlebar{background:linear-gradient(115deg,rgba(255,255,255,.045),transparent 40%),rgba(6,10,11,.9)!important;border-color:rgba(226,247,238,.19)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 35px rgba(0,0,0,.25)!important}
.form-card{border-radius:30px}
.card:hover{transform:translateY(-2px)}
.hero::before{background:radial-gradient(ellipse at 36% 12%,rgba(238,255,250,.23),transparent 32%),radial-gradient(ellipse at 84% 73%,rgba(47,219,145,.16),transparent 45%),linear-gradient(150deg,#1c2424,#050909 52%,#202222)!important;border-radius:38% 62% 59% 41% / 52% 35% 65% 48%;box-shadow:inset 3px 5px 5px rgba(240,255,250,.45),inset -4px -6px 6px rgba(240,255,250,.15),inset 22px 10px 45px rgba(47,219,145,.07),inset -28px -18px 50px rgba(255,81,69,.08),0 32px 60px rgba(0,0,0,.4)!important;animation:quietGlassDrift 32s ease-in-out infinite alternate!important}
/* The lens is a separate decorative layer: it never changes button geometry. */
.tab-bar{position:relative;isolation:isolate;gap:8px;padding-top:15px;padding-bottom:15px;background:rgba(3,7,8,.68);overflow:visible}
.tab-btn{position:relative;z-index:1;isolation:isolate;min-height:58px;height:auto;border-radius:20px;padding:12px 8px;color:#a0aaa6;transition:color .2s,background .2s;overflow-wrap:anywhere}
.tab-btn.active{background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(7,17,15,.8));border-color:rgba(222,255,243,.35);box-shadow:inset 0 2px 3px rgba(255,255,255,.25),inset 0 -2px 3px rgba(255,255,255,.13);color:#f0fff8}
.tab-bar.has-liquid-lens .tab-btn.active{background:transparent;border-color:transparent;box-shadow:none}
.tab-btn:hover{background:rgba(255,255,255,.035);border-color:transparent;color:#fff}
.tab-btn .tab-icon,.tab-btn.active .tab-icon{background:transparent;border:0;box-shadow:none;transform:none;transition:filter .25s}
.tab-btn.active .tab-icon{filter:drop-shadow(0 0 5px rgba(118,244,190,.4))}
.tab-btn:focus-visible{outline:2px solid #7bf0ba;outline-offset:-3px}
.liquid-tab-lens{position:absolute;left:0;top:0;z-index:0;pointer-events:none;border:1px solid rgba(223,255,242,.42);border-radius:21px;background:radial-gradient(ellipse at 50% -18%,rgba(235,255,248,.38),transparent 51%),radial-gradient(ellipse at 50% 119%,rgba(47,219,145,.18),transparent 51%),linear-gradient(120deg,rgba(255,255,255,.095),rgba(6,13,12,.88) 46%,rgba(255,255,255,.065));box-shadow:inset 2px 2px 3px rgba(255,255,255,.32),inset -2px -2px 3px rgba(225,255,243,.19),inset 7px 0 12px rgba(255,255,255,.035),0 6px 14px rgba(0,0,0,.4),0 0 18px rgba(47,219,145,.04);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);transition:transform .42s cubic-bezier(.22,.8,.24,1),width .3s,height .3s;visibility:hidden}
.has-liquid-lens .liquid-tab-lens{visibility:visible}
.liquid-tab-lens::before,.liquid-tab-lens::after{content:"";position:absolute;left:22%;right:22%;height:3px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(235,255,248,.65),transparent);filter:blur(.5px)}
.liquid-tab-lens::before{top:2px}.liquid-tab-lens::after{bottom:2px;opacity:.5}
@media(max-width:620px){.tab-btn{min-height:58px}.orb,.bg-orb{opacity:.09!important}.hero::before{opacity:.5}.form-card{padding:26px 20px}}
@media(prefers-reduced-motion:reduce){.orb,.bg-orb,.hero::before,body::before{animation:none!important}.liquid-tab-lens,.tab-btn,.card{transition:none!important}}
@media(prefers-reduced-transparency:reduce){.panel,.card,.glass,.form-card,nav,#titlebar{background:#0b1111!important;backdrop-filter:none!important}.orb,.bg-orb{display:none}}

/* 3.0.3: one continuous canvas and a single brand asset. */
html{height:auto!important;min-height:100%;background:#080b0d!important}
body{height:auto!important;min-height:100vh;background:#080b0d!important;isolation:isolate}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.65;background:radial-gradient(ellipse at 16% 18%,rgba(255,81,69,.09),transparent 52%),radial-gradient(ellipse at 82% 70%,rgba(47,219,145,.075),transparent 55%);animation:none!important}
.hero::before{background:url('/assets/favicon.svg') center/43% no-repeat,radial-gradient(ellipse at 36% 12%,rgba(238,255,250,.23),transparent 32%),radial-gradient(ellipse at 84% 73%,rgba(47,219,145,.16),transparent 45%),linear-gradient(150deg,#1c2424,#050909 52%,#202222)!important}
.orb,.bg-orb{display:none!important}
.sound-atmosphere{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;contain:strict}
.sound-form{position:absolute;width:clamp(95px,15vw,225px);height:clamp(95px,15vw,225px);opacity:.32;filter:drop-shadow(0 12px 18px rgba(0,0,0,.4));animation:soundFloat 13s ease-in-out infinite alternate}
.sound-form:nth-child(1){left:4%;top:16%}.sound-form:nth-child(2){left:71%;top:6%;animation-delay:-5s;animation-duration:17s}.sound-form:nth-child(3){left:42%;top:65%;width:140px;height:140px;animation-delay:-8s;animation-duration:15s}.sound-form:nth-child(4){left:84%;top:72%;width:100px;height:100px;animation-delay:-3s;animation-duration:12s}
.sound-form svg{width:100%;height:100%;overflow:visible}
.sound-form .sound-wave{transform-origin:center;animation:waveBreathe 2.8s ease-in-out infinite alternate;transform-box:fill-box}
.sound-form .sound-wave:nth-child(2n){animation-delay:-1.4s}
@keyframes soundFloat{0%{transform:translate3d(-20px,-15px,0) rotate(-14deg)}50%{transform:translate3d(30px,25px,0) rotate(4deg)}100%{transform:translate3d(-6px,60px,0) rotate(17deg)}}
@keyframes waveBreathe{from{transform:scaleY(.65);opacity:.65}to{transform:scaleY(1.12);opacity:1}}
.auth-card{background:rgba(9,14,14,.97)!important}
@media(max-width:620px){.sound-form{opacity:.22}.sound-form:nth-child(4){display:none}}
@media(prefers-reduced-motion:reduce){.sound-form,.sound-form .sound-wave{animation:none!important}}
@media(prefers-reduced-transparency:reduce){.sound-atmosphere{display:none}}

/* 3.0.4: translucent surfaces with visible ambient shapes. */
.panel,.card,.glass,.form-card,.auth-card,.auth-gate-card{background:linear-gradient(125deg,rgba(237,255,247,.055),transparent 40%),rgba(9,15,15,.57)!important;backdrop-filter:blur(9px) saturate(130%)!important;-webkit-backdrop-filter:blur(9px) saturate(130%)!important}
nav,#titlebar,.tab-bar{background:rgba(8,14,14,.55)!important;backdrop-filter:blur(9px) saturate(130%)!important;-webkit-backdrop-filter:blur(9px) saturate(130%)!important}
.tab-panel,.rack>.module.tab-panel:last-child{background:transparent!important}
.sound-form{opacity:.42}
.sound-form:nth-child(5){left:25%;top:38%;width:125px;height:125px;animation-delay:-7s;animation-duration:14s}
.sound-form:nth-child(6){left:60%;top:43%;width:165px;height:165px;animation-delay:-2s;animation-duration:16s}
.sound-form:nth-child(7){left:10%;top:79%;width:95px;height:95px;animation-delay:-9s;animation-duration:12s}
.sound-form:nth-child(8){left:48%;top:9%;width:88px;height:88px;animation-delay:-4s;animation-duration:11s}
.sound-form:nth-child(9){left:77%;top:88%;width:125px;height:125px;animation-delay:-6s;animation-duration:15s}
.hero::before{--bubble-x:0px;animation:heroGlassSwim 7s ease-in-out infinite alternate!important}
@keyframes heroGlassSwim{from{transform:translate(var(--bubble-x),-10px) rotate(-4deg) scale(.98);border-radius:38% 62% 59% 41% / 52% 35% 65% 48%}to{transform:translate(var(--bubble-x),14px) rotate(5deg) scale(1.035);border-radius:54% 46% 43% 57% / 39% 52% 48% 61%}}
@media(max-width:900px){.hero::before{--bubble-x:-50%}}
@media(max-width:620px){.sound-form{opacity:.3}.sound-form:nth-child(n+7){display:none}}
@media(prefers-reduced-motion:reduce){.hero::before{animation:none!important}}
@media(prefers-reduced-transparency:reduce){.panel,.card,.glass,.form-card,.auth-card,nav,#titlebar,.tab-bar{background:#0b1111!important;backdrop-filter:none!important}}

.registration-action[hidden],.signed-in .registration-action{display:none!important}
nav{height:auto;min-height:72px;gap:12px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.navlinks{flex-wrap:wrap;justify-content:flex-end}
.field input[type=file]{width:100%;min-width:0;padding:12px;color:#e4f3ec;background:rgba(8,18,15,.6);border:1px solid rgba(210,250,229,.18);border-radius:12px}
.field input[type=file]::file-selector-button{padding:9px 12px;margin-right:12px;border-radius:9px;border:1px solid rgba(117,242,183,.3);background:#183e30;color:#e7fff2;cursor:pointer}
.file-selection{color:#a7c5b6;font-size:12px;overflow-wrap:anywhere;white-space:pre-line}
.updates-page{max-width:900px}
.update-entry{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.update-entry:last-child{border-bottom:0}
.update-entry-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.update-entry-head time{color:#89968f;font:600 11px var(--font-mono)}
.update-entry h2{margin:12px 0 6px;color:#effff6}.update-entry p{color:#a1afa8;line-height:1.6}
.update-change-list{display:grid;gap:9px;margin-top:16px}.update-change-list div{display:grid;gap:3px;padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.025)}.update-change-list strong{color:#bdf4d7}.update-change-list span{color:#909e97;font-size:13px;line-height:1.45}
.update-change-list h3{margin:10px 0 0;color:#d9e8e0;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.update-takeaway{display:grid;gap:6px;margin-top:18px;padding:14px 16px;border:1px solid rgba(49,220,145,.28);border-radius:12px;background:rgba(49,220,145,.07)}.update-takeaway strong{color:#42e89b;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.update-takeaway span{color:#d4e5dc;line-height:1.5}
.faq-page{max-width:900px}.faq-list{display:grid;gap:10px;margin-top:22px}.faq-list details{padding:16px 18px;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:rgba(255,255,255,.028)}.faq-list summary{color:#eafff3;font-weight:700;cursor:pointer}.faq-list p{color:#a0aea7;line-height:1.6;margin:12px 0 0}
