/* A short, optional welcome sequence, shown only after the vault is unlocked. */
.jarvis-opening{--opening-blue:#37baff;--opening-light:#b5f4ff;position:fixed;inset:0;z-index:1000;isolation:isolate;display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh;padding:35px 42px;color:#94c9df;background:#020916;font-family:var(--mono,ui-monospace,SFMono-Regular,Consolas,monospace);opacity:1;overflow:hidden;overscroll-behavior:contain;transition:opacity .38s ease}
.jarvis-opening:before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 50% 49%,#0a416a45 0,transparent 48%),radial-gradient(ellipse at 50% 90%,#08234635,transparent 65%)}
.jarvis-opening:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#5cc9ff05 1px,transparent 1px),linear-gradient(90deg,#5cc9ff05 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse at center,#0008,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#0008,transparent 75%)}
.jarvis-opening-active{overflow:hidden!important}
.opening-topline,.opening-bottomline{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:2}
.opening-wordmark{font-size:10px;letter-spacing:3px;color:#79a7bc;font-weight:500;display:flex;align-items:center;gap:11px}
.opening-wordmark svg{width:19px;height:19px;color:#62d1f5}
.opening-session{display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:2px;color:#608da1}
.opening-session i{width:4px;height:4px;border-radius:50%;background:#8ae2e6;box-shadow:0 0 10px #6edfe755}
.opening-center{position:relative;display:grid;place-items:center;align-self:center;justify-self:center;width:min(680px,100%);aspect-ratio:1.28;max-height:70vh}
.opening-orbits{position:absolute;width:min(430px,65vh,80vw);aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 0 9px #008dff6b);animation:opening-arrive 1s cubic-bezier(.2,.8,.2,1) both;transition:transform .38s ease,opacity .38s ease}
.opening-orbits:before{content:"";position:absolute;inset:3%;border-radius:50%;background:radial-gradient(circle,transparent 57%,#007aff13 65%,#36c0ff15 67%,transparent 70%);box-shadow:0 0 55px #007bff0a,inset 0 0 55px #007bff08;animation:opening-breathe 2.5s ease-in-out infinite}
.opening-orbits svg{width:100%;height:100%;overflow:visible}
.opening-orbit-faint{fill:none;stroke:#47bdff;stroke-width:.55;opacity:.28}
.opening-orbit-edge{fill:none;stroke:#55d2ff;stroke-width:.8;opacity:.58}
.opening-orbit-ticks{fill:none;stroke:#2996d3;stroke-width:3;stroke-dasharray:.7 9.98;opacity:.3;transform-origin:220px 220px;animation:opening-spin 28s linear infinite}
.opening-orbit-arc{fill:none;stroke:#73e1ff;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:85 125 15 330 45 390;transform-origin:220px 220px;animation:opening-spin 8s linear infinite}
.opening-orbit-inner{fill:none;stroke:#28a6ff;stroke-width:1;stroke-dasharray:320 650;opacity:.75;transform-origin:220px 220px;animation:opening-spin 5s linear infinite reverse}
.opening-orbit-dots{fill:#b8f3ff;transform-origin:220px 220px;animation:opening-spin 11s linear infinite}
.opening-crosshair{fill:none;stroke:#2b88ba;stroke-width:.6;opacity:.5}
.opening-light-trace{position:absolute;left:-7%;right:-7%;top:50%;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,#3bafff00 16%,#6bdfff55 43%,#b8f7ff66 50%,#6bdfff55 57%,#3bafff00 84%,transparent);box-shadow:0 0 22px 1px #29b5ff25}
.opening-copy{position:relative;z-index:1;display:grid;justify-items:center;text-align:center;min-width:0;max-width:100%;transform:translateY(4px);transition:opacity .24s ease,transform .38s ease}
.opening-kicker{font-size:7px;letter-spacing:3.2px;color:#60a2c6;margin:0 0 23px;animation:opening-copy-in .8s .2s both}
.jarvis-opening h2{font-family:var(--mono,ui-monospace,SFMono-Regular,Consolas,monospace);font-size:clamp(27px,3.2vw,49px);font-weight:650;line-height:1.2;letter-spacing:.25em;white-space:nowrap;margin:0;padding-left:.25em;color:#e3fbff;text-shadow:0 0 4px #fff,0 0 10px #66dfff,0 0 24px #00aaff,0 0 50px #006dff99;animation:opening-title-in 1.05s cubic-bezier(.2,.8,.2,1) both}
.opening-status{font-size:8px;letter-spacing:1.7px;line-height:1.7;color:#88bfd8;margin:18px 0 17px;min-height:1.7em;animation:opening-copy-in .8s .4s both}
.opening-progress-group{width:164px;display:flex;align-items:center;gap:12px;animation:opening-copy-in .8s .6s both}
.opening-progress{height:2px;flex:1;background:#247eac30;overflow:hidden}
.opening-progress>i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#147aef,#a6efff);box-shadow:0 0 9px #59d5ff;transform:scaleX(var(--opening-progress,0));transform-origin:left;transition:transform .16s linear}
.opening-progress-number{font-size:7px;line-height:1;letter-spacing:1px;color:#69aed0;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}
.opening-owner{font-size:9px;letter-spacing:1.5px;color:#648fa5;max-width:min(60vw,460px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opening-skip{display:flex;align-items:center;gap:12px;border:1px solid #64baff24;border-radius:4px;background:#1b6aa30b;color:#9ac8dd;font:10px var(--mono,monospace);padding:12px 15px;min-height:42px;letter-spacing:.3px;transition:background .2s,border-color .2s}
.opening-skip svg{width:13px;height:13px;color:#73bfdc}.opening-skip:hover{background:#318bca1a;border-color:#64baff65}.opening-skip:focus-visible{outline:2px solid #8edfff;outline-offset:4px}
.jarvis-opening.is-leaving{opacity:0;pointer-events:none}.jarvis-opening.is-leaving .opening-orbits{animation:none;transform:scale(1.18);opacity:.2}.jarvis-opening.is-leaving .opening-copy{opacity:0;transform:translateY(-8px)}
.opening-settings{margin:24px 0;padding:18px;border:1px solid #70d1ee2b;min-width:0;background:linear-gradient(135deg,#57b9e908,transparent);border-radius:4px}
.opening-settings legend{font:10px var(--mono,monospace);letter-spacing:.7px;padding:0 8px;color:#92cbdc}.opening-settings .appearance-option{margin-top:0!important;align-items:flex-start;line-height:1.65}.opening-settings .appearance-option input{margin-top:2px}.opening-settings .settings-copy{line-height:1.8;font-size:10px;margin:10px 0 14px!important}.opening-settings .secondary{display:inline-flex;align-items:center;gap:8px;font:10px var(--mono,monospace);padding:10px 12px}.opening-settings .secondary svg{width:13px;height:13px}.opening-settings .opening-choice-status{margin-bottom:0!important;color:#6095aa;font-size:9px}
@keyframes opening-spin{to{transform:rotate(360deg)}}
@keyframes opening-arrive{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
@keyframes opening-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes opening-copy-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes opening-title-in{from{opacity:0;filter:blur(7px);letter-spacing:.4em;transform:scale(.94)}to{opacity:1;filter:blur(0);letter-spacing:.25em;transform:scale(1)}}
@media(max-width:760px){.jarvis-opening{padding:24px 22px}.opening-wordmark{font-size:8px;letter-spacing:1.8px;gap:8px}.opening-session{font-size:7px;letter-spacing:1px;gap:6px}.opening-wordmark svg{width:17px;height:17px}.opening-center{width:100%;aspect-ratio:1;max-height:68vh}.opening-orbits{width:min(340px,84vw,64vh)}.jarvis-opening h2{font-size:clamp(24px,7.5vw,37px);letter-spacing:.19em;padding-left:.19em}.opening-kicker{font-size:6px;letter-spacing:2px;margin-bottom:20px}.opening-status{font-size:7px;letter-spacing:.8px}.opening-owner{font-size:7px;letter-spacing:.6px;max-width:45vw}.opening-skip{font-size:9px;padding:10px;gap:8px}.opening-progress-group{width:138px}.opening-settings{padding:14px}.opening-topline,.opening-bottomline{gap:10px}}
@media(max-height:500px){.jarvis-opening{padding:16px 24px}.opening-center{max-height:70vh;aspect-ratio:1.8}.opening-orbits{width:min(310px,78vh)}.opening-kicker{margin-bottom:12px}.opening-status{margin-top:12px;margin-bottom:10px}.jarvis-opening h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.jarvis-opening,.jarvis-opening *,.jarvis-opening:before,.jarvis-opening:after{animation:none!important;transition:none!important}.jarvis-opening h2{filter:none;letter-spacing:.25em}.opening-orbits{opacity:1;transform:none}.opening-kicker,.opening-status,.opening-progress-group{opacity:1;transform:none}}
