.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* The only WebGL canvas moves independently while its hero stage keeps layout. */
#mascot-canvas.mascot-flight{position:fixed;inset:auto;left:0;top:0;z-index:35;display:block;opacity:0;pointer-events:none;transform-origin:0 0;transition:none;will-change:transform}
#mascot-canvas.mascot-flight.is-ready{opacity:1}
.hero-art.mascot{width:114%;margin-left:-7%;margin-top:-35px;overflow:visible;isolation:isolate;perspective:none}
.mascot-stage{position:relative;width:100%;aspect-ratio:1;isolation:isolate;overflow:clip;touch-action:pan-y}
.mascot-stage:before{content:'';position:absolute;inset:16%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#81d7ad12,transparent 67%);pointer-events:none}
.mascot #mascot-canvas{display:block;position:absolute;width:100%;height:100%;inset:0;opacity:0;outline:none}
.mascot.is-ready #mascot-canvas{opacity:1}.mascot.is-ready .mascot-fallback{visibility:hidden}
.hero-art.mascot .mascot-fallback{width:100%;height:100%;object-fit:contain;pointer-events:none;transform:rotate(-7deg);transition:none}
.mascot .art-coordinate{top:5%;right:10%;pointer-events:none;font-size:.57rem;letter-spacing:.18em}
.mascot-actions{display:flex;justify-content:center;align-items:center;gap:16px;position:relative;margin-top:-25px;padding:0 20px 22px;flex-wrap:wrap}
.mascot-actions .text-button{min-height:44px;display:flex;gap:14px;align-items:center;color:var(--ink);font-size:.75rem}
.mascot-actions .text-button>span{font-size:1.5rem;color:var(--accent)}.mascot-actions button:disabled{cursor:default}
.mascot-pause{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:.9rem}
.mascot-discover{font-size:.72rem;min-height:44px;display:inline-flex;align-items:center;color:var(--muted)}.mascot-discover:hover{color:var(--accent)}
.contact-signature .monogram{letter-spacing:-.065em}
.side-dock{position:fixed;right:10px;top:50%;transform:translateY(-50%);width:48px;z-index:42;display:flex;flex-direction:column;align-items:center;gap:7px;padding:6px 2px;border:1px solid var(--line);border-radius:30px;background:var(--surface);box-shadow:0 8px 30px #0001}
.dock-menu-toggle,.dock-mail{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;color:var(--ink);font-size:1.1rem}.dock-menu-toggle:hover,.dock-menu-toggle[aria-expanded=true],.dock-mail:hover{background:var(--soft);color:var(--accent)}.dock-menu-word{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
.side-dock .stage-nav{position:static;transform:none;display:flex;gap:3px;border-block:1px solid var(--line);padding-block:6px;width:44px}
.side-dock .stage-nav a{position:relative;width:44px;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0;gap:0;border-radius:50%}
.side-dock .stage-nav a>span{font-size:.65rem;opacity:1;color:var(--muted);display:block;font-variant-numeric:tabular-nums}.side-dock .stage-nav i{display:none}.side-dock .stage-nav a[aria-current]{background:var(--soft)}.side-dock .stage-nav a[aria-current]>span{color:var(--accent);font-weight:700}
.dock-tooltip{position:absolute;right:52px;top:50%;transform:translate(5px,-50%);font-size:.72rem;font-weight:400;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:10px 14px;border-radius:30px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s}
.side-dock a:hover>.dock-tooltip,.side-dock a:focus-visible>.dock-tooltip{opacity:1;visibility:visible;transform:translate(0,-50%)}
.side-menu-panel{position:absolute;right:60px;top:50%;transform:translateY(-50%);width:300px;max-width:calc(100vw - 78px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;padding:21px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 18px 70px #0003;animation:dock-enter .2s ease-out}
.side-menu-panel[hidden]{display:none}.dock-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px}.dock-panel-head strong{font-size:1rem;font-weight:500;letter-spacing:-.03em}.dock-panel-head button{width:44px;height:44px;font-size:1.5rem;border:1px solid var(--line);border-radius:50%;flex:none}
.dock-section-links{display:flex;flex-direction:column;gap:3px}.dock-section-links a{display:flex;gap:13px;align-items:center;min-height:44px;padding:10px 7px;font-size:.75rem;border-radius:6px;color:var(--muted)}.dock-section-links a>span{flex:1;color:var(--ink)}.dock-section-links a:hover{background:var(--soft);color:var(--accent)}
.dock-label{font-size:.6rem;letter-spacing:.12em;margin:22px 0 10px;color:var(--muted)}.dock-themes{display:flex;flex-direction:column;gap:6px}.dock-themes button{display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid var(--line);border-radius:8px;font-size:.75rem;padding:9px 12px;text-align:left}.dock-themes button[aria-pressed=true]{border-color:var(--accent);background:var(--soft)}.dock-themes i{width:17px;height:17px;border-radius:50%;border:1px solid #8886}.dock-themes i.blue{background:#143256}.dock-themes i.green{background:#9ac8a8}.dock-themes i.orange{background:#f7b878}.dock-contact{display:block;min-height:44px;padding-top:21px;margin-top:10px;border-top:1px solid var(--line);font-size:.75rem;color:var(--accent);overflow-wrap:anywhere}
.catalog-panel{right:74px;width:min(740px,52vw)}
@keyframes dock-enter{from{opacity:0;translate:12px 0}to{opacity:1;translate:0 0}}
@media(max-width:1100px){.catalog-panel{width:62vw}.hero-art.mascot{width:112%;margin-left:-8%}.mascot-actions{gap:8px;padding-inline:5px}.mascot-actions .text-button{font-size:.7rem}.mascot-discover{font-size:.65rem}}
@media(max-width:760px){body{padding-right:50px}.side-dock{right:4px;width:44px;padding:4px 0}.side-dock .stage-nav{display:none}.dock-menu-toggle,.dock-mail{width:42px;min-width:42px}.side-menu-panel{right:49px;max-width:calc(100vw - 65px);padding:16px;width:300px}.dock-tooltip{display:none}.hero-art.mascot{width:116%;max-width:480px;margin:-5px -8% 0}.mascot .art-coordinate{right:12%;top:3%;font-size:.5rem}.mascot-actions{margin-top:-12px;padding:0 12% 14px;gap:8px}.mascot-actions .text-button{font-size:.68rem}.mascot-discover{font-size:.65rem}.catalog-panel{right:54px;left:8px;width:auto}.cookie-banner{right:8px;left:8px;transform:none;width:auto}.chrome-email{font-size:clamp(1.3rem,5.8vw,2.4rem)}.hero-copy h1{font-size:clamp(2.3rem,9.5vw,4rem)}.mascot-pause{width:40px;height:40px;min-height:40px}}
@media(max-width:380px){.brand-name{display:none}.header{gap:8px}.theme-picker{padding-left:6px}.theme-dot{width:30px}.hero-copy h1{font-size:2.15rem}.mascot-actions{padding-inline:8%}.mascot-discover{width:100%;justify-content:center;min-height:32px}.chrome-email{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){.side-menu-panel{animation:none}.dock-tooltip{transition:none}}
