@font-face{
  font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('/fonts/dm-sans-468d56b6b25b.woff2') format('woff2');
}
@font-face{
  font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('/fonts/manrope-e310b55a7fd9.woff2') format('woff2');
}
:root{
  color-scheme:dark;
  --tv-night:#060a10;--tv-text:#e9eee4;--tv-sage:#d8e9bd;
  --tv-muted:#9aada5;--tv-amber:#e4b58b;
}
*,*::before,*::after{box-sizing:border-box}
html{min-width:280px;min-height:100%;background:var(--tv-night)}
body{margin:0;background:var(--tv-night);color:var(--tv-text);font:14px 'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
main{display:block;min-width:0}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}button:disabled{cursor:default}
input,select,textarea{min-height:44px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--tv-sage);outline-offset:4px}
button:disabled{opacity:.45}
img{display:block}
a{color:inherit}
[hidden]{display:none!important}
::selection{background:#c4d99a36;color:#f0f4e3}

/* The shared controller owns the complete HUD. No workspace navigation here. */
body.public-tittyverse #galaxy{margin:0;border-radius:0;min-height:100svh}
body.public-tittyverse #galaxy .gx-portal{min-height:100svh}
body.public-tittyverse:not(.tittyverse-open){overflow:auto}
body.public-tittyverse:not(.tittyverse-open) #galaxy{overflow:hidden}
body.public-tittyverse:not(.tittyverse-open) .gx-portal-copy{max-width:620px}
body.public-tittyverse:not(.tittyverse-open) .gx-portal-art{right:clamp(-160px,3vw,80px)}

/* Public visitors land in the universe itself; the HUD floats over its canvas. */
body.public-tittyverse.tittyverse-open #galaxy .galaxy-shell{isolation:isolate}
body.public-tittyverse.tittyverse-open .gx-fullbar{grid-row:1;position:relative;z-index:10}
body.public-tittyverse.tittyverse-open .gx-tools{grid-row:2;position:relative;z-index:10}
body.public-tittyverse.tittyverse-open .gx-pathbar{grid-row:3;position:relative;z-index:9}
body.public-tittyverse.tittyverse-open .gx-bottom{grid-row:5;position:relative;z-index:5;align-self:end;pointer-events:none}
body.public-tittyverse.tittyverse-open .gx-explore{position:absolute;inset:0;display:block;min-height:0;overflow:visible;z-index:0;pointer-events:none}
body.public-tittyverse.tittyverse-open .gx-viewport{position:absolute;inset:0;width:100%;height:100%;min-height:0;pointer-events:auto}
body.public-tittyverse.tittyverse-open .gx-travel{top:50%;max-width:min(320px,calc(100% - 32px))}
body.public-tittyverse.tittyverse-open .gx-inspector{position:absolute;top:172px;right:22px;bottom:42px;width:260px;z-index:4;pointer-events:auto}
body.public-tittyverse.tittyverse-open .gx-map-title{top:174px;left:24px}
/* Empty notices share the canvas but must sit below the floating controls. */
body.public-tittyverse.tittyverse-open .gx-empty{top:236px;left:24px;width:min(360px,calc(100% - 328px));font-size:13px;line-height:1.65;pointer-events:none}
body.public-tittyverse.tittyverse-open .gx-empty small{display:inline-block;margin-top:5px;font-size:11px;line-height:1.6}
body.public-tittyverse.tittyverse-open .gx-back{top:174px;right:300px}
body.public-tittyverse.tittyverse-open .gx-zoom{left:24px;bottom:54px}
body.public-tittyverse.tittyverse-open .gx-map-note{left:24px;bottom:22px}
@media(max-width:760px){
 body.public-tittyverse.tittyverse-open .gx-inspector{top:auto;right:12px;bottom:72px;width:150px;max-height:min(180px,calc(100% - 240px))}
 body.public-tittyverse.tittyverse-open .gx-map-title{top:188px;left:14px}
 body.public-tittyverse.tittyverse-open .gx-empty{top:250px;left:14px;width:min(320px,calc(100% - 28px))}
 body.public-tittyverse.tittyverse-open .gx-back{top:188px;right:12px}
 body.public-tittyverse.tittyverse-open .gx-zoom{left:14px;bottom:55px}
 body.public-tittyverse.tittyverse-open .gx-map-note{left:14px;bottom:24px}
}
@media(max-height:480px){
 body.public-tittyverse.tittyverse-open .gx-empty{top:232px;font-size:12px;line-height:20px;max-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.public-tittyverse.tittyverse-open .gx-empty small{display:none}
 body.public-tittyverse.tittyverse-open .gx-viewport:has(.gx-empty:not([hidden])) .gx-zoom{bottom:18px}
 body.public-tittyverse.tittyverse-open .gx-viewport:has(.gx-empty:not([hidden])) .gx-map-note{display:none}
}
@media(max-width:760px) and (max-height:480px){
 body.public-tittyverse.tittyverse-open .gx-empty{top:236px;width:min(320px,calc(100% - 198px))}
}

.tv-boot,.tv-noscript{
  min-height:100svh;display:grid;place-items:center;position:relative;isolation:isolate;
  padding:40px 24px;overflow:hidden;text-align:center;
  background:radial-gradient(ellipse at 50% 42%,#2c49402b,transparent 58%),radial-gradient(ellipse at 82% 88%,#93633a0d,transparent 45%),var(--tv-night);
}
.tv-boot::before{
  content:'';position:absolute;z-index:-1;left:50%;top:46%;width:min(620px,92vw);aspect-ratio:1;
  border:1px solid #cbd9b30b;border-radius:50%;transform:translate(-50%,-50%) scaleY(.62) rotate(-24deg);pointer-events:none;
}
.tv-boot-content{max-width:520px;animation:tv-boot-reveal .5s ease both}
.tv-orbit-mark{display:block;width:70px;height:70px;margin:0 auto 27px;color:var(--tv-sage)}
.tv-orbit-mark ellipse{stroke-width:1;opacity:.42}.tv-orbit-satellite{fill:var(--tv-amber)}
.tv-wordmark{margin:0 0 24px;color:#a6b99c;font-size:10px;font-weight:500;letter-spacing:3.6px}
.tv-boot h1{margin:0;color:#edf2e7;font:500 clamp(38px,5.5vw,68px)/1.08 'Manrope',system-ui,sans-serif;letter-spacing:-.065em}
.tv-boot h1 span{color:var(--tv-sage)}
.tv-boot-status{display:flex;align-items:center;justify-content:center;gap:8px;margin:35px 0 0;color:#c4d1c0;font-size:12px;line-height:1.8}
.tv-status-light{flex:none;width:5px;height:5px;border-radius:50%;background:var(--tv-sage);box-shadow:0 0 10px #bad68c29;animation:tv-status-breathe 1.8s ease-in-out infinite}
.tv-boot-hint{margin:12px 0 0;color:#869b92;font-size:11px;line-height:1.8}
.tv-retry{margin-top:24px;border:1px solid #d8e9bd44;border-radius:10px;padding:12px 20px;background:#c2d69c12;color:#deebc8;font-size:12px;transition:background .18s ease,border-color .18s ease}
.tv-retry:hover{background:#c7dba020;border-color:#d8e9bd77}
.tv-boot[data-state=error] .tv-status-light{background:var(--tv-amber);animation:none;box-shadow:none}
.tv-boot[data-state=error] .tv-boot-status{color:#e5c3a2}
.tv-noscript{display:none}.tv-noscript>div{max-width:420px}
.tv-noscript h1{font:500 38px/1.15 'Manrope',system-ui,sans-serif;letter-spacing:-1.8px;margin:0 0 18px}
.tv-noscript p:not(.tv-wordmark){font-size:14px;line-height:1.8;color:var(--tv-muted)}
.tv-noscript a{display:inline-block;margin-top:14px;color:var(--tv-sage);font-size:12px;text-decoration-color:#d8e9bd55;text-underline-offset:5px}
@keyframes tv-boot-reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes tv-status-breathe{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:760px){
  body.public-tittyverse:not(.tittyverse-open) #galaxy .gx-portal{padding:42px 24px;min-height:100svh}
  body.public-tittyverse:not(.tittyverse-open) .gx-portal-art{right:-210px}
  .tv-orbit-mark{width:60px;height:60px;margin-bottom:23px}
  .tv-wordmark{font-size:9px;letter-spacing:3px;margin-bottom:21px}
  .tv-boot-status{margin-top:29px}
}
@media(max-height:480px){
  .tv-boot,.tv-noscript{padding:25px 20px}
  .tv-orbit-mark{width:44px;height:44px;margin-bottom:14px}
  .tv-wordmark{margin-bottom:13px;font-size:8px}
  .tv-boot h1{font-size:38px}.tv-boot-status{margin-top:19px}.tv-boot-hint{margin-top:7px}
}
@media(prefers-reduced-motion:reduce){
  .tv-boot-content,.tv-status-light{animation:none}.tv-retry{transition:none}
}
