/* Welcome owns the scrollable empty state. Loaded scenes keep their workspace. */
body:has(#load.invite:not(.hidden)):not(.scan-workspace) #topbar,
body:has(#load.invite:not(.hidden)):not(.scan-workspace) #rail,
body:has(#load.invite:not(.hidden)):not(.scan-workspace) #rightstrip,
body:has(#load.invite:not(.hidden)):not(.scan-workspace) #viewcube,
body:has(#load.invite:not(.hidden)):not(.scan-workspace) #hint { visibility:hidden; }
body:has(#load.invite:not(.hidden)):not(.scan-workspace) { --topbar:0px; }
body:has(#load.invite:not(.hidden)) #load.invite {
  position:absolute; inset:var(--masthead) 0 0; transform:none; width:auto;
  display:block; overflow:auto; overscroll-behavior:contain; touch-action:pan-y;
  background:var(--bg); color:var(--ink); padding:0; backdrop-filter:none; z-index:9; visibility:visible;
}
#load.invite [hidden] { display:none !important; }
.welcome-page { width:min(1200px,100%); margin:auto; padding:48px 48px 0; }
.welcome-kicker { display:flex; align-items:center; gap:10px; font:11px var(--f-mono); color:var(--ink-2); letter-spacing:.09em; text-transform:uppercase; margin-bottom:30px; }
.welcome-kicker::before { content:''; width:7px; height:7px; background:var(--accent); }
.welcome-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); align-items:start; gap:40px; }
.welcome-title { font:400 clamp(40px,4.2vw,58px)/1.04 var(--f-sans); letter-spacing:-.048em; margin:0 0 25px; }
.welcome-title span { color:var(--ink-3); }
#load.invite #loadtext { display:block; font:14px/1.7 var(--f-sans); max-width:340px; color:var(--ink-2); }
#loadactions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
#loadactions button { min-height:44px; padding:11px 17px; border:1px solid var(--line); border-radius:var(--radius); font:12px var(--f-sans); }
#loadactions #welcomeOpenFiles { display:flex; justify-content:space-between; gap:28px; min-width:145px; margin:0; background:var(--accent); color:var(--accent-ink); border-color:var(--accent); box-shadow:none; }
#loadactions #welcomeOpenFolder { background:transparent; color:var(--ink); }
#loadactions button:hover { filter:brightness(.9); }
#loadactions button:disabled { opacity:.6; cursor:wait; }
.welcome-drop { font-size:12px; color:var(--ink-3); margin-top:14px; }
.welcome-link { display:block; min-height:44px; padding:10px 0; font-size:12px; text-decoration:underline; text-underline-offset:4px; color:var(--ink-2); }
.welcome-private { font-size:11px; color:var(--ink-3); margin-top:10px; }
.welcome-status { font-size:12px; color:var(--ink-2); margin-top:12px; overflow-wrap:anywhere; }
.welcome-status:empty { display:none; }
.welcome-example { margin:0; min-width:0; }
.welcome-images { position:relative; height:360px; overflow:hidden; background:var(--bg-2); }
.welcome-images img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.welcome-images[data-view=compare] .welcome-model { clip-path:inset(0 0 0 var(--split)); }
.welcome-divider { display:none; position:absolute; top:0; bottom:0; left:var(--split); width:1px; background:var(--bg); }
.welcome-divider::after { content:'↔'; position:absolute; top:50%; left:0; transform:translate(-50%,-50%); padding:5px 8px; background:var(--bg); color:var(--ink); font-size:16px; }
.welcome-images[data-view=compare] .welcome-divider { display:block; }
.welcome-image-label { position:absolute; top:16px; left:16px; background:var(--bg); color:var(--ink); padding:8px 10px; font:10px var(--f-mono); text-transform:uppercase; }
.welcome-example-controls { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin-top:8px; }
.welcome-example-controls button { min-height:44px; font-size:12px; }
.welcome-views { display:flex; gap:16px; border-bottom:1px solid var(--line); }
.welcome-views button { border-bottom:2px solid transparent; color:var(--ink-3); }
.welcome-views button[aria-pressed=true] { border-color:var(--ink); color:var(--ink); }
#welcomeCompare { margin-left:auto; }
.welcome-range { display:flex; align-items:center; gap:12px; font:11px var(--f-mono); color:var(--ink-2); margin-top:8px; }
.welcome-range input { flex:1; min-width:0; height:44px; accent-color:var(--accent); }
.welcome-example figcaption { font-size:13px; margin-top:14px; }
.welcome-example figcaption span,.welcome-example figcaption small { color:var(--ink-3); }
.welcome-example figcaption small { display:block; font-size:11px; margin-top:5px; }
.welcome-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; width:100%; border-top:1px solid var(--line); padding-top:23px; margin-top:40px; font:12px/1.7 var(--f-sans); color:var(--ink-3); }
.welcome-meta b { display:block; font:11px var(--f-mono); text-transform:uppercase; color:var(--ink); margin-bottom:10px; }
.welcome-meta b span { color:var(--ink-3); margin-right:10px; }
.welcome-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; border-top:1px solid var(--line); margin-top:32px; padding:20px 0 max(20px,env(safe-area-inset-bottom)); font-size:11px; color:var(--ink-3); }
.welcome-footer a { color:var(--ink-2); text-decoration:none; min-height:44px; display:flex; align-items:center; }
.welcome-footer a:hover { text-decoration:underline; }
#welcomeRecent:empty { display:none; }
#welcomeRecent #recent { position:static; transform:none; width:auto; min-width:0; max-width:none; margin-top:30px; padding:18px 0 0; background:none; backdrop-filter:none; border-top:1px solid var(--line); }
#welcomeRecent .recentrow { min-height:44px; }
#welcomeRecent .recentname { min-width:0; }
@media(max-width:800px) {
  .welcome-page { padding:30px 24px 0; }
  .welcome-layout { grid-template-columns:1fr; gap:30px; }
  .welcome-title { font-size:44px; }
  #load.invite #loadtext { max-width:440px; }
  .welcome-images { height:310px; }
  .welcome-meta { margin-top:30px; }
}
@media(max-width:440px) {
  .welcome-page { padding:26px 20px 0; }
  .welcome-title { font-size:39px; }
  .welcome-images { height:260px; }
  .welcome-meta { grid-template-columns:1fr; gap:20px; }
  .welcome-kicker { font-size:10px; }
  .welcome-example-controls { gap:8px; }
  .welcome-views { gap:12px; }
  #welcomeCompare { margin-left:0; }
}
@media(pointer:coarse) { .welcome-drop { display:none; } }
