/* showcase.css — the "View modes" phone scenes (showcase.js, vessels.js).
   Colours are house tokens; --sc-accent sets the liquid and defaults to arctic.
   Change a token here or in house.css and every scene recolours. */
.sc { --sc-accent: var(--arctic, #1B75BC); --sc-below: #8792AD; --sc-above: #4CAF7D; }

/* the band: copy beside the scene from 1024px, stacked below that */
.sc-band .sc-grid { display:grid; gap:28px 48px; align-items:center; }
.sc-band .sc-copy .h2 { font-size:clamp(30px,3.6vw,46px); }
.sc-band .sc-copy .intro { margin:16px 0 0; }
.sc-band .sc-small { margin-top:14px; font-size:14px; color:var(--ink-dim); }
@media (min-width:1024px) {
  .sc-band .wrap { max-width:1320px; }
  .sc-band .sc-grid { grid-template-columns:minmax(300px,4fr) 8fr; }
}
@media (max-width:1023px) { .sc-band .sc-copy { text-align:center; } .sc-band .sc-copy .intro { margin-inline:auto; } }

/* reserve the space before the scene mounts, so nothing below it moves */
.sc-js .sc:not([data-sc-mounted])::before { content:''; display:block; margin-top:84px; aspect-ratio:16/9; border-radius:14px; background:var(--navy); }
@media (max-width:639px) { .sc-js .sc:not([data-sc-mounted])::before { aspect-ratio:1/1; } }
.sc noscript img { display:block; width:100%; height:auto; border-radius:14px; }

/* the switch: a radiogroup, Buckets first */
.sc-switch { display:inline-flex; height:42px; padding:4px; gap:4px; background:var(--mist); border:1px solid var(--line); border-radius:8px; }
.sc-switch button { font:700 15px/1 var(--display); color:var(--ink-mid); background:transparent; border:0; border-radius:5px; padding:0 18px; cursor:pointer; }
.sc-switch button[aria-checked="true"] { background:var(--twilight); color:#fff; }
.sc-switch button:focus-visible { outline:3px solid var(--punch); outline-offset:2px; }
.sc-note { margin:8px 0 12px; height:22px; font-size:14.5px; line-height:22px; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:1023px) { .sc { text-align:center; } }

/* the frame scales a fixed 1200x675 stage (760x760 on a phone) */
.sc-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; border-radius:14px; background:var(--navy); text-align:left; }
.sc-frame.compact { aspect-ratio:1/1; }
.sc-stage { position:absolute; left:0; top:0; width:1200px; height:675px; transform-origin:0 0; overflow:hidden; perspective:2000px; perspective-origin:50% 38%;
  font-family:var(--display); color:#fff;
  background:radial-gradient(ellipse 85% 75% at 60% 36%, var(--twilight,#293890) 0%, var(--navy,#18225C) 46%, #0B0F2E 90%); }
.sc-stage.compact { width:760px; height:760px; }
.sc-bloom { position:absolute; border-radius:50%; pointer-events:none; }
.sc-bloom.one { left:40%; top:-20%; width:900px; height:600px; background:radial-gradient(closest-side,rgba(255,255,255,.14),rgba(255,255,255,0)); transform:rotate(-18deg); }
.sc-bloom.two { left:-10%; top:55%; width:800px; height:420px; background:radial-gradient(closest-side,rgba(255,255,255,.08),rgba(255,255,255,0)); transform:rotate(12deg); }
.sc-scene { position:absolute; inset:0; transform-style:preserve-3d; transition:opacity .2s ease; }
.sc-scene.sc-out { opacity:0; }
.sc-tag { position:absolute; left:28px; top:24px; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff;
  padding:6px 12px; border-radius:4px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.35); }

.sc-world { position:absolute; width:0; height:0; transform-style:preserve-3d; }
.sc-world > * { position:absolute; }
.sc-shadow { background:rgba(4,2,26,.5); filter:blur(22px); }

/* the phone */
.sc-phone { left:-156px; top:-320px; width:312px; height:640px; transform-style:preserve-3d; }
.sc-thick { position:absolute; inset:0; border-radius:50px; }
.sc-bezel { position:absolute; inset:0; border-radius:50px; padding:3px; background:linear-gradient(135deg,#e4e7ee,#9aa0ae 30%,#4b505d 70%,#c9cdd6); }
.sc-glass { width:100%; height:100%; border-radius:47px; padding:8px; background:#0b0b10; }
.sc-screen { position:relative; width:100%; height:100%; border-radius:40px; overflow:hidden; background:#F3F5FA; display:flex; flex-direction:column; color:var(--navy); }
.sc-ph-top { display:flex; justify-content:space-between; align-items:center; padding:12px 22px 4px; font-size:11px; font-weight:600; }
.sc-notch { width:84px; height:22px; border-radius:12px; background:#0b0b10; }
.sc-bat { width:22px; height:9px; border-radius:2px; border:1.5px solid var(--navy); }
.sc-ph-hd { display:flex; align-items:center; gap:10px; padding:10px 16px 6px; }
.sc-av { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; color:#fff; background:linear-gradient(160deg,var(--sc-l),var(--sc-a)); }
.sc-ph-hd small { display:block; font-size:9.5px; color:var(--ink-dim); }
.sc-ph-hd b { display:block; font-size:16px; font-weight:700; line-height:1.15; }
.sc-ph-tabs { display:flex; gap:5px; padding:6px 16px; }
.sc-ph-tabs span { font-size:9px; font-weight:500; color:var(--ink-mid); background:#fff; border:1px solid var(--line); padding:5px 10px; border-radius:999px; white-space:nowrap; }
.sc-ph-tabs span.on { background:var(--sc-a); border-color:var(--sc-a); color:#fff; font-weight:600; }
.sc-ph-hero { margin:6px 14px 8px; border-radius:16px; padding:12px 16px; color:#fff; display:flex; align-items:center; gap:10px;
  background:linear-gradient(140deg,var(--sc-l),var(--sc-a) 55%,var(--sc-d)); box-shadow:0 10px 20px -12px var(--sc-a); }
.sc-ph-hero > div { flex:1; }
.sc-ph-hero small { display:block; font-size:8.5px; font-weight:700; letter-spacing:.12em; opacity:.9; }
.sc-ph-hero b { display:block; font-size:24px; font-weight:800; line-height:1.05; }
.sc-ph-hero span { display:block; font-size:9px; opacity:.9; margin-top:2px; }
.sc-ph-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 14px; }
.sc-pc { background:#fff; border-radius:12px; border:1px solid #e9ebf1; padding:8px 10px; display:flex; flex-direction:column; gap:5px; }
.sc-pc-h { display:flex; align-items:center; gap:6px; min-width:0; }
.sc-k { flex:none; min-width:18px; height:18px; padding:0 3px; border-radius:5px; background:var(--sc-a); color:#fff; font-size:9px; font-weight:700; display:grid; place-items:center; }
.sc-pc-n { font-size:8.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sc-pc-b { display:flex; align-items:flex-end; gap:6px; }
.sc-pc-b strong { font-size:17px; font-weight:800; color:var(--sc-d); line-height:1; }
.sc-pc-b small { font-size:8px; color:var(--ink-dim); padding-bottom:1px; }
.sc-ph-bars { padding:2px 16px; display:flex; flex-direction:column; gap:7px; }
.sc-pb-n { font-size:9px; font-weight:600; margin-bottom:2px; }
.sc-pb-r { display:flex; align-items:center; gap:6px; font-size:7.5px; color:var(--ink-dim); }
.sc-pb-r span { width:20px; font-weight:700; }
.sc-pb-r i { flex:1; height:6px; border-radius:3px; background:#E3E6EE; overflow:hidden; }
.sc-pb-r i b { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,var(--sc-l),var(--sc-a)); }
.sc-pb-r.pop i b { background:#9AA2B6; }
.sc-pb-r em { width:16px; font-style:normal; font-weight:700; color:var(--navy); text-align:right; font-size:9px; }
.sc-ph-nav { margin-top:auto; display:flex; justify-content:space-around; padding:12px 20px 8px; background:#fff; border-top:1px solid #eceef4; }
.sc-ph-nav span { width:20px; height:20px; border-radius:6px; background:#e3e6ee; }
.sc-ph-nav span.on { background:var(--sc-a); }
.sc-ph-bar { display:flex; justify-content:center; padding:4px 0 8px; background:#fff; }
.sc-ph-bar span { width:100px; height:4px; border-radius:2px; background:var(--navy); }

/* glass panels lying in the scene */
.sc-panel { box-sizing:border-box; padding:16px 18px; border-radius:18px; overflow:hidden; color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 30px 60px -24px rgba(6,4,34,.55); }
.sc-plate, .sc-light { background:linear-gradient(140deg,rgba(255,255,255,.32),rgba(255,255,255,.09) 55%,rgba(255,255,255,.17)); border:1px solid rgba(255,255,255,.55); }
.sc-plate { background:linear-gradient(140deg,rgba(255,255,255,.26),rgba(255,255,255,.06) 60%,rgba(255,255,255,.14)); }
.sc-dark { background:linear-gradient(150deg,rgba(24,34,92,.95),rgba(11,15,46,.92)); border:1px solid rgba(255,255,255,.16); }
.sc-ttl { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; opacity:.85; }
.sc-rows { display:flex; flex-direction:column; gap:6px; margin-top:12px; }
.sc-row { display:flex; align-items:center; gap:10px; }
.sc-row .sc-k { width:26px; height:24px; font-size:11px; border-radius:7px; }
.sc-rn { flex:1; font-size:13px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sc-row b { width:28px; text-align:right; font-size:16px; font-weight:800; }
.sc-amps { display:flex; gap:12px; margin-top:14px; justify-content:space-between; }
.sc-amps > div { flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; }
.sc-amps b { font-size:20px; font-weight:800; line-height:1; }
.sc-amps span { font-size:11px; opacity:.8; text-align:center; line-height:1.25; }
.sc-low { display:flex; flex-direction:column; gap:7px; margin-top:12px; }
.sc-low div { display:flex; align-items:center; gap:10px; font-size:13px; }
.sc-low i { width:9px; height:9px; border-radius:50%; background:var(--sc-below); flex:none; }
.sc-low span { flex:1; }
.sc-low b { font-size:16px; }
.sc-one-h { font-size:19px; font-weight:700; margin-top:6px; }
.sc-one-s { font-size:12px; opacity:.78; margin-top:2px; }
.sc-one-a { display:flex; align-items:center; gap:8px; margin-top:12px; font-size:12.5px; font-weight:600; }
.sc-one-a span { width:22px; height:22px; flex:none; border-radius:50%; background:var(--sc-above); display:grid; place-items:center; font-size:12px; }

/* gauges standing up on the plate */
.sc-bill { display:flex; flex-direction:column-reverse; align-items:center; gap:6px; transform-origin:50% 100%; transform-style:preserve-3d; }
.sc-bill .sc-v { overflow:visible; filter:drop-shadow(0 14px 14px rgba(4,2,26,.35)); }
.sc-pill { font-size:12px; font-weight:600; color:#fff; padding:4px 11px; border-radius:999px; white-space:nowrap;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.4); }

/* the pour: every liquid starts empty and fills when the scene arrives */
.sc-liq { transform:translate(0px, var(--y0)); transition:transform 1.2s cubic-bezier(.2,.8,.2,1) var(--d,0ms); }
.sc-filled .sc-liq { transform:translate(0px, var(--y1)); }

/* bars view: a flat glass panel beside the phone, at a readable size */
.sc-barpanel { position:absolute; right:56px; top:48px; width:470px; bottom:40px; padding:20px 26px; border-radius:18px; overflow:hidden;
  background:linear-gradient(140deg,rgba(255,255,255,.22),rgba(255,255,255,.07) 55%,rgba(255,255,255,.13)); border:1px solid rgba(255,255,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 30px 60px -24px rgba(6,4,34,.55); }
.sc-legend { display:flex; gap:18px; margin:8px 0 10px; font-size:12.5px; opacity:.9; }
.sc-legend span { display:flex; align-items:center; gap:6px; }
.sc-legend i { width:16px; height:8px; border-radius:2px; }
.sc-legend i.you { background:linear-gradient(90deg,var(--sc-xl),var(--sc-l)); }
.sc-legend i.pop { background:#B9C0D0; }
.sc-br { margin-bottom:7px; }
.sc-br.tight { margin-bottom:5px; }
.sc-br-n { font-size:13.5px; font-weight:600; margin-bottom:3px; }
.sc-br.tight .sc-br-n { font-size:12.5px; margin-bottom:1px; }
.sc-br-r { display:flex; align-items:center; gap:10px; margin-top:2px; }
.sc-br-r i { position:relative; flex:1; height:10px; border-radius:5px; background:rgba(255,255,255,.14); }
.sc-br-r i b { display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,var(--sc-xl),var(--sc-l)); }
.sc-br-r.pop i { height:6px; }
.sc-br-r.pop i b { background:#B9C0D0; }
.sc-br-r em { width:28px; text-align:right; font-style:normal; font-weight:800; font-size:15px; }
.sc-br-r.pop em { font-weight:600; font-size:12.5px; opacity:.85; }

@media (prefers-reduced-motion:reduce) {
  .sc-liq { transition:none !important; }
  .sc-scene { transition:none; }
}
@media print { .sc-switch, .sc-note { display:none; } }

/* orbit view (showcase-orbit.js): the app's Orbit overlay, in house colours */
.so { position:absolute; inset:0; font-family:var(--display); }
.so-top { position:absolute; left:50%; top:16px; transform:translateX(-50%); display:flex; gap:4px; padding:4px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); z-index:2; }
.so-top button { font:700 13px/1 var(--display); color:rgba(255,255,255,.75); background:transparent; border:0; border-radius:999px; padding:8px 14px; cursor:pointer; }
.so-top button[aria-checked="true"] { background:var(--sc-a); color:#fff; }
.so-top button:focus-visible { outline:3px solid var(--punch); outline-offset:2px; }
.so-net { position:absolute; left:290px; top:62px; }
.so.compact .so-net { left:20px; top:110px; }
.so.tree .so-net { left:35px; top:66px; }
.so.compact.tree .so-net { left:20px; top:90px; }
.so-tl { font:600 11.5px var(--display); fill:rgba(255,255,255,.62); }
.so-tl.strong { fill:#fff; font-weight:700; }
.so.compact .so-tl { font-size:15px; }
.so-left { position:absolute; left:22px; top:72px; bottom:22px; width:250px; display:flex; flex-direction:column; gap:10px; }
.so-right { position:absolute; right:22px; top:72px; bottom:22px; width:270px; display:flex; }
.so-card { background:#fff; color:var(--ink); border-radius:16px; padding:12px 14px; box-shadow:0 20px 50px rgba(0,0,0,.35); }
.so-eye { display:flex; align-items:center; gap:6px; font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--sc-a); }
.so-eye i { width:9px; height:9px; border-radius:50%; background:var(--sc-a); }
.so-who b { display:block; font-size:20px; font-weight:800; color:var(--navy); line-height:1.1; margin-top:2px; }
.so-who > span { display:block; font-size:11px; color:var(--ink-dim); }
.so-chip { margin-top:8px; font-size:11px; font-weight:700; color:var(--sc-d); background:color-mix(in srgb,var(--sc-a) 14%,#fff); border-radius:999px; padding:5px 10px; }
.so-flag { margin-top:6px; font-size:11px; font-weight:700; color:#B4321A; background:rgba(240,107,94,.12); border:1px solid rgba(240,107,94,.32); border-radius:8px; padding:4px 9px; }
.so-list { flex:1; overflow:hidden; padding:10px 8px; }
.so-h { font-size:12.5px; font-weight:800; color:var(--navy); padding:0 6px 6px; }
.so-dom { display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:transparent; border:1px solid transparent; border-radius:9px; padding:4px 6px; cursor:pointer; font-family:var(--display); color:var(--ink); }
.so-dom.on { border-color:var(--sc-a); background:color-mix(in srgb,var(--sc-a) 8%,#fff); }
.so-dom > i { width:10px; height:10px; border-radius:50%; background:var(--sc-a); flex:none; }
.so-dom > span { flex:1; min-width:0; }
.so-dom b { display:block; font-size:11.5px; font-weight:700; line-height:1.2; }
.so-dom small { display:block; font-size:9.5px; color:var(--ink-dim); }
.so-dom em { font-style:normal; font-size:9.5px; font-weight:800; color:#B4321A; background:rgba(240,107,94,.14); border-radius:999px; padding:2px 6px; }
.so-leg { display:grid; grid-template-columns:1fr 1fr; gap:3px 10px; font-size:10.5px; color:var(--ink-mid); padding:10px 14px; }
.so-leg div { display:flex; align-items:center; gap:6px; }
.so-leg i { width:9px; height:9px; border-radius:50%; }
.so-leg small { grid-column:1/-1; font-size:9.5px; color:var(--ink-dim); margin-top:2px; }
.so-det { flex:1; overflow:hidden; }
.so-det h4 { margin:4px 0 2px; font-size:18px; font-weight:800; color:var(--navy); }
.so-det p { font-size:11.5px; color:var(--ink-dim); margin:0 0 10px; line-height:1.4; }
.so-quad { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.so-quad div { position:relative; border:1px solid var(--line); border-radius:10px; padding:8px 10px; }
.so-quad div.you { border-color:var(--sc-a); }
.so-quad span { display:block; font-size:11px; font-weight:600; }
.so-quad b { font-size:18px; color:var(--navy); }
.so-quad em { position:absolute; right:6px; top:6px; font-style:normal; font-size:8.5px; font-weight:800; color:#fff; background:var(--sc-a); border-radius:999px; padding:2px 6px; }
.so-note { display:block; margin-top:8px; font-size:10px; color:var(--ink-dim); }
.so-met { margin-bottom:9px; }
.so-met > div { display:flex; justify-content:space-between; font-size:12px; font-weight:600; }
.so-met > div b { font-size:15px; }
.so-met i { position:relative; display:block; height:6px; border-radius:3px; background:var(--mist); margin:3px 0 2px; }
.so-met u { display:block; height:100%; border-radius:3px; }
.so-met s { position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--ink-mid); }
.so-met small { font-size:10px; color:var(--ink-dim); }
.so-met small strong { color:#B4321A; }
.so-call { border:1px solid var(--line); border-radius:10px; padding:8px 10px; margin-bottom:8px; font-size:11.5px; }
.so-call span { display:block; color:var(--ink-dim); }
.so-call b { font-size:14px; color:var(--navy); }
.so-hint { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); font-size:11.5px; color:rgba(255,255,255,.55); white-space:nowrap; }
.so.tree .so-left, .so.tree .so-right, .so.tree .so-hint { display:none; }
.sc-stage.sc-orbit .sc-tag { top:16px; left:auto; right:22px; z-index:3; }
.sc-stage.sc-orbit:not(.compact) .sc-tag { top:auto; bottom:14px; right:auto; left:300px; }
.so.tree ~ .sc-tag, .sc-stage.sc-orbit .sc-tag { background:rgba(11,15,46,.7); }
