/**
 * signage.css — a sign's TV screen: the join screen, the numbers overlay, the player's canvas and its widgets.
 *
 * @fileoverview DESIGN_SPEC §3.49.3. On the stage's frame (`st-root`, `st-screen`,
 * `st-bg`: stage.css, stageScenes.css). The join and numbers screens are in
 * container units so Silk's 960×540 page and a 1080p TV look the same; the
 * player's canvas is in CANVAS PIXELS (a landscape panel is 1920×1080) and
 * scaled by the Player, so every widget size below is a canvas pixel. Tokens
 * only: the board's palette is the share stage's paper and ink mixed, the
 * accent the sign's own (`--sg-accent`, set by the Player from the sign's look).
 * `sg-*` is the sign's prefix, `w-*` its widgets'.
 *
 * @author David Seguin, Chief Software Architect
 * @company 44 North Incorporated
 * @copyright © 2026 44 North Incorporated. All Rights Reserved.
 * @since 2026
 * @license Professional - All Rights Reserved
 */.sg-join,.sg-placed{position:absolute;top:5%;right:5%;bottom:5%;left:5%;display:flex;align-items:center;justify-content:center;gap:6cqw;color:var(--share-paper);text-align:center}.sg-join-text{display:grid;gap:2cqh;justify-items:center;max-width:52cqw}.sg-number{font-size:40cqh;line-height:1;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--share-paper)}.sg-qr{width:36cqh;height:36cqh;padding:2cqh;border-radius:2cqh;background:var(--share-paper)}.sg-placed{flex-direction:column;gap:2cqh}.sg-ident{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-content:center;color:var(--share-paper);text-align:center;pointer-events:none;background:color-mix(in srgb,var(--share-stage) 78%,transparent)}.sg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,var(--share-border) 1px,transparent 1px),linear-gradient(to bottom,var(--share-border) 1px,transparent 1px);background-size:10cqw 10cqw;opacity:.6}.sg-ident-no{position:relative;font-size:44cqh;line-height:1;font-weight:800;font-variant-numeric:tabular-nums;color:var(--share-accent)}.sg-ident-where{position:relative;margin:1cqh 0 0;font-size:5cqh;font-weight:600}.sg-host{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden}.sg-player{position:relative;overflow:hidden}.sg-viewport{position:relative;overflow:hidden;transform-origin:0 0}.sg-canvas{position:absolute;left:0;top:0;overflow:hidden;font-family:var(--font-sans);line-height:1.15;background:var(--c-bg);color:var(--c-ink);--c-bg: var(--sg-stage);--c-ink: var(--share-paper);--c-soft: color-mix(in srgb, var(--share-paper) 74%, transparent);--c-panel: color-mix(in srgb, var(--share-paper) 7%, transparent);--c-edge: color-mix(in srgb, var(--share-paper) 16%, transparent);--c-paper: var(--share-paper);--c-paper-ink: var(--share-ink);--c-on-accent: var(--share-paper)}.sg-canvas.is-light{--c-bg: var(--share-paper);--c-ink: var(--share-ink);--c-soft: color-mix(in srgb, var(--share-ink) 70%, transparent);--c-panel: color-mix(in srgb, var(--share-ink) 6%, transparent);--c-edge: color-mix(in srgb, var(--share-ink) 14%, transparent);--c-paper: var(--share-ink);--c-paper-ink: var(--share-paper)}.sg-layer{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 70% at 8% 10%,color-mix(in srgb,var(--sg-accent) 26%,transparent),transparent 70%),radial-gradient(50% 60% at 94% 92%,color-mix(in srgb,var(--sg-accent) 16%,transparent),transparent 70%),var(--c-bg)}.is-lite .sg-layer{background:var(--c-bg)}.sg-band{position:absolute;left:0;top:0;width:260px;z-index:5;background:linear-gradient(90deg,transparent,var(--sg-accent) 45%,var(--sg-accent) 55%,transparent);opacity:.95;pointer-events:none}.w-place,.w-span,.w-abs{position:absolute}.w-span{left:0}.w-stack{display:flex;flex-direction:column;gap:34px;height:100%}.w-head{display:flex;align-items:baseline;justify-content:space-between;gap:30px;padding-bottom:14px;border-bottom:6px solid var(--sg-accent)}.w-head h2{margin:0;font:800 54px/1 var(--font-sans);letter-spacing:.02em;text-transform:uppercase}.w-head small{font-size:30px;color:var(--c-soft)}.w-sizehead{display:flex}.w-sizehead i{display:inline-block;width:150px;text-align:center;font:700 34px/1 var(--font-sans);font-style:normal;color:var(--c-soft)}.w-list{display:flex;flex-direction:column}.w-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto;align-items:center;gap:26px;padding:12px 0;border-bottom:2px solid var(--c-edge)}.w-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:16px}.w-row-art,.w-row-art img{width:80px;height:80px}.w-name{font:600 42px/1.1 var(--font-sans);display:flex;flex-wrap:wrap;align-items:center;gap:14px}.w-tag{display:inline-block;padding:6px 16px;border-radius:999px;background:var(--sg-accent);color:var(--c-on-accent);font:800 24px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;font-style:normal}.w-tag.is-veg{background:var(--sage)}.w-tag.is-na{background:var(--share-accent)}.w-cal{font:500 32px/1 var(--font-sans);color:var(--c-soft);white-space:nowrap}.w-price{font:800 46px/1 var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap}.w-sizes{display:flex}.w-sizes b{display:inline-flex;flex-direction:column;align-items:center;width:150px;font:800 40px/1 var(--font-sans);font-variant-numeric:tabular-nums}.w-sizes i{font:600 24px/1 var(--font-sans);font-style:normal;color:var(--c-soft);margin-bottom:6px}.w-sold{display:inline-block;padding:8px 20px;border-radius:999px;background:var(--c-paper);color:var(--c-paper-ink);font:800 28px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase}.is-out{opacity:.5}.is-out .w-name{text-decoration:line-through;text-decoration-thickness:4px;text-decoration-color:var(--sg-accent)}.w-grid{display:flex;flex-direction:column;gap:24px}.w-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.w-tile{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;border-radius:24px;background:var(--c-panel);text-align:center}.w-tile .w-art,.w-tile img{width:150px;height:150px}.w-tile b{font:600 34px/1.15 var(--font-sans);display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.w-tile-foot{display:flex;align-items:center;justify-content:center;gap:16px}.w-tile-foot .w-price{font-size:40px}.w-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;padding-bottom:250px;text-align:center}.w-hero.is-solo{gap:22px;padding-bottom:110px}.w-hero h1,.w-feature h1,.w-nextpart h2,.w-hero p,.w-feature p,.w-nextpart p,.w-qr p,.w-combo,.w-calnote{margin:0}.w-brand{font:600 44px/1 var(--font-serif);font-style:italic;color:var(--c-soft)}.w-eyebrow{font:800 32px/1 var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sg-accent)}.is-dark .w-eyebrow{color:color-mix(in srgb,var(--sg-accent) 70%,var(--share-paper))}.w-hero-art,.w-hero-art img{width:320px;height:320px}.w-hero.is-solo .w-hero-art,.w-hero.is-solo .w-hero-art img{width:520px;height:520px}.w-hero h1{font:700 84px/1.02 var(--font-serif);letter-spacing:-.01em;max-width:1500px}.w-hero.is-solo h1{font-size:92px}.w-line{font:500 40px/1.3 var(--font-sans);color:var(--c-soft);max-width:1500px;text-wrap:balance}.w-hero-price{display:flex;align-items:baseline;gap:30px}.w-hero-price .w-price{font-size:92px}.w-hero-price .w-cal{font-size:40px}.w-hero.is-out .w-hero-price .w-sold{font-size:48px}.w-flyer{position:absolute;display:inline-flex;align-items:center;gap:24px;padding:18px 40px 18px 22px;border-radius:999px;background:var(--c-paper);color:var(--c-paper-ink);box-shadow:0 30px 70px color-mix(in srgb,var(--share-stage) 45%,transparent);z-index:4;white-space:nowrap}.w-flyer .w-art,.w-flyer img{width:96px;height:96px}.w-flyer b{font:700 40px/1 var(--font-sans)}.w-flyer .w-price{font-size:44px;color:var(--sg-accent)}.w-ticker{overflow:hidden;white-space:nowrap;background:var(--sg-accent);color:var(--c-on-accent);font:600 38px/64px var(--font-sans);z-index:3}.w-ticker-line{display:inline-block;padding-right:80px}.w-calnote{position:absolute;padding:0 60px;font:400 22px/1.2 var(--font-sans);color:var(--c-soft);opacity:.85}.w-feature{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;padding:80px 140px;text-align:center}.w-feature h1{font:700 220px/.98 var(--font-serif);letter-spacing:-.02em}.w-feature .w-line{font-size:64px;max-width:none}.w-feature .w-eyebrow{font-size:48px}.w-feature-art,.w-feature-art img{width:760px;height:760px}.w-feature-tail{height:100%}.w-foot{display:flex;align-items:center;gap:40px;margin-top:auto}.w-combo{flex:1;padding:24px 30px;border-radius:20px;background:var(--c-panel);font:600 34px/1.3 var(--font-sans)}.w-qr{display:flex;flex-direction:column;align-items:center;gap:12px}.w-qr img{border-radius:16px;background:var(--share-paper)}.w-qr p{font:600 28px/1.2 var(--font-sans);color:var(--c-soft);text-align:center;max-width:320px}.w-nextpart{display:flex;flex-direction:column;gap:16px;padding:30px;border-radius:24px;background:var(--c-panel)}.w-nextpart h2{font:700 60px/1.05 var(--font-serif)}.w-desc{display:block;width:100%;font:500 28px/1.2 var(--font-sans);color:var(--c-soft)}.w-clock{margin:0;font:700 64px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--c-soft)}.w-names{margin:0;font:600 116px/1 var(--font-serif);letter-spacing:-.015em}.w-barhead,.w-doorhead,.w-lobbyhead{display:flex;flex-direction:column;gap:18px;text-align:center;align-items:center;padding-bottom:30px}.w-barhead p,.w-doorhead p,.w-lobbyhead p,.w-barhead h1,.w-doorhead h1,.w-lobbyhead h1,.w-now p,.w-next p,.w-now h2,.w-next h3,.w-floor h2,.w-queue p,.w-weather p,.w-promo h1,.w-promo p,.w-lastcall{margin:0}.w-barhead .w-line,.w-doorhead .w-line{font-size:38px}.w-doorhead h1{font:700 110px/1 var(--font-serif)}.w-lobbyhead{align-items:flex-start;text-align:left}.w-lobbyhead h1{font:700 150px/1 var(--font-serif)}.w-lastcall{display:flex;align-items:center;justify-content:center;height:100%;font:800 52px/1 var(--font-sans);background:var(--sg-accent);color:var(--c-on-accent);letter-spacing:.04em}.w-compact .w-head h2{font-size:44px}.w-compact .w-row{padding:8px 0;gap:20px;grid-template-columns:72px minmax(0,1fr) auto}.w-compact .w-name{font-size:36px}.w-compact .w-price{font-size:40px}.w-nownext{display:flex;flex-direction:column;gap:70px;margin-top:40px}.w-now,.w-next{display:flex;flex-direction:column;gap:16px;text-align:center;align-items:center}.w-now h2{font:600 112px/1.02 var(--font-serif)}.w-next h3{font:600 70px/1.05 var(--font-serif)}.w-who{font:500 46px/1.2 var(--font-sans);color:var(--c-soft)}.w-when{font:500 42px/1.2 var(--font-sans);color:var(--c-soft);font-variant-numeric:tabular-nums}.w-now.is-quiet h2{font-size:90px;color:var(--c-soft)}.w-doorfoot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;gap:40px}.w-tonight{display:flex;flex-direction:column}.w-event{display:grid;grid-template-columns:240px minmax(0,1fr) 440px 120px;align-items:center;gap:40px;padding:34px 0;border-bottom:2px solid var(--c-edge)}.w-event-time{font:700 54px/1 var(--font-sans);font-variant-numeric:tabular-nums}.w-event-what{display:flex;flex-direction:column;gap:10px;min-width:0}.w-event-what b{font:600 60px/1.05 var(--font-serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-event-what small{font:500 34px/1 var(--font-sans);color:var(--c-soft)}.w-event-room{font:600 50px/1.1 var(--font-sans)}.w-event-arrow{font-size:100px;color:var(--sg-accent);justify-self:end}.is-dark .w-event-arrow{color:color-mix(in srgb,var(--sg-accent) 70%,var(--share-paper))}.w-event.is-on .w-event-time:after{content:"now";display:block;margin-top:8px;font:800 24px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--sg-accent)}.w-tables{display:flex;flex-direction:column;gap:20px}.w-tablecols{display:grid;grid-template-columns:1fr}.w-tables.is-wide .w-tablecols{grid-template-columns:1fr 1fr;column-gap:80px}.w-trow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:30px;padding:18px 0;border-bottom:2px solid var(--c-edge);font:500 44px/1.1 var(--font-sans)}.w-trow b{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.w-trow.is-past{opacity:.4}.w-dir{display:flex;flex-direction:column;gap:30px}.w-floor h2{font:800 44px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--sg-accent);margin-bottom:10px}.w-queue{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;margin-top:30px}.w-bignum{font:800 420px/1 var(--font-sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.w-nextnums{font:500 60px/1 var(--font-sans);color:var(--c-soft)}.w-nextnums b{margin:0 18px;color:var(--c-ink);font-variant-numeric:tabular-nums}.w-prices .w-trow b{font-size:54px}.w-dep .w-trow{grid-template-columns:240px minmax(0,1fr) auto;padding:14px 0}.w-dep .w-event-time{font-size:44px}.w-dep .w-sold{font-size:26px}.w-weather{display:flex;flex-direction:column;gap:14px}.w-weather .w-bignum{font-size:220px}.w-wx{display:flex;flex-wrap:wrap;gap:36px;font:500 36px/1 var(--font-sans);color:var(--c-soft)}.w-wx span{display:inline-flex;align-items:center;gap:10px}.w-wx .icon{font-size:42px}.w-two{display:grid;grid-template-columns:1fr 1fr;gap:60px}.w-wxcode{display:flex;flex-direction:column;gap:30px;align-items:flex-start}.w-promo{display:flex;flex-direction:column;align-items:center;gap:30px;text-align:center}.w-promo h1{font:700 180px/1 var(--font-serif)}.w-promo .w-line{font-size:60px;max-width:none}.w-feature-promo{width:100%;height:100%}.sg-bezel{position:absolute;background:var(--share-stage);z-index:6}.sg-over{position:absolute;left:0;right:0;top:0;z-index:15;margin:0;padding:2cqh 4cqw;background:var(--share-accent);color:var(--share-paper);font-size:5cqh;font-weight:700;text-align:center}.sg-emergency{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-content:center;gap:3cqh;padding:6cqw;background:var(--color-danger);color:var(--share-paper);text-align:center;animation:sg-pulse 2.4s ease-in-out infinite}.sg-emergency h1{margin:0;font:800 11cqh/1.05 var(--font-sans);letter-spacing:-.01em}.sg-emergency p{margin:0;font-size:4.5cqh;font-weight:600;opacity:.9}.sg-emergency-arrow{font-size:22cqh}@keyframes sg-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(.82)}}.is-lite .sg-emergency{animation:none}.w-late{font:600 36px/1.2 var(--font-sans);color:var(--sg-accent)}.sgn-preview{position:relative;width:100%;border-radius:var(--radius-md);overflow:hidden;background:var(--sg-stage)}.sgn-preview .sg-host{position:absolute;top:0;right:0;bottom:0;left:0}
