/**
 * @fileoverview Compact administrator-only provider health and issue detail.
 * @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
 */.provider-health{gap:var(--sp-2);flex-shrink:0}.provider-health.is-compact{position:fixed;top:var(--sp-1);right:var(--sp-2);z-index:var(--z-nav);background:var(--bg-elev);border:1px solid var(--divider)}.provider-health .connection-led--unknown{background:var(--muted)}.provider-health-dialog .dialog-content{max-height:90dvh;display:flex;flex-direction:column}.provider-health-dialog .dialog-body{overflow-y:auto;min-height:0}.provider-health-dialog .dialog-header,.provider-health-dialog .dialog-footer{flex-shrink:0}.provider-health-issue{padding-block:var(--sp-3);border-bottom:1px solid var(--divider);overflow-wrap:anywhere}.provider-health-issue p{margin-block:var(--sp-1)}/**
 * pendingCrewInvite.css — in-app Crew invite dialog (PendingCrewInvite).
 *
 * @fileoverview Token-only chrome for the Join / Decline / Not now interrupt.
 * Cover-first hero (serif crew name) on the shared .dialog-overlay chassis.
 *
 * @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
 */.pci-dialog{display:flex;flex-direction:column;max-height:min(90dvh,40rem);border-radius:var(--r-lg)}.pci-hero{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding:var(--sp-5) var(--sp-4) var(--sp-3);background:var(--bg-elev);border-bottom:1px solid var(--divider)}.pci-hero .pci-index{align-self:stretch;margin:0 0 var(--sp-3);text-align:center}.pci-cover{position:relative;width:min(9rem,40vw);aspect-ratio:3 / 4;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md)}.pci-cover img{display:block;width:100%;height:100%;object-fit:cover}.pci-eyebrow{margin:var(--sp-4) 0 0;font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:center}.pci-name{margin:var(--sp-2) 0 0;max-width:100%;font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:600;line-height:var(--lh-tight);text-align:center;text-wrap:balance;color:var(--ink);overflow-wrap:anywhere}.pci-dialog .dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-top:var(--sp-4)}.pci-dialog .dialog-footer{flex:0 0 auto}.pci-index{margin:0 0 var(--sp-2);font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.pci-lead{margin:0 0 var(--sp-3);font-size:var(--fs-body-lg);line-height:var(--lh-body);color:var(--ink)}.pci-copy{margin:0 0 var(--sp-3);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink-soft)}.pci-meta{margin:0 0 var(--sp-3);font-size:var(--fs-small);color:var(--muted)}.pci-err{margin:0 0 var(--sp-3);font-size:var(--fs-small);color:var(--status-error)}.pci-opt{display:flex;align-items:flex-start;gap:var(--sp-2);margin:var(--sp-2) 0 0;min-height:44px;font-size:var(--fs-small);color:var(--ink);cursor:pointer}.pci-opt input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--accent)}.pci-later{margin:var(--sp-1) 0 0;text-align:center;font-size:var(--fs-caption);color:var(--muted)}/**
 * @fileoverview Shared library search and artwork captions (DESIGN_SPEC §8).
 * @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
 */.library-search{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 240px;min-width:0;padding-inline:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset);color:var(--text-muted)}.library-search input{width:100%;min-width:0;padding:var(--sp-3) 0;border:0;background:transparent;color:var(--text-primary);font:inherit}.library-caption{padding:var(--sp-2) var(--sp-1) var(--sp-3)}.library-caption-title{color:var(--text-primary);font-size:var(--fs-body);font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.library-caption-meta{margin-top:var(--sp-1);color:var(--text-muted);font-size:var(--fs-caption);overflow-wrap:anywhere}.library-search-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.library-search-row .gal-search{flex:1 1 240px;min-width:0}.library-search-row select{width:auto;max-width:100%}.library-search-row>button.btn{width:auto;min-height:44px}.my-cards-actions>button.btn{width:auto;min-height:44px}.my-cards-actions>select{width:auto;max-width:100%}.library-result-count{color:var(--text-muted);font-size:var(--fs-caption);margin-bottom:var(--sp-3)}@media(max-width:600px){.library-search{flex-basis:100%}.library-search input{font-size:var(--fs-body-lg)}}.my-cards-toolbar.mc-findbar{margin-top:0}.mc-findbar>.my-cards-actions{gap:var(--sp-2) var(--sp-3)}.mc-findbar .mc-scope{margin:0}.mc-findbar-tools{display:flex;flex:1 1 360px;flex-wrap:wrap;align-items:center;gap:var(--sp-2);min-width:0}.mc-findbar-tools .library-search{flex:1 1 0;min-width:140px}.mc-findbar-tools .library-search input{padding-block:9px}.mc-findbar-tools .pill-btn{min-height:40px}.mc-findbar .my-cards-toolbar-spacer{display:none}@media(max-width:600px){.mc-findbar-tools .pill-btn{min-height:44px}.mc-findbar-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mc-findbar .my-cards-filter-caret{display:none}}.mc-kinds{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);min-width:0;max-width:100%}.mc-scope.mc-scope--kinds{display:flex;flex-wrap:wrap;max-width:100%}.mc-scope--kinds .mc-scope-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.mc-kinds .mc-kinds-pick{display:none}@media(max-width:719px){.mc-kinds .mc-kinds-pick{display:inline-flex;min-height:44px}.mc-kinds:not(.is-open) .mc-scope--kinds{display:none}.mc-kinds.is-open,.mc-kinds.is-open .mc-scope--kinds{flex-basis:100%}.mc-kinds.is-open .mc-scope--kinds{gap:var(--sp-2);padding:0;border:0;background:none}.mc-kinds.is-open .mc-scope-tab{min-height:44px;border:1.5px solid var(--divider);background:var(--bg-elev)}.mc-kinds.is-open .mc-scope-tab.is-active{border-color:var(--accent);background:var(--accent)}}.shared-chip{position:absolute;inset-block-start:8px;inset-inline-start:8px;z-index:1;display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2) 2px 6px;border:1.5px solid var(--accent);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font-size:11.5px;font-weight:700;box-shadow:var(--shadow-sm);pointer-events:none}.shared-chip .icon{font-size:15px;color:var(--accent)}.shared-byline{display:flex;align-items:center;gap:6px;margin-top:var(--sp-1);color:var(--text-secondary);font-size:var(--fs-caption);font-weight:600;overflow-wrap:anywhere}.shared-byline-initial{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--text-on-accent);font-size:10.5px;font-weight:700;line-height:1}/**
 * upcomingList.css — the Upcoming list on My Greetlets (DESIGN_SPEC §3.43)
 *
 * @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
 */.upl{display:flex;flex-direction:column;gap:var(--sp-3)}.upl-chips{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.upl-chips .upl-grow{flex:1 1 auto}.upl-chips select{border:0;background:transparent;color:inherit;font:inherit;font-weight:600;outline:none;cursor:pointer}.upl-search{min-height:36px;min-width:180px;border:1px solid var(--edge);border-radius:var(--r-md);padding:0 var(--sp-3);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:14px}.upl-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-outline)}.upl-group{display:flex;flex-direction:column;gap:var(--sp-2)}.upl-gh{display:inline-flex;align-items:center;gap:var(--sp-1);align-self:flex-start;padding:var(--sp-2) var(--sp-1) 0;border:0;background:transparent;cursor:pointer;color:var(--muted);font:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.upl-gh.is-today{color:var(--accent-deep)}.upl-gh .upl-n{font-weight:600;letter-spacing:0;text-transform:none}.upl-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.upl-row{display:flex;align-items:center;border-top:1px solid var(--divider)}.upl-row:first-child{border-top:0}.upl-row.is-handed{opacity:.6}.upl-main{flex:1;min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr) 160px 170px 120px;gap:var(--sp-4);align-items:center;padding:var(--sp-3) var(--sp-4);border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.upl-main:hover{background:var(--surface-hover)}.upl-main:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-2px}.upl-thumb{width:44px;height:44px;border-radius:var(--r-md);object-fit:cover;background:var(--surface-inset)}.upl-name,.upl-when,.upl-rsvp{display:flex;flex-direction:column;min-width:0}.upl-name b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upl-name small,.upl-when small,.upl-rsvp small{font-size:12px;color:var(--muted)}.upl-when b{font-weight:500}.upl-rsvp{gap:5px}.upl-meter{height:6px;width:120px;border-radius:var(--r-pill);background:var(--surface-inset);overflow:hidden}.upl-meter i{display:block;height:100%;border-radius:var(--r-pill);background:var(--confirm)}.upl-tag{display:inline-flex;align-items:center;justify-self:start;height:26px;padding:0 var(--sp-3);border-radius:var(--r-pill);font-size:12px;font-weight:700;white-space:nowrap;background:var(--surface-inset);color:var(--ink-soft)}.upl-tag.is-tonight{background:var(--accent);color:var(--text-on-accent);box-shadow:0 0 0 4px var(--accent-outline)}.upl-tag.is-wrap{background:color-mix(in srgb,var(--gold) 28%,transparent);color:var(--ink)}.upl-tag.is-handed{color:var(--muted)}.upl-side{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:0 var(--sp-4);min-width:200px}.upl-coord{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--edge);background:var(--bg);color:var(--ink-soft);font-size:11px;font-weight:700}.upl-fresh{font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--surface-inset);border-radius:var(--r-pill);padding:4px 9px;white-space:nowrap}.upl-badge{display:inline-flex;align-items:center;gap:3px;height:26px;padding:0 9px;border-radius:var(--r-pill);border:0;cursor:pointer;background:var(--status-error);color:var(--text-on-accent);font:inherit;font-size:12px;font-weight:700;white-space:nowrap}.upl-badge .icon{font-size:15px}.upl-badge .icon+.icon,.upl-badge span+.icon{margin-left:3px}.upl-empty{margin:0;padding:var(--sp-4);color:var(--muted)}@media(max-width:760px){.upl-main{grid-template-columns:40px minmax(0,1fr);gap:var(--sp-1) var(--sp-3);padding:var(--sp-3)}.upl-thumb{width:40px;height:40px;grid-row:span 2}.upl-when{display:none}.upl-name{flex-direction:row;align-items:baseline;gap:var(--sp-2)}.upl-name b{flex:1}.upl-name small{white-space:nowrap}.upl-rsvp{grid-column:2;flex-direction:row;align-items:center;gap:var(--sp-2)}.upl-tag{grid-column:2}.upl-row{flex-wrap:wrap}.upl-side{width:100%;min-width:0;padding:0 var(--sp-3) var(--sp-3) calc(40px + var(--sp-3) * 2);justify-content:flex-start}}/**
 * flipTile.css
 *
 * @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
 */.ft-tiles-wrap{container-type:inline-size}.ft-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-1)}@container (min-width: 520px){.ft-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 780px){.ft-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (min-width: 1040px){.ft-tiles{grid-template-columns:repeat(5,minmax(0,1fr))}}.ft-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;aspect-ratio:3 / 4;padding:var(--sp-2);border:1.5px dashed var(--divider);border-radius:var(--r-lg);background:transparent;color:var(--ink-soft);font:inherit;font-weight:600;text-align:center;cursor:pointer}.ft-new:hover{border-color:var(--accent)}.ft-new:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.ft-new .icon{font-size:32px;color:var(--accent)}.ft-tile{perspective:1000px;min-width:0;--ft-flip-size: 44px;--ft-flip-inset: 6px;--ft-flip-clear: calc(var(--ft-flip-size) + var(--ft-flip-inset) + 2px)}.ft-flipper{position:relative;width:100%;aspect-ratio:3 / 4;transform-style:preserve-3d;transition:transform var(--t-card) var(--easing)}.ft-flipper.is-flipped{transform:rotateY(180deg)}.ft-flipper:not(.is-flipped) .ft-face-back,.ft-flipper.is-flipped .ft-face-front{pointer-events:none}.ft-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1.5px solid var(--divider);background:var(--surface-inset)}.ft-face-back{transform:rotateY(180deg);display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2);background:var(--bg-elev);border-left:3px solid var(--accent)}.ft-img-btn{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}.ft-img-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.ft-img{width:100%;height:100%;object-fit:cover;display:block}.ft-flip{position:absolute;right:var(--ft-flip-inset);bottom:var(--ft-flip-inset);width:var(--ft-flip-size);height:var(--ft-flip-size);display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:var(--bg);border:1px solid color-mix(in srgb,var(--bg) 45%,transparent);background:color-mix(in srgb,var(--ink) 76%,transparent);transition:background var(--t-instant) var(--easing),transform var(--t-instant) var(--easing)}.ft-flip:hover{transform:scale(1.06)}.ft-flip--label{width:auto;min-width:var(--ft-flip-size);gap:var(--sp-1);padding-inline:var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-caption)}.ft-flip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ft-flip--back{color:var(--ink-soft);border-color:var(--divider);background:var(--bg-elev)}.ft-flip--back:hover{color:var(--ink)}.ft-tile.is-selected .ft-face-front{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.ft-tile.is-selected .tile-checkbox{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.ft-back-title{flex:0 0 auto;font-weight:700;font-size:var(--fs-body);line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ft-back-meta{flex:0 0 auto;font-size:var(--fs-caption);line-height:1.4;color:var(--ink-soft);overflow-wrap:anywhere}.ft-face-back>.ft-back-meta{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.ft-back-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ft-back-scroll--clear-flip{padding-block-end:var(--ft-flip-clear)}.ft-back-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--sp-2);padding-right:var(--ft-flip-clear);flex:0 0 auto}.tile-footer-overlay.ft-front-footer{text-align:start;padding:var(--sp-3);padding-block-start:var(--sp-4);padding-inline-end:var(--ft-flip-clear);background:linear-gradient(180deg,#0000,#0000009e 14%,#000000e0)}.tile-footer-overlay.ft-front-footer .tile-footer-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){.ft-flipper{transition:none}.ft-flip:hover{transform:none}}.ft-back-chips{position:static;display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--sp-1)}.ft-back-chips .tile-section-chip{color:var(--ink);background:var(--surface-inset);text-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}/**
 * emptyKindTab.css — the empty type tab on My Greetlets (DESIGN_SPEC §8): a
 * quiet centered offer where the grid would be, one coral button. Tokens only
 * (DESIGN_SYSTEM.md §4).
 *
 * @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
 */.mc-kind-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);max-width:440px;margin:var(--sp-6) auto;text-align:center}.mc-kind-empty .mc-kind-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--r-pill);background:var(--accent-surface);color:var(--accent);font-size:32px}.mc-kind-empty h2{margin:0;font-size:var(--fs-h2);color:var(--ink)}.mc-kind-empty p{margin:0 0 var(--sp-2);color:var(--ink-soft);line-height:var(--lh-body);text-wrap:balance}/**
 * playlists.css
 *
 * @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
 */.plc-cover{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;background:var(--background-input, var(--bg-elev));overflow:hidden;border-radius:inherit}.plc-tile{width:100%;height:100%;object-fit:cover;display:block}.plc-tile--placeholder{background:var(--background-input, var(--bg-elev))}.plc-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.plc-cover--sm .plc-placeholder .icon{font-size:22px}.plc-cover--md .plc-placeholder .icon{font-size:48px}.plc-cover--lg .plc-placeholder .icon{font-size:64px}.plc-cover--n1{grid-template-columns:1fr;grid-template-rows:1fr}.plc-cover--n2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.plc-cover--n3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.plc-cover--n3 .plc-tile--0{grid-row:1 / span 2}.plc-cover--n4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.plc-cover--sm{position:relative;inset:auto;width:40px;height:40px;border-radius:var(--r-sm, 6px);flex-shrink:0}.plc-cover--lg{position:relative;inset:auto;width:200px;height:200px;border-radius:var(--r-lg, 16px);flex-shrink:0;box-shadow:var(--shadow-md)}@media(max-width:768px){.plc-cover--lg{width:128px;height:128px}}.pls-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pls-header .btn{flex:0 0 auto;white-space:nowrap}.pls-empty-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.pls-more>summary{cursor:pointer}.pls-more[open]>button{margin-top:var(--sp-2)}.pls-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px 0 4px;margin-bottom:4px;border:none;background:transparent;border-radius:var(--r-pill, 999px);color:var(--text-secondary);font-size:14px;cursor:pointer}.pls-back:hover{color:var(--text-primary);background:var(--surface-hover)}.pls-detail-header{display:flex;gap:var(--sp-5, 24px);align-items:flex-start;padding:var(--sp-3, 12px) 0 var(--sp-4, 16px)}@media(max-width:768px){.pls-detail-header{gap:var(--sp-4, 16px)}}.pls-detail-meta{flex:1;min-width:0}.pls-title-input{width:100%;border:1px solid transparent;border-radius:var(--r-md, 10px);background:transparent;padding:2px 8px;margin:0 0 4px -8px;font-family:var(--font-serif);font-size:1.75rem;font-weight:700;letter-spacing:-.01em;color:var(--text-primary);outline:none}@media(max-width:768px){.pls-title-input{font-size:1.35rem}}.pls-title-input:hover{border-color:var(--border-color, var(--divider))}.pls-title-input:focus{border-color:var(--accent-color);background:var(--background-input, var(--bg-elev))}.pls-detail-counts{color:var(--text-secondary);font-size:14px;margin-bottom:var(--sp-3, 12px)}.pls-detail-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pls-detail-actions .btn.btn-sm{min-height:40px;padding:8px 18px;font-size:14px}.pls-detail-actions .btn.btn-danger{background:transparent;color:var(--danger-color);border:1.5px solid color-mix(in srgb,var(--danger-color) 55%,transparent)}.pls-detail-actions .btn.btn-danger:not(:disabled):hover{background:color-mix(in srgb,var(--danger-color) 12%,transparent);border-color:var(--danger-color)}.pls-tracks{display:flex;flex-direction:column;margin-top:var(--sp-4, 16px);border:1px solid var(--border-color, var(--divider));border-radius:14px;background:var(--surface, var(--bg-elev));overflow:hidden}.pls-search{display:flex;align-items:center;min-height:44px;padding:0 4px 0 10px;border-bottom:1px solid var(--border-color, var(--divider));background:var(--surface-inset, var(--bg-elev))}.pls-search-icon{flex:0 0 auto;color:var(--text-muted);pointer-events:none}.pls-search-input{flex:1 1 auto;min-width:0;min-height:44px;padding:0 var(--sp-2, 8px);border:0;background:transparent;font-family:inherit;font-size:16px;color:var(--text-primary)}.pls-search-input::placeholder{color:var(--text-muted)}.pls-search-input:focus-visible{outline:none}.pls-search-input::-webkit-search-cancel-button,.pls-search-input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.pls-search-clear{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--r-md, 8px);background:transparent;color:var(--text-muted);cursor:pointer}.pls-search-clear:hover{color:var(--text-primary)}.pls-search-clear:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pls-search-empty{padding:16px 14px;color:var(--text-secondary);font-size:14px}.pls-search:focus-within{border-bottom-color:var(--accent)}.pls-track{display:flex;align-items:center;gap:10px;padding:6px 10px;min-height:56px;border-bottom:1px solid var(--border-color, var(--divider))}.pls-track:last-child{border-bottom:none}.pls-track--current{background:color-mix(in srgb,var(--accent-color, #E8624A) 10%,transparent)}.pls-track-num{width:24px;text-align:right;color:var(--text-muted);font-size:13px;font-variant-numeric:tabular-nums;flex:0 0 auto}.pls-eq{display:inline-flex;align-items:flex-end;justify-content:flex-end;gap:2px;height:16px;width:24px;flex:0 0 auto}.pls-eq span{width:3px;background:var(--accent-color);border-radius:1px;animation:plsEqBounce .9s ease-in-out infinite}.pls-eq span:nth-child(2){animation-delay:.25s}.pls-eq span:nth-child(3){animation-delay:.5s}.pls-eq--paused span{animation-play-state:paused}@keyframes plsEqBounce{0%,to{height:5px}50%{height:15px}}.pls-track-play{width:44px;height:44px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color, var(--divider));border-radius:50%;background:transparent;color:var(--text-primary);cursor:pointer}.pls-track-play:hover{background:var(--accent-color);border-color:var(--accent-color);color:var(--text-on-accent, #fff)}.pls-track-play .icon{font-size:22px}.pls-track-thumb{width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-sm, 6px);object-fit:cover;background:var(--background-input, var(--bg-elev))}.pls-track-thumb--empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.pls-track-thumb--empty .icon{font-size:20px}.pls-track-info{flex:1;min-width:0}.pls-track-title{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pls-track-duration{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.pls-track-controls{display:flex;align-items:center;gap:0;flex:0 0 auto}.pls-track-ctl{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--r-md, 10px);color:var(--text-muted);cursor:pointer}.pls-track-ctl:hover:not(:disabled){color:var(--text-primary);background:var(--surface-hover)}.pls-track-ctl:disabled{opacity:.3;cursor:default}.pls-track-ctl .icon{font-size:20px}.pls-track-ctl--remove:hover:not(:disabled){color:var(--danger-color)}@media(max-width:480px){.pls-track-num,.pls-eq{display:none}.pls-track{padding:6px;gap:8px}}.pls-unavailable{display:flex;flex-direction:column;gap:4px;padding:10px 12px;font-size:13px;color:var(--text-secondary);background:var(--status-warning-bg, rgba(239, 108, 0, .12))}.pls-unavailable .icon{font-size:18px;color:var(--status-warning, #ef6c00)}.pls-unavailable-note{display:flex;align-items:center;gap:8px}.pls-unavailable-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding-left:26px}.pls-unavailable-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.pls-unavailable-row .pls-track-ctl .icon{font-size:18px}.atp-list{display:flex;flex-direction:column;gap:4px;max-height:40dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.atp-row{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 10px;border:1px solid var(--border-color, var(--divider));border-radius:12px;cursor:pointer}.atp-row:hover{background:var(--surface-hover)}.atp-row--selected{border-color:var(--accent-color);background:color-mix(in srgb,var(--accent-color, #E8624A) 8%,transparent)}.atp-row input[type=radio]{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent-color)}.atp-row-info{flex:1;min-width:0}.atp-row-title{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.atp-row-meta{font-size:12px;color:var(--text-secondary)}.atp-new{margin-top:12px}.atp-dialog{max-width:520px}.atp-skeleton{height:60px}.atp-error{color:var(--error-color)}.atp-group{margin:var(--sp-3) 0 var(--sp-1);font-size:var(--fs-small);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.atp-group:first-child{margin-top:0}.atp-new .btn-sm{margin-top:var(--sp-2)}.pls-bg{position:fixed;z-index:0;overflow:hidden;background:#14110e;top:var(--nav-h);left:0;right:0;bottom:var(--player-height, 0px)}.main-content.header-collapsed .pls-bg{top:28px}.pls-bg-scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#0a080642,#0a08066b)}.pls-content{position:relative;z-index:1}.pls-hasbg .pls-tracks{background:#ffffff0f;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-color:#ffffff1f}.pls-hasbg .pls-track{background:transparent;border-bottom-color:#ffffff17}.pls-hasbg .pls-search{background:#ffffff0a;border-bottom-color:#ffffff17}.pls-hasbg .pls-search:focus-within{border-bottom-color:var(--accent)}.pls-hasbg .pls-search-input{color:#fffffff2}.pls-hasbg .pls-search-input::placeholder,.pls-hasbg .pls-search-icon,.pls-hasbg .pls-search-clear,.pls-hasbg .pls-search-empty{color:#ffffffa8}.pls-hasbg .pls-search-clear:hover{color:#fff}.pls-hasbg .pls-track--current{background:#ffffff1a}.pls-hasbg .pls-title-input,.pls-hasbg .pls-detail-counts{text-shadow:0 1px 5px rgba(0,0,0,.55)}.pls-hasbg .pls-back,.pls-hasbg .pls-title-input,.pls-hasbg .pls-track-title{color:#fffffff2}.pls-hasbg .dashboard-welcome,.pls-hasbg .dashboard-welcome p,.pls-hasbg .pls-unavailable{color:#ffffffdb}.pls-hasbg .pls-detail-counts,.pls-hasbg .pls-track-num,.pls-hasbg .pls-track-duration,.pls-hasbg .pls-track-ctl{color:#ffffffa8}.pls-hasbg .pls-track-play{color:#ffffffeb;border-color:#ffffff38}.pls-hasbg .pls-track-ctl:hover:not(:disabled),.pls-hasbg .pls-back:hover{color:#fff;background:#ffffff1f}.pls-public{min-height:100vh;background:#14110e;color:var(--text-primary, #ececec);position:relative}.pls-public .pls-bg{top:0;left:0;right:0}.pls-public-content{max-width:720px;margin:0 auto;padding:24px 16px calc(20px + var(--player-height, 0px));min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.pls-public-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,7vw,34px);font-weight:700;margin:0;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.greetlet-tv-zoom{--tv-zoom: .5;--nav-h: 0px}html.greetlet-tv-zoom .header,html.greetlet-tv-zoom .header-peek{display:none}html.greetlet-tv-zoom .main-content,html.greetlet-tv-zoom .main-content.header-collapsed{margin-top:0;min-height:100vh;--main-pad: var(--sp-3)}html.greetlet-tv-zoom .pls-public,html.greetlet-tv-zoom .pls-detail:not(.pls-public){zoom:var(--tv-zoom);-webkit-text-size-adjust:100%;text-size-adjust:100%}html.greetlet-tv-zoom .pls-public .pls-bg,html.greetlet-tv-zoom .pls-detail:not(.pls-public) .pls-bg{bottom:calc(var(--player-height, 0px) / var(--tv-zoom))}.pls-tv-dialog-url{display:block;margin-top:14px;font-size:clamp(22px,5vw,28px);font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;user-select:all;-webkit-user-select:all;color:var(--text-primary);word-break:break-all}.pls-brand.gcv-kfs-brand{position:fixed;z-index:calc(var(--z-sticky) - 1);bottom:max(12px,env(safe-area-inset-bottom),calc(var(--player-height, 0px) + 8px))}.pls-public-owner{margin-top:4px;color:#ffffffd1;text-shadow:0 1px 5px rgba(0,0,0,.55)}.pls-hub-chips{margin-left:0;margin-top:12px}.pls-hasbg .pls-hub-chips .gd-chip:not(.is-primary):not(.is-share){background:#ffffff1a;border-color:#fff3;color:#fff}.pls-hasbg .pls-hub-chips .gd-chip:not(.is-primary):not(.is-share):hover{background:#ffffff2b}.pls-hasbg .pls-hub-chips .gd-chip.is-active:not(.is-share){border-color:#fff;color:#fff}.pls-played{list-style:none;margin:6px 0 2px;padding:0;display:flex;flex-direction:column;gap:2px}.pls-played-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:3px 0}.pls-played-num{flex:0 0 auto;width:18px;text-align:right;color:var(--text-secondary, #999);font-variant-numeric:tabular-nums}.pls-played-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #2A2017)}.pls-played-meta{flex:0 0 auto;color:var(--text-secondary, #888);font-variant-numeric:tabular-nums}.pls-public--msg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center}.pls-public-msg{color:#ffffffb8;margin:0}.pls-back-list{list-style:none;margin:0;padding:0;counter-reset:pls-track}.pls-back-row{display:flex;align-items:baseline;gap:var(--sp-2);padding:3px 0;font-size:var(--fs-caption);line-height:1.35;counter-increment:pls-track}.pls-back-row:before{content:counter(pls-track) ".";flex:0 0 auto;min-width:14px;color:var(--muted);font-variant-numeric:tabular-nums}.pls-back-name{flex:1 1 auto;min-width:0;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pls-back-len{flex:0 0 auto;color:var(--ink-soft);font-variant-numeric:tabular-nums}.pls-listbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:var(--sp-4, 16px);padding:0 4px}.pls-listbar:has(.pls-listbar-pair){justify-content:flex-start;flex-wrap:wrap;gap:8px 28px}.pls-listbar-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#ffffffbd;text-shadow:0 1px 5px rgba(0,0,0,.55)}.pls-listbar-pair{display:inline-flex;align-items:center;gap:8px}.pls-hasbg .ds-switch{background:color-mix(in srgb,var(--share-paper) 28%,transparent)}.pls-hasbg .ds-switch:after{background:var(--share-paper)}.pls-hasbg .ds-switch[aria-checked=true]{background:var(--accent)}.pls-listbar+.pls-tracks{margin-top:6px}.pls-stage{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3, 12px);min-height:62dvh;padding:var(--sp-4, 16px) 0;text-align:center}.pls-stage-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#ffffffb3;text-shadow:0 1px 5px rgba(0,0,0,.55)}.pls-stage-cover{width:148px;height:148px;border-radius:var(--r-lg, 16px);object-fit:cover;box-shadow:0 12px 32px #00000073}.pls-stage-cover--empty{display:flex;align-items:center;justify-content:center;background:#ffffff1a;color:#ffffffb3}.pls-stage-cover--empty .icon{font-size:48px}.pls-stage-now{max-width:min(560px,92vw)}.pls-stage-title{font-family:var(--font-serif);font-size:clamp(24px,6vw,38px);font-weight:700;line-height:1.15;color:#fffffffa;text-shadow:0 2px 14px rgba(0,0,0,.6)}.pls-stage-next{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-top:10px;min-width:0;font-size:14px;color:#fffc;text-shadow:0 1px 6px rgba(0,0,0,.55)}.pls-stage-next-label{flex:0 0 auto;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#ffffff94}.pls-stage-next-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pls-stage-transport{display:flex;align-items:center;gap:6px;margin-top:4px;padding:8px 10px;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-pill, 999px);background:#ffffff14;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}.pls-stage-btn{width:48px;height:48px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:#ffffffdb;cursor:pointer}.pls-stage-btn:hover{background:#ffffff24;color:#fff}.pls-stage-btn .icon{font-size:24px}.pls-stage-btn--step .icon{font-size:30px}.pls-stage-btn--on{color:var(--accent-color)}.pls-stage-btn--play{width:68px;height:68px;background:var(--accent-color);color:var(--text-on-accent);box-shadow:0 8px 24px #00000059}.pls-stage-btn--play .icon{font-size:38px}.pls-stage-btn--play:hover{background:var(--accent-color);filter:brightness(1.08)}.pls-stage-idle{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3, 12px)}.pls-stage-idle-line{margin:0;color:#ffffffd1;text-shadow:0 1px 6px rgba(0,0,0,.55)}.pls-stage-idle-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.pls-stage-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:var(--sp-2, 8px)}.pls-stage-act{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill, 999px);background:#ffffff14;color:#ffffffe6;font-size:14px;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pls-stage-act:hover{background:#ffffff29;color:#fff}@media(max-width:480px){.pls-stage-cover{width:112px;height:112px}.pls-stage-btn{width:44px;height:44px}.pls-stage-btn--play{width:62px;height:62px}}.pls-hasbg .pls-detail-actions .btn.btn-secondary,.pls-stage-idle-actions .btn.btn-secondary{background:#ffffff1a;border-color:#fff3;color:#fffffff0}.pls-hasbg .pls-detail-actions .btn.btn-secondary:not(:disabled):hover,.pls-stage-idle-actions .btn.btn-secondary:not(:disabled):hover{background:#ffffff2b}.pls-hasbg .pls-detail-actions .btn.pls-mode-on,.pls-stage-idle-actions .btn.pls-mode-on{border:1.5px solid var(--accent-color);background:color-mix(in srgb,var(--accent-color) 20%,transparent);color:var(--accent-color)}.pls-hasbg .pls-detail-actions .btn.pls-mode-on:not(:disabled):hover,.pls-stage-idle-actions .btn.pls-mode-on:not(:disabled):hover{background:color-mix(in srgb,var(--accent-color) 32%,transparent)}/**
 * collections.css — Collections (DESIGN_SPEC §3.32): My Greetlets' Collections
 * tab and shelf, the Add to collection sheet and a collection's page. Tokens only.
 *
 * @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
 */.mc-scope-tab--box{position:relative;display:inline-flex;align-items:center;gap:6px;margin-inline-start:var(--sp-2)}.mc-scope-tab--box:before{content:"";position:absolute;inset-block:6px;inset-inline-start:calc(-1 * var(--sp-1) - 3px);width:1px;background:var(--divider)}.mc-scope-tab--box .icon{font-size:16px}.mc-scope:has(>.mc-scope-tab--box){max-width:100%;flex-wrap:wrap}.mc-scope:has(>.mc-scope-tab--box)>.mc-scope-tab{white-space:nowrap}@media(max-width:389px){.mc-scope:has(>.mc-scope-tab--box){border-radius:var(--r-lg)}.mc-scope-tab--box{margin-inline-start:0}.mc-scope-tab--box:before{display:none}}.coll-box{position:relative;min-width:0;padding-top:var(--sp-3)}.coll-box:not(.coll-box--new):before,.coll-box:not(.coll-box--new):after{content:"";position:absolute;top:0;height:var(--sp-6);border:1.5px solid var(--edge);border-radius:var(--r-lg);background:var(--surface-inset)}.coll-box:not(.coll-box--new):before{inset-inline:12%}.coll-box:not(.coll-box--new):after{inset-inline:6%;top:6px;background:var(--bg-elev)}.coll-box-art{position:relative;z-index:1;display:block;width:100%;aspect-ratio:3 / 4;padding:0;border:1.5px solid var(--divider);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-inset);color:var(--ink-soft);font:inherit;cursor:pointer}.coll-box-art:hover{border-color:var(--accent)}.atc-text{display:flex;flex-direction:column;min-width:0}.atc-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.atc-meta{font-size:var(--fs-caption);color:var(--muted)}.atc-body{display:flex;flex-direction:column;gap:var(--sp-3);padding-bottom:var(--sp-2)}.atc-lead{margin:0}.atc-note{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset);font-size:14px}.atc-note .icon{color:var(--accent)}.atc-label{margin:var(--sp-1) 0 0;font-size:var(--fs-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.atc-list{display:flex;flex-direction:column;gap:var(--sp-2)}.atc-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-2);border:1.5px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--ink);font:inherit;text-align:start;cursor:pointer}.atc-row:hover:not(:disabled){border-color:var(--accent);background:var(--accent-surface)}.atc-row:disabled{cursor:default;opacity:.75}.atc-row--new{justify-content:center;gap:var(--sp-1);border-style:dashed;color:var(--ink-soft);font-weight:600}.atc-row--new .icon,.atc-add{color:var(--accent)}.atc-add{margin-inline-start:auto}.atc-cover{position:relative;flex:none}.atc-tick{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent) 72%,transparent);color:var(--text-on-accent)}.atc-new-form{display:flex;flex-direction:column;gap:var(--sp-2)}.atc-hint{margin:0;font-size:var(--fs-caption);color:var(--muted)}.atc-new-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.atc-skeleton{height:120px;border-radius:var(--r-lg)}.atc-row:focus-visible,.coll-box-art:focus-visible,.coll-note:focus-visible,.coll-note-add:focus-visible,.coll-link:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.coll-chips{flex-wrap:wrap;overflow:visible}.coll-eyebrow{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.coll-eyebrow .icon{color:var(--accent)}.coll-lost{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1.5px dashed var(--edge);border-radius:var(--r-md);color:var(--ink-soft);font-size:14px}.coll-lost .icon{color:var(--accent)}.coll-link{margin-inline-start:auto;min-height:36px;padding:0 var(--sp-2);border:0;background:none;color:var(--ink);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.coll-selectbar{margin-bottom:var(--sp-3)}.coll-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);border:1.5px dashed var(--edge);border-radius:var(--r-lg);text-align:center;color:var(--ink-soft)}.coll-empty p{margin:0}.coll-empty>.icon{font-size:32px;color:var(--accent)}.coll-note,.coll-note-add{display:block;margin-top:var(--sp-2);padding:0;border:0;background:none;font:inherit;font-size:var(--fs-caption);text-align:start;cursor:pointer}.coll-note{padding-inline-start:var(--sp-2);border-inline-start:2px solid var(--accent);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.coll-note-add{min-height:32px;color:var(--ink-soft);text-decoration:underline}.coll-note-form{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-2)}.coll-note-input{width:100%;resize:vertical}.coll-note-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-2)}.coll-note-count{margin-inline-end:auto;font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.coll-reorder{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);max-width:640px}.coll-reorder-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);border:1.5px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.coll-reorder-row.is-dragging{opacity:.5}.coll-reorder-row.is-over{box-shadow:inset 0 0 0 2px var(--accent)}.coll-reorder-thumb{flex:none;display:grid;place-items:center;width:36px;height:48px;border-radius:var(--r-sm);background:var(--surface-inset);object-fit:cover}/**
 * @fileoverview The night's pages — Tonight, its queue and recap, Get ready, the Live card — DESIGN_SPEC
 * §3.40.9. Thumb-first: a phone's width at most, the TV's 16:9 picture on top, the coral button on
 * the Compass bar. Tokens only.
 * @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
 */.tn{width:100%;max-width:640px;margin:0 auto;padding:var(--sp-2) var(--sp-4) var(--sp-6);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--sp-3)}.tn-head{display:flex;align-items:center;gap:var(--sp-2);margin:0 calc(-1 * var(--sp-2))}.tn-icon{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);cursor:pointer}.tn-icon .icon{font-size:28px}.tn-icon:hover{background:var(--surface-inset);color:var(--ink)}.tn-title{flex:1;min-width:0}.tn-title h1{margin:0;font-family:var(--font-serif);font-size:var(--fs-h2);line-height:1.15;color:var(--ink)}.tn-title span,.tn-sub{display:block;margin:2px 0 0;color:var(--muted);font-size:var(--fs-small)}.tn-more{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tn-badge{flex:0 0 auto;min-width:24px;height:24px;padding:0 7px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--fs-small);font-weight:700;line-height:24px;text-align:center}.tn-chip{flex:0 0 auto;padding:4px 10px;border:1px solid var(--edge);border-radius:var(--r-pill);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:600;white-space:nowrap}.tn-lab{margin:var(--sp-1) 0 var(--sp-2);color:var(--muted);font-size:var(--fs-caption);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.tn-empty{margin:0;padding:var(--sp-4);border:1px dashed var(--edge);border-radius:var(--r-lg);color:var(--ink-soft);text-align:center}.tn-on{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.tn-on b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.tn-screens{margin-left:auto;flex:0 0 auto;color:var(--muted);font-size:var(--fs-small)}.tn-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700;letter-spacing:.07em;text-transform:uppercase}.tn-pill i{width:8px;height:8px;border-radius:50%;background:var(--muted)}.tn-pill.is-running,.tn-pill.is-moment,.tn-live-pill{border-color:color-mix(in srgb,var(--confirm) 55%,transparent);background:color-mix(in srgb,var(--confirm) 16%,transparent);color:var(--ink)}.tn-pill.is-running i,.tn-pill.is-moment i,.tn-live-pill i{background:var(--confirm);box-shadow:0 0 0 3px color-mix(in srgb,var(--confirm) 25%,transparent)}.tn-pill.is-paused,.tn-pill.is-black{border-color:var(--accent-outline);background:var(--accent-surface);color:var(--accent-deep)}.tn-pill.is-paused i,.tn-pill.is-black i{background:var(--accent)}.tn-trans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2)}.tn-trans .btn{min-height:60px;flex-direction:column;gap:2px;justify-content:center;border-radius:var(--r-lg)}.tn-trans .btn .icon{font-size:26px}.tn-wait{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--accent-outline);border-radius:var(--r-lg);background:var(--accent-surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.tn-wait.is-in{border-color:var(--divider);background:var(--bg-elev)}.tn-wait>.icon{color:var(--ink-soft)}.tn-thumbs{display:flex;flex:0 0 auto}.tn-thumbs:empty{display:none}.tn-thumbs img{width:40px;height:40px;margin-left:-12px;border:2px solid var(--bg);border-radius:var(--r-md);object-fit:cover}.tn-thumbs img:first-child{margin-left:0}.tn-wt{flex:1;min-width:0;display:flex;flex-direction:column}.tn-wt b{font-size:var(--fs-body)}.tn-wt span{color:var(--ink-soft);font-size:var(--fs-small)}.tn-puton{display:flex;gap:var(--sp-2);margin-right:calc(-1 * var(--sp-4));padding:2px var(--sp-4) var(--sp-1) 2px;overflow-x:auto;scrollbar-width:none}.tn-puton::-webkit-scrollbar{display:none}.tn-puton .ds-card{flex:0 0 104px}.tn-puton .ds-card-plate{height:52px}.tn-puton .ds-card.is-on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-outline)}.tn-spark{position:absolute;top:4px;right:4px;font-size:18px;color:var(--gold);text-shadow:0 0 6px var(--scrim-dim)}.tn-auto{padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev)}.tn-auto-head{display:flex;align-items:center;gap:var(--sp-3);color:var(--ink)}.tn-cue{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev)}.tn-cue-tm{min-width:64px;color:var(--gold);font-weight:700}.tn-cue-tm small{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.tn-cue-w{flex:1;min-width:0;font-weight:600;color:var(--ink)}.tn-stat{display:flex;align-items:center;gap:var(--sp-2);margin:0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small)}.tn-stat .icon{color:var(--gold)}.tn-stat b{color:var(--ink)}.tn-queue{display:flex;flex-direction:column;gap:var(--sp-3)}.tn-q{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none}.tn-qcard{overflow:hidden;border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev)}.tn-qcard.is-down .tn-qi{opacity:.4}.tn-qi{position:relative;min-height:64px;background:var(--surface-inset)}.tn-qi img,.tn-qi video{display:block;width:100%;max-height:260px;object-fit:cover}.tn-qi audio{display:block;width:calc(100% - 2 * var(--sp-3));margin:44px var(--sp-3) var(--sp-3)}.tn-qnote{margin:0;padding:44px var(--sp-4) var(--sp-4);font-family:var(--font-serif);font-style:italic;font-size:var(--fs-body-lg);line-height:1.4;color:var(--ink)}.tn-qkind,.tn-qdur{position:absolute;display:flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-pill);background:var(--scrim-heavy);color:var(--text-on-accent);font-size:var(--fs-caption);font-weight:600;pointer-events:none}.tn-qkind{top:9px;left:9px}.tn-qdur{right:9px;bottom:9px}.tn-qm{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.tn-qwho{flex:1;min-width:0;display:flex;flex-direction:column}.tn-qwho b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tn-qwho span{color:var(--muted);font-size:var(--fs-caption)}.tn-ok .icon{color:var(--confirm)}.tn-over{display:flex;flex-direction:column;gap:var(--sp-3)}.tn-collage{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:4px;height:180px;overflow:hidden;border-radius:var(--r-lg)}.tn-collage img{width:100%;height:100%;object-fit:cover;display:block}.tn-collage img:first-child{grid-row:1 / 3}.tn-collage.n-1{grid-template-columns:1fr}.tn-collage.n-2 img:last-child{grid-row:1 / 3}.tn-recap{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.tn-recap li{display:flex;align-items:flex-start;gap:var(--sp-2);color:var(--ink-soft);line-height:1.35}.tn-recap li b{color:var(--ink)}.tn-recap .icon{color:var(--gold)}.tn-give{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--accent-outline);border-radius:var(--r-lg);background:var(--bg-elev)}.tn-give h2{margin:0;font-family:var(--font-serif);font-size:var(--fs-h3);color:var(--ink)}.tn-give p{margin:0;color:var(--ink-soft);font-size:var(--fs-small);line-height:1.42}.tn-couple{display:flex;align-items:center;gap:var(--sp-2);min-width:0;overflow-wrap:anywhere;color:var(--ink)}.tn-avs{display:flex;flex:0 0 auto}.tn-avs span{display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--bg-elev);border-radius:50%;background:var(--accent);color:var(--text-on-accent);font-weight:700}.tn-avs span+span{margin-left:-9px;background:var(--sage)}.tn-tog{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--divider);color:var(--ink)}.tn-live{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;max-width:640px;margin:0 0 var(--sp-4);padding:var(--sp-3);box-sizing:border-box;border:1px solid var(--accent-outline);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:inset 0 0 0 1px var(--accent-outline),var(--shadow-sm)}.tn-live h2{margin:0;font-family:var(--font-serif);font-size:var(--fs-h3);line-height:1.15;color:var(--ink)}.tn-live>.tn-sub{margin-top:calc(-1 * var(--sp-1))}.tn-live-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2)}.tn-live-row .tn-sub{margin:0}.tn-live-stats{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin:0;color:var(--ink-soft);font-size:var(--fs-small)}.tn-live-stats b{color:var(--ink)}.tn-live-go{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:var(--sp-2) 0 0;border:0;border-top:1px solid var(--divider);background:transparent;color:var(--accent-deep);font:inherit;font-weight:700;cursor:pointer}.nks{width:calc(100% - 2 * var(--sp-4));max-width:960px;margin:var(--sp-4) auto 0;padding:var(--sp-5) var(--sp-4) var(--sp-4);box-sizing:border-box;border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);text-align:center;color:var(--ink)}.nks-eb{margin:0;color:var(--gold);font-size:var(--fs-caption);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.nks h2{margin:var(--sp-1) 0 0;font-family:var(--font-serif);font-size:var(--fs-h1);line-height:1.1}.nks-sub{margin:var(--sp-1) 0 0;color:var(--ink-soft);font-size:var(--fs-small)}.nks-nums{display:flex;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-4)}.nks-nums>div{flex:1 1 0;max-width:140px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-2) var(--sp-1);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset)}.nks-nums b{font-family:var(--font-serif);font-size:var(--fs-h2);line-height:1}.nks-nums span{color:var(--ink-soft);font-size:var(--fs-caption)}.nks-nums .icon{color:var(--gold);font-size:24px}.tbd-eyebrow{margin:0;color:var(--gold);font-size:var(--fs-caption);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.tbd-hi{margin:0}.tbd-tiles{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;text-align:left}.tbd-tiles .ds-card{flex-direction:row;align-items:center;min-height:72px}.tbd-tiles .ds-card-plate{align-self:stretch;flex:0 0 72px;height:auto;border-radius:calc(var(--r-lg) - 1px) 0 0 calc(var(--r-lg) - 1px)}.tbd-tiles .ds-card-name{white-space:normal}.tbd-go{margin-right:var(--sp-2);color:var(--muted)}.tbd-live{margin-right:var(--sp-3);padding:4px 9px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.gr-step{display:flex;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.gr-step.is-next{border-color:var(--accent-outline);box-shadow:inset 0 0 0 1px var(--accent-outline)}.gr-n{flex:0 0 28px;height:28px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:50%;background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small);font-weight:700}.gr-n .icon{font-size:18px}.gr-step.is-done .gr-n{border-color:color-mix(in srgb,var(--confirm) 60%,transparent);background:color-mix(in srgb,var(--confirm) 18%,transparent);color:var(--confirm)}.gr-step.is-next .gr-n{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.gr-b{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.gr-b>b,.gr-sh>b{color:var(--ink);font-size:var(--fs-body)}.gr-b>p{margin:0;color:var(--ink-soft);font-size:var(--fs-small);line-height:1.4}.gr-b>.cds-input,.gr-b>.ds-seg,.gr-b>.emc-set{align-self:stretch}.gr-sh{align-self:stretch;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.gr-sh>b{margin-right:auto}.gr-uses{display:flex;align-items:center;gap:5px;color:var(--gold);font-size:var(--fs-caption);font-weight:600}.gr-uses .icon{font-size:15px}.gr-stepper{display:inline-flex;align-items:center;overflow:hidden;border:1px solid var(--edge);border-radius:var(--r-pill)}.gr-stepper button{min-width:44px;min-height:40px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-body-lg);font-weight:700;cursor:pointer}.gr-stepper button:disabled{color:var(--muted);cursor:default}.gr-stepper output{min-width:52px;padding:0 var(--sp-2);border-inline:1px solid var(--edge);color:var(--ink);font-weight:700;line-height:40px;text-align:center}.gr-chip{display:inline-flex;align-items:center;gap:5px;background:transparent;font:inherit;font-size:var(--fs-caption);font-weight:600;cursor:pointer}span.gr-chip{cursor:default}.gr-av{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--text-on-accent);font-size:9px;font-weight:700}.gr-ok{color:var(--confirm);vertical-align:-3px}.gr-addr{color:var(--ink);font-size:var(--fs-body-lg);overflow-wrap:anywhere}/**
 * greetletTypesPreferences.css
 *
 * @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
 */.greetlet-types-prefs h3{margin-top:0}.greetlet-types-list{display:grid;gap:var(--sp-2)}.greetlet-type-choice{display:flex;align-items:center;gap:var(--sp-3);min-height:64px;padding:var(--sp-2) 0;border-bottom:1px solid var(--divider);cursor:pointer}.greetlet-type-choice>.icon{color:var(--accent);flex-shrink:0}.greetlet-type-copy{display:grid;flex:1;min-width:0;gap:var(--sp-1)}.greetlet-type-copy strong{color:var(--ink)}.greetlet-type-copy small{color:var(--ink-soft);font-size:var(--fs-small);overflow-wrap:anywhere}.greetlet-type-choice .ds-switch{flex-shrink:0}.greetlet-types-save{min-height:1.5em;color:var(--ink-soft);font-size:var(--fs-small)}/**
 * blockArt.css — the block drawings' colours (DESIGN_SPEC §3.6.7).
 *
 * Each shape names a role; this file gives the role a colour from the block's
 * section family (--sec-*, the ten the finished page already bands by), so one
 * drawing reads in both themes. A sketch is the same drawing in grey: a block
 * colours in when it is filled.
 *
 * @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
 */.ba{--ba-hue: var(--muted);--ba-on: var(--text-on-accent);--ba-tint: 15%;--ba-mid: 34%;--ba-paper: var(--bg-elev);--ba-soft: color-mix(in srgb, var(--ba-hue) var(--ba-tint), var(--bg-elev));--ba-a: color-mix(in srgb, var(--ba-hue) 90%, var(--ink));--ba-b: color-mix(in srgb, var(--ba-hue) var(--ba-mid), var(--bg-elev));--ba-d: color-mix(in srgb, var(--ba-hue) 48%, var(--ink));position:relative;display:block;overflow:hidden;background:var(--ba-soft);transition:background var(--t-medium) var(--easing)}:root[data-theme=dark] .ba{--ba-tint: 24%;--ba-mid: 44%;--ba-paper: color-mix(in srgb, var(--ink) 14%, var(--bg-elev))}.ba-fam-brand{--ba-hue: var(--sec-brand)}.ba-fam-message{--ba-hue: var(--sec-message)}.ba-fam-song{--ba-hue: var(--sec-song)}.ba-fam-shop{--ba-hue: var(--sec-shop)}.ba-fam-plan{--ba-hue: var(--sec-plan);--ba-on: var(--share-ink)}.ba-fam-go{--ba-hue: var(--sec-go)}.ba-fam-people{--ba-hue: var(--sec-people)}.ba-fam-gifts{--ba-hue: var(--sec-gifts)}.ba-fam-treasure{--ba-hue: var(--sec-treasure)}.ba-fam-know{--ba-hue: var(--sec-know)}.ba-svg{display:block;width:100%;height:100%;padding:6px;transition:filter var(--t-medium) var(--easing),opacity var(--t-medium) var(--easing)}.ba-svg text{font-family:var(--font-sans)}.ba-picture{display:block;height:calc(100% - var(--sp-3));margin:6px auto;border-radius:var(--r-sm);box-shadow:var(--shadow-sm)}.ba.is-sketch{background:transparent;border-bottom:1px dashed var(--edge)}.ba.is-sketch .ba-svg{filter:grayscale(1);opacity:.45}.ba-svg .a{fill:var(--ba-a)}.ba-svg .b{fill:var(--ba-b)}.ba-svg .c,.ba-svg .tc{fill:var(--ba-paper)}.ba-svg .d,.ba-svg .ta{fill:var(--ba-d)}.ba-svg .o{fill:var(--ba-on)}.ba-svg .pl{fill:var(--ba-soft)}.ba-svg :is(.sa,.sb,.sd,.so,.road,.wall){fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.ba-svg .sa{stroke:var(--ba-a)}.ba-svg .sb{stroke:var(--ba-b)}.ba-svg .sd{stroke:var(--ba-d)}.ba-svg .so{stroke:var(--ba-on)}.ba-svg .ol{stroke:var(--ba-b);stroke-width:1.5}.ba-svg .hair{stroke-width:1.6}.ba-svg .thick{stroke-width:7}.ba-svg .dash{stroke-dasharray:2.5 3.5}.ba-svg .road{stroke:var(--ba-paper);stroke-width:6;stroke-linecap:butt}.ba-svg .road.thin{stroke-width:3.5}.ba-svg .wall{stroke:var(--ba-d);stroke-width:2}.ba-svg .o5{opacity:.5}.ba-svg .o3{opacity:.3}.ba-check{position:absolute;top:var(--sp-2);right:var(--sp-2);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--bg-elev)}.ba-check .icon{font-size:14px;font-weight:700}.ba-check--partial{border:2px solid var(--ink);background:var(--bg-elev);color:var(--ink)}.ba-check--partial .icon{font-size:12px}/**
 * dateTimeInput.css
 *
 * @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
 */.date-time-input{min-width:0;max-width:100%;box-sizing:border-box}.time-picker{position:relative;display:block;min-width:0}.time-picker>input{width:100%}.tp-pop{position:absolute;top:calc(100% + var(--sp-1));left:0;z-index:var(--z-picker);display:flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md)}.tp-col{position:relative;display:flex;flex-direction:column;gap:2px;max-height:232px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.tp-cell{min-width:56px;min-height:44px;padding:0 var(--sp-3);flex:none;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);font:inherit;font-size:16px;font-variant-numeric:tabular-nums;cursor:pointer}.tp-cell:hover{background:var(--accent-surface)}.tp-cell[aria-pressed=true]{background:var(--accent);color:#fff;font-weight:600}.date-time-pair{display:flex;gap:var(--sp-2)}.date-time-pair>*{flex:1 1 0;min-width:0}/**
 * month-grid.css — the shared 7-column month grid.
 *
 * @fileoverview Moved out of the Occasions screen's stylesheet (2026-09-01,
 * CREW_CALENDAR_PLAN P4) so it ships with the shared component that imports
 * it; the Occasions screen itself was removed 2026-09-14. The `.occ-*` class
 * names are that history, kept so the move stayed byte-identical.
 *
 * @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
 */.occ-cal-nav{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2)}.occ-cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface);color:var(--ink);cursor:pointer}.occ-cal-nav-btn:hover{background:var(--accent-surface)}.occ-cal-title{flex:1 1 auto;min-width:0;text-align:center;font-size:var(--fs-body-lg);font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.occ-cal-today{flex:0 0 auto}.occ-cal{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface);overflow:hidden;margin:0 0 var(--sp-3)}.occ-cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--divider)}.occ-cal-wd{padding:var(--sp-1);text-align:center;font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.occ-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.occ-cal-cell{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-height:76px;min-width:0;padding:var(--sp-1);border:0;border-right:1px solid var(--divider);border-bottom:1px solid var(--divider);background:transparent;text-align:left;cursor:pointer;overflow:hidden}.occ-cal-grid .occ-cal-cell:nth-child(7n){border-right:0}.occ-cal-grid .occ-cal-cell:nth-last-child(-n+7){border-bottom:0}.occ-cal-cell.has-sent{background:var(--status-success-bg)}.occ-cal-cell:hover,.occ-cal-cell.is-selected{background:var(--accent-surface)}.occ-cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.occ-cal-date{font-size:var(--fs-small);font-weight:600;color:var(--ink)}.occ-cal-cell.is-outside .occ-cal-date{color:var(--muted);opacity:.55}.occ-cal-entries{display:flex;flex-direction:column;gap:2px;min-width:0}.occ-cal-entry{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;padding:1px 6px;border-radius:var(--r-pill);background:var(--surface-inset);font-size:var(--fs-caption);color:var(--ink-soft)}.occ-cal-entry-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.occ-cal-entry.occ-state--sent{background:var(--status-success-bg);color:var(--status-success);font-weight:600}.occ-cal-more{font-size:var(--fs-caption);color:var(--muted)}.occ-dot{width:8px;height:8px;border-radius:var(--r-pill);flex:0 0 auto;background:var(--muted)}.occ-state--none .occ-dot{background:var(--muted)}.occ-state--coming .occ-dot{background:var(--status-warning)}.occ-state--awaiting .occ-dot{background:var(--accent)}.occ-state--approved .occ-dot{background:var(--sage)}.occ-state--sent .occ-dot{background:var(--status-success)}.occ-state--bad .occ-dot{background:var(--status-error)}@media(max-width:640px){.occ-cal-cell{min-height:56px}.occ-cal-entries{flex-direction:row;flex-wrap:wrap;gap:3px}.occ-cal-entry,.occ-cal-entry.occ-state--sent{padding:0;background:transparent}.occ-cal-entry-name{display:none}}.occ-cal-add{position:absolute;top:2px;right:2px;font-size:16px;line-height:1;color:var(--accent);opacity:0;pointer-events:none;transition:opacity var(--t-instant) ease}.occ-cal-cell{position:relative}.occ-cal-cell:hover .occ-cal-add,.occ-cal-cell:focus-visible .occ-cal-add{opacity:1}@media(hover:none){.occ-cal-add{display:none}}.occ-seg{display:inline-flex;gap:2px;padding:2px;margin:0 0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--surface-inset)}.occ-seg-btn{min-height:44px;min-width:96px;padding:var(--sp-2) var(--sp-3);border:0;border-radius:var(--r-pill);background:transparent;color:var(--muted);font-size:var(--fs-body);font-weight:600;cursor:pointer}.occ-seg-btn:hover{color:var(--ink)}.occ-seg-btn.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}/**
 * @fileoverview Arrange (ArrangeView / ArrangeSection): the page as people open
 * it — what stays open at the top, then each section drawn as its ribbon in its
 * own colour (`--arr-c`), holding the deck's picture cards. Tokens only; the
 * cards count their columns from the place they sit in.
 *
 * @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
 */.arr{container:arr / inline-size;display:flex;flex-direction:column;gap:var(--sp-3);padding-bottom:var(--sp-5);text-align:left}.arr-intro{display:flex;align-items:flex-start;gap:var(--sp-2)}.arr-intro>div{flex:1 1 auto;min-width:0}.arr .arr-heading-main{margin:0;font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);letter-spacing:normal;text-transform:none;color:var(--ink)}.arr-intro p{margin:var(--sp-1) 0 0;color:var(--ink-soft);font-size:var(--fs-small);line-height:var(--lh-body)}.arr-more{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);cursor:pointer}.arr-more[aria-expanded=true]{border-color:var(--ink)}.arr-hint{margin:0;color:var(--ink-soft);font-size:var(--fs-small)}.arr-pin{display:flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:var(--sp-1) var(--sp-3);border:1px dashed var(--edge);border-radius:var(--r-md);color:var(--ink-soft);font-size:var(--fs-small)}.arr-pin b{color:var(--ink)}.arr-pin-lock{margin-left:auto;color:var(--muted)}.arr-zone-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-2)}.arr-zone-head b{font-size:var(--fs-caption);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.arr-zone-head span{color:var(--muted);font-size:var(--fs-caption);text-align:right}.arr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@container arr (min-width: 600px){.arr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container arr (min-width: 920px){.arr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.arr-top{min-height:72px;padding:var(--sp-2);border-radius:var(--r-lg);background:var(--surface-inset)}.arr-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);margin:0;padding:var(--sp-3);border:1.5px dashed var(--edge);border-radius:var(--r-md);color:var(--ink-soft);font-size:var(--fs-small);text-align:center}.arr-empty>div{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.arr-empty .btn{min-height:44px;gap:var(--sp-1)}.arr-card{min-height:124px}.arr-card.is-holder{border:2px dashed var(--accent);background:var(--accent-surface);box-shadow:none}.arr-card .arr-plate{height:60px}.arr-card.is-sketch .ds-card-sub{color:var(--muted)}.arr-grip{position:absolute;top:var(--sp-1);left:var(--sp-1);z-index:1;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:var(--r-md);background:var(--bg-elev);box-shadow:var(--shadow-sm);color:var(--ink-soft);cursor:grab;touch-action:none}.arr-grip:hover{color:var(--ink)}@media(hover:none){.arr-grip{width:44px;height:44px}}.arr-sections{display:flex;flex-direction:column;gap:var(--sp-3)}.arr-sec{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,var(--arr-c) 32%,var(--divider));border-radius:var(--r-xl);background:color-mix(in srgb,var(--arr-c) 11%,var(--bg-elev))}.arr-sec.is-holder{border:2px dashed var(--accent);background:var(--accent-surface)}.arr-sec.is-new{border-style:dashed}.arr-sec-head{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-1) var(--sp-2)}.arr-sec-head .arr-sec-grip{position:static;grid-row:1 / span 2;align-self:start}.arr-sec.is-new .arr-sec-head{grid-template-columns:auto minmax(0,1fr)}.arr-dot{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;cursor:pointer}.arr-dot i{width:16px;height:16px;border-radius:var(--r-pill);background:var(--arr-c);box-shadow:0 0 0 4px color-mix(in srgb,var(--arr-c) 28%,transparent)}.arr-name,.arr-heading{min-width:0;padding:var(--sp-1) var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink);font:inherit}.arr-name{font-size:var(--fs-small);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--arr-c) 70%,var(--ink))}.arr-name::placeholder{letter-spacing:.02em;text-transform:none;font-weight:600;color:var(--muted)}.arr-heading{grid-column:2 / -1;font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700}.arr-heading::placeholder{color:var(--muted);font-weight:600}.arr-name:hover,.arr-heading:hover{border-color:var(--edge)}.arr-name:focus,.arr-heading:focus{outline:none;border-color:var(--accent);background:var(--bg-elev)}.arr-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.arr-swatch{width:32px;height:32px;border:2px solid var(--bg-elev);border-radius:var(--r-pill);background:var(--arr-sw);box-shadow:0 0 0 1px var(--edge);cursor:pointer}.arr-swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.arr-swatch-more{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--ink-soft);font-size:var(--fs-small);font-weight:600}.arr-swatch-more input{width:36px;height:32px;padding:0;border:0;background:transparent}@media(hover:none){.arr-swatch{width:40px;height:40px}}.arr-panel{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-lg);background:var(--bg-elev);border:1px solid var(--divider)}.arr-menu{display:flex;flex-direction:column;gap:var(--sp-1)}.arr-menu button{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer}.arr-menu button:disabled{opacity:.45;cursor:default}.arr-menu .is-danger{color:var(--status-error)}.arr-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.arr-field .ds-seg{align-self:flex-start;flex-wrap:wrap}.arr-page-panel{--arr-c: var(--accent)}.arr-opacity-head{display:flex;align-items:center;gap:var(--sp-2);min-height:32px}.arr-opacity-head b{font-variant-numeric:tabular-nums;color:var(--ink)}.arr-opacity-head .btn{margin-left:auto}.arr-opacity-row{display:flex;align-items:center;gap:var(--sp-3);max-width:420px}.arr-opacity-sample{position:relative;flex:none;width:64px;height:44px;overflow:hidden;border-radius:var(--r-md);box-shadow:0 0 0 1px var(--edge);background:repeating-linear-gradient(135deg,var(--arr-c) 0 6px,color-mix(in srgb,var(--arr-c) 25%,var(--bg-elev)) 6px 12px)}.arr-opacity-sample:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--share-stage) var(--arr-fill),transparent)}.arr-opacity-sample i{position:relative;z-index:1;display:grid;place-items:center;height:100%;font-style:normal;font-weight:800;color:var(--share-paper)}.arr-opacity-track{flex:1;min-width:0;display:flex;flex-direction:column}.arr-opacity-track input{width:100%;min-height:32px;accent-color:var(--arr-c)}.arr-opacity-ends{display:flex;justify-content:space-between;font-size:var(--fs-caption);font-weight:600;color:var(--muted)}.arr-switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:44px;font-weight:600}.arr-choose-group{display:flex;flex-direction:column;gap:var(--sp-1)}.arr-choose-group b{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.arr-choose{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);font-weight:600;cursor:pointer}.arr-choose input{width:20px;height:20px;accent-color:var(--accent)}.arr-confirm p{margin:0 0 var(--sp-2)}.arr-confirm>div{display:flex;gap:var(--sp-2)}.arr-confirm .btn{flex:1 1 0;min-height:44px}.arr-add-here{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);min-height:124px;border:1.5px dashed color-mix(in srgb,var(--arr-c) 60%,var(--edge));border-radius:var(--r-lg);background:transparent;color:var(--ink-soft);font:inherit;font-weight:700;font-size:var(--fs-small);cursor:pointer}.arr-add-here .icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-pill);background:var(--arr-c);color:var(--text-on-accent)}.arr-add-section{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:64px;border:1.5px dashed var(--edge);border-radius:var(--r-xl);background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.arr-add-section .icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent)}.arr-add-section:hover,.arr-add-here:hover{border-color:var(--accent)}.arr-ghost{position:fixed;top:0;left:0;z-index:calc(var(--z-toast) - 1);pointer-events:none}.arr-ghost>.arr-card,.arr-ghost>.arr-sec{height:100%;box-shadow:var(--shadow-lg);transform:rotate(2deg) scale(1.03);cursor:grabbing}.arr-ghost.is-section>.arr-sec{overflow:hidden;transform:rotate(1deg)}@media(prefers-reduced-motion:reduce){.arr-ghost>.arr-card,.arr-ghost>.arr-sec{transform:none}}.arr-stages{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg);background:var(--surface-inset)}.arr-stages-switch{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;min-height:44px}.arr-stages-switch input{width:44px;height:24px;margin:0;accent-color:var(--accent)}.arr-stages-switch span{font-size:var(--fs-small);color:var(--ink-soft)}.arr-stages-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink-soft)}.arr-stages-head b{color:var(--ink)}.arr-stages-spacer{flex:1}.arr-stage-pick .arr-hint{margin:0 0 var(--sp-2)}.arr-stage-pick .occ-cal{margin-bottom:0}.arr-stage-list{position:relative;display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.arr-stage-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-1)}.arr-stage-item>.arr-panel{grid-column:1 / -1}.arr-stage-edit{display:grid;place-items:center;width:44px;height:44px;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);cursor:pointer}.arr-stage-edit:hover,.arr-stage-edit[aria-expanded=true]{border-color:var(--edge);background:var(--bg-elev);color:var(--ink)}.arr-stage-list:before{content:"";position:absolute;top:24px;bottom:24px;left:calc(var(--sp-3) + 5px);width:2px;background:var(--edge)}.arr-stage-row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-2);width:100%;min-height:48px;padding:var(--sp-1) var(--sp-3);border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.arr-stage-row:hover{background:var(--bg-elev)}.arr-stage-row[aria-pressed=true]{border-color:var(--accent);background:var(--accent-surface)}.arr-stage-dot{width:12px;height:12px;border-radius:var(--r-pill);background:var(--bg-elev);box-shadow:0 0 0 2px var(--edge)}.arr-stage-row[aria-pressed=true] .arr-stage-dot{background:var(--accent);box-shadow:0 0 0 2px var(--accent)}.arr-stage-text{display:flex;flex-direction:column;min-width:0}.arr-stage-text b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.arr-stage-text small{font-size:var(--fs-caption);color:var(--ink-soft)}.arr-stage-at{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-small);color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums}.arr-stage-panel{flex-direction:row;flex-wrap:wrap;align-items:flex-end;margin:var(--sp-1) 0 var(--sp-2) calc(var(--sp-3) + 20px)}.arr-stage-field{display:flex;flex:1 1 200px;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.arr-stage-panel .arr-switch-row{flex:1 1 100%;min-height:40px;font-size:var(--fs-small)}.arr-stage-actions{display:flex;flex:1 1 100%;justify-content:flex-end;gap:var(--sp-2)}.arr-card.is-off .arr-plate,.arr-card.is-off .ds-card-name,.arr-card.is-off .ds-card-sub{opacity:.42}.arr-state{display:inline-flex;align-items:center;gap:6px;margin-top:var(--sp-1);font-size:var(--fs-caption);font-weight:700;color:var(--ink-soft)}.arr-state i{flex:none;width:8px;height:8px;border-radius:var(--r-pill);background:var(--muted)}.arr-state.is-on{color:var(--status-success)}.arr-state.is-on i{background:var(--status-success)}.arr-stage-sw{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);font-size:var(--fs-caption);color:var(--ink-soft)}.arr-stage-sw>span{display:flex;flex-direction:column;min-width:0}.arr-stage-sw b{color:var(--ink)}.arr-stage-sw .ds-switch{flex:none}.arr-travel p{margin:0 0 var(--sp-3);line-height:var(--lh-body)}.arr-travel .arr-hint{margin-bottom:var(--sp-3)}.arr-when{display:inline-flex;align-items:center;gap:4px;margin-top:var(--sp-1);padding:2px var(--sp-2);min-height:28px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink-soft);font-size:var(--fs-caption)}.sch{display:flex;flex-direction:column;gap:var(--sp-3)}.sch-sum{margin:0;font-size:var(--fs-small);color:var(--ink);line-height:var(--lh-body)}.sch-sum .arr-state{display:flex;margin:var(--sp-1) 0 0}.sch-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-small)}.arr-demo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--ink);color:var(--bg-elev);font-size:var(--fs-small)}.arr-demo .btn{color:inherit;background:color-mix(in srgb,var(--bg-elev) 14%,transparent);border:1px solid color-mix(in srgb,var(--bg-elev) 40%,transparent)}.arr-demo .btn:disabled{opacity:.4}.arr-demo-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent)}.arr-demo-opt{display:inline-flex;align-items:center;gap:var(--sp-1)}.arr-demo-opt .cds-input{width:auto;min-height:36px;padding:0 var(--sp-2)}/**
 * gallery.css — the Photos block's wall: its tiles, the guests' "add your
 * photos" panel, the tools under it, the host's review strip and the
 * choose-and-download mode.
 *
 * @fileoverview Drawn on the share page's theme-invariant palette
 * (--share-*), and wherever a piece must read on ANY Look a block can wear —
 * glass, paper, a colour — or on the slideshow's dark stage, in the surface's
 * own colour (`currentColor`). The full-screen wall's larger grid is
 * `.gallery-expanded` in block-expand.css; the photo viewer is
 * PhotoCarousel.css, where the first half of this file lived until 2026-10-03.
 * Motion honours `prefers-reduced-motion`. DESIGN_SPEC §3.16.
 *
 * @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
 */.gcv-photo-btn{display:block;width:100%;margin:0;padding:0;border:0;background:none;position:relative;cursor:zoom-in;border-radius:var(--r-md);overflow:hidden;-webkit-tap-highlight-color:transparent}.gcv-photo-btn img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block;transition:transform var(--t-medium) var(--easing)}.gallery-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.gallery-wall.is-carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.gallery-wall.is-carousel .gallery-tile{flex:0 0 72%;scroll-snap-align:start}.gallery-tile{margin:0;position:relative}.gallery-tile.is-mine .gcv-photo-btn{outline:3px solid var(--share-accent);outline-offset:2px}.gallery-tile-mine{position:absolute;bottom:var(--sp-1);left:var(--sp-1);padding:4px var(--sp-2);border-radius:var(--r-pill);background:var(--share-accent);color:var(--share-paper);font-size:12px;font-weight:700;pointer-events:none}.gallery-tile.is-mine figcaption{font-weight:700;opacity:1}.gallery-filter{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.gallery-filter .gcv-btn{min-height:44px;padding:0 var(--sp-4);font-size:14px}.gallery-filter .gcv-btn[aria-pressed=true]{outline:2px solid var(--share-accent)}.gallery-tile-remove{position:absolute;top:var(--sp-1);right:var(--sp-1);display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 var(--sp-3);border:0;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 72%,transparent);color:var(--share-paper);font-size:13px;cursor:pointer}.gallery-tile figcaption{margin-top:6px;font-size:13px;text-align:center;opacity:.75}.gallery-missing{text-align:center;opacity:.62;font-style:italic}.gallery-add{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--share-border-soft)}.gallery-add:first-child{margin-top:0;padding-top:0;border-top:0}.gallery-add-file{display:none}.gallery-add-cta,.gallery-add-cancel{display:inline-flex;align-items:center;gap:var(--sp-1);align-self:flex-start;padding:11px 20px;font-size:15px}.gallery-add-cancel{padding:8px 14px;font-size:14px}.gallery-add-hint{font-size:13px;opacity:.65}.gallery-add-clear{padding:0;border:0;background:none;font:inherit;cursor:pointer}.gallery-add-err{color:var(--share-error);font-size:14px}.gallery-add-ok{color:var(--share-success);font-size:14px}.gallery-add-pending{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px}.gallery-add-pending-note{opacity:.65}.gallery-add-mine{position:relative;display:inline-flex}.gallery-add-mine-remove{position:absolute;top:-14px;right:-14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:var(--share-paper);cursor:pointer}.gallery-add-mine-remove .icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--share-stage) 78%,transparent);font-size:15px}.gallery-add-pending img{width:44px;height:44px;border-radius:var(--r-sm);object-fit:cover;opacity:.7}@media(hover:hover){.gcv-photo-btn:hover img{transform:scale(1.05)}}.gcv-photo-zoom{position:absolute;top:8px;right:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:18px;color:var(--bg);background:color-mix(in srgb,var(--ink) 62%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity var(--t-snap) var(--easing)}@media(hover:hover){.gcv-photo-btn:hover .gcv-photo-zoom{opacity:1}}@media(hover:none){.gcv-photo-zoom{opacity:.85}}.gallery-tools{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.gallery-tool{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 var(--sp-4);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;font-family:var(--font-sans);font-size:14px;font-weight:700;cursor:pointer}.gallery-tool:disabled{opacity:.55;cursor:default}@media(hover:hover){.gallery-tool:not(:disabled):hover{background:color-mix(in srgb,currentColor 16%,transparent)}}.photo-review{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3);border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:var(--r-lg);background:color-mix(in srgb,currentColor 7%,transparent);font-family:var(--font-sans)}.photo-review-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2)}.photo-review-title{font-size:15px;font-weight:700}.photo-review-row{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:4px}.photo-review-item{flex:0 0 148px;margin:0;display:flex;flex-direction:column;gap:6px}.photo-review-thumb{display:block;width:100%;aspect-ratio:1 / 1;padding:0;border:0;border-radius:var(--r-md);background:none;object-fit:cover;overflow:hidden;cursor:zoom-in}.photo-review-thumb img{display:block;width:100%;height:100%;object-fit:cover}.photo-review-item figcaption{font-size:13px;font-weight:600;overflow-wrap:anywhere}.photo-review-actions{display:flex;gap:6px;margin-top:auto}.photo-review-actions>*{flex:1 1 0;min-height:44px;padding:0 var(--sp-2);font-size:14px}.photo-review-note{margin:0;font-size:12.5px;opacity:.7}.gallery-wall.is-picking .gcv-photo-btn{cursor:pointer}.gallery-wall.is-picking .gcv-photo-btn[aria-pressed=false] img{opacity:.5}.gallery-pick{position:absolute;top:8px;left:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:22px;border:2px solid var(--share-paper);box-sizing:border-box;color:var(--share-paper);background:color-mix(in srgb,var(--share-stage) 55%,transparent);pointer-events:none}[aria-pressed=true]>.gallery-pick{background:var(--share-accent);border-color:var(--share-accent)}.gallery-pick-bar{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:auto;padding:var(--sp-3);border:1px solid var(--share-border-soft);border-radius:var(--r-lg);background:var(--share-stage);font-family:var(--font-sans);font-size:14px;font-weight:700}.gallery-pick-count{margin-right:auto}.gallery-pick-go{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-4);font-size:15px}@media(max-width:559px){.block-expand-action .block-expand-label{display:none}}@media(prefers-reduced-motion:reduce){.gcv-photo-btn img,.gcv-photo-zoom{transition-duration:.01ms}.gcv-photo-btn:hover img{transform:none}}/**
 * PhotoCarousel.css — the photo viewer: the cover-flow lightbox, the
 * one-photo-at-a-time slideshow, its options and the host's review tray. (The
 * Photos block's own wall is `gallery.css`.)
 *
 * All colour comes from design-system tokens (no hardcoded hex/rgba): the
 * always-dark `--scrim-heavy` backdrop makes the interior a permanently-dark
 * surface in both themes, so the chrome uses the blessed `.gal-lightbox-close`
 * inversion — an `--ink` chip carrying `--bg` glyphs/text — which stays legible
 * light OR dark. Motion honours `prefers-reduced-motion`.
 *
 * @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
 */.photo-lightbox{--pl-zoom: 1;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay)}.photo-lightbox--elevated{z-index:10000}.photo-lightbox{display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));background:var(--scrim-heavy);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overscroll-behavior:contain;animation:pl-fade-in var(--t-medium) var(--easing)}@keyframes pl-fade-in{0%{opacity:0}to{opacity:1}}.pl-stage{position:relative;width:100%;max-width:calc(1100px * var(--pl-zoom));height:min(calc(74vh * var(--pl-zoom)),86vh,calc(760px * var(--pl-zoom)));perspective:1700px;transform-style:preserve-3d;touch-action:pan-y}.pl-slide{position:absolute;top:50%;left:50%;width:min(calc(78vw * var(--pl-zoom)),94vw,calc(600px * var(--pl-zoom)));height:100%;margin:0;padding:0;border:0;background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transform-style:preserve-3d;transition:transform var(--t-card) var(--easing),opacity var(--t-medium) var(--easing);will-change:transform,opacity}.pl-slide.is-active{cursor:default}.pl-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none}.pl-close,.pl-nav,.pl-play,.pl-toggle,.pl-zoom{color:var(--bg);background:color-mix(in srgb,var(--ink) 76%,transparent);border:1px solid color-mix(in srgb,var(--bg) 40%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pl-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:210;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer}.pl-close .icon{font-size:24px}.pl-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:200;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer}.pl-nav .icon{font-size:28px}.pl-nav-prev{left:max(8px,env(safe-area-inset-left))}.pl-nav-next{right:max(8px,env(safe-area-inset-right))}.pl-footer{position:absolute;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));z-index:200;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 16px;pointer-events:none}.pl-footer>*{pointer-events:auto}.pl-caption{max-width:min(90vw,calc(560px * var(--pl-zoom)));display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;font-size:clamp(14px,calc(14px * var(--pl-zoom)),30px);line-height:1.4;color:var(--bg);background:color-mix(in srgb,var(--ink) 70%,transparent);border-radius:var(--r-pill);padding:8px 16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pl-status{display:flex;flex-wrap:wrap;justify-content:center;gap:0 .6em;font-size:.86em;opacity:.86}.pl-status>:not(:last-child):after{content:"·";margin-left:.6em}.pl-credit{font-weight:700}.pl-awaiting{display:inline-flex;align-items:center;gap:.4em;font-weight:700}.pl-awaiting .pl-waiting-dot{background:var(--accent)}.pl-actions{display:flex;justify-content:center;gap:var(--sp-2)}.pl-actions .btn{min-height:44px;min-width:120px;justify-content:center}.photo-lightbox:has(.pl-actions){padding-bottom:176px}.photo-lightbox:has(.pl-actions) .pl-stage{height:min(calc(74vh * var(--pl-zoom)),calc(100vh - 220px),calc(760px * var(--pl-zoom)))}.photo-lightbox:has(.pl-actions) .pl-fade{bottom:176px}.pl-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.pl-play,.pl-toggle{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 18px 0 13px;border-radius:var(--r-pill);cursor:pointer;font:inherit;font-size:14px;font-weight:700}.pl-play .icon,.pl-toggle .icon{font-size:22px}.pl-play.is-on,.pl-toggle.is-on{color:var(--accent);border-color:var(--accent)}.pl-zoom{display:inline-flex;align-items:center;height:44px;border-radius:var(--r-pill);overflow:hidden}.pl-zoom-btn{width:40px;height:100%;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:inherit;cursor:pointer;font:inherit}.pl-zoom-btn .icon{font-size:20px}.pl-zoom-btn:disabled{opacity:.35;cursor:default}.pl-zoom-val{min-width:46px;text-align:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}@media(hover:hover){.pl-close:hover,.pl-nav:hover,.pl-play:hover,.pl-toggle:hover{background:color-mix(in srgb,var(--ink) 88%,transparent)}.pl-zoom-btn:not(:disabled):hover{background:color-mix(in srgb,var(--bg) 22%,transparent)}}@media(max-width:480px){.pl-btn-label{display:none}.pl-play,.pl-toggle{padding:0;width:44px;justify-content:center}.pl-toolbar{gap:7px}.pl-zoom-val{min-width:36px;font-size:12px}.pl-zoom-btn{width:32px}}.photo-lightbox.is-fade{padding:0;background:var(--share-stage);-webkit-backdrop-filter:none;backdrop-filter:none}.pl-fade{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;touch-action:pan-y}.pl-fade-slide{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;transition:opacity 1.2s ease}.pl-fade-slide.is-active{opacity:1;z-index:1}.pl-fade-slide.is-leaving{z-index:2}.pl-fade-slide img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.is-playing .pl-fade-slide.is-drift-a:is(.is-active,.is-leaving) img{animation:pl-drift-a calc(var(--pl-dwell) + 1.4s) ease-out both}.is-playing .pl-fade-slide.is-drift-b:is(.is-active,.is-leaving) img{animation:pl-drift-b calc(var(--pl-dwell) + 1.4s) ease-out both}@keyframes pl-drift-a{0%{transform:scale(1)}to{transform:scale(1.08) translate(1.2%,-1%)}}@keyframes pl-drift-b{0%{transform:scale(1.08) translate(-1.2%,1%)}to{transform:scale(1)}}.pl-chrome{transition:opacity var(--t-medium) var(--easing)}.photo-lightbox.is-idle{cursor:none}.photo-lightbox.is-idle .pl-chrome{opacity:0;pointer-events:none}.pl-panel{display:flex;flex-direction:column;gap:var(--sp-3);width:min(420px,calc(100vw - 24px));box-sizing:border-box;padding:var(--sp-4);border-radius:var(--r-lg);color:var(--bg);background:color-mix(in srgb,var(--ink) 94%,transparent);border:1px solid color-mix(in srgb,var(--bg) 40%,transparent);box-shadow:var(--shadow-lg);font-size:14px;text-align:left}.pl-opt{display:flex;flex-direction:column;gap:6px}.pl-opt-label{font-size:13px;font-weight:700;opacity:.75}.pl-seg{display:flex;flex-wrap:wrap;gap:6px}.pl-seg button{flex:1 1 auto;min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,var(--bg) 40%,transparent);border-radius:var(--r-pill);background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer}.pl-seg button.is-on{color:var(--accent);border-color:var(--accent)}.pl-check{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;cursor:pointer}.pl-check input{width:20px;height:20px;flex:0 0 auto;margin:0;accent-color:var(--accent)}.pl-waiting{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:210;display:inline-flex;align-items:center;gap:var(--sp-2);height:44px;padding:0 var(--sp-4);border:0;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.pl-waiting-dot{width:9px;height:9px;border-radius:50%;background:currentColor;animation:pl-pulse 1.8s ease-in-out infinite}@keyframes pl-pulse{0%,to{opacity:1}50%{opacity:.35}}.pl-review{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 52px);left:max(12px,env(safe-area-inset-left));z-index:220;max-height:70vh;overflow-y:auto}.pl-review .photo-review{border:0;padding:0;background:none}.pl-review .photo-review-row{flex-wrap:wrap;overflow:visible}.pl-new{align-self:center;padding:2px 10px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:.72em;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pl-join,.pl-check-qr{display:none}@media(min-width:900px){.pl-check-qr{display:flex}.pl-join{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:190;display:flex;flex-direction:column;align-items:center;gap:6px;width:clamp(120px,12vw,240px);padding:10px;border-radius:var(--r-md);background:var(--share-paper);color:var(--share-ink);font-size:clamp(12px,1vw,20px);font-weight:700;line-height:1.25;text-align:center;box-shadow:var(--shadow-lg)}.pl-join img{display:block;width:100%;height:auto}}.pl-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-5);color:var(--share-paper);text-align:center;font-size:clamp(16px,2vw,28px)}.pl-empty img{width:min(46vmin,420px);height:auto;padding:14px;border-radius:var(--r-lg);background:var(--share-paper)}.pl-empty p{margin:0;max-width:28em}.pl-empty-title{font-family:var(--font-serif);font-size:clamp(30px,5vw,72px);line-height:1.05}@media(prefers-reduced-motion:reduce){.photo-lightbox{animation:none}.pl-slide,.pl-fade-slide,.pl-chrome{transition-duration:.01ms}.pl-fade-slide img,.pl-waiting-dot{animation:none!important}}/**
 * voice-composer.css — Compass's one composer + the Settings voice picker
 * (DESIGN_SPEC §3.6.5). A leaf stylesheet on the design-system tokens: the
 * panel is `.chat-composer-inner`'s only body, so it inherits the card chrome
 * and adds only its own rows. The level ring copies the .gtx-mic calc with
 * tokens (App.css's hex is legacy).
 *
 * Right column: Hear Compass (volume_up / volume_off) over Talk and Send, the
 * same 44px circles. The box stretches to that stack — top with the speaker,
 * bottom with the two circles — so the empty band the Type · Voice switch
 * used to own is now the box. A state line appears under the box only while
 * there is a state to name.
 *
 * @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
 */.vc{flex:1 1 auto;min-width:0;width:100%;display:flex;flex-direction:column;gap:var(--sp-2)}.vc[hidden]{display:none}.vc-head{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2)}.vc-icon-btn.is-quiet,.vc-icon-btn.is-alert{border-color:var(--accent);background:var(--accent-surface);color:var(--accent)}.vc-main{display:flex;align-items:stretch;gap:var(--sp-2)}.vc-main>.gtx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.vc-main>.gtx>textarea{flex:1 1 auto;min-height:calc(44px + var(--sp-2) + 44px)}.vc-side{flex:0 0 auto;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-2)}.vc-controls{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2)}.vc-mic{position:relative;flex:0 0 auto;width:44px;min-height:44px;padding:0;border-radius:50%;border:1.5px solid var(--accent-outline);background:var(--accent-surface);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow 90ms linear,transform var(--t-instant) ease-out}.vc-mic .icon{font-size:20px;line-height:1}.vc-mic:hover:not(:disabled){border-color:var(--accent)}.vc-mic.ds-talk-invite{border:2px solid var(--accent)}.vc-mic:active:not(:disabled){transform:scale(.96)}.vc-mic:disabled{opacity:.5;cursor:not-allowed}.vc-send-count{display:inline-block;width:20px;text-align:center;font-variant-numeric:tabular-nums;line-height:1}.vc-send.is-nudge{animation:vc-nudge var(--t-breathe) ease-in-out infinite;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 28%,transparent)}@keyframes vc-nudge{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.vc-mic.is-listening{color:var(--text-on-accent);background:var(--danger-color);border-color:var(--danger-color);box-shadow:0 0 0 calc(2px + var(--gtx-level, 0) * 16px) color-mix(in srgb,var(--danger-color) 30%,transparent)}.vc-mic.is-busy{color:var(--text-on-accent);background:var(--accent-glow);border-color:var(--accent-glow)}.vc-mic.is-busy:disabled{opacity:1}.vc-mic.is-speaking{color:var(--text-on-accent);background:var(--accent);border-color:var(--accent)}.vc-mic.is-speaking:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid var(--accent-glow);animation:vc-ripple var(--t-breathe) ease-out infinite}@keyframes vc-ripple{0%{transform:scale(.9);opacity:.9}to{transform:scale(1.25);opacity:0}}.vc-status{margin:0;font-size:var(--fs-small);line-height:18px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-status:empty{display:none}.vps-hint{margin:0 0 var(--sp-3);font-size:var(--fs-small);color:var(--ink-soft)}.vps-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@media(max-width:380px){.vps-grid{grid-template-columns:minmax(0,1fr)}}.vps-tile{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-lg);border:1.5px solid var(--divider);background:var(--bg-elev)}.vps-tile.is-checked{border-color:var(--accent);background:var(--accent-surface)}.vps-pick{flex:1 1 auto;min-width:0;min-height:44px;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border:0;border-radius:var(--r-md);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.vps-pick .icon{flex:0 0 auto}.vps-tile.is-checked .vps-pick .icon{color:var(--accent)}.vps-text{display:flex;flex-direction:column;min-width:0}.vps-label{font-weight:700;font-size:var(--fs-body);line-height:1.2}.vps-blurb{font-size:var(--fs-caption);color:var(--ink-soft);line-height:1.25}.vps-hear{flex:0 0 auto;width:44px;height:44px;padding:0;border-radius:50%;border:1.5px solid var(--accent-outline);background:var(--bg-elev);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.vps-hear:hover:not(:disabled){border-color:var(--accent)}.vps-hear:disabled{opacity:.5;cursor:not-allowed}.vps-hear .icon{font-size:22px;line-height:1}.vps-spin{animation:gtx-spin .9s linear infinite}.vps-empty{grid-column:1 / -1;margin:0;font-size:var(--fs-small);color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.vc-mic.is-speaking:after{animation:none;opacity:.6}.vc-send.is-nudge,.vps-spin{animation:none}}/**
 * @fileoverview Compass's settings gear and what it opens (CompassSettings),
 * on the Compass bar and in Settings. Tokens only.
 * @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
 */.bld-compass-settings{position:relative;flex:0 0 auto}.bld-compass-settings.is-inline{position:static}.bld-compass-settings .btn.cds-gear{width:44px;min-height:44px;padding:0;justify-content:center}.cds-pop{position:absolute;top:calc(100% + var(--sp-1));right:0;z-index:calc(var(--z-raised) + 6);width:min(380px,calc(100vw - 2 * var(--sp-3)));padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-lg)}.cds-body{display:flex;flex-direction:column;gap:var(--sp-3)}.cds-levels.ds-seg>button{flex:1 1 0;white-space:normal;line-height:1.2}.cds-what{margin:0;font-size:var(--fs-small);line-height:var(--lh-body);color:var(--ink-soft)}.cds-row{display:flex;align-items:center;gap:var(--sp-2);min-height:44px}.cds-row-label{font-weight:600}.cds-row-state{margin-left:auto;font-size:var(--fs-small);color:var(--ink-soft)}.bld-compass-settings .btn.cds-stop{align-self:flex-start;width:auto;min-height:44px;gap:var(--sp-1)}/**
 * community.css
 *
 * @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
 */.community-page{max-width:1200px;margin:0 auto;color:var(--ink)}.community-public{min-height:100dvh;padding:var(--sp-6);background:var(--bg)}.community-heading{display:flex;gap:var(--sp-4);justify-content:space-between;align-items:flex-start}.community-heading p,.community-muted,.community-footer{color:var(--muted)}.community-heading .btn{flex-shrink:0}.community-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-block:var(--sp-3)}.community-page .btn,.community-form .btn,.community-feedback .btn{width:auto;min-height:44px}.community-page .is-selected,.community-feedback .is-selected{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elev));color:var(--ink);border-color:var(--accent)}.community-grid-wrap{margin-block:var(--sp-5)}.community-tile{min-width:0;border:1px solid var(--divider);border-radius:var(--r-xl);overflow:hidden;background:var(--bg-elev)}.community-tile-playing .ft-face-front{border-color:var(--accent)}.community-cover-play{position:relative}.community-cover-play .ft-img,.community-art,.community-cover-options img{object-fit:contain;background:var(--surface-inset)}.community-play-cue{position:absolute;left:var(--sp-2);top:var(--sp-2);display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);min-height:36px;border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);box-shadow:var(--shadow-sm);font-size:var(--fs-caption);pointer-events:none}.community-cover-play:hover .community-play-cue,.community-tile-playing .community-play-cue{background:var(--accent);color:var(--text-on-accent)}.community-open{left:var(--ft-flip-inset);right:auto;text-decoration:none}.community-song-caption>a{text-decoration:none}.community-song-caption>a:hover{text-decoration:underline}.community-creator-row{display:flex;align-items:center;gap:var(--sp-1);min-height:32px}.community-song-caption .community-artist-link{color:var(--ink-soft);font-size:var(--fs-caption);margin:0;min-width:0;text-decoration:none}.community-song-caption .community-artist-link:hover{text-decoration:underline}.community-song-caption>p{font-size:var(--fs-caption);margin-block:var(--sp-1)}.community-style-hint{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;color:var(--muted);text-decoration:none;border-radius:var(--r-pill)}.community-style-hint:hover{color:var(--ink);background:var(--surface-inset)}.community-preview-player{display:flex;align-items:center;gap:var(--sp-1);padding-top:var(--sp-1)}.community-preview-toggle{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink);cursor:pointer}.community-preview-toggle:hover,.community-preview-toggle[aria-pressed=true]{color:var(--accent);background:var(--surface-inset)}.community-preview-timeline{min-width:0;flex:1;position:relative;padding-bottom:var(--sp-3)}.community-preview-timeline input{display:block;width:100%;height:44px;margin:0;padding:0;accent-color:var(--accent);cursor:pointer}.community-preview-timeline input:disabled{cursor:default;opacity:.45}.community-preview-time{position:absolute;right:0;bottom:0;font-size:var(--fs-caption);line-height:1;font-variant-numeric:tabular-nums;color:var(--ink-soft);pointer-events:none}.community-preview-time>span{color:var(--muted)}.community-style-hint:focus-visible,.community-preview-toggle:focus-visible,.community-preview-timeline input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.community-library-tabs .mc-scope-tab{min-height:36px}.community-search-row .library-search{flex:0 1 560px}.community-search-submit{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);cursor:pointer}.community-tile-caption{padding:var(--sp-4)}.community-tile-caption h2{font-size:var(--fs-body-lg);margin:0;overflow-wrap:anywhere}.community-tile-caption a{color:var(--ink);text-decoration:none}.community-tile-caption p{margin-block:var(--sp-2);font-size:var(--fs-caption)}.community-totals{margin-bottom:var(--sp-4)}.community-totals h3{font-size:var(--fs-body);margin:0}.community-totals .community-badge{white-space:nowrap}.community-badge{display:inline-block;background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-caption)}.community-track{container-type:inline-size;margin-block:var(--sp-5)}.community-track-layout{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:var(--sp-5)}.community-track-player{min-width:0;display:grid;gap:var(--sp-3)}.community-track-player>.community-art,.community-track-cover{width:100%;max-width:360px;justify-self:center}.community-art{width:100%;aspect-ratio:3 / 4;border-radius:var(--r-lg)}.community-track-body{min-width:0}.community-artist-link{display:inline-block;color:var(--accent);overflow-wrap:anywhere;margin-block:var(--sp-2)}.community-track h2{margin:var(--sp-2) 0;overflow-wrap:anywhere}.community-track audio{width:100%;margin-block:var(--sp-3)}.community-review summary{cursor:pointer;padding-block:var(--sp-2);min-height:44px}.community-lyrics{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;line-height:1.65}.community-lyrics-panel,.community-style-panel{min-width:0;padding:var(--sp-5);background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-lg)}.community-lyrics-panel h3,.community-style-panel h3{margin:0 0 var(--sp-3);font-size:var(--fs-body-lg)}.community-lyrics-panel h3,.community-style-panel h3{display:flex;align-items:center;gap:var(--sp-2)}.community-lyrics-panel h3 .icon,.community-style-panel h3 .icon{color:var(--accent);flex-shrink:0}.community-style-panel>p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.community-style-actions{margin-top:var(--sp-4)}.community-style-panel:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-lg)}.community-lyrics-scroll{max-height:min(65dvh,40rem);overflow-y:auto;scrollbar-gutter:stable}.community-lyrics-scroll p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.community-form .community-lyrics-panel h3,.community-form .community-style-panel h3{margin-bottom:var(--sp-3)}@container (min-width: 700px){.community-track-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5) var(--sp-6)}.community-track-layout>.community-style-panel{grid-column:1;grid-row:2}.community-track-layout>.community-lyrics-panel{grid-column:2;grid-row:1}.community-track-with-style>.community-lyrics-panel{grid-row:1 / span 2;align-self:stretch;display:flex;flex-direction:column}.community-track-with-style .community-lyrics-scroll{flex:1;min-height:0;max-height:none;contain:size}}.community-form{display:flex;flex-direction:column;gap:var(--sp-4)}.community-form h2,.community-form h3,.community-form p{margin:0}.community-form>label:not(.community-check){display:grid;gap:var(--sp-2)}.community-form fieldset{min-width:0;border:1px solid var(--divider);border-radius:var(--r-lg);padding:var(--sp-4)}.community-notice{padding:var(--sp-4);background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-lg);line-height:1.6}.community-notice p{margin-top:var(--sp-2)}.community-cover-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-block:var(--sp-3)}.community-cover-options label{border:2px solid var(--divider);padding:var(--sp-2);border-radius:var(--r-lg);cursor:pointer}.community-cover-options label.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--bg-elev))}.community-cover-options img{width:100%;aspect-ratio:3 / 4;border-radius:var(--r-md)}.community-cover-options span{display:flex;align-items:center;gap:var(--sp-2);padding-block:var(--sp-2)}.community-check{display:flex;align-items:flex-start;gap:var(--sp-3);min-height:44px;line-height:1.5;padding-block:var(--sp-2)}.community-check input,.community-cover-options input{width:20px;height:20px;flex-shrink:0;accent-color:var(--accent);margin-top:var(--sp-1)}.community-copy{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-block:var(--sp-3);border-bottom:1px solid var(--divider)}.community-copy small{display:block}.community-feedback{max-width:740px;padding-block:var(--sp-5);border-top:1px solid var(--divider);scroll-margin-top:90px}.community-stars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-2);max-width:360px}.community-stars .community-star{min-width:0;padding:var(--sp-2) var(--sp-1);font-size:var(--fs-body-lg)}.community-rating-summary{margin:0 0 var(--sp-2);font-size:var(--fs-caption);color:var(--muted)}.community-rating-summary strong{color:var(--ink)}.community-rating-label{display:flex;align-items:center;justify-content:space-between;min-height:32px;gap:var(--sp-1);color:var(--muted);font-size:var(--fs-caption)}.community-clear-rating{border:0;background:transparent;color:var(--accent);text-decoration:underline;cursor:pointer;min-height:32px;padding:var(--sp-1)}.community-reactions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.community-reactions .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1)}.community-reactions .btn:disabled{opacity:1;color:var(--muted)}.community-reaction-total{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:32px;color:var(--muted);font-size:var(--fs-caption)}.community-reaction-totals{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.community-tile-totals .community-rating-summary{margin-bottom:0}.community-rate-back .community-feedback{margin:0;padding:0;border:0}.community-rate-back .community-feedback .btn{min-height:32px}.community-rate-back .community-reactions{margin-top:var(--sp-1)}.community-rate-back .community-feedback-message,.community-rate-back .community-muted{font-size:var(--fs-caption)}.community-feedback-compact{padding-block:var(--sp-2) 0;margin-top:var(--sp-2)}.community-feedback-compact .community-stars{gap:0}.community-feedback-compact .community-star{border:0;border-radius:var(--r-sm);background:transparent;font-size:var(--fs-h3)}.community-feedback-compact .community-star.is-selected{color:var(--accent)}.community-feedback-compact .community-reactions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-1)}.community-feedback-compact .community-reactions .btn{min-width:0;padding:var(--sp-1);font-size:var(--fs-caption);flex-wrap:wrap}.community-rate-back .community-star{padding-inline:0}.community-rate-back .community-reactions .btn{padding-inline:0;gap:0}.community-feedback-message{font-size:var(--fs-caption);margin-block:var(--sp-2)}.community-song-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-elev);border-bottom:1px solid var(--divider)}.community-song-header>img{width:48px;height:48px;object-fit:cover;border-radius:var(--r-sm)}.community-song-header>div{min-width:0}.community-song-header h1{margin:var(--sp-1) 0;font-size:var(--fs-h3);overflow-wrap:anywhere}.community-song-header .ds-eyebrow{text-decoration:none;color:var(--muted)}.community-song-header .community-artist-link{margin:0;font-size:var(--fs-caption)}.community-back{flex-shrink:0;text-decoration:none}.community-song-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border-bottom:1px solid var(--divider)}.community-song-toolbar .community-actions{margin:0}.community-song-toolbar .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1)}.community-song-content{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-6);padding-top:var(--sp-5)}.community-song-content .community-track{margin:0}.community-song-content .community-feedback h3{margin-top:0}.community-track-cover{padding:0;border:0;background:transparent;cursor:pointer;color:var(--muted);border-radius:var(--r-lg)}.community-track-cover .community-art{display:block}.community-track-cover-hint{display:block;padding-block:var(--sp-2);font-size:var(--fs-caption)}.community-empty{text-align:center;padding:var(--sp-8) var(--sp-5);border:1px dashed var(--edge);border-radius:var(--r-xl);margin-top:var(--sp-5)}.community-empty>.icon{font-size:48px;color:var(--accent)}.community-footer{padding-block:var(--sp-5);margin-top:var(--sp-7);border-top:1px solid var(--divider);font-size:var(--fs-caption)}.community-review{padding:var(--sp-5);border:1px solid var(--divider);border-radius:var(--r-lg)}.community-review li{margin-block:var(--sp-3);overflow-wrap:anywhere}.community-tile .community-track{margin:0}.community-tile .community-track-body{padding-inline:var(--sp-3)}@media(max-width:600px){.settings-tabs.community-monitor-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.community-monitor-tabs .settings-tab{min-width:0;white-space:normal;min-height:44px}.community-public{padding:var(--sp-4)}.community-heading{flex-direction:column;align-items:flex-start}.community-tile-caption{padding:var(--sp-3)}.community-form .cds-input,.community-page .cds-input{font-size:16px}}/**
 * @fileoverview The full-screen block chassis (BlockExpand.jsx) and the day
 * page it most often carries (DayView.jsx). Tokens only.
 *
 * It paints the SHARE stage, not app chrome: an expanded block is still the
 * card's own surface, so its palette is theme-invariant like the page under it.
 *
 * @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
 */.block-expand{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--share-stage);color:var(--share-paper);animation:block-expand-in var(--t-medium) ease}@keyframes block-expand-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.block-expand-bar{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 auto;padding:max(var(--sp-2),env(safe-area-inset-top)) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--share-border-soft)}.block-expand-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--share-paper);cursor:pointer}.block-expand-close:hover{background:color-mix(in srgb,var(--share-paper) 12%,transparent)}.block-expand-heading{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.block-expand-eyebrow{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--share-paper) 66%,transparent)}.block-expand-title{font-family:var(--font-serif);font-size:var(--fs-body-lg);font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.block-expand-actions{flex:0 0 auto;display:flex;gap:var(--sp-2)}.block-expand-action{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--share-border-soft);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-paper) 8%,transparent);color:var(--share-paper);cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600}.block-expand-action:hover{background:color-mix(in srgb,var(--share-paper) 14%,transparent)}.block-expand-action.is-primary{background:var(--share-accent);border-color:transparent;color:var(--share-paper);font-weight:700;padding:0 var(--sp-4);box-shadow:0 6px 18px color-mix(in srgb,var(--share-accent) 45%,transparent)}.block-expand-action.is-primary:hover{background:var(--share-accent);filter:brightness(1.08)}.block-expand-action .icon{font-size:22px}.block-expand-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-4) var(--sp-3) max(var(--sp-4),calc(env(safe-area-inset-bottom) + var(--sp-4)))}.block-expand--with-player .block-expand-body{display:flex;flex-direction:column;overflow:hidden;padding-bottom:max(var(--sp-4),calc(env(safe-area-inset-bottom) + var(--sp-4)),var(--player-height, 0px))}.gallery-expanded{display:flex;flex-direction:column;gap:var(--sp-5);width:100%;min-height:100%}.gallery-expanded .gallery-wall{flex:1 1 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),380px));justify-content:center;align-content:start;gap:var(--sp-4)}.gallery-expanded .gallery-wall.is-carousel{display:flex;grid-template-columns:none;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--sp-2)}.gallery-expanded .gallery-wall.is-carousel .gallery-tile{flex:0 0 min(72vw,420px);scroll-snap-align:start}.gallery-expanded .gallery-tile figcaption{color:color-mix(in srgb,var(--share-paper) 72%,transparent)}.gallery-expanded .gallery-add{flex:0 0 auto;margin-top:0;padding:var(--sp-4);border:1px solid var(--share-border-soft);border-radius:var(--r-lg);background:color-mix(in srgb,var(--share-paper) 8%,transparent)}.gallery-expanded .gallery-add-title{margin:0 0 var(--sp-3);font-family:var(--font-serif);font-size:var(--fs-body);font-weight:600;letter-spacing:0;text-transform:none;color:var(--share-paper)}.gallery-expanded .gallery-add .gcv-field{background:var(--share-paper);color:var(--share-ink)}.gallery-expanded .gallery-add-cta{align-self:stretch;justify-content:center;min-height:48px;font-size:16px}@media(min-width:560px){.gallery-expanded .gallery-add-cta{align-self:flex-start}}@media(min-width:900px){.block-expand-body>*{max-width:760px;margin-inline:auto}.block-expand-body>.gallery-expanded{max-width:1200px}}@media(prefers-reduced-motion:reduce){.block-expand{animation:none}}.cal-day-name{margin:0;font-family:var(--font-display, var(--font-serif));font-size:30px;line-height:1.1;color:var(--share-paper)}.cal-day-sub{margin:var(--sp-1) 0 var(--sp-4);font-size:var(--fs-small);color:color-mix(in srgb,var(--share-paper) 66%,transparent)}.cal-day-group{margin-bottom:var(--sp-5, 24px)}.cal-day-group-head{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--share-paper) 66%,transparent)}.cal-day-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-1)}.cal-day-photo{aspect-ratio:1;width:100%;padding:0;border:0;border-radius:var(--r-md);overflow:hidden;cursor:pointer;background:color-mix(in srgb,var(--share-paper) 8%,transparent)}.cal-day-photo img{width:100%;height:100%;object-fit:cover;display:block}.cal-day-bubble{padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-1);border-radius:var(--r-lg);background:color-mix(in srgb,var(--share-paper) 8%,transparent);font-size:var(--fs-small)}.cal-day-bubble-who{display:block;margin-bottom:2px;font-size:11px;color:color-mix(in srgb,var(--share-paper) 66%,transparent)}.cal-day-line{display:flex;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--share-border-soft);font-size:var(--fs-small)}.cal-day-line:last-child{border-bottom:0}.cal-day-line-who{color:color-mix(in srgb,var(--share-paper) 66%,transparent)}.cal-day-empty{padding:var(--sp-5, 24px) 0;text-align:center;color:color-mix(in srgb,var(--share-paper) 66%,transparent)}/**
 * leafBody.css
 *
 * @fileoverview Every block keeps to one size (LeafBody.jsx). `.leaf-body.is-long`
 * is the block taller than the screen, held to this size and scrolling inside
 * its card; `.leaf-scroll`
 * is a long LIST inside a block that scrolls by itself, under a search box
 * that stays put — the Video list's rule: the row cut at the bottom edge is
 * what says there is more, where a scrollbar stays hidden. Full screen is the
 * whole of either.
 *
 * @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
 */.leaf-body.is-long{max-height:min(78vh,720px);overflow-y:auto;-webkit-overflow-scrolling:touch}.leaf-scroll{max-height:min(70vh,480px);overflow-y:auto;-webkit-overflow-scrolling:touch}.block-expand-body .leaf-scroll{max-height:none;overflow:visible}.leaf-scroll>*,.leaf-scroll .vn-slot{content-visibility:auto;contain-intrinsic-size:auto 88px;flex-shrink:0}/**
 * @fileoverview A public page's fine print — the line under a guest form
 * (GuestPrivacyNote, B7) and *Report this page* in the footers
 * (ReportPageLink). It sets no colour: it takes its surroundings' ink, white
 * on the share page's glass and footer panel, ink on paper and app grounds,
 * and is quiet by size alone, because a muted colour that passes on paper
 * fails on glass (L9) — the footer's own 60% white measured 2.8:1 on a light
 * canvas. The same at every width; only where it wraps differs.
 *
 * @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
 */.fine-print{display:block;margin-top:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-small);line-height:var(--lh-body);text-wrap:pretty}.fine-print a{text-decoration:underline}/**
 * messagePlayer.css — one guest-book message, played (MessagePlayer).
 *
 * @fileoverview Theme-free on purpose: it rides on the couple's warm paper
 * (GuestbookRow) and on the public page's glass (GuestbookWall) alike, so
 * every colour is `currentColor`, a token, or the message family's hue —
 * which is also what VoiceWaveform reads for its bars. Tokens only.
 *
 * @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
 */.gbp{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.gbp-row{display:flex;align-items:center;gap:var(--sp-2)}.gbp-play{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;background:var(--sec-message);color:var(--text-on-accent)}.gbp-play .icon{font-size:26px}.gbp-time{flex:0 0 auto;font-size:var(--fs-small);font-variant-numeric:tabular-nums;opacity:.75}.gbp-video{display:block;width:100%;max-height:360px;border-radius:var(--r-md);background:var(--ink)}.gbp-text{margin:0;font-family:var(--font-display);font-size:var(--fs-body-lg);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.gbp-photo{display:block;max-width:100%;max-height:280px;border-radius:var(--r-md)}.gbp-wait{margin:0;font-size:var(--fs-small);opacity:.75}/**
 * guestbookWall.css — the approved recordings on the page's Guest Book block
 * (GuestbookWall), in the share page's own vocabulary.
 *
 * @fileoverview Drawn under the notes, on whichever surface the block sits
 * (cream paper in the Builder's preview, the public glass), so every colour
 * is the surface's `currentColor` or a share token. Tokens only.
 *
 * @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
 */.gcv-gbw{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--share-border-soft)}.gcv-gbw-row{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.gcv-gbw-who{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-small);opacity:.8}.gcv-gbw-who b{font-size:var(--fs-body);opacity:1}.gcv-gbw>.gcv-btn{align-self:flex-start}.gcv-gbw-private{margin:0;font-size:var(--fs-small);line-height:1.45;opacity:.75}/**
 * rsvpPeople.css — the per-person cards on the RSVP form (DESIGN_SPEC §3.43)
 *
 * @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
 */.rp{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.rp-eyebrow{margin-bottom:0}.rp-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--share-border);border-radius:12px}.rp-card.is-out{opacity:.6}.rp-head{display:flex;align-items:center;gap:8px;font-size:15px}.rp-head .icon{opacity:.7}.rp-coming{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:14px}.rp-group{display:flex;flex-direction:column;gap:6px}.rp-label{font-size:13px;font-weight:600;opacity:.75}.rp-pills{display:flex;flex-wrap:wrap;gap:6px}.rp-pill{padding:8px 12px;border-radius:999px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;border:1px solid var(--share-border);background:transparent;color:var(--share-ink)}.rp-pill[aria-pressed=true]{border-color:var(--share-accent);background:var(--share-accent);color:var(--share-paper)}.rp-fine{margin:0}/**
 * photoQueue.css — the host's guest-photo queue (PhotoQueue, PhotoWallPanel).
 *
 * @fileoverview Thumbnail cards with who shared each and one-tap Approve /
 * Reject, sized for a phone held at a reception table (DESIGN_SPEC §3.16).
 * App chrome, tokens only. Moved out of `screens/activityScreen.css` on
 * 2026-10-03, when the queue became a component three screens mount.
 *
 * @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
 */.pq{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);max-width:720px}.pq-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.pq-count+.btn{margin-left:auto}.pq-count{color:var(--ink-soft);font-weight:500;font-size:13px}.pq-title{margin:0;font-size:15px;font-weight:700;color:var(--ink)}.pq-note{margin:0;color:var(--ink-soft);font-size:13px}.pq-grid{display:grid;gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr))}.pq-item{margin:0;display:grid;grid-template-rows:auto 1fr auto;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.pq-thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--r-sm);display:block}.pq-open{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--r-sm);background:none;cursor:zoom-in}.pq-zoom{position:absolute;top:6px;right:6px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-size:18px;color:var(--bg);background:color-mix(in srgb,var(--ink) 62%,transparent);pointer-events:none}.pq-meta{display:grid;align-content:start;gap:2px;font-size:12.5px;min-width:0}.pq-uploader{font-size:14px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.pq-when{color:var(--ink-soft)}.pq-actions{display:flex;gap:var(--sp-1)}.pq-actions .btn{flex:1 1 auto}.pq-desk{display:grid;gap:var(--sp-4);margin:0 0 var(--sp-5);padding-bottom:var(--sp-4);border-bottom:1px solid var(--divider)}.pq-tv-url{display:block;margin-top:var(--sp-3);font-size:clamp(22px,5vw,28px);font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;-webkit-user-select:all;user-select:all;color:var(--text-primary);word-break:break-all}/**
 * @fileoverview The Chat block on the page (ChatSection.jsx, DESIGN_SPEC §3.7):
 * a chat window at the block's height, messenger bubbles in runs, photos, the
 * reaction picker, the host's approvals and the one-row composer.
 *
 * Tokens only, and mostly `currentColor`: the block paints the SHARE stage —
 * white type on the dark glass by default, ink on a Paper Look or a light page
 * (finish.css repaints `.gcv-chat-bubble.is-theirs/.is-host` and
 * `.gcv-chat-meta` there) — so a tint taken from the type reads on either.
 *
 * @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
 */.cb{display:flex;flex-direction:column;gap:10px;font-family:var(--font-sans)}.cb.is-expanded{min-height:calc(100dvh - 116px)}.cb-head{display:flex;justify-content:flex-end}.cb-new{padding:3px 10px;border-radius:var(--r-pill);background:var(--share-accent);color:var(--share-paper);font-size:12px;font-weight:800;white-space:nowrap}.cb-thread{height:min(var(--chat-h),75vh);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:4px 2px 8px;border-radius:var(--r-md);transition:height var(--t-snap) var(--easing)}.cb-thread>:first-child{margin-top:auto}.cb.is-expanded .cb-thread{height:auto;flex:1 1 auto;min-height:0}.cb-older{align-self:center;margin-bottom:8px;padding:5px 14px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.cb-empty{margin:auto;max-width:32ch;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:color-mix(in srgb,currentColor 72%,transparent)}.cb-empty .icon{font-size:34px;opacity:.7}.cb-empty p{margin:0;font-size:14px;line-height:1.45}.cb-day{display:flex;justify-content:center;margin:12px 0 4px}.cb-day span{padding:3px 11px;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 10%,transparent);font-size:12px;font-weight:700;color:color-mix(in srgb,currentColor 80%,transparent)}.cb-note{align-self:flex-end;max-width:82%;margin:8px 0 0;text-align:right;font-size:12.5px;font-style:italic;color:color-mix(in srgb,currentColor 65%,transparent)}.cb-msg{--chat-indent: 36px;display:flex;flex-direction:column;align-items:flex-start;margin-top:2px}.cb-msg.is-own{--chat-indent: 0px;align-items:flex-end}.cb-msg.is-first{margin-top:12px}.cb-msg>:not(.cb-row){margin-left:var(--chat-indent)}.cb-name{margin-bottom:3px;font-size:12.5px;font-weight:700;color:color-mix(in srgb,currentColor 78%,transparent)}.cb-host{margin-left:6px;padding:1px 7px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--sec-plan) 32%,transparent);font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.cb-row{display:flex;align-items:center;gap:4px;max-width:88%}.cb-msg.is-own .cb-row{flex-direction:row-reverse}.cb-avatar{flex:0 0 auto;align-self:flex-end;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}.cb-avatar:not(:empty){background:color-mix(in srgb,var(--sec-people) 38%,transparent)}.cb-avatar.is-host:not(:empty){background:color-mix(in srgb,var(--sec-plan) 45%,transparent)}.gcv-chat-bubble{min-width:0;padding:8px 13px;border-radius:18px;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.gcv-chat-bubble.is-theirs{background:color-mix(in srgb,currentColor 13%,transparent)}.gcv-chat-bubble.is-mine{background:var(--share-accent);color:var(--share-paper)}.gcv-chat-bubble.is-host{background:color-mix(in srgb,var(--sec-plan) 22%,transparent);border:1px solid color-mix(in srgb,var(--sec-plan) 42%,transparent)}.cb:not(.is-pub) .gcv-chat-bubble.is-theirs{background:var(--share-paper);border:1px solid var(--share-border-soft)}.cb:not(.is-pub) .gcv-chat-bubble.is-host{background:var(--share-guest-bg);border-color:var(--share-guest-border)}.cb-msg.is-other:not(.is-first) .gcv-chat-bubble{border-top-left-radius:6px}.cb-msg.is-other:not(.is-last) .gcv-chat-bubble{border-bottom-left-radius:6px}.cb-msg.is-own:not(.is-first) .gcv-chat-bubble{border-top-right-radius:6px}.cb-msg.is-own:not(.is-last) .gcv-chat-bubble{border-bottom-right-radius:6px}.gcv-chat-bubble.is-held{opacity:.78;outline:2px dashed color-mix(in srgb,currentColor 40%,transparent);outline-offset:2px}.gcv-chat-bubble.has-photo{padding:3px;overflow:hidden}.gcv-chat-bubble.has-photo .cb-text{display:block;padding:6px 10px 5px}.cb-photo-open{display:block;padding:0;border:0;border-radius:15px;overflow:hidden;background:color-mix(in srgb,currentColor 8%,transparent);cursor:zoom-in}.cb-photo{display:block;width:240px;max-width:100%;height:auto;max-height:320px;object-fit:cover}.cb-tool{flex:0 0 auto;width:34px;height:34px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;color:inherit;opacity:.5;cursor:pointer;transition:opacity var(--t-snap) var(--easing),background var(--t-snap) var(--easing)}.cb-tool:hover,.cb-tool:focus-visible,.cb-tool[aria-expanded=true]{opacity:1;background:color-mix(in srgb,currentColor 14%,transparent)}@media(hover:hover)and (pointer:fine){.cb-msg:not(:hover):not(:focus-within) .cb-tool{opacity:0}}@media(pointer:coarse){.cb-tool{width:44px;height:44px;margin:-4px 0}}.cb-picker{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-top:6px;padding:4px;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 14%,transparent)}.cb-picker button{min-width:40px;height:40px;padding:0 6px;border:0;border-radius:var(--r-pill);background:transparent;color:inherit;font:inherit;font-size:20px;cursor:pointer}.cb-picker button:hover,.cb-picker button.is-mine{background:color-mix(in srgb,var(--share-accent) 45%,transparent)}.cb-picker .cb-picker-remove{display:inline-flex;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:700}.cb-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.cb-reaction{display:inline-flex;align-items:center;gap:3px;min-height:30px;padding:2px 9px;border:1px solid color-mix(in srgb,currentColor 26%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font-size:14px;cursor:pointer}.cb-reaction.is-mine{border-color:var(--share-accent);background:color-mix(in srgb,var(--share-accent) 22%,transparent)}.cb-reaction:disabled{cursor:default}.cb-reaction-n{font-size:12px;font-weight:700}.gcv-chat-meta{display:flex;align-items:center;gap:3px;margin-top:3px;font-size:12px;color:color-mix(in srgb,currentColor 62%,transparent)}.gcv-chat-meta .icon{font-size:14px}.cb-composer{display:flex;flex-direction:column;gap:8px}.cb-as{display:flex;align-items:baseline;gap:8px;margin:0;font-size:13px;color:color-mix(in srgb,currentColor 75%,transparent)}.cb-as .gcv-link{padding:0;border:0;background:none;font:inherit;font-weight:700;cursor:pointer}.cb-name-field{max-width:320px}.cb-compose{display:flex;align-items:flex-end;gap:8px}.cb-compose>.gtx{flex:1 1 auto;min-width:0}.cb-compose .cb-box{display:block;min-height:44px;padding:11px 16px;border-radius:22px;line-height:1.35;resize:none}.cb-round,.cb-send{flex:0 0 auto;width:44px;height:44px;padding:0;border-radius:50%;display:grid;place-items:center;cursor:pointer}.cb-round{border:1px solid color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit}.cb-round:hover{background:color-mix(in srgb,currentColor 16%,transparent)}.cb-send{border:0;background:var(--share-accent);color:var(--share-paper);transition:transform var(--t-instant) ease-out,opacity var(--t-snap) var(--easing)}.cb-send:active:not(:disabled){transform:scale(.94)}.cb-send:disabled{opacity:.4;cursor:default}.cb-pending{display:flex;align-items:center;gap:12px;padding:8px;border-radius:16px;background:color-mix(in srgb,currentColor 8%,transparent)}.cb-pending img{width:64px;height:64px;flex:0 0 auto;object-fit:cover;border-radius:var(--r-sm)}.cb-pending-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.cb-pending-text>span{color:color-mix(in srgb,currentColor 75%,transparent)}.cb-wall{display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}.cb-wall input{width:20px;height:20px;margin:0;accent-color:var(--share-accent)}.cb-composer-note{margin:0;font-size:13px;color:color-mix(in srgb,currentColor 80%,transparent)}.cb-composer-note.is-warn{color:var(--share-error);font-weight:700}.cb.is-pub .cb-composer-note.is-warn{color:var(--share-ask)}.cb-readonly{margin:0;text-align:center;font-size:13px;color:color-mix(in srgb,currentColor 65%,transparent)}@media(prefers-reduced-motion:reduce){.cb-thread,.cb-send,.cb-tool{transition:none}}/**
 * @fileoverview The venue blocks — the Venue Map's picture, pins, walk and
 * place card on the share page, its editor's matching room, and the
 * Checkpoints hand, stops and board (DESIGN_SPEC §3.29). The Schedule's room
 * chip and the agenda rows a place card lists live here too.
 *
 * Tokens only: the share palette, the band hues, spacing and radii. Every
 * colour that must read on the public glass is `inherit` or a currentColor
 * mix — the panel's Look decides the ink (promo.css's rule). An uploaded
 * picture sits on the share paper in either theme: a floor plan is ink on
 * white, and it must stay legible whatever stage is behind it.
 *
 * @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
 */.vn,.vn-find{display:flex;flex-direction:column;gap:var(--sp-3)}.vn-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.vn-chips .pr-chip .icon{margin-left:-2px}.block-expand-body>.vn{max-width:760px;margin-inline:auto}.block-expand-body>.vn.is-full{max-width:1400px}@media(min-width:900px){.vn.is-full{display:grid;align-items:start;column-gap:var(--sp-4);grid-template-columns:minmax(0,2fr) minmax(300px,1fr);grid-template-areas:"find find" "map side" "chart chart"}.vn.is-full .vn-find{grid-area:find}.vn.is-full .vn-map{grid-area:map}.vn.is-full .vn-side{grid-area:side;max-height:calc(100dvh - 210px);overflow-y:auto}.vn.is-full .vn-stage{--vn-h: calc(100dvh - 230px) !important}.vn.is-full .vn-chart-area{grid-area:chart;margin-top:var(--sp-3)}}.vn-none{margin:0;font-size:15px;opacity:.8}.vn-hue-0{--vn-hue: var(--sec-go)}.vn-hue-1{--vn-hue: var(--sec-plan)}.vn-hue-2{--vn-hue: var(--sec-people)}.vn-hue-3{--vn-hue: var(--sec-know)}.vn-hue-4{--vn-hue: var(--sec-gifts)}.vn-hue-5{--vn-hue: var(--sec-treasure)}.vn-hue-6{--vn-hue: var(--sec-shop)}.vn-hue-7{--vn-hue: var(--sec-brand)}.vn-map{display:flex;flex-direction:column;gap:var(--sp-2)}.vn-pics{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.vn-stage{position:relative;--vn-h: 360px}.vn-frame{display:grid;place-items:center;height:var(--vn-h);overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md);border:1px solid var(--share-border);background:var(--share-paper)}.vn-frame.is-aiming{cursor:crosshair}.vn-canvas{position:relative;cursor:zoom-in;justify-self:start;align-self:center}.vn-canvas.is-closest{cursor:zoom-out}.vn-frame.is-aiming .vn-canvas{cursor:crosshair}.vn-img{display:block;width:100%;height:auto}.vn-pin{position:absolute;transform:translate(-50%,-50%);z-index:1;width:18px;height:18px;padding:0;cursor:pointer;border:2px solid var(--share-paper);border-radius:var(--r-pill);background:var(--vn-hue, var(--share-ink));box-shadow:var(--shadow-sm)}.vn-pin:after{content:"";position:absolute;top:-13px;right:-13px;bottom:-13px;left:-13px}.vn-pin.has-fp{width:calc(var(--w) * 100%);height:calc(var(--h) * 100%);border-radius:2px;border-width:1px;border-color:color-mix(in srgb,var(--share-ink) 35%,transparent);box-shadow:none;background:color-mix(in srgb,var(--vn-hue, var(--share-ink)) 24%,var(--share-paper));display:grid;place-items:center;overflow:hidden}.vn-pin.has-fp.is-occ{background:color-mix(in srgb,var(--vn-hue, var(--share-ink)) 48%,var(--share-paper))}.vn-pin.has-fp:after{top:0;right:0;bottom:0;left:0}.vn-pin-num{font-family:var(--font-sans);font-size:10px;font-weight:700;line-height:1;color:var(--share-ink);pointer-events:none}.vn-frame.z1 .vn-pin-num,.vn-frame.z2 .vn-pin-num{display:none}.vn-pin.is-lm{width:26px;height:26px;display:grid;place-items:center;background:var(--share-paper);border:2.5px solid var(--vn-hue, var(--share-ink));color:var(--vn-hue, var(--share-ink))}.vn-pin.is-on{width:28px;height:28px;z-index:2;background:var(--share-accent);color:var(--share-paper);outline:4px solid color-mix(in srgb,var(--share-accent) 40%,transparent)}.vn-pin.has-fp.is-on{width:calc(var(--w) * 100%);height:calc(var(--h) * 100%);outline-width:3px}.vn-pin.is-hit{background:color-mix(in srgb,var(--sec-plan) 80%,var(--share-paper));border-color:var(--share-ink)}.vn-frame.is-dimmed .vn-pin:not(.is-hit):not(.is-on):not(.is-lm){opacity:.35}.vn-pin-label{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);padding:2px var(--sp-2);border-radius:var(--r-sm);pointer-events:none;white-space:nowrap;background:var(--share-ink);color:var(--share-paper);font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:700}.vn-pin.has-fp .vn-pin-label{top:auto;bottom:2px}.vn-route{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.vn-route-bg{fill:none;stroke:var(--share-paper);stroke-width:9;stroke-linecap:round;opacity:.9}.vn-route-line{fill:none;stroke:var(--share-route);stroke-width:5;stroke-linecap:round;stroke-dasharray:1 9}.vn-aisle{fill:none;stroke:color-mix(in srgb,var(--share-route) 40%,transparent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.vn-aisle.is-draft{stroke:var(--accent);stroke-width:4;stroke-dasharray:6 6}.vn-here{position:absolute;z-index:3;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:var(--r-pill);background:var(--share-route);border:3px solid var(--share-paper);box-shadow:0 0 0 4px color-mix(in srgb,var(--share-route) 30%,transparent)}.vn-here:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:inherit;border:2px solid var(--share-route);animation:vn-ring 1.8s ease-out infinite}@keyframes vn-ring{0%{transform:scale(.6);opacity:.7}to{transform:scale(2.2);opacity:0}}@media(prefers-reduced-motion:reduce){.vn-here:after{animation:none;opacity:.4}}.vn-xhair{position:absolute;left:50%;top:calc(var(--vn-h) / 2);z-index:3;width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:none;border-radius:var(--r-pill);border:2px solid var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--share-paper) 80%,transparent)}.vn-xhair:before,.vn-xhair:after{content:"";position:absolute;background:var(--accent)}.vn-xhair:before{left:50%;top:-10px;width:2px;height:64px;margin-left:-1px}.vn-xhair:after{top:50%;left:-10px;height:2px;width:64px;margin-top:-1px}.vn-mapnote{position:absolute;left:50%;bottom:58px;z-index:3;transform:translate(-50%);max-width:calc(100% - 20px);padding:6px var(--sp-3);border-radius:var(--r-pill);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--share-ink);color:var(--share-paper);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600}.vn-pic-pill{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:2;max-width:calc(100% - 64px);display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 var(--sp-2) 0 var(--sp-3);cursor:pointer;border:1px solid var(--share-border);border-radius:var(--r-pill);background:var(--share-paper);color:var(--share-ink);box-shadow:var(--shadow-sm);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vn-zoom{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:2;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-md);box-shadow:var(--shadow-md)}.vn-zoom button{width:44px;height:44px;border:0;cursor:pointer;display:grid;place-items:center;background:var(--share-paper);color:var(--share-ink)}.vn-zoom button+button{border-top:1px solid var(--share-border)}.vn-zoom button:disabled{cursor:default}.vn-zoom button:disabled .icon{opacity:.3}.vn-here-pill{position:absolute;left:var(--sp-2);bottom:var(--sp-2);z-index:2;max-width:calc(100% - 70px);display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 var(--sp-3);cursor:pointer;border:1px solid var(--share-border);border-radius:var(--r-pill);background:var(--share-paper);color:var(--share-ink);box-shadow:var(--shadow-sm);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600}.vn-here-pill b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vn-here-dot{flex:0 0 auto;width:10px;height:10px;border-radius:var(--r-pill);background:var(--share-route);box-shadow:0 0 0 3px color-mix(in srgb,var(--share-route) 30%,transparent)}.vn-stage .leaf-expand{position:absolute;right:var(--sp-2);bottom:var(--sp-2);z-index:2}.vn-side{display:flex;flex-direction:column;gap:var(--sp-3)}.vn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.vn-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) 0;cursor:pointer;border:0;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent);background:transparent;color:inherit;font:inherit;text-align:left}.vn-list li:first-child .vn-row{border-top:0}.vn-ico{flex:0 0 auto;width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;font-family:var(--font-sans);font-weight:800;font-size:15px;background:color-mix(in srgb,var(--vn-hue, currentColor) 24%,transparent)}.vn-logo-sm{flex:0 0 auto;width:36px;height:36px;border-radius:var(--r-md);object-fit:contain;background:var(--share-paper)}.vn-row-main{flex:1 1 auto;min-width:0}.vn-row-name{display:block;font-size:16px;font-weight:700}.vn-row-sub{display:block;font-size:14px;opacity:.75}.vn-pill{flex:0 0 auto;padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--confirm);color:var(--share-ink);font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:700}.vn-more{align-self:center}.vn-card{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:var(--r-lg)}.vn-card-head{display:flex;align-items:flex-start;gap:var(--sp-3)}.vn-card-title{display:block;font-size:20px;font-weight:700;line-height:1.2}.vn-card p{margin:0;font-size:15px;white-space:pre-wrap}.vn-close{flex:0 0 auto;width:44px;height:44px;border:0;cursor:pointer;display:grid;place-items:center;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 12%,transparent);color:inherit}.vn-go{display:inline-flex;align-items:center;gap:6px}.vn-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.vn-fact{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 9%,transparent)}.vn-fact-k{display:block;font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;opacity:.7}.vn-fact-v{font-weight:700;font-variant-numeric:tabular-nums}.vn-tier{display:inline-block;margin-left:var(--sp-2);padding:1px var(--sp-2);border-radius:var(--r-sm);vertical-align:2px;background:var(--ad-accent, var(--share-accent));color:var(--ad-on-accent, var(--share-paper));font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.vn-vendor-cat{font-size:14px;opacity:.75}.vn-logo{width:52px;height:52px;border-radius:var(--r-md);object-fit:contain;background:var(--share-paper)}.vn-links{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}.vn-sub-head{margin:0;font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.vn-dir-head{display:flex;flex-direction:column;gap:2px}.vn-dir-sum{font-size:15px;font-weight:700}.vn-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.vn-step{display:flex;gap:var(--sp-3);align-items:flex-start;font-size:15px}.vn-step-n{flex:0 0 26px;height:26px;border-radius:var(--r-pill);display:grid;place-items:center;background:var(--share-route);color:var(--share-paper);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700}.vn-step.is-last .vn-step-n{background:var(--share-accent)}.vn-where .vn-list{max-height:240px;overflow:auto}.vn-chart-area{display:flex;flex-direction:column;gap:var(--sp-3)}.vn-details-btn{align-self:flex-start}.vn .vn-facts-note{margin:0;font-size:var(--fs-small);opacity:.8;white-space:pre-wrap}.vn-chart{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;container-type:inline-size;border:1px solid var(--share-border);border-radius:var(--r-md);background:var(--share-paper);color:var(--share-ink)}.vn-chart table{min-width:100%;border-collapse:separate;border-spacing:0;font-family:var(--font-sans);font-size:var(--fs-small);font-variant-numeric:tabular-nums}.vn-chart th,.vn-chart td{padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top;border-top:1px solid var(--share-border)}.vn-chart thead th,.vn-chart thead td{border-top:0;vertical-align:bottom}.vn-chart td{white-space:nowrap}.vn-chart tbody th,.vn-chart thead td{position:sticky;left:0;z-index:1;min-width:clamp(6.5rem,40cqi,11rem);max-width:16rem;background:var(--share-paper);font-weight:600;box-shadow:1px 0 0 var(--share-border)}.vn-chart thead th button{min-height:32px;padding:0;border:0;cursor:pointer;white-space:nowrap;text-align:left;background:transparent;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent)}.vn-agenda{display:flex;flex-direction:column;gap:var(--sp-3)}.vn-slot{display:flex;gap:var(--sp-3)}.vn-slot-time{flex:0 0 76px;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.vn-slot-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.vn-slot-day{font-size:13px;opacity:.7}.vn-slot-title{font-size:16px;font-weight:600}.vn-slot-note,.vn-slot-who{font-size:14px;opacity:.75}.vn-slot-who .icon{vertical-align:-3px;margin-right:2px}.vn-room{position:relative;display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 var(--sp-3);margin-top:2px;cursor:pointer;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;text-decoration:none;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700}.vn-room:after{content:"";position:absolute;top:-6px;right:0;bottom:-6px;left:0}.vn-hand{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-2);max-width:340px}.vn-playing{aspect-ratio:5 / 7;display:grid;place-items:center;border-radius:var(--r-md);background:var(--share-paper);color:var(--share-ink);font-family:var(--font-sans);font-size:18px;font-weight:800}.vn-playing.is-red{color:var(--sec-shop)}.vn-playing.is-empty{background:transparent;color:inherit;opacity:.6;border:1.5px dashed color-mix(in srgb,currentColor 40%,transparent);font-weight:500;font-size:14px}.vn-hand-name{margin:0;font-size:20px;font-weight:700}.vn-checkin{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-lg);background:color-mix(in srgb,var(--share-accent) 22%,transparent);border:1px solid color-mix(in srgb,var(--share-accent) 55%,transparent)}.vn-checkin-title{margin:0;font-size:18px;font-weight:700}.vn-checkin .gcv-btn{min-height:48px}.vn-checkin p{margin:0;font-size:15px}.vn-error{margin:0;font-size:14px;font-weight:600}.vn-board-row{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent)}.vn-board-row:first-child{border-top:0}.vn-rank{flex:0 0 24px;font-weight:700;font-variant-numeric:tabular-nums;opacity:.7}.vn-board-name{flex:1 1 auto;min-width:0;font-weight:700}.vn-board-hand{font-size:14px;opacity:.8;text-align:right}.vn-pill-after{margin-left:var(--sp-2);vertical-align:2px}.vne-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.vne-form{box-shadow:inset 0 0 0 1.5px var(--accent)}.vne-two{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));column-gap:var(--sp-3)}.vne-list{display:flex;flex-direction:column;max-height:380px;overflow-y:auto;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.vne-row{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:52px;padding:var(--sp-2) var(--sp-2) var(--sp-2) 0;cursor:pointer;border:0;border-top:1px solid var(--divider);background:transparent;color:inherit;font:inherit;text-align:left}.vne-row:first-child{border-top:0}.vne-row.is-on{background:var(--accent-surface)}.vne-row.is-target{background:color-mix(in srgb,var(--confirm) 28%,var(--bg-elev))}.vne-grab{flex:0 0 auto;width:36px;height:44px;display:grid;place-items:center;color:var(--muted);cursor:grab;touch-action:none}.vne-grab:active{cursor:grabbing}.vne-row:not(:has(.vne-grab)){padding-left:var(--sp-3)}.vne-dot{flex:0 0 auto;width:12px;height:12px;border-radius:var(--r-pill);background:var(--vn-hue, var(--muted))}.vne-dot.is-none{background:transparent;border:2px dashed var(--muted)}.vne-row-text{flex:1 1 auto;min-width:0}.vne-row-text b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vne-row-text small{display:block;color:var(--muted);font-size:var(--fs-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vne-empty{padding:var(--sp-3)}.vne-room{position:relative;container-type:inline-size}.vne-grid{display:flex;flex-direction:column;gap:var(--sp-3)}.vne-map{display:flex;flex-direction:column;gap:var(--sp-2)}.vne-mapbox .vn-frame{border-color:var(--edge)}.vne-side{display:flex;flex-direction:column;gap:var(--sp-2)}@container (min-width: 760px){.vne-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(300px,2fr);align-items:start;gap:var(--sp-3)}.vne-grid .vne-list{max-height:460px}}.vne-room .vn-pin{touch-action:none}.vne-ghost{position:absolute;z-index:50;pointer-events:none;transform:translate(-50%,-140%);white-space:nowrap;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-pill);background:var(--ink);color:var(--bg);font-size:var(--fs-small);font-weight:700;box-shadow:var(--shadow-md)}.vne-line{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:49;pointer-events:none}.vne-line line{stroke:var(--accent);stroke-width:3;stroke-dasharray:6 6}.vne-ask{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elev);box-shadow:inset 0 0 0 1.5px var(--accent)}.vne-contact{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--sec-people) 12%,var(--bg-elev))}.vne-contact>.icon{color:var(--sec-people)}.vne-contact-text{flex:1 1 12rem;min-width:0;font-size:var(--fs-small)}.vne-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}.vne-pic{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg)}.vne-pic.is-on{border-color:var(--accent)}.vne-pic-thumb{height:84px;padding:0;border:1px solid var(--share-border);border-radius:var(--r-sm);overflow:hidden;background:var(--share-paper);cursor:pointer}.vne-pic-thumb img{width:100%;height:100%;object-fit:contain;display:block}.vne-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));align-items:end;column-gap:var(--sp-3)}.vne-add-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-2)}.vne-kinds{display:flex;flex-direction:column;gap:var(--sp-2)}.vne-kinds summary{cursor:pointer;font-weight:600;font-size:var(--fs-small);padding:var(--sp-2) 0}.vne-kind{display:grid;grid-template-columns:124px minmax(0,1fr) auto;align-items:end;gap:var(--sp-2);margin-bottom:var(--sp-2)}/**
 * People block — lookup directory + self-edit (DESIGN_SPEC §3.22 / §3.24).
 *
 * @fileoverview Roster People is a searchable directory; "Your info" collapses
 * once the asked fields are filled. Manual featured people keep the grid.
 *
 * @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
 */.people-lookup-search{width:100%;margin:0 0 var(--sp-3)}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-3)}.people-list{display:flex;flex-direction:column;gap:var(--sp-3)}.people-tile{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.people-row{display:flex;gap:var(--sp-3);align-items:flex-start}.people-row-body{flex:1;min-width:0}.people-avatar{border-radius:50%;object-fit:cover}.people-avatar-fallback{border-radius:50%;background:var(--share-border-soft);display:flex;align-items:center;justify-content:center;color:var(--share-accent);font-weight:700;font-size:var(--fs-h3)}.people-name{font-size:var(--fs-body);font-weight:700}.people-meta,.people-empty,.people-preview{font-size:var(--fs-small);opacity:.75}.people-preview{margin-top:2px}.people-bio{font-size:var(--fs-small);opacity:.8;margin-top:var(--sp-1);line-height:1.45}.people-link{display:inline-block;margin-top:var(--sp-1);color:var(--share-accent);font-weight:600;font-size:var(--fs-small);text-decoration:none}.people-details-btn{margin-top:var(--sp-1);padding:6px 10px;font-size:var(--fs-small)}.people-extra{font-size:var(--fs-small);margin-top:var(--sp-1)}.people-extra-label{opacity:.7}.people-me{margin:0 0 var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.people-me-title{font-size:var(--fs-small);font-weight:700}.people-me-edit{align-self:flex-start;margin:0 0 var(--sp-3);padding:0;border:0;background:transparent;color:var(--share-accent);font-family:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer;min-height:44px}.people-me-edit:hover{text-decoration:underline}.people-nudge{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-4)}.people-nudge-notice{font-size:var(--fs-small);color:var(--share-success)}.people-nudge-error{font-size:var(--fs-small);color:var(--share-error)}/**
 * @fileoverview The shared colour chooser (ColorChooser.jsx).
 * @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
 */.cc{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.cc-group{display:flex;flex-direction:column;gap:var(--sp-1)}.cc-label{font-size:var(--fs-caption);font-weight:700;color:var(--ink-soft)}.cc-swatches{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.cc-swatch{width:32px;height:32px;padding:0;border:2px solid var(--edge);border-radius:var(--r-pill);cursor:pointer}.cc-swatch.is-on{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-outline)}.cc-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.cc-custom,.cc-hex{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.cc-custom{cursor:pointer}.cc-custom input{width:32px;height:32px;padding:0;border:2px solid var(--divider);border-radius:var(--r-sm);background:transparent;cursor:pointer}.cc-hex input{width:9ch;min-height:32px;padding:0 var(--sp-2);border:1.5px solid var(--divider);border-radius:var(--r-sm);background:var(--bg-elev);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}@media(hover:none){.cc-swatch,.cc-custom input{width:44px;height:44px}.cc-hex input{min-height:44px}}/**
 * @fileoverview Gentle editorial materials for cards, playlists and previews.
 * @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
 */.lb-editorial{overflow:hidden}.lb-editorial--silk:before,.lb-editorial--afterglow:before{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;background:var(--lb-sheen);animation:lb-editorial-drift 32s ease-in-out infinite alternate}.lb-editorial--afterglow:before{animation-duration:42s}@keyframes lb-editorial-drift{0%{transform:translate3d(-4%,-2%,0) scale(1);opacity:.65}to{transform:translate3d(4%,2%,0) scale(1.08);opacity:1}}@media(prefers-reduced-motion:reduce){.lb-editorial:before{animation:none}}/**
 * @fileoverview The sender's own background — a colour, or their photo as it
 * is or blurred (DESIGN_SPEC §3.7.4, data/customBackground.js).
 * @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
 */.lb-color{background:radial-gradient(80% 100% at 30% 0%,color-mix(in srgb,var(--share-paper) 26%,transparent),transparent 70%) 0 0 / 100% 60vh no-repeat,url(/landing/tooth.svg) 0 0 / 240px 240px repeat,var(--lb-color)}.gcv-bg.gcv-bg--photo{overflow:clip;background:var(--share-stage)}.lb-photo{position:sticky;top:0;height:min(100%,100vh);height:min(100%,100lvh);overflow:hidden}.lb-photo-img{position:absolute;top:0;right:0;bottom:0;left:0;background:center / cover no-repeat}.lb-photo-img.is-blur{top:-10%;right:-10%;bottom:-10%;left:-10%;filter:blur(40px) saturate(1.15) brightness(.82)}.lb-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,color-mix(in srgb,var(--share-stage) 44%,transparent),color-mix(in srgb,var(--share-stage) 16%,transparent) 32%,color-mix(in srgb,var(--share-stage) 16%,transparent) 66%,color-mix(in srgb,var(--share-stage) 52%,transparent))}/**
 * @fileoverview A compact, legible material gallery shared by all backgrounds.
 * @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
 */.bps-gallery{color:var(--ink)}.bps-gallery .gd-sheet-intro{color:var(--ink-soft);line-height:1.6;margin-top:0}.bps-gallery .gd-bgtabs{border-radius:var(--r-md);background:var(--surface-inset)}.bps-gallery .gd-bgtab{min-height:44px;padding:8px;border-radius:var(--r-sm);color:var(--ink-soft)}.bps-gallery .gd-bgtab.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.bps-shelf-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 16px}.bps-shelf-note p{flex:1 1 260px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.5}.bps-shelf-note>span{font-size:12px;color:var(--muted)}.bps-shelf-note strong{color:var(--ink)}.bps-gallery .gd-bgpick{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.bps-gallery .gd-bgpick-swatch{display:flex;flex-direction:column;aspect-ratio:auto;text-align:left;border-radius:var(--r-md);border:1px solid var(--edge);box-shadow:none;background:var(--surface);min-width:0;transition:border-color .16s,box-shadow .16s}.bps-gallery .gd-bgpick-swatch.is-on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-outline)}.bps-gallery .gd-bgpick-swatch:focus-visible,.bps-gallery .gd-bgtab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bps-gallery .gd-bgpick-swatch:not(:disabled):hover{border-color:var(--accent)}.bps-art{display:block;position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;background-size:cover}.bps-caption{display:flex;flex-direction:column;gap:4px;padding:12px;width:100%;box-sizing:border-box}.bps-caption strong{color:var(--ink);font-size:13px;line-height:1.3}.bps-caption>span{color:var(--ink-soft);font-size:11px;line-height:1.4;font-weight:400}.bps-selected{position:absolute;top:8px;right:8px;z-index:2;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-pill);font-size:18px;color:var(--bg);background:var(--ink);box-shadow:var(--shadow-sm)}.bps-gallery .gd-bgpick-auto{top:auto;bottom:8px;left:8px;max-width:calc(100% - 30px)}.bps-gallery .bps-follow{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset)}.bps-gallery .gd-viz-lbl,.bps-gallery .gd-viz-note{color:var(--ink-soft)}.bps-gallery .gd-viz-lbl strong{color:var(--ink)}.bps-gallery-sheet .assist-sheet-body{overscroll-behavior:contain}.bps-live{position:sticky;top:calc(-1 * var(--sticky-lift, 0px));z-index:3;margin-top:calc(-1 * var(--sticky-lift, 0px));padding-block:var(--sticky-lift, 0px) var(--sp-3);background:var(--bg)}.bps-live-stage{position:relative;overflow:hidden;height:clamp(150px,26vh,230px);border-radius:var(--r-md);background:var(--share-stage);box-shadow:var(--shadow-sm)}.bps-live-page{position:relative;z-index:1;height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-3);text-align:center}.bps-live .gcv-root .gcv-mast-eyebrow{margin-bottom:6px;font-size:10px}.bps-live .gcv-root .gcv-mast-title{margin-bottom:var(--sp-2);font-size:clamp(20px,3.2vw,30px)}.bps-live-block{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-small);background:color-mix(in srgb,var(--share-stage) 40%,transparent);border:1px solid color-mix(in srgb,var(--share-paper) 12%,transparent);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3)}.bps-yours{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-3)}.bps-yours-card{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface)}.bps-yours-head{margin:0;font-size:var(--fs-small);font-weight:700;color:var(--ink)}.bps-yours-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.bps-yours-note{margin:0;font-size:var(--fs-caption);line-height:1.5;color:var(--ink-soft)}.bps-gallery .bps-yours-photo{width:100%}.bps-yours-img{position:absolute;top:0;right:0;bottom:0;left:0;background:center / cover no-repeat}.bps-yours-img.is-blur{top:-8%;right:-8%;bottom:-8%;left:-8%;filter:blur(10px) saturate(1.15) brightness(.82)}@media(max-width:420px){.bps-gallery .gd-bgpick{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bps-gallery .gd-bgtab{font-size:12px;padding-inline:5px}.bps-caption{padding:10px}}@media(prefers-reduced-motion:reduce){.bps-gallery .gd-bgpick-swatch{transition:none}}/**
 * @fileoverview The Mix block and its Crew full-screen playlist stage.
 * Compact Mix rows ARE playlist rows — one single-column list, capped and
 * scrolling so a long Mix never stretches the Crew card. Full screen keeps
 * the persistent player docked (`keepPlayer`) and can toggle the song list
 * the way a normal playlist does; there the list runs uncapped.
 *
 * @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
 */.mix-heading{margin-bottom:var(--sp-3)}.mix-intro{margin-bottom:var(--sp-3);font-size:15px;opacity:.85}.mix-list,.mix-tracks{display:flex;flex-direction:column;margin:0;border:1px solid var(--share-border);border-radius:var(--r-md);overflow:hidden auto;-webkit-overflow-scrolling:touch}.mix-list{max-height:min(22.5rem,52vh)}.mix-list .pls-track,.mix-tracks .pls-track{background:transparent;border-bottom:1px solid var(--share-border)}.mix-list .pls-track:last-child,.mix-tracks .pls-track:last-child{border-bottom:none}.mix-list .pls-track-title,.mix-tracks .pls-track-title,.mix-list .pls-track-play,.mix-tracks .pls-track-play{color:inherit}.mix-list .pls-track-num,.mix-list .pls-eq,.mix-list .pls-track-duration,.mix-list .pls-track-ctl,.mix-tracks .pls-track-num,.mix-tracks .pls-eq,.mix-tracks .pls-track-duration,.mix-tracks .pls-track-ctl{color:color-mix(in srgb,currentColor 66%,transparent)}.mix-list .pls-track-play,.mix-tracks .pls-track-play{border-color:var(--share-border)}.mix-list .pls-track--current,.mix-tracks .pls-track--current{background:color-mix(in srgb,var(--accent) 14%,transparent)}.mix-list .pls-track-ctl:hover:not(:disabled),.mix-tracks .pls-track-ctl:hover:not(:disabled){color:inherit;background:color-mix(in srgb,currentColor 12%,transparent)}.mix-play-all{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.mix-play-row{margin-top:var(--sp-2)}.mix-play-row .btn.pls-mode-on{border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.mix-play-row .btn.pls-mode-on:not(:disabled):hover{background:color-mix(in srgb,var(--accent) 28%,transparent)}.mix-add{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}.mix-add>.gcv-btn{padding:var(--sp-2) var(--sp-4)}.mix-error{margin-top:var(--sp-2);color:var(--share-error);font-size:14px}.mix-note{margin-top:var(--sp-2);font-size:13px;opacity:.6}.block-expand-body>.mix-expanded{position:relative;display:flex;flex-direction:column;width:100%;max-width:none;flex:1 1 auto;min-height:0;margin:0;overflow:hidden;border-radius:var(--r-lg)}.mix-expanded .pls-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.mix-expanded-stage,.mix-expanded-list{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-4)}.mix-expanded-stage{display:flex;flex-direction:column;justify-content:center}.mix-expanded-stage .pls-stage{min-height:0}.mix-expanded-list .pls-listbar{margin-top:var(--sp-3)}.mix-expanded-list .mix-tracks{margin-top:6px;max-height:none;background:color-mix(in srgb,var(--share-paper) 6%,transparent);border-color:color-mix(in srgb,var(--share-paper) 12%,transparent)}.mix-expanded-credit{margin-top:calc(-1 * var(--sp-2));text-align:center;color:color-mix(in srgb,var(--share-paper) 68%,transparent);font-size:var(--fs-small)}/**
 * flexibleDateTime.css
 *
 * @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
 */.timing-field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.timing-field-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.timing-field-head .cds-label{margin:0}.timing-field .cds-input{width:100%;min-width:0;box-sizing:border-box}.timing-field .cds-hint{margin:0}.timing-field-head .ds-seg>button{min-height:36px}.schedule-timing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}@media(max-width:600px){.schedule-timing{grid-template-columns:minmax(0,1fr)}}.timing-field-mode{color:var(--text-secondary);font-size:var(--fs-small);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-color);border-radius:var(--r-pill)}/**
 * @fileoverview The calendar block's own classes. Share palette only.
 *
 * Every rule here replaces an inline style object from the 811-line renderer,
 * where the same card border was written six times and drifted to three
 * different radii. Inside the block the palette is the theme-invariant
 * `--share-*` set (the card is always the cream/glass panel, never the
 * viewer's dark mode) — DESIGN_SYSTEM.md §6a.
 *
 * @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
 */.cal-head{margin-bottom:12px}.cal-note{font-size:15px;opacity:.85;margin:0 0 10px}.cal-empty{font-size:14px;opacity:.8;margin:8px 0 0}.cal-error{color:var(--share-error);font-size:14px;margin:8px 0 0}.cal-card{padding:12px 14px;border:1px solid var(--share-border);border-radius:12px}.cal-card.is-hero{padding:14px}.cal-card-eyebrow{margin-bottom:4px}.cal-card-title{font-weight:700;font-size:15px}.cal-card.is-hero .cal-card-title{font-size:17px}.cal-card-when{font-size:13px;opacity:.85;margin-top:2px}.cal-card.is-hero .cal-card-when{font-size:15px;opacity:1}.cal-card-where{display:flex;align-items:center;gap:6px;font-size:14px;margin-top:4px}.cal-card-count,.cal-card-names{font-size:14px;margin-top:6px;opacity:.9}.cal-roll{font-size:14px;margin-top:8px}.cal-roll-line{margin-top:2px}.cal-roll-line b{font-weight:600}.cal-why{margin-top:8px}.cal-add-ask{margin-top:10px;align-self:flex-start}.cal-score{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:4px 0}.cal-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cal-rows{display:flex;flex-direction:column;gap:8px;margin-top:10px}.cal-chip{padding:9px 14px;font-size:14px;min-height:40px}.cal-chip[aria-pressed=false]{color:inherit;background:color-mix(in srgb,currentColor 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 28%,transparent)}.cal-chip[aria-pressed=false]:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 45%,transparent)}.cal-chip[aria-pressed=true]{background:var(--share-accent);color:var(--share-paper)}.cal-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cal-add{margin-top:12px;padding:11px 16px;font-size:15px}.cal-ask{margin-top:10px}.cal-ask-label{font-size:13px;opacity:.8;margin-bottom:4px}.cal-ask-result{font-size:14px}.cal-ask-by{opacity:.7}.cal-ask-empty{font-size:14px;opacity:.7}.cal-ask-form{display:flex;gap:8px;flex-wrap:wrap}.cal-ask-who{flex:1 1 140px}.cal-ask-amount{flex:0 1 110px}.cal-ask-builder{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:12px;border:1px solid var(--share-border);border-radius:12px}.cal-composer{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:14px;border:1px solid var(--share-border);border-radius:12px}.cal-composer-title{font-size:16px;font-weight:600}.cal-composer-label{font-size:13px;font-weight:700;opacity:.7;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}.cal-composer-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.cal-composer-go{padding:11px 16px;font-size:15px}.cal-composer-more{align-self:flex-start;border:0;background:none;cursor:pointer;padding:8px 0;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--share-accent);text-decoration:underline}.cal-composer-extra{display:flex;flex-direction:column;gap:8px}.cal-composer-field{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.cal-composer-field .gcv-field{width:auto;flex:1 1 140px}.cal-composer-check{display:flex;align-items:center;gap:8px;font-size:14px}.cal-composer-hint{font-size:13px;opacity:.8;margin:0}.cal-past{margin-top:14px}.cal-past-row{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;width:100%;text-align:left;cursor:pointer;padding:10px 12px;border-radius:10px;border:1px solid var(--share-border);background:transparent;color:inherit;font-family:var(--font-sans);font-size:14px}.cal-past-row:hover{border-color:var(--share-accent)}.cal-past-off{text-decoration:line-through}.cal-past-meta{opacity:.75;font-size:13px}.cal-month-hint{font-size:13px;opacity:.75;margin:10px 0 0}.cal-board{margin-bottom:14px}.cal-board-title{font-weight:700;font-size:15px;margin-bottom:6px}.cal-board-row{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:10px;margin-bottom:4px;border:1px solid var(--share-border);font-size:14px}.cal-board-lead{font-weight:700}.cal-board-score{opacity:.85}.cal-expanded{max-width:720px;margin:0 auto}.cal-expanded .occ-cal-cell{min-height:92px}/**
 * @fileoverview Video block — the player frame and the list of videos under it.
 *
 * Tokens only. The list is chrome, so it is set in the app's sans and takes
 * the leaf's own ink (`currentColor`): it reads on the cream fill card and on
 * the public page's glass without a rule per surface.
 *
 * @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
 */.gcv-video-frame{position:relative;width:100%;aspect-ratio:16 / 9;min-height:200px;border-radius:var(--r-md);overflow:hidden;background:var(--share-stage)}.gcv-video-frame>*{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.gcv-video-caption{margin-top:var(--sp-2);font-size:14px;opacity:.75;text-align:center}.gcv-video-caption.is-live{text-align:left}.gcv-videos{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3);font-family:var(--font-sans)}.gcv-videos-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 var(--sp-3);font-size:var(--fs-small);font-weight:600}.gcv-videos-order{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;cursor:pointer}.gcv-videos-order input{width:20px;height:20px;margin:0;accent-color:var(--share-accent)}.gcv-videos-list{display:flex;flex-direction:column;gap:var(--sp-1);max-height:352px;margin:0;padding:0;overflow-y:auto;list-style:none}.gcv-video-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-1);border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer}.gcv-video-row:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.gcv-video-row.is-on{border-color:color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 12%,transparent);font-weight:700}.gcv-video-thumb{display:grid;flex:0 0 96px;place-items:center;aspect-ratio:16 / 9;border-radius:var(--r-sm);overflow:hidden;background:var(--share-stage);color:var(--share-paper)}.gcv-video-thumb img{display:block;width:100%;height:100%;object-fit:cover}.gcv-video-text{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;line-height:1.25}.gcv-video-name{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.gcv-video-about{overflow:hidden;font-size:var(--fs-small);font-weight:400;opacity:.75;text-overflow:ellipsis;white-space:nowrap}.gcv-videos-none{margin:0;font-size:var(--fs-small);opacity:.75}/**
 * @fileoverview Weather block — current conditions + a 3- or 7-day trend.
 *
 * Tokens only (`--wx-*` in design-system.css, share ink). The hero draws
 * the sky on the right; the temperature stays on the solid plate. Clear
 * and the day tiles are a pale sky, not the plan-band gold.
 *
 * @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
 */.wx{display:flex;flex-direction:column;gap:var(--sp-3)}.wx-spots{display:flex;gap:var(--sp-2);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.wx-spots::-webkit-scrollbar{display:none}.wx-spot{flex:0 0 auto;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--share-border);border-radius:var(--r-pill);background:transparent;color:inherit;font:inherit;font-size:var(--fs-small);font-weight:600;white-space:nowrap}.wx-spot.is-on{background:var(--wx-hero);border-color:var(--wx-bar);color:var(--share-ink);text-shadow:none}.wx-hero.is-clear{--wx-hero: var(--wx-clear-plate);--wx-bar: var(--wx-clear-bar)}.wx-hero.is-cloud{--wx-hero: var(--wx-cloud-plate);--wx-bar: var(--wx-cloud-bar)}.wx-hero.is-fog{--wx-hero: var(--wx-fog-plate);--wx-bar: var(--wx-fog-bar)}.wx-hero.is-rain{--wx-hero: var(--wx-rain-plate);--wx-bar: var(--wx-rain-bar)}.wx-hero.is-snow{--wx-hero: var(--wx-snow-plate);--wx-bar: var(--wx-snow-bar)}.wx-hero.is-storm{--wx-hero: var(--wx-storm-plate);--wx-bar: var(--wx-storm-bar)}.wx-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:var(--sp-3);justify-content:center;min-height:132px;padding:var(--sp-4);border-radius:var(--r-lg);background:var(--wx-hero);color:var(--share-ink);text-shadow:none}.wx-sky{position:absolute;top:0;right:0;width:min(48%,200px);height:100%;color:var(--wx-bar);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,black 32%);mask-image:linear-gradient(90deg,transparent,black 32%)}.wx-sky svg{width:100%;height:100%;display:block}.wx-read{position:relative;z-index:1;max-width:68%}.gcv-glass-card .wx-hero,.gcv-glass-card .wx-spot.is-on{color:var(--share-ink);text-shadow:none}.wx-temp{font-size:48px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.03em}.wx-cond{margin-top:4px;font-size:var(--fs-body-lg);font-weight:700}.wx-place{margin-top:2px;font-size:var(--fs-small);color:color-mix(in srgb,var(--share-ink) 72%,transparent)}.wx-meta{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:var(--fs-small);color:color-mix(in srgb,var(--share-ink) 82%,transparent)}.wx-meta span{display:inline-flex;align-items:center;gap:6px}.wx-meta .icon{color:var(--wx-bar)}.wx-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:var(--sp-2)}.wx-day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--sp-2) 6px;border:1px solid var(--share-border);border-radius:var(--r-md);text-align:center;min-width:0}.wx-day-name{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.wx-day .icon{font-size:28px;color:var(--wx-bar)}.wx-bar{width:6px;height:36px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--wx-bar) 22%,transparent);position:relative;overflow:hidden}.wx-bar>i{position:absolute;left:0;right:0;background:var(--wx-bar);border-radius:inherit}.wx-hi{font-size:var(--fs-body);font-weight:800;font-variant-numeric:tabular-nums}.wx-lo{font-size:var(--fs-caption);opacity:.65;font-variant-numeric:tabular-nums}.wx-rain{font-size:11px;opacity:.7}.wx-spark{width:100%;height:36px;display:block}.wx-spark path{fill:none;stroke:var(--wx-bar);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.wx-spark circle{fill:var(--wx-bar)}.wx-empty,.wx-wait,.wx-note{text-align:center;padding:var(--sp-4) var(--sp-3);font-size:var(--fs-body)}.wx-note{padding:0;font-size:var(--fs-small);text-align:left}.wx-empty .btn{margin-top:var(--sp-3)}.wx-preview{margin-top:var(--sp-4);pointer-events:none}/**
 * @fileoverview The Ad kind's three blocks on the share page — the business
 * masthead, the deals / menu rows and the booking form (DESIGN_SPEC §3.27).
 *
 * Tokens only: the share palette, the two band hues, spacing and radii.
 * Every colour that must read on the public glass is `inherit` or a
 * currentColor mix, the FAQ rule — the panel's Look decides the ink.
 *
 * @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
 */.gcv-hue-brand{--gcv-hue: var(--sec-brand)}.gcv-hue-shop{--gcv-hue: var(--sec-shop)}.pr-biz{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.pr-biz-who{flex:1 1 12rem;min-width:0}.pr-logo{display:block;flex:0 0 auto;align-self:flex-start;height:56px;width:auto;max-width:min(100%,220px);object-fit:contain;border-radius:var(--r-md)}.pr-logo:is(.is-ink-light,.is-ink-dark){padding:var(--sp-1) var(--sp-2)}.pr-logo.is-ink-dark{background:var(--share-paper)}.pr-logo.is-ink-light{background:color-mix(in srgb,var(--share-stage) 70%,transparent)}.pr-biz-initial{width:56px;height:56px;flex:0 0 auto;border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;background:var(--gcv-hue, var(--share-accent));color:var(--share-paper);font-family:var(--font-sans);font-weight:800;font-size:24px}.pr-biz-name{font-size:20px;font-weight:700;line-height:1.2}.pr-biz-tag{font-size:15px;opacity:.8;margin-top:2px}.pr-biz-addr{margin:var(--sp-2) 0 0;font-size:14px;opacity:.75}.pr-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.pr-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--share-border);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;text-decoration:none}.gcv-glass-card .pr-chip{border-color:color-mix(in srgb,currentColor 30%,transparent)}.pr-chip.is-on{background:color-mix(in srgb,currentColor 12%,transparent)}.pr-hours{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.pr-hours-table{border-collapse:collapse;font-size:15px}.pr-hours-table th{text-align:left;font-weight:700;padding:4px 12px 4px 0}.pr-hours-table td{padding:4px 0;font-variant-numeric:tabular-nums}.pr-hours-note{margin:0;font-size:14px;opacity:.8}.pr-socials{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.pr-intro{margin:0 0 var(--sp-3);font-size:15px;opacity:.85;white-space:pre-wrap}.pr-cats{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.pr-cats::-webkit-scrollbar{display:none}.pr-cat{flex:0 0 auto;min-height:40px;padding:0 var(--sp-3);border:1px solid var(--share-border);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;white-space:nowrap;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700}.gcv-glass-card .pr-cat{border-color:color-mix(in srgb,currentColor 30%,transparent)}.pr-cat.is-on{background:var(--share-accent);border-color:var(--share-accent);color:var(--share-paper)}.pr-zoom{position:relative;padding:0;border:0;background:transparent;color:inherit;cursor:zoom-in;line-height:0;flex:0 0 auto;border-radius:var(--r-md)}.pr-card-media .pr-zoom{display:block;width:100%}.pr-zoom:focus-visible{outline:2px solid var(--share-accent);outline-offset:2px}.pr-zoom-mark{position:absolute;right:4px;bottom:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;pointer-events:none;color:var(--share-paper);background:color-mix(in srgb,var(--ink) 62%,transparent)}.pr-por{font-size:13px;font-style:italic;opacity:.75}.pr-ribbon{align-self:flex-start;padding:2px 10px;border-radius:var(--r-pill);background:var(--sec-shop);color:var(--share-paper);font-family:var(--font-sans);font-size:12px;font-weight:800}.pr-soldout{font-family:var(--font-sans);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.pr-desc{margin:0;font-size:15px;line-height:1.5;opacity:.85;white-space:pre-wrap}.pr-incl summary{min-height:40px;display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-family:var(--font-sans);font-size:14px;font-weight:700}.pr-incl summary::-webkit-details-marker{display:none}.pr-incl summary .icon{transition:transform .16s ease}.pr-incl[open] summary .icon{transform:rotate(180deg)}.pr-incl ul{margin:0;padding-left:20px;font-size:15px;line-height:1.5}.pr-addon-price{margin-left:auto;font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:14px;opacity:.8}.pr-req{align-self:flex-start;padding:10px 16px;font-size:14px}.pr-tax{margin:var(--sp-3) 0 0;font-size:13px;opacity:.65;text-align:right}.pr-form{display:flex;flex-direction:column;gap:var(--sp-3)}.pr-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans);font-size:14px;font-weight:700}.pr-fieldset{border:0;padding:0;margin:0;min-width:0}.pr-legend{padding:0;margin:0 0 6px;font-family:var(--font-sans);font-size:14px;font-weight:700}.pr-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}@media(max-width:420px){.pr-two{grid-template-columns:1fr}}.pr-picks{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3);border:1px solid var(--share-border);border-radius:var(--r-md)}.gcv-glass-card .pr-picks{border-color:color-mix(in srgb,currentColor 22%,transparent)}.pr-pick{display:flex;align-items:flex-start;gap:10px;font-size:15px}.pr-pick-name{flex:1;min-width:0}.pr-pick-sub{display:block;font-size:13px;opacity:.75}.pr-pick-price{font-family:var(--font-sans);font-variant-numeric:tabular-nums}.pr-pick-x{min-width:36px;min-height:36px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:18px;line-height:1;opacity:.7}.pr-total{display:flex;justify-content:space-between;padding-top:8px;border-top:1px solid var(--share-border);font-family:var(--font-sans);font-weight:800}.pr-unpriced{font-size:13px;opacity:.75}.pr-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.pr-err{color:var(--share-error);font-size:14px}.pr-note{font-size:13px;opacity:.6;text-align:center}.pr-done{display:flex;flex-direction:column;gap:8px;text-align:center}.pr-done-title{font-size:18px;font-weight:700}.pr-done p{margin:0;font-size:15px;line-height:1.5}.pr-link{background:none;border:0;color:var(--share-accent);cursor:pointer;font-family:var(--font-sans);font-weight:700;font-size:14px}.pr-about{margin-top:var(--sp-2)}.pr-about>summary{cursor:pointer;font-size:13px;line-height:20px;padding:var(--sp-3) 0;opacity:.85}.pr-about>summary:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.pr-about>p{margin-top:0;text-align:left}/**
 * @fileoverview The Ad page's visual standard (PROMO_GREETLET_PLAN §4.5):
 * the brand-colour ladders, the poster hero, deals as poster tiles and cards,
 * the menu's printed-card typography, and the floating request pill.
 *
 * Tokens only. The seven brand hex values live in design-system.css
 * (`--ad-*`); this file only maps a business's chosen `accent` onto
 * `--ad-accent`, which every CTA, ribbon, price and chip on the page reads.
 * The app chrome keeps its one coral — `.gcv-promo` scopes all of it.
 *
 * @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
 */.gcv-promo{--ad-accent: var(--ad-coral);--ad-on-accent: var(--share-paper);--ad-accent-soft: color-mix(in srgb, var(--ad-accent) 16%, transparent);--ad-accent-deep: color-mix(in srgb, var(--ad-accent) 70%, var(--share-stage))}.gcv-promo.ad-accent-navy{--ad-accent: var(--ad-navy)}.gcv-promo.ad-accent-forest{--ad-accent: var(--ad-forest)}.gcv-promo.ad-accent-gold{--ad-accent: var(--ad-gold);--ad-on-accent: var(--ad-ink)}.gcv-promo.ad-accent-plum{--ad-accent: var(--ad-plum)}.gcv-promo.ad-accent-slate{--ad-accent: var(--ad-slate)}.gcv-promo.ad-accent-ink{--ad-accent: var(--ad-ink)}.gcv-promo .gcv-hue-brand,.gcv-promo .gcv-hue-shop{--gcv-hue: var(--ad-accent)}.gcv-promo .pr-cat.is-on,.gcv-promo .pr-req,.gcv-promo .pr-ribbon,.gcv-promo .pr-hero-cta.is-primary,.gcv-promo .pr-float,.gcv-promo .pr-form .gcv-btn{background:var(--ad-accent);border-color:var(--ad-accent);color:var(--ad-on-accent)}.gcv-promo .pr-biz-initial,.gcv-promo .pr-media-blank{background:linear-gradient(135deg,var(--ad-accent),var(--ad-accent-deep));color:var(--ad-on-accent)}.gcv-promo .pr-form input,.gcv-promo .pr-form textarea{accent-color:var(--ad-accent)}.gcv-promo .pr-link,.gcv-promo .pr-pick-flag{color:var(--ad-accent)}.pr-hero{position:relative;overflow:hidden;isolation:isolate;width:min(100%,465px);margin-inline:auto;aspect-ratio:3 / 4;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--ad-accent),var(--ad-accent-deep));color:var(--share-paper)}.pr-hero-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.pr-hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,color-mix(in srgb,var(--share-stage) 55%,transparent),transparent 70%)}.pr-hero-body{position:absolute;inset:auto 0 0 0;padding:var(--sp-4) var(--sp-4) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);text-shadow:0 1px 2px color-mix(in srgb,var(--share-stage) 60%,transparent)}.pr-hero.is-back-soft .pr-hero-body{background:linear-gradient(to top,color-mix(in srgb,var(--share-stage) 84%,transparent),color-mix(in srgb,var(--share-stage) 66%,transparent))}.pr-hero.is-back-soft .pr-hero-body:before{content:"";position:absolute;inset:auto 0 100% 0;height:72px;pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--share-stage) 66%,transparent),transparent)}.pr-hero.is-back-solid .pr-hero-body{background:color-mix(in srgb,var(--share-stage) 92%,transparent)}.pr-hero .pr-logo.is-ink-light{padding:0;background:none}.pr-hero-initial.pr-media-blank{width:52px;height:52px;border-radius:var(--r-md);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-weight:800;font-size:24px}.pr-hero-name{margin:0;font-family:var(--font-serif);font-weight:700;line-height:1.05;font-size:clamp(30px,8vw,46px);letter-spacing:-.01em}.pr-hero-tag{margin:0;font-size:17px;line-height:1.35;opacity:.92;max-width:34ch}.pr-hero-ctas{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.pr-hero-cta{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border:1px solid color-mix(in srgb,var(--share-paper) 55%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 35%,transparent);color:var(--share-paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;text-decoration:none;text-shadow:none;font-family:var(--font-sans);font-size:15px;font-weight:800}.pr-hero-cta.is-primary{border-color:transparent}.pr-hero-note{margin:var(--sp-1) 0 0;font-size:13px;opacity:.8}.gcv-hero .gcv-hc-hero-promo{grid-column:1 / -1}.pr-catalog{display:flex;flex-direction:column;gap:var(--sp-3)}.pr-group{display:flex;flex-direction:column;gap:var(--sp-2)}.pr-course{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 0;font-family:var(--font-sans);font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.8}.pr-course:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ad-accent, var(--gcv-hue))}.pr-course:after{content:"";flex:1;height:1px;background:color-mix(in srgb,currentColor 22%,transparent)}.pr-cards{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}.pr-cards.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-cards.is-grid .pr-card.is-poster{grid-column:1 / -1}.pr-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:var(--r-lg);background:color-mix(in srgb,currentColor 4%,transparent)}.pr-card.is-soldout{opacity:.6}.pr-card-media{position:relative;display:none}.pr-card.is-poster .pr-card-media,.pr-card.has-photo .pr-card-media,.pr-cards.is-grid .pr-card-media{display:block}.pr-card-img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.pr-cards.is-grid .pr-card:not(.is-poster) .pr-card-img{aspect-ratio:1}.pr-media-blank{display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:700;font-size:56px;color:var(--share-paper);background:linear-gradient(135deg,var(--ad-accent, var(--share-accent)),var(--share-stage))}.pr-card-badge{position:absolute;right:var(--sp-3);bottom:var(--sp-3);padding:8px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--share-paper) 94%,transparent);color:var(--share-ink);box-shadow:var(--shadow-md)}.pr-card-body{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3)}.pr-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3)}.pr-card-name{margin:0;font-family:var(--font-serif);font-size:19px;font-weight:700;line-height:1.2}.pr-card.is-poster .pr-card-name{font-size:24px}.pr-ribbon{position:absolute;left:var(--sp-3);top:var(--sp-3);padding:4px 12px;border-radius:var(--r-pill);font-family:var(--font-sans);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--shadow-sm)}.pr-card-media:not(:has(.pr-card-img)) .pr-ribbon{position:static}.pr-soldout{position:absolute;right:var(--sp-3);top:var(--sp-3);padding:4px 10px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 75%,transparent);color:var(--share-paper);font-family:var(--font-sans);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pr-soldout.is-inline{position:static;align-self:flex-start}.pr-pricebox{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;flex:0 0 auto}.pr-price-line{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.pr-now{font-size:20px;font-weight:800;letter-spacing:-.01em}.pr-pricebox.is-sale .pr-now{color:var(--ad-accent, var(--share-accent))}.pr-pricebox.is-big .pr-now{font-size:26px}.pr-was{font-size:13px;opacity:.6}.pr-por,.pr-price-note{font-family:var(--font-sans);font-size:13px;font-style:italic;opacity:.8}.pr-save{padding:2px 8px;border-radius:var(--r-pill);font-family:var(--font-sans);font-size:12px;font-weight:800;background:var(--ad-accent-soft, color-mix(in srgb, currentColor 12%, transparent));color:var(--ad-accent, inherit)}.pr-card-badge .pr-save{background:color-mix(in srgb,var(--ad-accent, var(--share-accent)) 14%,transparent)}.pr-ends{font-family:var(--font-sans);font-size:12px;font-weight:700;opacity:.8}.pr-incl-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.pr-incl-list li{display:flex;align-items:flex-start;gap:8px;font-size:15px;line-height:1.4}.pr-incl-list .icon{color:var(--ad-accent, var(--share-accent));flex:0 0 auto;margin-top:2px}.pr-pill{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:700}.pr-pill.is-on{background:var(--ad-accent, var(--share-accent));border-color:transparent;color:var(--ad-on-accent, var(--share-paper))}.pr-pill.is-static{cursor:default}.pr-pill .pr-addon-price{margin-left:2px;opacity:.85;font-weight:600}.pr-addons{display:flex;flex-wrap:wrap;gap:8px}.pr-req.is-added{background:color-mix(in srgb,currentColor 10%,transparent);color:inherit}.pr-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.pr-tab{min-height:44px;padding:0 var(--sp-4);cursor:pointer;border:1px solid color-mix(in srgb,currentColor 35%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;font-family:var(--font-sans);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pr-tab.is-on{background:var(--ad-accent, var(--share-accent));border-color:transparent;color:var(--ad-on-accent, var(--share-paper))}.pr-tab-note,.pr-course-note{margin:0;font-size:14px;line-height:1.45;opacity:.8;white-space:pre-wrap}.pr-groups{display:flex;flex-direction:column;gap:var(--sp-3)}.pr-catalog.is-menu{container-type:inline-size}@container (min-width: 720px){.pr-catalog.is-menu .pr-groups{display:block;columns:2;column-gap:var(--sp-6)}.pr-catalog.is-menu .pr-group{break-inside:avoid;margin-bottom:var(--sp-5)}}.pr-menu{display:flex;flex-direction:column;gap:var(--sp-3)}.pr-dish{display:flex;gap:var(--sp-3);align-items:flex-start}.pr-dish.is-soldout{opacity:.55}.pr-dish-img{width:56px;height:56px;flex:0 0 auto;border-radius:50%;object-fit:cover}.pr-dish.is-large{flex-direction:column;gap:var(--sp-2)}.pr-dish.is-large .pr-zoom,.pr-dish.is-large .pr-dish-body{width:100%}.pr-dish-photo{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--r-md)}.pr-dish-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.pr-dish-line{display:flex;align-items:baseline;gap:8px}.pr-dish-name{font-family:var(--font-serif);font-size:18px;font-weight:700;line-height:1.25}.pr-leader{flex:1;min-width:16px;margin-bottom:5px;border-bottom:2px dotted color-mix(in srgb,currentColor 35%,transparent)}.pr-dish-price .pr-now{font-size:17px}.pr-pick-flag{font-family:var(--font-sans);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pr-tags{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.pr-tag{padding:1px 6px;border:1px solid color-mix(in srgb,currentColor 40%,transparent);border-radius:var(--r-sm);font-family:var(--font-sans);font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.5}.pr-tag.is-new,.pr-tag.is-popular{background:var(--ad-accent-soft, color-mix(in srgb, currentColor 12%, transparent));border-color:transparent}.pr-float{position:fixed;left:50%;bottom:calc(var(--sp-3) + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:var(--z-sticky);display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 20px;border:0;border-radius:var(--r-pill);cursor:pointer;box-shadow:var(--shadow-lg);font-family:var(--font-sans);font-size:15px;font-weight:800;white-space:nowrap}.pr-float-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill);font-size:12px;background:color-mix(in srgb,var(--share-paper) 90%,transparent);color:var(--share-ink)}@media(min-width:721px){.pr-float{display:none}}.pr-swatches{display:flex;flex-wrap:wrap;gap:8px}.pr-swatch{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px 0 8px;border:1px solid var(--border);border-radius:var(--r-pill);cursor:pointer;font-size:var(--fs-small);font-weight:700}.pr-swatch.is-on{border-color:var(--sw);box-shadow:0 0 0 2px color-mix(in srgb,var(--sw) 35%,transparent)}.pr-swatch-dot{width:20px;height:20px;border-radius:50%;background:var(--sw)}.gcv-promo .gcv-landing{display:flex;flex-direction:column}.gcv-promo .gcv-landing>.gcv-hero{order:-1}/**
 * @fileoverview storage.css — the Storage Building block everywhere it is drawn
 * (DESIGN_SPEC §3.42): the plan (StoragePlan, on the editor's chrome, the page's
 * glass, the door and the lobby TV), the block (StorageSection), the door
 * (StorageDoorView) and the TV (StorageLobbyView). Tokens only. The plan and the
 * block take the ink around them — currentColor mixes, like the Inventory's
 * browser — so one drawing reads on paper, glass and app chrome in both themes;
 * the hulls wear the block's band (`--sec-go`), the pillars the gold, the found
 * boat the accent. The TV is a committed dark surface in the share palette.
 *
 * @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
 */.stg-plan{display:block;width:100%;height:auto;max-height:82vh;font-family:var(--font-sans);overflow:visible}.stg-plan *{vector-effect:non-scaling-stroke}.stg-floor{fill:color-mix(in srgb,currentColor 5%,transparent)}.stg-lane{fill:color-mix(in srgb,currentColor 4%,transparent)}.stg-wall{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square}.stg-door-gap{stroke:color-mix(in srgb,currentColor 45%,transparent);stroke-width:1.5px;stroke-dasharray:4 4}.stg-dim{stroke:color-mix(in srgb,currentColor 55%,transparent);stroke-width:1px}.stg-bay{stroke:color-mix(in srgb,var(--gold) 55%,transparent);stroke-width:1px;stroke-dasharray:3 5}.stg-pillar{fill:var(--gold)}.stg-zone polygon{fill:color-mix(in srgb,currentColor 12%,transparent);stroke:color-mix(in srgb,currentColor 45%,transparent);stroke-width:1px;stroke-dasharray:2 3}.stg-zone-name{opacity:.7}.stg-text{fill:currentColor;font-weight:700;opacity:.85;-webkit-user-select:none;user-select:none}.stg-text.is-quiet{opacity:.6;font-weight:600}.stg-hull{cursor:default;touch-action:none;outline:none}.stg-hull.is-live{cursor:grab}.stg-hull.is-drag{cursor:grabbing;opacity:.85}.stg-hull:focus-visible .stg-hull-shape{stroke:var(--focus-ring);stroke-width:3px}.stg-hull-shape{fill:color-mix(in srgb,var(--sec-go) 30%,transparent);stroke:var(--sec-go);stroke-width:1.5px;stroke-dasharray:3 3;stroke-linejoin:round}.stg-hull.locked .stg-hull-shape{fill:color-mix(in srgb,var(--sec-go) 78%,transparent);stroke-dasharray:none}.stg-hull.over .stg-hull-shape{fill:color-mix(in srgb,var(--status-warning) 45%,transparent);stroke:var(--status-warning)}.stg-hull.next .stg-hull-shape,.stg-hull.found .stg-hull-shape{stroke:var(--accent);stroke-width:3px;stroke-dasharray:none}.stg-hull-deck{fill:color-mix(in srgb,currentColor 22%,transparent);stroke:none}.stg-hull-label{fill:currentColor;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.stg-hull-lock{fill:currentColor;stroke:currentColor;stroke-width:1px;pointer-events:none}.stg-hull-lock path{fill:none}.stg-hull-halo{fill:none;stroke:var(--accent);stroke-width:10px;opacity:.45;animation:stg-halo 1.6s ease-in-out infinite}@keyframes stg-halo{0%,to{opacity:.15}50%{opacity:.55}}.stg{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;font-family:var(--font-sans)}.stg-q{margin:0;font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700;line-height:1.25;text-wrap:balance}.stg-counts,.stg-note{margin:0;font-size:var(--fs-small);opacity:.85}.stg-intro{margin:0;font-size:var(--fs-body);line-height:1.45}.stg-find{position:relative}.stg-find>.icon{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);opacity:.55;pointer-events:none}.stg-box{width:100%;min-height:56px;margin:0;padding:0 48px 0 44px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font-family:var(--font-sans);font-size:var(--fs-body-lg)}.stg-box:focus{outline:none;border-color:var(--accent)}.stg-box::placeholder{color:inherit;opacity:.55}.stg-box::-webkit-search-cancel-button{display:none}.stg-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:inherit;cursor:pointer}.stg-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.stg-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;line-height:1.2}.stg-chip[aria-pressed=true]{border-color:currentColor;background:color-mix(in srgb,currentColor 16%,transparent)}.stg-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.stg-result{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.stg-result[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.stg-result-t{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.stg-result-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body)}.stg-result-t span{font-size:var(--fs-small);opacity:.8}.stg-result-where{flex:0 0 auto;max-width:42%;text-align:right;font-size:var(--fs-small);font-weight:600}.stg-where{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent) 8%,transparent)}.stg-where b{font-size:var(--fs-body-lg)}.stg-where p{margin:0;font-size:var(--fs-body)}.stg-where .stg-where-line{font-weight:700}.stg-where .btn{align-self:flex-start;margin-top:var(--sp-1)}.stg-maps{display:flex;flex-direction:column;gap:var(--sp-3)}.stg-map-name{margin:0;font-size:var(--fs-small);font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.stg-screen{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.stg-screen .stg-note{flex-basis:100%}.stg-screen-label{flex-basis:100%;font-size:var(--fs-small);color:var(--ink-muted)}.stg-door{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-sans)}.stg-door-bar{display:flex;align-items:center;gap:var(--sp-3);min-height:52px;padding:max(var(--sp-2),env(safe-area-inset-top)) var(--sp-4) 0}.stg-door-of{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--ink-soft)}.stg-door-body{flex:1 1 auto;--share-stage: transparent}.stg-door-body .leaf-body.is-long{max-height:none;overflow:visible}.stg-door-body .section-expand{display:none}.stg-door-body .stg-maps.leaf-scroll{max-height:none;overflow:visible}.stg-door-note{margin:0;padding:var(--sp-5) var(--sp-4);text-align:center;font-size:var(--fs-body-lg);color:var(--ink-soft)}.stg-door-foot{display:flex;justify-content:center;padding:var(--sp-3) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom))}.stg-tv{height:100dvh;overflow:hidden;box-sizing:border-box;display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr minmax(220px,24vw);gap:var(--sp-4);padding:var(--sp-4) var(--sp-5) var(--sp-5);background:var(--share-stage);color:var(--share-paper);font-family:var(--font-sans)}.stg-tv-head{grid-column:1 / -1;display:flex;align-items:center;gap:var(--sp-4);min-height:56px}.stg-tv-logo{height:64px;width:auto;max-width:28vw;object-fit:contain;padding:6px 12px;box-sizing:border-box;border-radius:var(--r-md);background:var(--share-paper)}.stg-tv-name{margin:0;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:var(--fs-h2);font-weight:800}.stg-tv-clock{flex:0 0 auto;font-size:var(--fs-h2);font-weight:600;font-variant-numeric:tabular-nums;opacity:.85}.stg-tv-scene{min-width:0;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-4);animation:stg-in var(--t-medium) var(--easing) both}.stg-tv-scene.is-map,.stg-tv-scene.is-found{justify-content:flex-start}.stg-tv-eyebrow{margin:0;font-size:var(--fs-body);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ad-accent, var(--share-paper))}.stg-tv-title{margin:0;font-family:var(--font-display);font-size:clamp(32px,5vw,72px);font-weight:800;line-height:1.05;text-wrap:balance}.stg-tv-text{margin:0;font-size:clamp(20px,2.6vw,36px);line-height:1.4;white-space:pre-line;opacity:.92}.stg-tv-text.is-where{font-size:clamp(24px,3.2vw,44px);font-weight:700}.stg-tv-pic{max-width:min(48vw,640px);max-height:46vh;object-fit:cover;border-radius:var(--r-xl)}.stg-tv-icon{font-size:clamp(64px,10vw,140px);color:var(--ad-accent, var(--share-paper))}.stg-tv-back{margin:0;font-size:var(--fs-body-lg);font-variant-numeric:tabular-nums;opacity:.7}.stg-tv-held{margin:0;align-self:flex-start;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--accent);color:var(--share-paper);font-size:var(--fs-body);font-weight:700;font-variant-numeric:tabular-nums}.stg-tv-scene.is-notice .stg-tv-pic,.stg-tv-scene.is-offer .stg-tv-pic{animation:stg-drift 12s ease-in-out infinite alternate}@keyframes stg-drift{0%{transform:scale(1)}to{transform:scale(1.06)}}.stg-tv-plan .stg-hull.ghost .stg-hull-shape{stroke-width:3px}.stg-tv-stage{display:block;position:relative;min-height:0;container-type:size;animation:none}.stg-tv-plan{color:var(--share-paper);flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--sp-3)}.stg-tv-plan .stg-plan{flex:1 1 0;min-height:0;width:100%;max-height:none}.stg-tv-code{align-self:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-xl);background:var(--share-paper);color:var(--share-ink);text-align:center}.stg-tv-code img{display:block;width:100%;max-width:280px;height:auto;border-radius:var(--r-md)}.stg-tv-code b{font-size:var(--fs-h3)}.stg-tv-code small{font-size:var(--fs-body);opacity:.75}.stg-tv-line{grid-column:1 / -1;align-self:center;margin:0;text-align:center;font-size:clamp(20px,2.6vw,34px);opacity:.85}@keyframes stg-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:760px){.stg-tv{grid-template-columns:1fr;padding:var(--sp-3) var(--sp-4) var(--sp-5)}.stg-tv-pic{max-width:100%}}@media(prefers-reduced-motion:reduce){.stg-hull-halo{animation:none;opacity:.4}.stg-tv-scene,.stg-tv-scene .stg-tv-pic{animation:none}}.stg-tv-step{position:absolute;left:3%;bottom:3%;display:flex;align-items:center;gap:var(--sp-2);font-size:clamp(11px,1.6vw,18px)}.stg-tv-step .btn{color:inherit;background:transparent;border:1px solid currentColor}.stg-tv-credit{position:absolute;right:3%;bottom:3%;display:flex;align-items:center;gap:.6em;font-size:clamp(9px,1.4vw,15px);opacity:.75}.stg-tv-credit img{height:1.6em;width:auto}.stg-tv-credit-sep{opacity:.6}.stg-window{stroke:color-mix(in srgb,currentColor 32%,transparent);stroke-width:7px}.stg-opening-hit{stroke:transparent;stroke-width:24px;pointer-events:stroke;cursor:grab;touch-action:none;outline:none}.stg-opening-hit.is-drag{cursor:grabbing}.stg-opening-hit:focus-visible{stroke:color-mix(in srgb,var(--focus-ring) 35%,transparent)}.stg-opening.is-sel .stg-door-gap,.stg-opening.is-sel .stg-window{stroke:var(--accent)}.stg-opening-knob{stroke:var(--accent);stroke-width:12px;stroke-linecap:round;pointer-events:none}.stg-lane.is-over{fill:color-mix(in srgb,var(--accent) 24%,transparent)}.stg-plan.is-placing{cursor:copy}.stg-lane.is-target{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3}.stg-spare polygon{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3}.stg-hull.is-host .stg-hull-shape{stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:none}.stg-hull.pocket .stg-hull-shape{fill:color-mix(in srgb,var(--gold) 55%,transparent);stroke:var(--gold);stroke-dasharray:none}.stg-hull.pocket.locked .stg-hull-shape{fill:color-mix(in srgb,var(--gold) 85%,transparent)}.stg-pocket{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:2 2;pointer-events:none}.stg-pocket.is-over{fill:color-mix(in srgb,var(--accent) 38%,transparent);stroke-dasharray:none}.stg-landing{fill:color-mix(in srgb,var(--accent) 16%,transparent);stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3;stroke-linejoin:round;pointer-events:none}.stg-hull.ghost{pointer-events:none;cursor:default}.stg-hull.ghost .stg-hull-shape{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3}.stg-hull.ghost .stg-hull-label{opacity:.8}.stg-hull.ghost .stg-hull-deck{display:none}.stg-hull.is-out{cursor:default}.stg-hull.is-out .stg-hull-shape{fill:none;stroke:color-mix(in srgb,currentColor 40%,transparent);stroke-width:1.5px;stroke-dasharray:2 3}.stg-hull.is-out .stg-hull-label{opacity:.5}.stg-hull.is-out .stg-hull-deck{display:none}.stg-ghost{position:fixed;left:0;top:0;z-index:var(--z-toast);margin:-22px 0 0 14px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-pill);background:var(--accent-surface);color:var(--accent-deep);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;white-space:nowrap;box-shadow:var(--shadow-md);pointer-events:none}/**
 * @fileoverview Compass's face (CompassMascot.jsx): a square its pose fills.
 * Hosts size it with --compass-size. The art is transparent, so it sits on
 * light, cream and dark grounds alike with no plate of its own.
 * @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
 */.compass-mascot{position:relative;display:inline-block;flex:0 0 var(--compass-size, 34px);width:var(--compass-size, 34px);height:var(--compass-size, 34px);pointer-events:none;-webkit-user-select:none;user-select:none}.compass-mascot>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.compass-mascot>img.is-next{opacity:0}/**
 * @fileoverview DoorMark.jsx — the Greetlet mark and the way out on every
 * block door (DESIGN_SPEC §3.36). One look, both themes; the doors lay it out.
 *
 * @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
 */.door-mark{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;color:inherit;line-height:1.1;text-decoration:none}.door-mark img{display:block;width:auto;height:26px}.door-mark small{padding-left:2px;font-size:var(--fs-caption);font-weight:700;color:var(--muted)}.door-exit{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:44px;padding:var(--sp-2) var(--sp-4);font-weight:600;color:var(--accent);text-decoration:none}.door-exit:hover{text-decoration:underline}/**
 * signupRequest.css — the "keep me posted" card (DESIGN_SPEC §5.9.2).
 *
 * @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
 */.sur{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;padding:var(--sp-3) var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);text-align:left}.sur-head{display:flex;flex-direction:column;gap:2px}.sur-head b{font-size:var(--fs-body-lg)}.sur-head small{color:var(--muted);font-size:var(--fs-small)}.sur-open,.sur-send{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--accent);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);cursor:pointer;font-weight:700;font-size:var(--fs-body)}.sur-send:disabled{opacity:.6;cursor:default}.sur-form{display:flex;flex-direction:column;gap:var(--sp-2)}.sur-field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.sur-field small{font-weight:500;color:var(--muted)}.sur-field input{min-height:44px;padding:0 12px;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-size:16px}.sur-note{margin:0;font-size:var(--fs-small);color:var(--status-error)}.sur-done{margin:0;display:flex;align-items:center;gap:6px;font-weight:600;color:var(--confirm)}/**
 * chorus.css — the Chorus block on the page and its player.
 *
 * @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
 */.gcv-glass-card .chs,.gcv-glass-card .chp{--bg-elev: color-mix(in srgb, var(--share-paper) 9%, transparent);--surface-inset: color-mix(in srgb, var(--share-paper) 15%, transparent);--ink: var(--share-paper);--ink-soft: color-mix(in srgb, var(--share-paper) 82%, transparent);--muted: color-mix(in srgb, var(--share-paper) 64%, transparent);--divider: color-mix(in srgb, var(--share-paper) 12%, transparent);--edge: color-mix(in srgb, var(--share-paper) 26%, transparent);--accent-surface: color-mix(in srgb, var(--accent) 22%, transparent)}.chs{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);width:100%;min-width:0;text-align:center;font-family:var(--font-sans)}.chs>*{width:100%}.chs .compass-mascot{--compass-size: 104px;width:var(--compass-size)}.chs .chd-foot{margin:0 calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3));width:auto;border-radius:0 0 var(--r-lg) var(--r-lg)}.chs .chs-invite{width:100%;border:0;background:transparent;padding:0}.chs .chs-invite summary{justify-content:center;min-height:36px}.chp{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.chp-art{position:relative;width:min(100%,260px);aspect-ratio:1;margin:0 auto;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);background:var(--surface-inset)}.chp-art img{display:block;width:100%;height:100%;object-fit:cover}.chp-art.has-viz img{opacity:.45}.chp-art-viz{position:absolute;top:0;right:0;bottom:0;left:0}.chp-art-viz .gcv-viz{background:transparent}.chp-art-viz .gcv-viz-scrim{display:none}.chp-art-blank{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--accent-deep),var(--accent) 60%,var(--gold))}.chp-art-title{position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-3);color:var(--text-on-accent);font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);line-height:1.1;text-shadow:0 2px 12px rgba(0,0,0,.45)}.chp-art-title small{display:block;margin-bottom:4px;font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.chp-row{display:flex;align-items:center;gap:var(--sp-3)}.chp-play{flex:0 0 auto;width:52px;height:52px;border:0;border-radius:50%;background:var(--accent);color:var(--text-on-accent);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm)}.chp-play .icon{font-size:30px}.chp-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.chp-meta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body-lg)}.chp-meta small{color:var(--muted);font-size:var(--fs-small)}.chp-time{flex:0 0 auto;font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.chp-seek{width:100%;accent-color:var(--accent);margin:0}.chp-lines{display:flex;flex-direction:column;gap:4px;min-height:92px;padding:var(--sp-3);border-radius:var(--r-lg);background:var(--surface-inset);text-align:center}.chp-line{font-family:var(--font-display);font-size:var(--fs-body);color:var(--muted);line-height:1.3}.chp-line.is-now{font-size:var(--fs-h3);font-weight:700;color:var(--ink)}.chp-lines.is-tap{cursor:pointer}.chp-lines-hint{display:inline-flex;align-items:center;gap:4px;margin:2px auto 0;color:var(--muted);font-size:var(--fs-caption)}.chp-words{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);overflow:auto;padding:var(--sp-3) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom,0px));background:var(--bg);color:var(--ink)}.chp-words-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;background:var(--bg)}.chp-play-sm{width:44px;height:44px}.chp-words-title{margin:var(--sp-3) 0 var(--sp-2);font-family:var(--font-display);font-size:var(--fs-h2);text-align:center}.chp-words-sheet{max-width:40rem;margin:0 auto;text-align:center}.chp-words-h{margin:var(--sp-4) 0 var(--sp-2);color:var(--accent);font-size:var(--fs-caption);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.chp-words-l{font-family:var(--font-display);font-size:var(--fs-body-lg);line-height:1.45;color:var(--muted)}.chp-words-l.is-now{color:var(--ink);font-weight:700}.chp-w{color:var(--muted);transition:color .12s}.chp-w.is-on{color:var(--accent)}.chs-invite{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);padding:0 var(--sp-3)}.chs-invite summary{cursor:pointer;min-height:48px;display:flex;align-items:center;gap:var(--sp-2);font-weight:600;list-style:none}.chs-invite summary::-webkit-details-marker{display:none}.chs-invite summary small{font-weight:500;color:var(--muted);font-size:var(--fs-small)}.chs-invite[open]{padding-bottom:var(--sp-3)}.chs-switch{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);text-align:left;cursor:pointer}.chs-switch input{margin-top:4px;accent-color:var(--accent);width:20px;height:20px;flex:0 0 auto}.chs-switch b{display:block;font-size:var(--fs-body)}.chs-switch small{display:block;color:var(--muted);font-size:var(--fs-small)}.chs-album{border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);overflow:hidden}.chs-album-h{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--divider);font-weight:700;font-size:var(--fs-small)}.chs-album-h small{margin-left:auto;font-weight:600;color:var(--muted)}.chs-rows{list-style:none;margin:0;padding:0;max-height:330px;overflow:auto}.chs-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--divider);min-width:0}.chs-row:first-child{border-top:0}.chs-pick{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:50%;background:var(--surface-inset);color:var(--ink);display:grid;place-items:center;cursor:pointer}.chs-row.is-top .chs-pick{background:var(--accent);color:var(--text-on-accent)}.chs-row-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.chs-row-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body)}.chs-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--fs-caption)}.chs-dl,.chs-vote{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 10px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);cursor:pointer;font-weight:700;font-size:var(--fs-small);font-variant-numeric:tabular-nums;text-decoration:none}.chs-vote.is-on{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.chs-vote:disabled{opacity:.6;cursor:default}.chs-dl{position:relative;overflow:hidden}.chs-dl:not(.is-compact){align-self:flex-start;gap:6px;min-height:40px;padding:0 14px;font-weight:600}.chs-dl:disabled{cursor:progress}.chs-dl-bar{position:absolute;top:0;right:0;bottom:0;left:0}.chs-dl-bar i{display:block;height:100%;background:var(--accent-surface);transition:width .2s}.chs-dl .icon,.chs-dl-text{position:relative}.chq{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);text-align:center}.chq-head{display:flex;flex-direction:column;gap:2px}.chq-head b{font-size:var(--fs-body-lg)}.chq-head small{color:var(--muted);font-size:var(--fs-small)}.chq-teams{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.chq-chip{min-height:36px;padding:0 14px;border:1px solid var(--edge);border-radius:var(--r-pill);background:transparent;color:var(--ink);cursor:pointer;font-weight:600;font-size:var(--fs-small)}.chq-chip.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chq-code{display:block;width:min(100%,260px);aspect-ratio:1;border-radius:var(--r-md);background:var(--text-on-accent)}.chq-fail{margin:0;max-width:260px;padding:var(--sp-3);border:1px dashed var(--edge);border-radius:var(--r-md);color:var(--ink-soft);font-size:var(--fs-small)}.chq-foot{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--sp-2) var(--sp-3)}.chq-copy{text-decoration:none;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;border:1px solid var(--edge);border-radius:var(--r-pill);background:transparent;color:var(--ink);cursor:pointer;font-weight:600;font-size:var(--fs-small)}.chs-new{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:2px}.chs-row.is-wait{opacity:.7}.chs-row.is-wait .chs-pick{color:var(--muted)}/**
 * chorusDoor.css — Compass's room: what a Chorus card opens, and what the
 * maker plays in the Builder.
 *
 * The room is ONE screen tall (owner, 2026-10-15: "all controls have to be
 * visible"): the bar, a body that scrolls inside itself, and the foot with
 * the one coral button pinned under it. A *More ⌄* pill over the body's
 * bottom edge says when it holds more than the screen.
 *
 * @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
 */.chd{height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);--compass-size: 104px}.chd-bar{position:relative;z-index:1;display:flex;align-items:center;gap:var(--sp-2);min-height:52px;padding:var(--sp-2) var(--sp-4) 0;flex:0 0 auto}.chd-team{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:var(--r-pill);background:var(--accent-surface);color:var(--accent-deep);font-weight:700;font-size:var(--fs-small);white-space:nowrap}.chd-scroll{position:relative;z-index:1;flex:1 1 auto;min-height:0}.chd-body{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);width:100%;max-width:560px;margin:0 auto;padding:var(--sp-3) var(--sp-4) var(--sp-6);text-align:center}.chd-body>*{width:100%;flex:0 0 auto}.chd-body .compass-mascot{width:var(--compass-size)}.chd-more{position:absolute;left:50%;bottom:var(--sp-2);transform:translate(-50%);z-index:2;display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:0 10px 0 14px;border:0;border-radius:var(--r-pill);background:var(--ink);color:var(--bg);font-size:var(--fs-small);font-weight:700;cursor:pointer;box-shadow:var(--shadow-md)}.chd-more .icon{font-size:20px;animation:chd-bob 1.6s ease-in-out infinite}@keyframes chd-bob{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.chd-say{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25;text-wrap:balance}.chd-said{margin:0;font-family:var(--font-display);font-size:var(--fs-h2);font-weight:700;line-height:1.25}.chd-sub{margin:0;font-size:var(--fs-body);color:var(--muted)}.chd-note{margin:0;font-size:var(--fs-small);color:var(--status-error)}.chd-speak{width:auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--edge);border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);cursor:pointer;font-size:var(--fs-small);font-weight:600}.chd-speak.is-on{background:var(--accent-surface);border-color:var(--accent);color:var(--accent-deep)}.chd-how{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);text-align:left}.chd-how li{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.chd-how-n{flex:0 0 auto;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--accent-surface);color:var(--accent-deep)}.chd-how-n .icon{font-size:24px}.chd-how b{display:block;font-size:var(--fs-body-lg);line-height:1.2}.chd-how small{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-small);line-height:1.3}.chd-foot{position:relative;z-index:1;flex:0 0 auto;display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--divider);background:var(--bg-elev)}.chd-primary{width:100%;max-width:400px;min-height:54px;font-size:var(--fs-body-lg)}.chd-quiet{display:flex;flex-wrap:wrap;justify-content:center;gap:2px var(--sp-3)}.chd-link{width:auto;display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;cursor:pointer;padding:var(--sp-1) var(--sp-2);font-weight:600;color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}.chd-alt{width:auto;margin:0 auto;min-height:44px;padding:0 18px;font-size:var(--fs-body)}.chd-link.is-faint{color:var(--muted);font-weight:500;font-size:var(--fs-small)}.chd-talk{position:relative;width:124px;height:124px;margin:4px auto;border:0;border-radius:50%;background:var(--accent);color:var(--text-on-accent);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 30px var(--accent-glow);transition:transform .15s}.chd-talk:active{transform:scale(.96)}.chd-talk .icon{font-size:54px}.chd-talk.is-on{background:var(--ink);animation:chd-breathe 1.6s ease-in-out infinite}.chd-talk:disabled{opacity:.6;cursor:progress}.chd-talk-l{margin:0;font-weight:700;font-size:var(--fs-body);color:var(--ink-soft);font-variant-numeric:tabular-nums}@keyframes chd-breathe{0%,to{box-shadow:0 0 0 8px var(--accent-surface)}50%{box-shadow:0 0 0 16px var(--accent-surface)}}.chd-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);text-align:left}.chd-eye{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chd-quote{margin:0;font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.35}.chd-ta{width:100%;min-height:110px;padding:10px 12px;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-family:var(--font-display);font-size:var(--fs-body-lg);line-height:1.35;resize:vertical}.chd-ta.is-short{min-height:56px;resize:none}.chd-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);width:100%}.chd-sounds{display:flex;flex-direction:column;gap:var(--sp-2)}.chd-sounds>.chd-eye{text-align:left}.chd-suggest{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:2px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;text-align:left}.chd-suggest>.icon{flex:0 0 auto;font-size:32px;color:var(--accent)}.chd-suggest.is-on{border-color:var(--accent);background:var(--accent-surface)}.chd-suggest.is-asking{cursor:default;font-weight:600;color:var(--ink-soft)}.chd-suggest-t{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.chd-suggest-t small{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}.chd-suggest-t b{font-size:var(--fs-h3);line-height:1.15}.chd-suggest-t span{font-size:var(--fs-small);color:var(--ink-soft);line-height:1.3}.chd-suggest-check{flex:0 0 auto;color:var(--accent)}.chd-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.chd-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:92px;padding:var(--sp-3) var(--sp-3);border:2px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;text-align:left}.chd-tile .icon{font-size:28px;color:var(--accent)}.chd-tile.is-surprise .icon{color:var(--gold)}.chd-tile.is-on{border-color:var(--accent);background:var(--accent-surface)}.chd-tile b{font-size:var(--fs-body-lg)}.chd-tile small{font-size:var(--fs-caption);color:var(--muted);line-height:1.3}.chd-words.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.chd-words-row{display:flex;align-items:flex-start;gap:var(--sp-2)}.chd-words-row .chd-ta{flex:1 1 auto;min-width:0}.chd-mic{flex:0 0 auto;width:56px;height:56px;border:0;border-radius:50%;background:var(--accent);color:var(--text-on-accent);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-sm)}.chd-mic .icon{font-size:28px}.chd-mic.is-on{background:var(--ink);animation:chd-breathe 1.6s ease-in-out infinite}.chd-mic:disabled{opacity:.6;cursor:progress}.chd-slots{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--sp-3);margin:4px 0}.chd-slot{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-h2);font-weight:800;background:var(--surface-inset);color:var(--muted);border:2px dashed var(--edge);font-variant-numeric:tabular-nums}.chd-slot.is-on{background:var(--accent);color:var(--text-on-accent);border:0;box-shadow:0 6px 18px var(--accent-glow)}.chd-slot.is-on .icon{font-size:30px}.chd-slots.is-small{gap:var(--sp-2);margin:0}.chd-slots.is-small .chd-slot{width:36px;height:36px;font-size:var(--fs-small)}.chd-slots.is-small .chd-slot.is-on .icon{font-size:20px}.chd-count{margin:0;font-size:30px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.chd-count small{display:block;font-size:var(--fs-body);font-weight:600;color:var(--ink-soft)}.chd-pass{display:flex;gap:var(--sp-2);align-items:flex-start;padding:var(--sp-3);border-radius:var(--r-md);background:var(--accent-surface);color:var(--accent-deep);font-weight:600;font-size:var(--fs-body);text-align:left}.chd-pass .icon{flex:0 0 auto;color:var(--accent);font-size:28px}.chd-wall{display:flex;flex-direction:column;text-align:left}.chd-wall h3{margin:0 0 4px;font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chd-wrow{display:flex;gap:var(--sp-2);align-items:flex-start;padding:var(--sp-2) 0;border-top:1px solid var(--divider);font-family:var(--font-display);font-size:var(--fs-body);line-height:1.35}.chd-wrow:first-of-type{border-top:0}.chd-wrow .icon{flex:0 0 auto;color:var(--muted);font-size:20px;margin-top:2px}.chd-wt{flex:1 1 auto;min-width:0}.chd-wfix{display:flex;flex-direction:column;gap:var(--sp-2);font-family:var(--font-sans)}.chd-wrow.is-mine{background:var(--accent-surface);margin:0 calc(-1 * var(--sp-2));padding:var(--sp-2);border-radius:var(--r-md);border-top:0}.chd-x{flex:0 0 auto;width:32px;height:32px;border:0;border-radius:50%;background:transparent;cursor:pointer;color:var(--muted);display:grid;place-items:center}.chd-strip{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chd-strip span{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface-inset);font-size:var(--fs-caption);font-weight:600;color:var(--ink-soft);white-space:nowrap}.chd-strip span.is-you{box-shadow:0 0 0 2px var(--accent)}.chd-strip span.is-composing{background:var(--accent-surface);color:var(--accent-deep)}.chd-strip span.is-ready{background:color-mix(in srgb,var(--gold) 30%,transparent);color:var(--ink)}.chd-progress{display:flex;align-items:center;gap:var(--sp-3)}.chd-ring{position:relative;flex:0 0 auto;width:112px;height:112px}.chd-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.chd-ring .trk{fill:none;stroke:var(--surface-inset);stroke-width:10}.chd-ring .arc{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1.2s ease}.chd-ring-mid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.chd-ring-mid .n{font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.chd-ring-mid .n small{font-size:var(--fs-small);font-weight:700;margin-left:1px}.chd-working{display:inline-grid;place-items:center;width:calc(var(--compass-size) + 28px);height:calc(var(--compass-size) + 28px);margin:0 auto;border-radius:50%;--glow: var(--accent-glow)}.chd-phases{flex:1 1 auto;min-width:0;list-style:none;margin:0;padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);text-align:left;font-weight:600;font-size:var(--fs-small);color:var(--muted)}.chd-phases li{display:flex;align-items:center;gap:var(--sp-2)}.chd-phases li.is-done{color:var(--ink)}.chd-phases li.is-done .icon{color:var(--confirm)}.chd-phases li.is-now{color:var(--ink)}.chd-phases li.is-now .icon{color:var(--accent);animation:chd-spin 1.2s linear infinite}@keyframes chd-spin{to{transform:rotate(360deg)}}.chd-banner{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:0;border-radius:var(--r-md);background:var(--ink);color:var(--bg);font-weight:600;font-size:var(--fs-small);text-align:left;cursor:pointer}.chd-banner .icon{color:var(--gold)}.chd-banner b{flex:1 1 auto;min-width:0}.chd-banner span{padding:4px 10px;border-radius:var(--r-pill);background:var(--bg);color:var(--ink);font-size:var(--fs-caption)}.chd-leave{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);text-align:left}.chd-leave p{margin:0;font-size:var(--fs-body)}@media(prefers-reduced-motion:reduce){.chd-talk.is-on,.chd-mic.is-on,.chd-more .icon,.chd-phases li.is-now .icon{animation:none}}.chd-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.chd.has-stage{background:transparent}.chd.has-viz{--bg: var(--share-stage);--ink: var(--share-paper);--ink-soft: var(--share-paper);--muted: var(--share-border);--bg-elev: var(--share-stage);--surface-inset: var(--share-stage);--edge: var(--share-border);--divider: var(--share-border-soft)}.cht-door{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);overflow:hidden;background:var(--bg)}.cht-door .chd{height:100%}.cht-door .chd-stage{position:absolute}.cht-door .chd-bar{padding-right:112px}.cht-door-close{position:absolute;top:var(--sp-2);right:var(--sp-3);z-index:2}/**
 * @fileoverview The Inventory block's pictures, answer and sheets
 * (DESIGN_SPEC §3.35). Tokens only. The tiles and the answer are drawn on the
 * share page's glass or paper and in the app's chrome alike, so their ink is
 * `inherit` or a currentColor mix — the panel decides the ink (promo.css's
 * rule). What sits ON a photo (the count, ⋯, the grip) and the place boxes
 * carry their own theme-invariant share ink and paper, so they read over any
 * picture in either theme. The sheets are app chrome (portaled to <body>):
 * themed tokens, 44px targets, 16px boxes, Remove in the themed error ink,
 * never the coral — coral is only ever the next step.
 *
 * @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
 */.inv-tiles{position:relative;container-type:inline-size;display:flex;flex-direction:column;gap:var(--sp-4)}.inv-group{display:flex;flex-direction:column;gap:var(--sp-2);border-radius:var(--r-md)}.inv-group.is-over{outline:2px dashed currentColor;outline-offset:var(--sp-1)}.inv-group-head{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--fs-small);font-weight:800;letter-spacing:.05em;text-transform:uppercase}.inv-group-head .icon{font-size:18px;color:var(--sec-go)}.inv-group-n{margin-left:auto;font-variant-numeric:tabular-nums;opacity:.8}.inv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@container (min-width: 560px){.inv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 760px){.inv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (min-width: 980px){.inv-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.inv-tile{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:var(--r-lg);background:color-mix(in srgb,currentColor 5%,transparent)}.inv-tile-face{display:flex;flex-direction:column;width:100%;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.inv-tile-face:hover{background:color-mix(in srgb,currentColor 5%,transparent)}.inv-tile-face:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-3px}.inv-pic{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:color-mix(in srgb,currentColor 8%,transparent)}.inv-pic img{display:block;width:100%;height:100%;object-fit:cover}.inv-pic .ba{height:100%}.inv-pic .ba.is-sketch{border-bottom:0}.inv-tile-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:var(--sp-2) var(--sp-3)}.inv-tile-name,.inv-tile-sub{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inv-tile-name{font-size:var(--fs-body);font-weight:700;line-height:1.25}.inv-tile-sub{font-size:var(--fs-caption);opacity:.8}.inv-flag{margin-top:2px;padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--share-ask);color:var(--share-ink);font-size:11px;font-weight:800;letter-spacing:.02em}.inv-qty{position:absolute;right:var(--sp-2);bottom:var(--sp-2);min-width:32px;height:28px;padding:0 var(--sp-2);display:grid;place-items:center;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 80%,transparent);color:var(--share-paper);font-size:var(--fs-small);font-weight:800;font-variant-numeric:tabular-nums}.inv-qty.is-out{background:var(--share-error)}.inv-addpic{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:6px;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 80%,transparent);color:var(--share-paper);font-size:var(--fs-caption);font-weight:700;white-space:nowrap}.inv-addpic .icon{font-size:18px}.inv-check{position:absolute;top:var(--sp-2);left:var(--sp-2);width:30px;height:30px;display:grid;place-items:center;border:2px solid var(--share-paper);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 55%,transparent);color:var(--share-ink)}.inv-check .icon{font-size:20px;font-weight:700}.inv-tile.is-picked{outline:3px solid currentColor;outline-offset:-3px}.inv-tile.is-picked .inv-check{background:var(--share-paper);border-color:var(--share-ink)}.inv-tile .inv-dots,.inv-tile .inv-grip{position:absolute;top:var(--sp-1);z-index:1;color:var(--share-paper)}.inv-tile .inv-dots{right:var(--sp-1);width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;background:none;cursor:pointer}.inv-tile .inv-dots:before,.inv-tile .inv-grip:before{content:"";position:absolute;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 66%,transparent)}.inv-tile .inv-dots:before{top:5px;right:5px;bottom:5px;left:5px}.inv-tile .inv-grip{left:var(--sp-1)}.inv-tile .inv-grip:before{top:6px;right:3px;bottom:6px;left:3px}.inv-tile .inv-grip:hover{color:var(--share-paper)}.inv-tile .inv-dots .icon,.inv-tile .inv-grip .icon{position:relative;font-size:22px}.inv-tile .inv-dots:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-2px;border-radius:var(--r-pill)}@media(hover:none){.inv-tile .inv-grip{display:none}}.inv-step{display:flex;align-items:center;justify-content:space-between;margin:0 var(--sp-2) var(--sp-2);border:1px solid color-mix(in srgb,currentColor 26%,transparent);border-radius:var(--r-pill)}.inv-step button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:inherit;cursor:pointer}.inv-step button:hover:not(:disabled){background:color-mix(in srgb,currentColor 12%,transparent)}.inv-step button:disabled{opacity:.4;cursor:default}.inv-step b{min-width:24px;text-align:center;font-variant-numeric:tabular-nums}.inv-more-rows{align-self:center;min-height:44px;padding:0 var(--sp-4);border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-pill);background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer}.inv-drop-dock{position:sticky;top:var(--sp-2);z-index:2;height:0}.inv-drop-strip{position:absolute;inset:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--ink);box-shadow:var(--shadow-lg)}.inv-drop-say{width:100%;font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.inv-drop{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--sp-4);border:2px dashed var(--edge);border-radius:var(--r-pill);font-weight:700}.inv-drop.is-over{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 10%,transparent)}.inv-answer{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left}.inv-answer-line{margin:0;font-size:var(--fs-body-lg);font-weight:700;line-height:1.35}.inv-heard{margin:0;font-size:var(--fs-small);opacity:.85}.inv-spots{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;list-style:none}.inv-spot{display:inline-flex;align-items:stretch;overflow:hidden;border:1.5px solid var(--share-ink);border-radius:var(--r-md);font-size:var(--fs-body);font-weight:700}.inv-spot>b{display:grid;place-items:center;min-width:40px;padding:0 var(--sp-2);background:var(--share-paper);color:var(--share-ink);font-variant-numeric:tabular-nums}.inv-spot>span{display:inline-flex;align-items:center;gap:var(--sp-1);padding:6px var(--sp-3);background:var(--share-ink);color:var(--share-paper)}.inv-spot .icon{font-size:18px}.inv-link{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-1);border:0;background:none;color:inherit;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.inv-link:disabled{opacity:.5;cursor:default}.inv-sheet .assist-sheet-body{display:flex;flex-direction:column;gap:var(--sp-4)}.inv-field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.inv-label{font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.inv-hint,.inv-sheet .cds-hint{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.inv-sheet .inv-input{width:100%;min-width:0;min-height:48px;margin:0;padding:0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);font-size:16px}.inv-sheet .inv-input:focus{border-color:var(--accent)}.inv-sheet .inv-input::placeholder{color:var(--ink-soft);opacity:.7}.inv-namebox{display:flex;align-items:center;gap:var(--sp-2)}.inv-namebox .inv-input,.inv-namebox .mtx{flex:1 1 auto;min-width:0}.inv-namebox:has(.mtx){align-items:flex-start}.inv-sheet .inv-input.inv-name{min-height:60px;font-size:var(--fs-body-lg)}.inv-sheet textarea.inv-input{min-height:112px;padding:var(--sp-2) var(--sp-3);line-height:1.45;resize:vertical}.inv-sheet .inv-namebox .btn{flex:0 0 auto;width:auto;min-height:48px}.inv-mic{flex:0 0 auto;width:60px;height:60px;display:grid;place-items:center;padding:0;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);cursor:pointer}.inv-mic.is-on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.inv-mic:disabled{opacity:.6;cursor:progress}.inv-pickrow>.inv-label{display:inline-flex;align-items:center;gap:6px}.inv-pickrow.is-kind .inv-chip{border-radius:var(--r-sm)}.inv-sep{margin:0;border:0;border-top:1px solid var(--edge)}.inv-placepick{display:flex;flex-direction:column;gap:var(--sp-2)}.inv-move-group{display:flex;flex-direction:column;gap:var(--sp-1)}.inv-move-group+.inv-move-group{margin-top:var(--sp-2)}.inv-photo{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.inv-shot{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:4 / 3;max-height:36dvh;padding:0;overflow:hidden;border:2px dashed var(--edge);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink-soft);font:inherit;cursor:pointer}.inv-shot.has{border-style:solid;border-color:var(--divider)}.inv-shot img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.inv-shot .ba{position:absolute;top:0;right:0;bottom:0;left:0}.inv-shot .ba.is-sketch{border-bottom:0}.inv-shot-cta{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);font-weight:700;color:var(--ink)}.inv-shot-cta small{font-size:var(--fs-small);font-weight:500;color:var(--ink-soft)}.inv-retake{position:absolute;right:var(--sp-2);bottom:var(--sp-2);display:inline-flex;align-items:center;gap:var(--sp-1);min-height:40px;padding:0 var(--sp-3);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 74%,transparent);color:var(--share-paper);font-weight:700}.inv-sheet .inv-photo .inv-link,.inv-sheet .inv-hint .inv-link{color:var(--ink)}.inv-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.inv-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer}.inv-chip:hover{border-color:var(--ink-soft)}.inv-chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.inv-chip .icon{font-size:18px}.inv-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}.inv-stepper{display:inline-flex;align-items:center;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev)}.inv-stepper button{width:48px;height:48px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:var(--ink);cursor:pointer}.inv-stepper button:disabled{opacity:.4;cursor:default}.inv-stepper b{min-width:40px;text-align:center;font-size:var(--fs-h3);font-variant-numeric:tabular-nums}.inv-switch{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink-soft)}.inv-already{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);border:1px solid color-mix(in srgb,var(--sec-go) 40%,var(--edge));border-radius:var(--r-md);background:color-mix(in srgb,var(--sec-go) 12%,var(--bg-elev));color:var(--ink)}.inv-already p{display:flex;gap:var(--sp-2);margin:0;font-weight:600}.inv-already p .icon{color:var(--sec-go)}.inv-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.inv-sheet .inv-two .btn{min-height:48px;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-body);line-height:1.2;white-space:normal}.inv-fold{border-top:1px solid var(--divider);padding-top:var(--sp-2)}.inv-fold>summary{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;font-weight:700;color:var(--ink-soft);cursor:pointer;list-style:none}.inv-fold>summary::-webkit-details-marker{display:none}.inv-fold>summary:before{content:"expand_more";font-family:var(--font-icons);font-feature-settings:"liga";font-size:22px;line-height:1;transition:transform var(--t-snap) var(--easing)}.inv-fold[open]>summary:before{transform:rotate(180deg)}.inv-fold-body{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-2)}.inv-sheet .btn.inv-back{align-self:flex-start;width:auto}.inv-acts-head{display:flex;align-items:center;gap:var(--sp-3)}.inv-thumb{flex:0 0 auto;width:56px;height:56px;overflow:hidden;border-radius:var(--r-md);background:var(--surface-inset)}.inv-thumb img{display:block;width:100%;height:100%;object-fit:cover}.inv-thumb .ba{height:100%}.inv-thumb .ba.is-sketch{border-bottom:0}.inv-acts-name{min-width:0}.inv-acts-name b{display:block;font-size:var(--fs-body-lg)}.inv-acts-name small{display:block;font-size:var(--fs-small);color:var(--ink-soft)}.inv-where{margin:0;font-size:var(--fs-body-lg);font-weight:700}.inv-sheet-actions,.inv-sheet-foot{display:flex;flex-direction:column;gap:var(--sp-2)}.inv-sheet-foot{padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--divider)}.inv-sheet-foot .inv-hint{text-align:center}.inv-sheet .btn.inv-danger{color:var(--status-error);border-color:color-mix(in srgb,var(--status-error) 45%,transparent)}.inv-sheet .btn.inv-danger:hover{background:color-mix(in srgb,var(--status-error) 10%,transparent)}@media(prefers-reduced-motion:reduce){.inv-fold>summary:before{transition:none}}/**
 * @fileoverview The Inventory block on the page and the list both it and a
 * sticker's door show (InventoryBrowser, InventorySection — DESIGN_SPEC
 * §3.35). Tokens only. The browse is drawn on the share page's glass, on a
 * paper finish and in the door's app chrome, so its ink is `inherit` and its
 * edges are currentColor mixes — the panel decides the ink (promo.css's
 * rule). The page's one coral is the share vocabulary's own (`.gcv-btn`); the
 * door's is the app's (`.btn-primary`). The sheets' rows (Put them away,
 * Recently removed) are app chrome, portaled to <body>.
 *
 * @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
 */.invb{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;font-family:var(--font-sans)}.invb-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.invb-row{display:flex;flex-direction:column;gap:var(--sp-2)}.invb-row-head{margin:0;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.8}.invb-row.is-kind .invb-chip{border-radius:var(--r-sm)}.invb-sep{margin:0;border:0;border-top:1px solid color-mix(in srgb,currentColor 20%,transparent)}.invb-rowfind{min-height:48px}.invb-chip,.invb-quiet{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;line-height:1.2;text-align:left}.invb-chip:hover,.invb-quiet:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent)}.invb-chip[aria-pressed=true]{border-color:currentColor;background:color-mix(in srgb,currentColor 16%,transparent)}.invb-chip.is-fold{border-style:dashed}.invb-quiet:disabled{opacity:.45;cursor:default}.invb-n{font-variant-numeric:tabular-nums;font-weight:600;opacity:.75}.invb .icon{font-size:18px}.invb-keep{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2)}.invb-away{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px dashed color-mix(in srgb,currentColor 45%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;text-align:left}.invb-away u{text-underline-offset:3px}.invb-link{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-1);border:0;background:none;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600;text-decoration:underline;text-underline-offset:3px}.invb-empty{margin:0;padding:var(--sp-4) 0;text-align:center;font-size:var(--fs-body);opacity:.8}.invb-selbar{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-lg)}.invb-selsay{margin:0;font-size:var(--fs-small);font-weight:700}.invb-selacts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.invb-main{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:44px;padding:0 var(--sp-4)}.invb.is-door .invb-selbar{position:sticky;bottom:var(--sp-2);z-index:var(--z-raised);border-color:var(--edge);background:var(--bg-elev);box-shadow:var(--shadow-md)}.invb.is-door .invb-danger{color:var(--status-error)}.invb-block{display:flex;flex-direction:column;gap:var(--sp-3);font-family:var(--font-sans)}.invb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2) var(--sp-3)}.invb-counts{margin:0;font-size:var(--fs-small);font-weight:700;opacity:.85}.invb-intro{margin:0;font-size:var(--fs-body);line-height:1.45}.invb-find{display:flex;align-items:center;gap:var(--sp-2)}.invb-field{position:relative;flex:1 1 auto;min-width:0}.invb-field>.icon{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--share-ink);opacity:.55;pointer-events:none}.invb-field .gcv-field{min-height:56px;padding-left:44px;padding-right:48px;font-size:var(--fs-body-lg);-webkit-appearance:none;-moz-appearance:none;appearance:none}.invb-field .gcv-field::-webkit-search-cancel-button{display:none}.invb-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:var(--share-ink);cursor:pointer}.invb-mic{flex:0 0 auto;width:56px;height:56px;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,currentColor 35%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer}.invb-mic.is-on{border-color:currentColor;background:color-mix(in srgb,currentColor 18%,transparent)}.invb-mic:disabled{opacity:.6;cursor:default}.invb-answer{display:flex;flex-direction:column;gap:var(--sp-2)}.invb-near{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.invb-near>span{width:100%;font-size:var(--fs-small);opacity:.85}.invb-shut{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.invb-shut p{margin:0;font-size:var(--fs-body);line-height:1.45}.invp-rows{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.invp-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:60px;padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.invp-row.is-plain{cursor:default}.invp-row[aria-pressed=true]{border-color:var(--ink);background:var(--surface-inset)}.invp-row .inv-thumb{width:44px;height:44px}.invp-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.invp-name small{margin-left:var(--sp-2);font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.invp-name .invp-where{display:block;margin-left:0;overflow:hidden;text-overflow:ellipsis}.invp-tick{flex:0 0 auto;font-size:26px;color:var(--ink-soft)}.invp-row[aria-pressed=true] .invp-tick{color:var(--ink)}.inv-sheet .btn.invp-bring{flex:0 0 auto;width:auto;min-height:44px;padding:0 var(--sp-3);font-size:var(--fs-small)}/**
 * @fileoverview The To-do List's add bar, a job's sheet, Who can help and
 * Export and import (DESIGN_SPEC §3.38). Tokens only. The add bar and the
 * chips under a job's title are drawn on the share page's glass, on full
 * screen's stage and in the Builder alike, so their ink is `inherit` and their
 * edges are currentColor mixes — the panel decides the ink (promo.css's rule).
 * The add bar's Add is quiet until there are words (then it opens New job),
 * then it is the coral: the share page's own on the page and full screen, the
 * app's in the Builder. A priority wears the section family's green, yellow and
 * red (the owner's colours), on its flag only — the words stay in the ink.
 * The sheets are app chrome (portaled to <body>): themed tokens, 44px targets,
 * 16px boxes, Remove in the themed error ink, never the coral — coral is only
 * ever the next step.
 *
 * @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
 */.tda{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;font-family:var(--font-sans)}.tda-row{display:flex;align-items:center;gap:var(--sp-2)}.tda-input{flex:1 1 auto;min-width:0;min-height:48px;margin:0;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font:inherit;font-size:16px}.tda-input::placeholder{color:inherit;opacity:.6}.tda-input:focus-visible,.tda-attach:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:1px}.tda-attach{flex:0 0 auto;width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-md);background:transparent;color:inherit;cursor:pointer}.tda-attach:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.tda .tda-go,.tda .tda-go.is-ready{flex:0 0 auto;width:auto;min-height:48px;padding:0 var(--sp-4);border-radius:var(--r-md);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:700;letter-spacing:0}.tda .tda-go{border:1.5px solid color-mix(in srgb,currentColor 30%,transparent);background:transparent;color:inherit;cursor:pointer}.tda .tda-go:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.tda .tda-go.is-ready{border:0}.gcv-glass-card .tda .tda-go.is-ready,.block-expand .tda .tda-go.is-ready{background-color:var(--share-accent);color:var(--share-paper)}.tda-hint{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-1) var(--sp-3);margin:0;font-size:var(--fs-caption);opacity:.8}.tds-chipbox{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.tds-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tds-chip,.tds-opt{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;line-height:1.2;text-align:left}.tds-chip>bdi,.tds-chip>.tds-chip-words{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tds-chip.is-unset{border-style:dashed;background:transparent;font-weight:600}.tds-chip[aria-expanded=true]{border-style:solid;border-color:currentColor}.tds-chip:disabled{cursor:default}.tds-chip .icon,.tds-opt .icon{font-size:18px}.tds-opt{background:transparent;font-weight:600}.tds-opt:hover:not(:disabled),.tds-chip:hover:not(:disabled){background:color-mix(in srgb,currentColor 14%,transparent)}.tds-opt[aria-pressed=true]{border-color:currentColor;background:color-mix(in srgb,currentColor 18%,transparent);font-weight:700}.tds-opt:disabled{opacity:.5;cursor:default}.tds-picker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 4%,transparent)}.tds-picker .timing-field{width:100%}.tds-typed{display:flex;gap:var(--sp-2);width:100%}.tds-typed input,.tds-picker .tds-date{flex:1 1 auto;width:100%;min-width:0;min-height:44px;margin:0;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;font-size:16px}.tds-typed input::placeholder{color:inherit;opacity:.6}.tds-picker .tds-label{color:inherit}.tds-picker .cds-hint{margin:0;font-size:var(--fs-caption);color:inherit;opacity:.75}.tds-hue{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--tds-hue, currentColor)}.tds-hue-shop{--tds-hue: var(--sec-shop)}.tds-hue-plan{--tds-hue: var(--sec-plan)}.tds-hue-go{--tds-hue: var(--sec-go)}.tds-hue-know{--tds-hue: var(--sec-know)}.tds-hue-people{--tds-hue: var(--sec-people)}.tds-hue-gifts{--tds-hue: var(--sec-gifts)}.tds-hue-treasure{--tds-hue: var(--sec-treasure)}.tds-pri-low{color:var(--sec-gifts)}.tds-pri-medium{color:var(--sec-plan)}.tds-pri-high{color:var(--sec-shop)}.tds-ups{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.tds-up{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:2px var(--sp-2);font-size:var(--fs-small)}.tds-up-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.tds-up-size{opacity:.75;font-variant-numeric:tabular-nums}.tds-bar{grid-column:2 / 4;height:4px;overflow:hidden;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 16%,transparent)}.tds-bar>i{display:block;height:100%;background:currentColor;transition:width var(--t-snap) var(--easing)}.tds-x{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:inherit;cursor:pointer}.tds-x:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.tds-up .tds-x{grid-column:4;grid-row:1 / 3}.tds-sheet .assist-sheet-body{display:flex;flex-direction:column;gap:var(--sp-4);color:var(--ink)}.tds-drop{display:contents}.tds-field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.tds-label{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.tds-label small{font-size:var(--fs-caption);font-weight:500}.tds-input{width:100%;min-width:0;margin:0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);font:inherit;font-size:16px;line-height:1.45;resize:vertical}.tds-input:focus{border-color:var(--accent)}.tds-input::placeholder{color:var(--ink-soft);opacity:.7}.tds-title{min-height:64px;font-size:var(--fs-body-lg);font-weight:600}.tds-notes{min-height:96px}.tds-copy{min-height:160px;font-family:ui-monospace,monospace;font-size:var(--fs-small)}.tds-title-read{margin:0;font-size:var(--fs-body-lg);font-weight:700;line-height:1.35;overflow-wrap:anywhere}.tds-notes-read{font-size:var(--fs-body);line-height:1.5;overflow-wrap:anywhere}.tds-note{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.tds-banner{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0;padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small);line-height:1.4}.tds-banner .icon{flex:0 0 auto;font-size:20px}.tds-banner.is-warn{background:var(--status-warning-bg);color:var(--ink)}.tds-banner.is-warn .icon{color:var(--status-warning)}.tds-banner.is-ok .icon{color:var(--status-success)}.tds-sheet .tds-chipbox{color:var(--ink)}.tds-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--sp-2)}.tds-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--r-md);background:var(--surface-inset)}.tds-thumb-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.tds-thumb-open img,.tds-thumb>img{display:block;width:100%;height:100%;object-fit:cover}.tds-thumb .tds-x{position:absolute;top:2px;right:2px;width:40px;height:40px;background:color-mix(in srgb,var(--share-stage) 70%,transparent);color:var(--share-paper)}.tds-filerow{display:flex;align-items:center;gap:var(--sp-1);min-width:0}.tds-file{flex:1 1 auto;display:flex;align-items:center;gap:var(--sp-3);min-width:0;min-height:56px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);text-decoration:none}.tds-file>.icon{flex:0 0 auto;color:var(--ink-soft)}.tds-file-text{min-width:0}.tds-file b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body)}.tds-file small{display:block;font-size:var(--fs-caption);color:var(--ink-soft)}a.tds-file:hover{border-color:var(--ink-soft)}.tds-file.is-off{opacity:.7}.tds-two{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tds-two .btn{text-decoration:none}.tds-more{border-top:1px solid var(--divider);padding-top:var(--sp-2)}.tds-more>summary{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;font-weight:700;color:var(--ink-soft);cursor:pointer;list-style:none}.tds-more>summary::-webkit-details-marker{display:none}.tds-more>summary:before{content:"expand_more";font-family:var(--font-icons);font-feature-settings:"liga";font-size:22px;line-height:1;transition:transform var(--t-snap) var(--easing)}.tds-more[open]>summary:before{transform:rotate(180deg)}.tds-more-body{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-2)}.tds-hist{margin:0;font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}.tds-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--divider)}.tds-sheet .tds-foot .btn{width:auto;min-height:44px;padding:0 var(--sp-4);font-size:var(--fs-body)}.tds-grow{flex:1 1 auto}.tds-sheet .btn.tds-danger{color:var(--status-error);border-color:color-mix(in srgb,var(--status-error) 45%,transparent)}.tds-sheet .btn.tds-danger:hover{background:color-mix(in srgb,var(--status-error) 10%,transparent)}.tds-who{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;color:var(--ink)}.tds-lede{margin:0;font-size:var(--fs-body);line-height:1.45;color:var(--ink)}.tds-set{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.tds-set-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.tds-set-text{min-width:0}.tds-set-text b,.tds-choice b,.tds-row b{display:block;font-size:var(--fs-body)}.tds-set-text small,.tds-choice small,.tds-row small{display:block;font-size:var(--fs-small);line-height:1.4;color:var(--ink-soft)}.tds-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-2) 0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:700;white-space:nowrap;cursor:pointer}.tds-pill:disabled{cursor:default;opacity:.75}.tds-choices{display:flex;flex-direction:column;gap:var(--sp-2)}.tds-choice{display:flex;align-items:flex-start;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.tds-choice>.icon{flex:0 0 auto;color:var(--ink-soft)}.tds-choice[aria-pressed=true]{border-color:var(--ink);outline:1px solid var(--ink);outline-offset:-2px}.tds-choice[aria-pressed=true]>.icon{color:var(--ink)}.tds-choice:disabled{cursor:default;opacity:.6}.tds-group{margin:0;font-size:var(--fs-caption);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.tds-rows{display:flex;flex-direction:column;gap:var(--sp-2)}.tds-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:64px;padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.tds-row:hover:not(:disabled){border-color:var(--ink-soft)}.tds-row:disabled{cursor:default;opacity:.6}.tds-row>.icon{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-md);background:color-mix(in srgb,var(--sec-plan) 20%,var(--bg-elev));color:var(--ink)}.tds-row-text{min-width:0}.tds-lines{display:flex;flex-direction:column;gap:var(--sp-1);max-height:40dvh;margin:0;padding:0;overflow-y:auto;list-style:none}.tds-lines li{display:flex;align-items:center;gap:var(--sp-2);min-height:32px;font-size:var(--fs-body)}.tds-lines .icon{flex:0 0 auto;font-size:18px;color:var(--ink-soft)}.tds-switchrow{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.tds-switchrow>span{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.tds-more>summary:before,.tds-bar>i{transition:none}}/**
 * Clearable — the ✕ in a text box's corner (Clearable.jsx).
 * @fileoverview The wrapper is a block so the box keeps its width; the
 * box leaves room on the right for the button, which sits at the top so a
 * textarea's first line and an input's only line meet it the same way.
 * @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
 */.cds-clearable{position:relative;display:block}.cds-clearable>.cds-input{padding-right:44px}.cds-clear{position:absolute;top:6px;right:6px;width:32px;height:32px;border:0;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--muted);display:grid;place-items:center;cursor:pointer}.cds-clear:hover,.cds-clear:focus-visible{color:var(--ink)}/**
 * inventoryEditor.css — the Inventory block's editor (DESIGN_SPEC §3.35.5).
 *
 * @fileoverview Tokens only, legible in both themes: the editor is app chrome,
 * except the sticker preview, which is a sheet of printed labels and so keeps
 * the share page's theme-invariant paper and ink. Every target is 44px; the
 * cards are the Builder's own (.ds-card), laid out here and nothing more.
 *
 * @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
 */.ive .btn-primary,.ive .btn-secondary{width:auto;min-height:44px}.ive-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.ive-wait,.ive-why{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.ive-why{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);color:var(--status-error);font-weight:600}.ive-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:var(--sp-3);padding-top:var(--sp-2)}.ive-cards .ds-card-plate{height:64px}.ive-toggle{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-2) 0;border-bottom:1px solid var(--divider);cursor:pointer}.ive-toggle-text{display:grid;flex:1 1 auto;min-width:0;gap:2px}.ive-toggle-text b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.ive-toggle-text small{font-size:var(--fs-small);color:var(--ink-soft)}.ive-toggle-state{flex:0 0 auto;font-size:var(--fs-small);color:var(--ink-soft)}.ive-rows{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.ive-row{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset)}.ive-row.is-dragging{opacity:.5}.ive-row.is-over{box-shadow:inset 0 0 0 2px var(--accent)}.ive-row-body{display:flex;flex-direction:column;gap:var(--sp-1);flex:1 1 auto;min-width:0}.ive-row-body>.cds-input{margin:0}.ive-row-body .cds-label .cds-input{margin:var(--sp-1) 0 0}.ive-row-body .ive-toggle:last-child{border-bottom:0}.ive-row-meta,.ive-say{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-2);font-size:var(--fs-small);color:var(--ink-soft)}.ive-row-meta{margin:0}.ive-in{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);font-size:var(--fs-small);color:var(--ink-soft)}.ive-in .inv-chips{padding-bottom:var(--sp-1)}.ive-icon-btn{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:none;color:var(--ink-soft);cursor:pointer}.ive-icon-btn:hover{color:var(--status-error);background:color-mix(in srgb,var(--status-error) 10%,transparent)}.ive-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}.ive-add>.cds-label{flex:1 1 14rem;min-width:0;margin:0}.ive-add .cds-input{margin:var(--sp-1) 0 0}.ive-new{padding:var(--sp-3);border:1px dashed var(--edge);border-radius:var(--r-md)}.ive-static{display:grid;gap:var(--sp-1);margin:0;padding:0;list-style:none}.ive-static li{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-2);min-height:40px}.ive-static .icon{color:var(--sec-go)}.ive-static small{color:var(--ink-soft);font-size:var(--fs-small)}.ive-paper{display:grid;gap:var(--sp-1);margin:0;padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-sm);background:var(--share-paper);color:var(--share-ink)}.ive-paper.is-big,.ive-paper.is-label{grid-template-columns:repeat(3,minmax(0,1fr))}.ive-paper.is-small{grid-template-columns:repeat(4,minmax(0,1fr))}.ive-paper.is-sign{grid-template-columns:repeat(2,minmax(0,1fr))}.ive-stk{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:var(--sp-1);border:1px dashed color-mix(in srgb,var(--share-ink) 28%,transparent);border-radius:var(--r-sm);text-align:center}.ive-stk img,.ive-stk-code{display:block;width:100%;max-width:112px;aspect-ratio:1}.ive-stk-code{border-radius:var(--r-sm);background:color-mix(in srgb,var(--share-ink) 12%,transparent)}.ive-stk-words{display:flex;flex-direction:column;min-width:0;max-width:100%}.ive-stk-words b,.ive-stk-words small{overflow-wrap:anywhere;line-height:1.2}.ive-stk-words b{font-size:var(--fs-caption)}.ive-stk-words small{font-size:.65rem;color:color-mix(in srgb,var(--share-ink) 72%,transparent)}.ive-paper.is-label .ive-stk{flex-direction:row;text-align:left}.ive-paper.is-label .ive-stk img,.ive-paper.is-label .ive-stk-code{width:40%;flex:0 0 auto}.ive-paper figcaption{grid-column:1 / -1;padding-top:var(--sp-1);font-size:var(--fs-small);color:color-mix(in srgb,var(--share-ink) 72%,transparent)}.ive-notes{display:grid;gap:var(--sp-1);margin:0;padding-left:var(--sp-4);font-size:var(--fs-small);color:var(--ink-soft)}.ive-findrow{display:flex;align-items:flex-start;gap:var(--sp-2)}.ive-findrow>:first-child{flex:1 1 auto;min-width:0}/**
 * todoEditor.css — the To-do List block's editor (DESIGN_SPEC §3.38).
 *
 * @fileoverview Tokens only, legible in both themes. The editor borrows the
 * Inventory editor's cards, switch rows and add box (inventoryEditor.css) and
 * the list's own label colours (todo.css); this puts a help bubble beside a
 * switch row and a label's colour beside its name.
 *
 * @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
 */.tde-setting{display:flex;align-items:center;gap:var(--sp-2)}.tde-setting>.ive-toggle{flex:1 1 auto;min-width:0}.tde-head{display:flex;align-items:center;gap:var(--sp-1)}.tde-labels .ive-row>.tdl-dot{width:12px;height:12px;margin:16px var(--sp-1) 0}/**
 * @fileoverview The To-do List block on the page, full screen and in the
 * Builder's jobs step (TodoSection, TodoBoard — DESIGN_SPEC §3.38). Tokens
 * only. The list is drawn on the share page's glass, on a paper finish, on the
 * full-screen stage and in the Builder's app chrome, so its ink is `inherit`
 * and its edges and fills are currentColor mixes — the panel decides the ink
 * (promo.css's rule). Done is the share palette's green; late and today are
 * its red and amber mixed with the ink, so both read on glass and on paper —
 * quiet text is dimmed in its colour, never by opacity, which would fade a
 * late date inside it below 4.5:1 on paper.
 * The Recently removed sheet is app chrome, portaled to <body>.
 * Every class is `tdl-`, so the sheets' own stylesheet (todoSheets.css) and
 * this one never collide.
 *
 * @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
 */.tdl-block{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;font-family:var(--font-sans)}@media(min-width:900px){.block-expand-body>.tdl-block.is-full{max-width:1200px}}.tdl-yours{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 10%,transparent);font-size:var(--fs-body);line-height:1.4}.tdl-yours b{font-weight:700}.tdl-counts{margin:0;font-size:var(--fs-small);font-weight:700;color:color-mix(in srgb,currentColor 85%,transparent)}.tdl-late{color:color-mix(in srgb,var(--share-error) 50%,currentColor);font-weight:700}.tdl-today{color:color-mix(in srgb,var(--share-ask) 35%,currentColor);font-weight:700}.tdl-progress{height:4px;margin-top:calc(-1 * var(--sp-2));overflow:hidden;border-radius:var(--r-pill);background:color-mix(in srgb,currentColor 14%,transparent)}.tdl-progress>i{display:block;height:100%;border-radius:inherit;background:var(--share-success);transition:width var(--t-medium) var(--easing)}.tdl-private{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-small);font-weight:600;opacity:.85}.tdl-shut{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.tdl-shut p{margin:0;font-size:var(--fs-body);line-height:1.45}.tdl-go{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:44px;padding:0 var(--sp-4)}.tdl-quiet{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700}.tdl-board{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;font-family:var(--font-sans)}.tdl-board.is-over{outline:2px dashed currentColor;outline-offset:var(--sp-1);border-radius:var(--r-md)}.tdl-aud{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:0;border-radius:var(--r-md);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600;line-height:1.3;text-align:left}.tdl-aud>span:nth-child(2){flex:1 1 auto;min-width:0}.tdl-aud:hover{background:color-mix(in srgb,currentColor 13%,transparent)}.tdl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.tdl-bar>.tdl-icon{margin-left:auto}.tdl-pill>bdi{max-width:14em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tdl-pill{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 var(--sp-2) 0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700}.tdl-pill:hover,.tdl-icon:hover,.tdl-fold:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.tdl-icon{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer}.tdl-n{margin-left:4px;font-variant-numeric:tabular-nums;font-weight:600;opacity:.75}.tdl-menu{display:flex;flex-direction:column;padding:var(--sp-1);border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:var(--r-lg)}.tdl-menu button{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3);border:0;border-radius:var(--r-md);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-body);font-weight:600;text-align:left}.tdl-menu .tdl-n{margin-left:auto}.tdl-menu-head{margin:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.7}.tdl-menu button:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.tdl-menu button[aria-pressed=true]{background:color-mix(in srgb,currentColor 14%,transparent);font-weight:700}.tdl-board>.gcv-field{width:100%;min-height:44px}.tdl-rows{display:flex;flex-direction:column;min-width:0}.tdl-group{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-1);font-size:var(--fs-caption);font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.8}.tdl-group:first-child{margin-top:0}.tdl-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:var(--sp-1);min-height:52px;border-radius:var(--r-md)}.tdl-row:hover{background:color-mix(in srgb,currentColor 5%,transparent)}.tdl-tick{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer}.tdl-tick:disabled{cursor:default;opacity:.5}.tdl-box{width:24px;height:24px;display:grid;place-items:center;border:2px solid color-mix(in srgb,currentColor 75%,transparent);border-radius:var(--r-pill);transition:background var(--t-snap),border-color var(--t-snap),transform var(--t-snap)}.tdl-box .icon{font-size:16px;color:transparent}.tdl-tick[aria-checked=true] .tdl-box{border-color:var(--share-success);background:var(--share-success)}.tdl-tick[aria-checked=true] .tdl-box .icon{color:var(--share-paper)}.tdl-tick:not(:disabled):active .tdl-box{transform:scale(.88)}.tdl-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px var(--sp-3);min-width:0;padding:var(--sp-2) var(--sp-1) var(--sp-2) 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.tdl-main:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-sm)}.tdl-title{grid-column:1;font-size:var(--fs-body);font-weight:600;line-height:1.3;overflow-wrap:anywhere}.tdl-num{margin-right:6px;font-variant-numeric:tabular-nums;opacity:.7}.tdl-row.is-done .tdl-title{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.6}.tdl-meta{grid-column:1;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:var(--fs-caption);line-height:1.35;color:color-mix(in srgb,currentColor 80%,transparent)}.tdl-meta:empty{display:none}.tdl-meta>*+*:before{content:"·";margin-right:6px;opacity:.7}.tdl-meta .icon{font-size:15px;vertical-align:-3px}.tdl-lab{display:inline-flex;align-items:center;gap:4px}.tdl-dot{width:8px;height:8px;flex:0 0 auto;border-radius:var(--r-pill);background:var(--tdl-hue)}.tdl-hue-shop{--tdl-hue: var(--sec-shop)}.tdl-hue-plan{--tdl-hue: var(--sec-plan)}.tdl-hue-go{--tdl-hue: var(--sec-go)}.tdl-hue-know{--tdl-hue: var(--sec-know)}.tdl-hue-people{--tdl-hue: var(--sec-people)}.tdl-hue-gifts{--tdl-hue: var(--sec-gifts)}.tdl-hue-treasure{--tdl-hue: var(--sec-treasure)}.tdl-thumb{grid-column:2;grid-row:1 / span 2;width:44px;height:44px;object-fit:cover;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:var(--r-md)}.tdl-take{min-height:44px;padding:0 var(--sp-3);white-space:nowrap;border:1px solid color-mix(in srgb,currentColor 40%,transparent);border-radius:var(--r-pill);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:700}.tdl-take:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.tdl-fold{display:flex;align-items:center;gap:6px;width:100%;min-height:44px;margin-top:var(--sp-2);padding:0 var(--sp-2);border:0;border-radius:var(--r-md);background:transparent;color:inherit;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:700;opacity:.85}.tdl-empty{margin:0;padding:var(--sp-4) 0;text-align:center;font-size:var(--fs-body);opacity:.8}.tdl-hint{margin:0 0 var(--sp-3);font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}.tdl-gone{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.tdl-gone li{display:flex;align-items:center;gap:var(--sp-3);min-height:60px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink)}.tdl-gone-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;font-weight:600;overflow-wrap:anywhere}.tdl-gone-text small{font-size:var(--fs-small);font-weight:500;color:var(--ink-soft)}.tdl-sheet .tdl-gone .btn{flex:0 0 auto;width:auto;min-height:44px;padding:0 var(--sp-3);font-size:var(--fs-small)}@media(prefers-reduced-motion:reduce){.tdl-box,.tdl-progress>i{transition:none}}/**
 * @fileoverview trivia.css — the Trivia block on the Greetlet page (DESIGN_SPEC §3.41): the
 * block's name, its rounds as rows and Play along. Every colour is the card's own ink
 * (currentColor) and the page's accent, so the block reads on the paper and on dark glass alike
 * (owner, 2026-10-23: the question was share-ink on a dark glass card and could not be read).
 *
 * @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
 */.trv{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center}.trv-art{font-size:44px;color:var(--accent)}.trv-h{margin:0;font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700}.trv-sub,.trv-note{margin:0;font-size:var(--fs-body);color:color-mix(in srgb,currentColor 72%,transparent)}.trv-note{font-size:var(--fs-small)}.trv-rounds{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:var(--sp-1);text-align:left}.trv-rounds li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:44px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-md)}.trv-rounds b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trv-rounds span{flex:0 0 auto;font-size:var(--fs-small);color:color-mix(in srgb,currentColor 72%,transparent)}.trv-play{min-height:48px}.trv-rounds li:has(.trv-round){padding:0;border:0}.trv-round{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:0 var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font:inherit;text-align:left;cursor:pointer}.trv-round:hover,.trv-round:focus-visible{border-color:var(--accent);outline:none}.trv-round:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.trv-round:disabled{opacity:.6;cursor:default}.trv-round b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:var(--fs-body-lg, 17px)}.trv-go{flex:0 0 auto;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:var(--share-paper);font-size:22px}.trv-topics{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2);width:100%}.trv-topic{display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-height:48px;padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font:inherit;font-weight:600;cursor:pointer}.trv-topic span{font-size:var(--fs-caption);font-weight:400;color:color-mix(in srgb,currentColor 72%,transparent)}.trv-topic:hover,.trv-topic:focus-visible{border-color:var(--accent);outline:none}.trv-topic:disabled{opacity:.6;cursor:default}.trv-game{display:flex;flex-direction:column;gap:var(--sp-3);width:100%;text-align:left}.trv-game-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.trv-game-head .btn{color:inherit}.trv-game-n{font-size:var(--fs-small);font-variant-numeric:tabular-nums;color:color-mix(in srgb,currentColor 72%,transparent)}.trv-bar{height:4px;border-radius:2px;background:color-mix(in srgb,currentColor 24%,transparent);overflow:hidden}.trv-bar span{display:block;height:100%;border-radius:2px;background:var(--accent);transition:width var(--t-fast, .16s) ease}.trv-game-q{margin:var(--sp-2) 0;font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700;line-height:1.3;text-wrap:balance}.trv-answers{display:flex;flex-direction:column;gap:var(--sp-2)}.trv-ans{display:flex;align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;font:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;transition:border-color var(--t-fast, .16s) ease,background-color var(--t-fast, .16s) ease}.trv-ans:hover:not(:disabled),.trv-ans:focus-visible{border-color:var(--accent);outline:none}.trv-ans:disabled{cursor:default}.trv-ans-l{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 24%,transparent);font-size:var(--fs-small);font-weight:700}.trv-ans-t{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.trv-ans.is-picked{border-color:var(--accent)}.trv-ans.is-right{border-color:var(--confirm);background:color-mix(in srgb,var(--confirm) 22%,transparent)}.trv-ans.is-right .trv-ans-l{background:var(--confirm);border-color:var(--confirm);color:var(--share-paper)}.trv-ans.is-wrong{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.trv-ans.is-wrong .trv-ans-l{background:var(--accent);border-color:var(--accent);color:var(--share-paper)}.trv-reveal{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 10%,transparent)}.trv-reveal-v{margin:0;font-weight:700}.trv-reveal-f{margin:0;font-size:var(--fs-small);color:color-mix(in srgb,currentColor 80%,transparent)}.trv-next{min-height:48px;align-self:flex-end}.trv-end{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4) 0}.trv-end-n{margin:0;font-family:var(--font-display);font-size:var(--fs-h2)}.trv-end-n b{font-size:2.2em;color:var(--accent);font-variant-numeric:tabular-nums}.trv-end-w{margin:0;color:color-mix(in srgb,currentColor 80%,transparent)}.trv-end-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-2)}.trv-end-btns .btn{min-height:48px}/**
 * finish.css — a block's per-panel LOOK on the share page (DESIGN_SPEC §3.6.7,
 * 2026-09-17): `layout.finish` ∈ glass · paper · dark · color, chosen in the Builder.
 * Absent looks inherit their section surface (glass by default). Paper and dark override the glass
 * card's ground with the share palette's own tokens. Opacity is one number for
 * every Look: the panel's fill fades and the blur stays off, so the background
 * shows through. Text stays solid. A colour paints `--block-fill`.
 *
 * @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
 */.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card{color:var(--share-ink)!important;text-shadow:none!important}.gcv-root .is-finish-paper section>.gcv-glass-card{background:color-mix(in srgb,var(--share-paper) var(--look-opacity, 100%),transparent)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-color:var(--share-border)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card :is(a:not(.gcv-btn),a:not(.gcv-btn) *),.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card :is(a:not(.gcv-btn),a:not(.gcv-btn) *){color:inherit!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card :is(input,textarea,select),.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card :is(input,textarea,select){background:color-mix(in srgb,var(--share-ink) 5%,transparent)!important;color:var(--share-ink)!important;border-color:var(--share-border)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card :is(input,textarea)::placeholder,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card :is(input,textarea)::placeholder{color:color-mix(in srgb,var(--share-ink) 45%,transparent)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card .gcv-panel-title,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card .gcv-panel-title{color:color-mix(in srgb,var(--share-ink) 50%,transparent)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card :is(.gcv-chat-bubble.is-theirs,.gcv-chat-bubble.is-host),.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card :is(.gcv-chat-bubble.is-theirs,.gcv-chat-bubble.is-host){color:var(--share-ink)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card .gcv-chat-bubble.is-theirs,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card .gcv-chat-bubble.is-theirs{background:color-mix(in srgb,var(--share-ink) 6%,transparent)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card .gcv-chat-bubble.is-host,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card .gcv-chat-bubble.is-host{background:var(--share-guest-bg)!important;border-color:var(--share-guest-border)!important}.gcv-root :is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) section>.gcv-glass-card .gcv-chat-meta,.gcv-root.is-light-bg :is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) section>.gcv-glass-card .gcv-chat-meta{color:color-mix(in srgb,var(--share-ink) 55%,transparent)!important}.gcv-root .is-finish-dark section>.gcv-glass-card{background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity, 100%) * .92),transparent)!important}.gcv-root .is-finish-color section>.gcv-glass-card{background:var(--block-fill)!important;border-color:var(--block-fill)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.gcv-root .is-look-clear section>.gcv-glass-card,.gcv-root.is-light-bg .is-look-clear section>.gcv-glass-card{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.gcv-root .is-look-clear:not(:is(.is-finish-paper,.is-finish-dark,.is-finish-color)) section>.gcv-glass-card{background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity) * .4),transparent)!important}.gcv-root.is-light-bg .is-look-clear:not(:is(.is-finish-paper,.is-finish-dark,.is-finish-color)) section>.gcv-glass-card{background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity) * .55),transparent)!important}.gcv-root .gcv-song-panel:is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink),.gcv-root.is-light-bg .gcv-song-panel:is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark){color:var(--share-ink)!important;text-shadow:none!important;--song-lyric-active: var(--share-ink);--song-lyric-idle: var(--share-ink);--song-pill-bg: color-mix(in srgb, var(--share-ink) 6%, transparent);--song-pill-edge: color-mix(in srgb, var(--share-ink) 28%, transparent)}.gcv-root .gcv-song-panel:is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) .gcv-player-controls,.gcv-root.is-light-bg .gcv-song-panel:is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) .gcv-player-controls{--pc-fg: var(--share-ink);--pc-fg-soft: color-mix(in srgb, var(--share-ink) 80%, transparent);--pc-edge: color-mix(in srgb, var(--share-ink) 32%, transparent);--pc-track: color-mix(in srgb, var(--share-ink) 24%, transparent);--pc-fill: var(--share-ink);--pc-play-bg: var(--share-ink);--pc-play-fg: var(--share-paper);--pc-muted-on: color-mix(in srgb, var(--share-ink) 12%, transparent);--pc-shadow: none;background:transparent;color:var(--share-ink);border-color:var(--share-border)}.gcv-root .gcv-song-panel.is-finish-paper{background:color-mix(in srgb,var(--share-paper) var(--look-opacity, 100%),transparent)!important;border-color:var(--share-border)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.gcv-root .gcv-song-panel.is-finish-dark{background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity, 100%) * .92),transparent)!important}.gcv-root .gcv-song-panel.is-finish-color{background:var(--block-fill)!important;border-color:var(--block-fill)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.gcv-root .gcv-song-panel.is-look-clear,.gcv-root.is-light-bg .gcv-song-panel.is-look-clear{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.gcv-root .gcv-song-panel.is-look-clear:not(:is(.is-finish-paper,.is-finish-dark,.is-finish-color)){background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity) * .4),transparent)!important}.gcv-root.is-light-bg .gcv-song-panel.is-look-clear:not(:is(.is-finish-paper,.is-finish-dark,.is-finish-color)){background:color-mix(in srgb,var(--share-stage) calc(var(--look-opacity) * .55),transparent)!important}.gcv-root .gcv-song-panel:is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) .gcv-tp-line,.gcv-root.is-light-bg .gcv-song-panel:is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) .gcv-tp-line{color:color-mix(in srgb,var(--share-ink) 45%,transparent);text-shadow:none}.gcv-root .gcv-song-panel:is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) .gcv-tp-line.is-active,.gcv-root.is-light-bg .gcv-song-panel:is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) .gcv-tp-line.is-active{color:color-mix(in srgb,var(--share-ink) 84%,transparent)}.gcv-root .gcv-song-panel:is(.is-finish-paper.is-finish-ink,.is-finish-color.is-finish-ink) .gcv-tp-word.is-sung,.gcv-root.is-light-bg .gcv-song-panel:is(.is-finish-paper,.is-look-clear):not(.is-finish-on-dark) .gcv-tp-word.is-sung{color:var(--accent-deep);text-shadow:none}/**
 * @fileoverview Recipient page composition and editable section accents.
 * Shared by the public page, owner preview and Builder. DESIGN_SPEC §3.3.2.
 *
 * @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
 */.gcv-root .gcv-landing{max-width:min(1320px,96vw);padding:clamp(24px,5vw,64px) clamp(12px,3vw,36px) 40px;gap:24px}.gcv-root .gcv-masthead{max-width:840px;padding-block:12px 8px}.gcv-root .gcv-mast-title{font-size:clamp(36px,6vw,68px);line-height:1.08}.gcv-root .gcv-mast-meta{line-height:1.7;max-width:64ch;margin-inline:auto}.gcv-root .gcv-living-note{max-width:60ch;border-radius:var(--r-lg);line-height:1.6}.gcv-root .gcv-secnav{max-width:960px;padding-block:8px 16px}.gcv-root .gcv-secnav button{min-height:36px}.gcv-section-layout{width:100%;display:grid;gap:clamp(36px,5vw,64px)}.gcv-root .gcv-band-head:before{display:none}.gcv-root .gcv-band-headline{font-size:clamp(28px,4vw,40px);line-height:1.15}.gcv-root .gcv-band-eyebrow{font-size:11px;letter-spacing:.18em;margin-bottom:10px}.gcv-root.is-composed .gcv-hero{margin-block:8px 20px}.gcv-root.is-composed:not(.gcv-promo) .gcv-hero.is-cols-1{grid-template-columns:minmax(0,680px)}.gcv-root.is-composed .gcv-hero .gcv-cover-card{max-width:560px}@media(max-width:600px){.gcv-root .gcv-landing{max-width:100%;padding:28px 16px;gap:20px}.gcv-root .gcv-mast-title{font-size:clamp(34px,10vw,46px)}.gcv-root .gcv-living-note{font-size:12px}}@media(prefers-reduced-motion:reduce){.gcv-root .gcv-living-dot{animation:none}}/**
 * @fileoverview Folded page sections: the ribbons and the bodies they open.
 * Share palette only (theme-invariant, like every glass panel on the page).
 * DESIGN_SPEC §3.3.2 (2026-09-29).
 *
 * @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
 */.gcv-section-folds{display:grid;gap:12px;min-width:0}.gcv-section-folds-label{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:0 2px;font-size:12.5px;color:color-mix(in srgb,var(--share-paper) 70%,transparent)}.gcv-section-folds-label b{font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--share-paper) 94%,transparent)}.gcv-root.is-light-bg .gcv-section-folds-label{color:color-mix(in srgb,var(--share-ink) 70%,transparent)}.gcv-root.is-light-bg .gcv-section-folds-label b{color:var(--share-ink)}.gcv-section-fold{--ribbon-fill: 46%;min-width:0;scroll-margin-top:12px}.gcv-root.is-light-bg .gcv-section-fold{--ribbon-fill: 58%}.gcv-ribbon{--ribbon-reserve: 176px;--ribbon-ink: color-mix(in srgb, var(--share-paper) 96%, transparent);--ribbon-ink-2: color-mix(in srgb, var(--share-paper) 74%, transparent);position:relative;isolation:isolate;overflow:hidden;min-height:104px;border-radius:var(--r-xl);background:color-mix(in srgb,var(--share-stage) var(--ribbon-fill),transparent);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);border:1px solid color-mix(in srgb,var(--share-paper) 13%,transparent);box-shadow:0 18px 46px color-mix(in srgb,var(--share-stage) 55%,transparent);color:var(--ribbon-ink);transition:box-shadow var(--t-medium) var(--easing),transform var(--t-snap) var(--easing)}.gcv-ribbon.is-atmospheric{--ribbon-reserve: 128px}.gcv-ribbon.is-player{--ribbon-reserve: 176px}.gcv-ribbon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 140% at 100% 50%,color-mix(in srgb,var(--gcv-hue) 28%,transparent),transparent 62%)}.gcv-ribbon:has(.gcv-ribbon-toggle:active){transform:scale(.992)}.gcv-ribbon.is-open{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--gcv-hue) 72%,transparent),0 18px 46px color-mix(in srgb,var(--share-stage) 55%,transparent)}.gcv-ribbon-art{position:absolute;top:0;right:0;bottom:0;width:64%;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,black 42%);mask-image:linear-gradient(90deg,transparent,black 42%)}.gcv-ribbon-art>*{position:absolute;top:0;right:0;bottom:0;left:0}.gcv-ribbon-toggle{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);align-content:center;gap:3px;width:100%;min-height:104px;margin:0;padding:16px var(--ribbon-reserve) 16px 18px;border:0;border-radius:inherit;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.gcv-ribbon-toggle:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-4px}.gcv-ribbon-eyebrow{display:flex;align-items:center;gap:8px;min-width:0;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--gcv-hue) 80%,var(--share-paper))}.gcv-ribbon-eyebrow:before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--gcv-hue);box-shadow:0 0 10px var(--gcv-hue)}.gcv-ribbon-title{font-family:var(--font-serif);font-weight:700;font-size:22px;line-height:1.2;text-wrap:balance;text-shadow:0 1px 12px color-mix(in srgb,var(--share-stage) 60%,transparent)}.gcv-ribbon-facts{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:3px;min-width:0;font-size:12.5px;color:var(--ribbon-ink-2);text-shadow:0 1px 8px color-mix(in srgb,var(--share-stage) 70%,transparent)}.gcv-ribbon-facts>span{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gcv-ribbon-facts .icon,.gcv-ribbon-facts .gcv-ribbon-clock{flex:none;font-size:16px;color:color-mix(in srgb,var(--gcv-hue) 70%,var(--share-paper))}.gcv-ribbon-facts>.is-lyric{display:block;font-family:var(--font-serif);font-style:italic;font-size:14px;color:var(--ribbon-ink)}@media(max-width:479px){.gcv-ribbon-facts>span:nth-child(n+3){display:none}}.gcv-ribbon-flag{display:inline-flex;align-items:center;gap:6px;width:fit-content;margin-top:6px;padding:3px 10px 3px 8px;border-radius:var(--r-pill);font-size:11.5px;font-weight:700;color:var(--share-ask);background:color-mix(in srgb,var(--share-ask) 16%,transparent);border:1px solid color-mix(in srgb,var(--share-ask) 50%,transparent)}.gcv-ribbon-flag:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.gcv-ribbon-flag.is-new{color:color-mix(in srgb,var(--accent) 60%,var(--share-paper));background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.gcv-ribbon-chev{position:absolute;z-index:2;right:14px;top:50%;width:38px;height:38px;margin-top:-19px;display:grid;place-items:center;border-radius:50%;pointer-events:none;background:color-mix(in srgb,var(--share-stage) 55%,transparent);border:1px solid color-mix(in srgb,var(--share-paper) 18%,transparent);transition:transform var(--t-medium) var(--easing)}.gcv-ribbon.is-open .gcv-ribbon-chev{transform:rotate(180deg)}.gcv-ribbon-player{position:absolute;z-index:3;right:62px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}.gcv-ribbon-disc{position:relative;flex:none;width:48px;height:48px;border-radius:50%;overflow:hidden;background:repeating-radial-gradient(circle,var(--share-stage) 0 2px,color-mix(in srgb,var(--share-paper) 8%,var(--share-stage)) 2px 3px);box-shadow:0 0 0 1px color-mix(in srgb,var(--share-paper) 20%,transparent),0 8px 20px color-mix(in srgb,var(--share-stage) 60%,transparent);animation:gcv-ribbon-spin 3.2s linear infinite paused}.gcv-ribbon-disc img{position:absolute;top:15px;right:15px;bottom:15px;left:15px;width:18px;height:18px;border-radius:50%;object-fit:cover}.gcv-ribbon.is-playing .gcv-ribbon-disc{animation-play-state:running}@keyframes gcv-ribbon-spin{to{transform:rotate(360deg)}}.gcv-ribbon-play{flex:none;width:46px;height:46px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;cursor:pointer;background:var(--share-paper);color:var(--share-stage);box-shadow:0 6px 18px color-mix(in srgb,var(--share-stage) 55%,transparent)}.gcv-ribbon-play .icon{font-size:26px;font-variation-settings:"FILL" 1}.gcv-ribbon-play:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:3px}.gcv-ribbon-progress{position:absolute;left:0;right:0;bottom:0;z-index:3;height:3px;background:color-mix(in srgb,var(--share-paper) 12%,transparent)}.gcv-ribbon-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--sec-message),var(--sec-plan))}.gcv-ribbon-viz{top:auto!important;height:72%;opacity:.7}.gcv-ribbon-viz .gcv-inline-viz{height:100%;margin:0}.gcv-ribbon.is-player .gcv-ribbon-art{background:radial-gradient(90% 120% at 80% 30%,color-mix(in srgb,var(--sec-message) 40%,transparent),transparent 70%)}.gcv-ribbon-sky{background:linear-gradient(180deg,color-mix(in srgb,var(--wx-sky) 78%,var(--share-stage)),var(--wx-sky) 55%,color-mix(in srgb,var(--sec-plan) 40%,var(--share-paper)))}.gcv-ribbon-sky.is-cloud{background:linear-gradient(180deg,color-mix(in srgb,var(--wx-sky) 45%,var(--share-stage)),color-mix(in srgb,var(--wx-sky) 50%,var(--share-paper)))}.gcv-ribbon-sky.is-fog{background:linear-gradient(180deg,color-mix(in srgb,var(--share-paper) 40%,var(--share-stage)),color-mix(in srgb,var(--share-paper) 62%,var(--share-stage)))}.gcv-ribbon-sky.is-rain{background:linear-gradient(180deg,color-mix(in srgb,var(--wx-sky) 38%,var(--share-stage)),color-mix(in srgb,var(--wx-sky) 62%,var(--share-stage)))}.gcv-ribbon-sky.is-snow{background:linear-gradient(180deg,color-mix(in srgb,var(--wx-sky) 50%,var(--share-stage)),color-mix(in srgb,var(--wx-sky) 40%,var(--share-paper)))}.gcv-ribbon-sky.is-storm{background:linear-gradient(180deg,color-mix(in srgb,var(--sec-treasure) 35%,var(--share-stage)),color-mix(in srgb,var(--sec-treasure) 50%,var(--share-stage)))}.gcv-ribbon-sky>span{position:absolute}.gcv-ribbon-sky .sky-sun{right:110px;top:14px;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle,var(--share-paper) 0 36%,color-mix(in srgb,var(--sec-plan) 70%,var(--share-paper)) 58%,transparent 72%)}.gcv-ribbon-sky .sky-cloud{right:76px;top:34px;width:110px;height:38px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-paper) 90%,transparent);box-shadow:26px -12px 0 -2px color-mix(in srgb,var(--share-paper) 90%,transparent),-18px -6px 0 -6px color-mix(in srgb,var(--share-paper) 86%,transparent)}.gcv-ribbon-sky.is-rain .sky-cloud,.gcv-ribbon-sky.is-storm .sky-cloud{background:color-mix(in srgb,var(--share-paper) 55%,var(--share-stage))}.gcv-ribbon-sky .sky-fall{right:84px;top:74px;width:96px;height:30px;opacity:.8;background:repeating-linear-gradient(105deg,transparent 0 7px,color-mix(in srgb,var(--share-paper) 70%,transparent) 7px 9px)}.gcv-ribbon-sky.is-snow .sky-fall{background:radial-gradient(circle,var(--share-paper) 0 2px,transparent 3px) 0 0 / 14px 12px}.gcv-ribbon-sky .sky-temp{right:62px;bottom:8px;font-family:var(--font-serif);font-weight:700;font-size:34px;line-height:1;color:var(--share-paper);text-shadow:0 2px 14px color-mix(in srgb,var(--share-stage) 50%,transparent)}.gcv-ribbon-map{width:100%;height:100%;display:block}.gcv-ribbon-map .map-land{fill:color-mix(in srgb,var(--sec-go) 16%,var(--share-stage))}.gcv-ribbon-map .map-park{fill:color-mix(in srgb,var(--sec-gifts) 34%,var(--share-stage))}.gcv-ribbon-map .map-water{fill:color-mix(in srgb,var(--wx-sky) 48%,var(--share-stage))}.gcv-ribbon-map .map-road{fill:none;stroke:color-mix(in srgb,var(--share-paper) 34%,var(--share-stage));stroke-width:3;stroke-linecap:round}.gcv-ribbon-map .map-road.is-minor{stroke-width:1.6;opacity:.7}.gcv-ribbon-map .map-pin{fill:var(--accent);stroke:var(--share-paper);stroke-width:1.5}.gcv-ribbon-map .map-pin-dot{fill:var(--share-paper)}.gcv-ribbon-peek{left:auto!important;right:60px!important;width:112px;display:flex;align-items:center;justify-content:flex-end}.gcv-ribbon-peek.is-photos img{width:50px;height:60px;margin-left:-14px;object-fit:cover;border-radius:var(--r-sm);border:3px solid var(--share-paper);box-shadow:0 8px 18px color-mix(in srgb,var(--share-stage) 55%,transparent)}.gcv-ribbon-peek.is-photos img:nth-child(1){transform:rotate(-8deg)}.gcv-ribbon-peek.is-photos img:nth-child(2){transform:rotate(4deg) translateY(-4px)}.gcv-ribbon-peek.is-photos img:nth-child(3){transform:rotate(-3deg)}.gcv-ribbon-peek .face{display:grid;place-items:center;overflow:hidden;width:36px;height:36px;margin-left:-10px;border-radius:50%;font-size:14px;font-weight:800;color:var(--share-paper);background:color-mix(in srgb,var(--gcv-hue) 70%,var(--share-stage));border:2px solid color-mix(in srgb,var(--share-stage) 85%,transparent)}.gcv-ribbon-peek .face:nth-child(2){background:color-mix(in srgb,var(--sec-go) 70%,var(--share-stage))}.gcv-ribbon-peek .face:nth-child(3){background:color-mix(in srgb,var(--sec-plan) 65%,var(--share-stage))}.gcv-ribbon-peek .face.is-more{font-size:12px;background:color-mix(in srgb,var(--share-paper) 16%,var(--share-stage))}.gcv-ribbon-peek .face img{width:100%;height:100%;object-fit:cover}.gcv-ribbon-peek.is-tags{flex-direction:column;align-items:flex-end;gap:6px}.gcv-ribbon-peek .tag{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 10px;border-radius:var(--r-sm) var(--r-md) var(--r-md) var(--r-sm);font-size:11.5px;font-weight:700;color:var(--share-ink);background:color-mix(in srgb,var(--gcv-hue) 22%,var(--share-paper));box-shadow:0 8px 18px color-mix(in srgb,var(--share-stage) 50%,transparent)}.gcv-ribbon-peek .tag:first-child{transform:rotate(-6deg)}.gcv-ribbon-peek .tag:nth-child(2){transform:rotate(4deg)}.gcv-ribbon-peek.is-glyphs{gap:6px}.gcv-ribbon-peek .glyph{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md) var(--r-md) var(--r-md) var(--r-sm);font-size:20px;color:var(--share-paper);background:color-mix(in srgb,var(--gcv-hue) 55%,var(--share-stage));box-shadow:0 8px 18px color-mix(in srgb,var(--share-stage) 45%,transparent)}.gcv-ribbon-peek .glyph:nth-child(2){transform:translateY(-10px);opacity:.85}.gcv-ribbon-peek .glyph:nth-child(3){transform:translateY(6px);opacity:.7}.gcv-ribbon-clock .clock-face{fill:color-mix(in srgb,var(--share-paper) 92%,transparent);stroke:currentColor;stroke-width:1.4}.gcv-ribbon-facts .clock-face{fill:none}.gcv-ribbon-clock .clock-hand{stroke:var(--share-ink);stroke-width:1.8;stroke-linecap:round}.gcv-ribbon-facts .clock-hand{stroke:currentColor}.gcv-ribbon-clock .clock-hand.is-minute{stroke-width:1.2}.gcv-ribbon-clock .clock-pin{fill:var(--gcv-hue)}.gcv-ribbon-peek .gcv-ribbon-clock{color:var(--gcv-hue);filter:drop-shadow(0 8px 14px color-mix(in srgb,var(--share-stage) 50%,transparent))}.gcv-section-fold-body{height:0;overflow:hidden;visibility:hidden}.gcv-section-fold.is-open>.gcv-section-fold-body{height:auto;overflow:visible;visibility:visible;padding-top:16px;animation:gcv-unfold .42s var(--easing)}.gcv-section-fold.is-open>.gcv-section-fold-body>.gcv-grid{animation:gcv-rise .5s var(--easing) 40ms backwards}@keyframes gcv-unfold{0%{clip-path:inset(0 -48px 100% -48px)}to{clip-path:inset(-48px)}}@keyframes gcv-rise{0%{opacity:0;transform:translateY(10px)}}@media(min-width:640px){.gcv-ribbon,.gcv-ribbon.is-atmospheric,.gcv-ribbon.is-player{--ribbon-reserve: 300px}.gcv-ribbon-peek{width:200px}.gcv-ribbon-art{width:min(64%,620px)}}@media(max-width:359px){.gcv-ribbon-title{font-size:20px}.gcv-ribbon-disc{display:none}.gcv-ribbon.is-player{--ribbon-reserve: 124px}}@media(prefers-reduced-motion:reduce){.gcv-section-fold.is-open>.gcv-section-fold-body,.gcv-section-fold.is-open>.gcv-section-fold-body>.gcv-grid,.gcv-ribbon-disc{animation:none}.gcv-ribbon,.gcv-ribbon-chev{transition:none}}@media print{.gcv-section-fold-body{height:auto;overflow:visible;visibility:visible}}/**
 * @fileoverview The planner's credit under the public page (PlannedBy.jsx):
 * one line on the growth panel's glass, the logo beside the name. Tokens
 * only — the panel's own ink and the spacing / radius scales.
 *
 * @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
 */.gcv-planned{padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.gcv-planned-line{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);color:inherit}.gcv-planned-logo{height:28px;width:auto;max-width:120px;object-fit:contain;border-radius:var(--r-md)}/**
 * accordionSteps.css — the step stack (AccordionSteps.jsx) that replaced the
 * Song / Cover / SectionEditorShell tab rails (2026-09-17). It sits inside the
 * recessed `.song-accordion` well (prototype-styles.css): a head is a
 * `--bg-elev` row lifting off the `--bg` well, and the open step's panel lies
 * FLAT on the well beneath it with no side inset, because every panel was
 * built for that surface — its fields and assist cards earn their own lift
 * from `--bg-elev`, and a phone textarea keeps its full width.
 *
 * @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
 */.acc{--acc-working: #E08A00;--acc-working-ink: #B45309;display:flex;flex-direction:column;gap:var(--sp-2)}[data-theme=dark] .acc{--acc-working: #FBBF24;--acc-working-ink: #FBBF24}.acc-row{display:flex;align-items:center;gap:var(--sp-1)}.acc-step.is-dragging{opacity:.5}.acc-step.is-over .acc-head{box-shadow:inset 0 0 0 2px var(--accent)}.acc-head{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0;min-height:44px;padding:0 var(--sp-3);background:var(--bg-elev);color:var(--ink-soft);border:1px solid var(--divider);border-radius:var(--r-md);font:inherit;font-size:var(--fs-small);font-weight:700;text-align:left;cursor:pointer;transition:border-color var(--t-snap) var(--easing),color var(--t-snap) var(--easing)}.acc-head:hover:not(:disabled){border-color:var(--accent-outline)}.acc-head:disabled{cursor:default;color:var(--muted)}.acc-step.is-done .acc-head{color:var(--accent)}.acc-step.is-open .acc-head{color:var(--accent);font-weight:800;border-color:var(--accent-outline)}.acc-step.is-working .acc-head{color:var(--acc-working-ink)}.acc-dot{width:10px;height:10px;border-radius:var(--r-pill);flex:0 0 auto;background:var(--divider);transition:background var(--t-snap) var(--easing)}.acc-step.is-done .acc-dot,.acc-step.is-open .acc-dot{background:var(--accent)}.acc-step.is-open .acc-dot{box-shadow:0 0 0 3px var(--accent-surface)}.acc-step.is-locked .acc-dot{opacity:.4}.acc-step.is-working .acc-dot{background:var(--acc-working);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc-working) 30%,transparent);animation:acc-working 1.2s ease-in-out infinite}@keyframes acc-working{0%,to{opacity:1}50%{opacity:.4}}.acc-label{flex:0 0 auto}.acc-tick{margin-left:var(--sp-1)}.acc-hint{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-caption);font-weight:500;color:var(--muted)}.acc-lock{font-size:16px;opacity:.65;flex:0 0 auto}.acc-chev{margin-left:auto;flex:0 0 auto;color:var(--muted);transition:transform var(--t-snap) var(--easing)}.acc-step.is-open .acc-chev{transform:rotate(180deg)}.acc-body{padding:var(--sp-3) 0 var(--sp-4)}.acc-group-done{display:flex;justify-content:flex-end;padding-top:var(--sp-3)}.editor-steps{display:contents}.editor-step-head{position:sticky;top:calc(-1 * var(--sticky-lift, 0px));z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-5);padding-block:var(--sp-2);border-bottom:1px solid var(--divider);background:var(--bg);font-size:var(--fs-body);font-weight:600;color:var(--ink-soft)}.editor-step-head>.ds-back{justify-self:start}.editor-step-head [aria-current]{text-align:center}.editor-step-head b{color:var(--ink);font-size:var(--fs-h3);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.song-panel--generating .editor-step-head{background:var(--surface-inset)}.editor-step-body{width:100%;max-width:880px;margin-inline:auto}.editor-step-body .acc-group-done{justify-content:center}.editor-step-body .acc-group-done .btn{width:auto;min-width:min(100%,260px);min-height:52px;padding:var(--sp-3) var(--sp-5);font-size:var(--fs-body-lg);font-weight:600}.editor-step-cards{container-type:inline-size;width:100%;max-width:880px;margin:var(--sp-3) auto var(--sp-4)}.editor-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@container (min-width: 640px){.editor-step-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.editor-idea-summary{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--surface-inset);border-radius:var(--r-md)}.editor-idea-summary p{flex:1;min-width:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.compass-field{margin-block:var(--sp-3) var(--sp-4);min-width:0;container-type:inline-size}.compass-field-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}.compass-field-head strong{flex:1;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--accent)}.compass-field-head .compass-mascot{--compass-size: 28px}.compass-field .btn.btn-sm{min-height:44px}.compass-field .chat-avatar{display:none}.compass-field .chat-msg-content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);width:100%;min-width:0}.compass-field .chat-msg-content>:not(.bc-option){grid-column:1 / -1}.compass-field .bc-option{margin:0;min-width:0;display:flex;flex-direction:column}.compass-field .bc-option-foot{margin-top:auto;padding-top:var(--sp-2)}.compass-field .chat-msg-line{display:block}.compass-field .chat-msg{max-width:none}.compass-field .chat-bubble{background:transparent;padding:0}.compass-field .is-chosen .chat-bubble{display:none}@container (max-width: 620px){.compass-field .chat-msg-content{grid-template-columns:1fr}}/**
 * chat.css
 *
 * @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
 */@media(max-width:767px){.chat-composer{padding-left:var(--sp-2, 8px);padding-right:var(--sp-2, 8px)}.chat-msg{max-width:100%}}.chat-msg{display:flex;flex-direction:column;max-width:88%}.chat-msg--user{align-self:flex-end;align-items:flex-end}.chat-msg--assistant{align-self:flex-start;align-items:flex-start}.chat-msg--assistant:has(.chat-widget){max-width:100%}.chat-avatar{--compass-size: 30px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--compass-size);height:var(--compass-size)}.chat-msg-line{display:flex;align-items:flex-start;gap:8px;width:100%}.chat-msg-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.chat-bubble{padding:10px 14px;border-radius:var(--r-lg, 14px);line-height:1.45;white-space:pre-wrap;word-break:break-word;font-size:15px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08))}.chat-msg--assistant .chat-bubble{background:transparent;color:var(--ink);padding:var(--sp-1) 0;border:0;border-radius:0;box-shadow:none}.chat-msg--user .chat-bubble{background:var(--accent);color:var(--text-on-accent);border-bottom-right-radius:4px}.inline-progress.chat-thinking{margin:6px 0 0}.inline-progress.chat-thinking .inline-progress-label{white-space:nowrap}.inline-progress.chat-thinking .inline-progress-cancel{min-height:44px}.chat-btn{min-height:44px;padding:8px 16px;border-radius:var(--r-pill, 999px);border:1.5px solid var(--accent);background:var(--bg-elev);color:var(--accent);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--t-snap, .12s) ease,transform var(--t-snap, .12s) ease}@media(max-width:767px){.chat-msg--assistant:has(.chat-buttons){max-width:100%}.chat-btn{padding:8px 10px;font-size:13px;line-height:1.2}}.chat-btn:hover:not(:disabled){background:var(--accent-soft)}.chat-btn:active:not(:disabled){transform:scale(.97)}.chat-btn-icon{font-size:18px;margin-right:5px;vertical-align:-3px}.chat-btn--primary{background:var(--accent);color:var(--text-on-accent)}.chat-btn--primary:hover:not(:disabled){filter:brightness(1.05);background:var(--accent)}.chat-btn:disabled{opacity:.5;cursor:default}.si-row{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;padding:8px;border-radius:var(--r-md);background:var(--surface-inset)}.chat-progress{display:flex;align-items:center;gap:8px;margin-bottom:6px;max-width:420px}.chat-style-label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.chat-composer-progress{width:100%;max-width:var(--chat-measure);margin:0 auto 8px;padding:10px 12px;border-radius:var(--r-lg);background:var(--surface-inset);border:1px solid var(--accent-outline)}.chat-composer-progress .inline-progress{margin:0}.chat-composer.is-busy textarea{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}@media(min-width:768px){.chat-composer-progress{background:var(--bg-elev);border:1px solid var(--border-color);border-radius:var(--r-xl, 18px);box-shadow:var(--shadow-md, 0 6px 24px rgba(0, 0, 0, .1));padding:10px 14px}.chat-composer.is-busy .chat-composer-inner{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.chat-composer .gtx-tool[aria-pressed=true]{color:var(--accent)}.chat-composer{position:relative;flex:0 0 auto;border-top:1px solid var(--border-color);background:var(--bg-elev);padding:var(--sp-3, 12px);padding-bottom:max(var(--sp-3, 12px),env(safe-area-inset-bottom))}.chat-composer-inner{width:100%;max-width:var(--chat-measure);margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-2)}.chat-composer-row{width:100%;display:flex;align-items:center;gap:8px}@media(min-width:768px){.chat-composer{border-top:none;background:transparent;padding:0 var(--sp-4, 16px) var(--sp-5, 24px)}.chat-composer-inner{position:relative;background:var(--bg-elev);border:1px solid var(--border-color);border-radius:var(--r-xl, 18px);box-shadow:var(--shadow-md, 0 6px 24px rgba(0, 0, 0, .1));padding:8px}}.chat-expand-btn{flex:0 0 auto;min-width:44px;min-height:44px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-elev);color:var(--ink-soft, inherit);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--t-snap, .12s) ease,color var(--t-snap, .12s) ease}.chat-expand-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chat-expand-btn:disabled{opacity:.4;cursor:default}.chat-composer textarea{flex:1 1 auto;min-width:0}.chat-composer textarea{min-height:calc(44px + var(--sp-2) + 44px);max-height:140px;resize:none;padding:11px 14px;border-radius:var(--r-lg, 14px);border:1px solid var(--border-color);background:var(--bg);color:var(--ink);font-size:15px;font-family:inherit;line-height:1.4}.chat-composer textarea:focus{outline:none;border-color:var(--accent)}@media(max-width:767px){.chat-composer textarea{font-size:16px}}.chat-send-btn{flex:0 0 auto;min-width:44px;min-height:44px;border-radius:50%;border:none;background:var(--accent);color:var(--text-on-accent);font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:filter var(--t-snap, .12s) ease,transform var(--t-snap, .12s) ease}.chat-send-btn:hover:not(:disabled){filter:brightness(1.06)}.chat-send-btn:active:not(:disabled){transform:scale(.94)}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-send-btn.is-idle{opacity:.8}.chat-send-btn .icon{font-size:20px}.chat-error{margin:0 auto;width:100%;max-width:var(--chat-measure);color:var(--status-error);background:var(--status-error-bg);border-radius:var(--r-md, 10px);padding:10px 14px;font-size:14px;white-space:pre-line}.chat-inline-cover{position:relative;margin:0 24px 14px;border-radius:16px;overflow:hidden;background:var(--surface-hover);box-shadow:0 10px 30px #0006}.chat-inline-cover img{display:block;width:100%;aspect-ratio:1 / 1;object-fit:cover}.song-edit-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.song-edit-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--border-color);background:var(--bg-elev)}.song-edit-title-input{flex:1 1 auto;min-width:0;font-weight:600;font-size:15px;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:8px;padding:7px 10px;margin-left:-10px;outline:none;text-overflow:ellipsis;transition:background .12s ease,border-color .12s ease}.song-edit-title-input::placeholder{color:var(--muted);font-weight:500}.song-edit-title-input:hover:not(:disabled){background:var(--bg)}.song-edit-title-input:focus{background:var(--bg);border-color:var(--accent)}.song-edit-title-input:disabled{color:var(--muted);cursor:default}.song-edit-done{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--border-color);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer}.song-edit-done .icon{font-size:20px;opacity:.8}.song-edit-done:hover{background:var(--accent-soft)}.song-edit-footer{flex-shrink:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-color);background:var(--bg-elev)}.song-edit-backtochat{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:640px;margin:0 auto;min-height:52px;border-radius:12px;background:var(--accent);border:none;color:#fff;font-weight:700;font-size:16px;cursor:pointer}.song-edit-backtochat .icon{font-size:22px}.song-edit-backtochat:hover{filter:brightness(1.06)}.song-edit-body{flex:1;overflow-y:auto;padding:16px;width:100%;max-width:640px;margin:0 auto}.song-edit-error{padding:10px 12px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:14px}.chat-song-edit-btn{margin-top:12px;width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-pill, 999px);border:1.5px solid rgba(255,255,255,.4);background:#ffffff14;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.chat-song-edit-btn:hover{background:#ffffff29}.chat-song-actions{display:flex;gap:8px;margin-top:12px}.chat-song-actions .chat-song-edit-btn{margin-top:0;width:auto;flex:1 1 0;min-width:0}.chat-song-resync-btn{flex:1 1 0;min-width:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-pill, 999px);border:1.5px solid rgba(255,255,255,.4);background:#ffffff14;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.chat-song-resync-btn:hover{background:#ffffff29}.chat-song-resync{margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;text-align:center}.chat-song-resync-head{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.chat-song-resync-spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .9s linear infinite}@media(prefers-reduced-motion:reduce){.chat-song-resync-spinner{animation:none}}.chat-song-resync-bar{position:relative;width:70%;max-width:260px;height:4px;border-radius:999px;background:#ffffff38;overflow:hidden}.chat-song-resync-bar>span{position:absolute;top:0;left:-40%;height:100%;width:40%;border-radius:999px;background:#fff;animation:chat-cover-bar 1.15s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.chat-song-resync-bar>span{animation:none;left:0;width:100%;opacity:.6}}.chat-song-resync-sub{font-size:12px;opacity:.7}.chat-song-resync-err{margin-top:8px;text-align:center;font-size:13px;color:#ffb4a8}.chat-song-takes .song-open-hint,.chat-song-takes .song-take-label{color:var(--share-paper)}.chat-song-takes .song-take-row{background:color-mix(in srgb,var(--share-paper) 6%,transparent);border-color:color-mix(in srgb,var(--share-paper) 20%,transparent)}.chat-song-takes .song-take-row.is-active{border-color:var(--accent);background:var(--accent-surface)}.chat-song-takes .song-take-row.is-active .song-take-label{color:var(--accent)}.chat-song-takes .song-take-row .btn.btn-ghost{color:var(--share-paper)}.song-author--chat{margin:0}.image-edit-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.image-edit-sheet .song-edit-body{display:flex;flex-direction:column;max-width:none;padding:0;overflow:hidden}.image-edit-sheet .gcv-inline-editor{flex:1 1 auto;min-height:0;height:100%;max-width:none;margin:0;border-radius:0;box-shadow:none;background:transparent;overflow:hidden;animation:none}.cover-versions{margin-top:14px}.cover-versions-label{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:6px}.cover-versions-rail{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}.cover-versions-hint{margin:0 0 6px;font-size:12px;color:var(--muted)}.cover-version-item{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:4px;width:76px}.cover-version-thumb{position:relative;width:72px;height:72px;min-width:44px;min-height:44px;padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:var(--surface-hover);cursor:pointer}.cover-version-thumb img{width:100%;height:100%;object-fit:cover;display:block}.cover-version-thumb.is-current{border-color:var(--accent);cursor:default}.cover-version-thumb:not(.is-current):hover{border-color:var(--border-color)}.cover-version-thumb:disabled:not(.is-current){opacity:.6;cursor:default}.cover-version-badge{position:absolute;top:3px;right:3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;line-height:1}.cover-version-source{font-size:11px;color:var(--muted);text-align:center;max-width:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-edit-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--bg);color:var(--ink);padding:max(0px,env(safe-area-inset-top)) max(0px,env(safe-area-inset-right)) 0 max(0px,env(safe-area-inset-left))}.section-edit-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 12px calc(16px + env(safe-area-inset-bottom));width:100%;max-width:var(--chat-measure);margin:0 auto}.section-edit-body .gcv-inline-editor{animation:none;box-shadow:none}.section-edit-body .gcv-inline-editor-head{position:sticky;top:0;z-index:1;background:var(--surface)}.section-edit-error{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:16px}.chat-dock-collapse{position:absolute;top:-22px;right:var(--sp-5);z-index:1;display:inline-flex;align-items:center;justify-content:center;min-width:56px;height:22px;padding:0 var(--sp-3);border:1px solid var(--divider);border-bottom:none;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--bg-elev);color:var(--accent);cursor:pointer}.chat-dock-collapse:before{content:"";position:absolute;top:-8px;right:-12px;bottom:0;left:-12px}.chat-dock-collapse .icon{font-size:18px;line-height:1}.chat-dock-collapse:hover{color:var(--ink)}.chat-dock-tab{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:auto;min-width:88px;min-height:30px;margin:0 var(--sp-5) 0 auto;padding:0 var(--sp-4);border:1px solid var(--divider);border-bottom:none;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--bg-elev);color:var(--accent);cursor:pointer;animation:chat-dock-pull 1.4s ease-in-out 3}@keyframes chat-dock-pull{0%,to{transform:translateY(0);border-color:var(--divider)}50%{transform:translateY(-4px);border-color:var(--accent-outline)}}@media(prefers-reduced-motion:reduce){.chat-dock-tab{animation:none;border-color:var(--accent-outline)}}.chat-dock-tab:hover{border-color:var(--accent-outline)}.chat-dock-tab .icon{font-size:22px}.chat-composer-inner:has(.chat-dock-tab){justify-content:center;background:transparent;border-color:transparent;box-shadow:none;padding:0}.chat-composer:has(.chat-dock-tab){padding-top:0;padding-bottom:0}.chat-composer.is-tall .chat-composer-inner .gtx textarea,.chat-composer.is-tall .chat-composer-inner textarea{min-height:42vh;max-height:58vh}/**
 * blockCompass.css — the "Ask Compass" row that opens every block, and the
 * panel it opens into (DESIGN_SPEC §3.7.10).
 *
 * Deliberately small. The panel's insides are the chat thread's own classes
 * (chat.css: .chat-msg, .chat-bubble, .chat-avatar, .chat-composer) and the
 * thinking state is the thread's (.ai-thinking on the bubble + InlineProgress)
 * — a per-block Compass is the same conversation in a smaller room, not a new
 * design language. Only the room is defined here: the door, the panel's
 * chassis and header, and the few rows a block turn has that a chat turn
 * does not (the receipt, the offers, the priced chip).
 *
 * Every selector here is .bc-prefixed and unique. This file is imported by the
 * component, so it lands BEFORE design-system.css in the cascade and a rule
 * that merely tied on specificity with prototype-styles.css would lose — a
 * unique prefix is what keeps that from ever mattering.
 *
 * @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
 */.bc-row{border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset)}.bc-open{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:44px;padding:6px var(--sp-3);border:0;border-radius:inherit;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.bc-open-text{flex:1;min-width:0;font-size:13px;font-weight:600}.bc-open-chev{flex:0 0 auto;color:var(--ink-soft)}.bc-open:hover{background:var(--accent-surface)}.bc-open:hover .bc-open-chev{color:var(--accent)}.bc-panel{display:flex;flex-direction:column;flex:0 0 auto;width:100%;height:clamp(520px,70vh,640px);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--ink);overflow:hidden}.bc-head{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3);border-bottom:1px solid var(--divider);background:var(--surface-inset)}.bc-head .chat-avatar{--compass-size: 36px}.bc-head-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink)}.bc-head-sub{color:var(--ink-soft)}.bc-head-btn{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--divider);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);cursor:pointer}.bc-head-btn:disabled{opacity:.4;cursor:default}.bc-thread{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3)}.bc-thread .chat-msg{max-width:92%}.bc-past-head{flex:0 0 auto;margin:0;font-size:12px;font-weight:600;color:var(--ink-soft)}.bc-thread .bc-past{opacity:.72}.bc-thread .bc-past+.chat-msg:not(.bc-past){border-top:1px solid var(--divider);padding-top:var(--sp-3)}.bc-err{flex:0 0 auto;padding:0 var(--sp-3)}.bc-quick{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) 0}.bc-tour{display:inline-flex;align-items:center;gap:4px;color:var(--ink-soft)}.bc-panel .chat-composer{flex:0 0 auto;border-top:1px solid var(--divider);background:transparent;padding:var(--sp-2) var(--sp-3) var(--sp-3)}.bc-panel .chat-composer-inner{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}.ia-overlay.bc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;align-items:stretch;justify-content:center;padding:0}.bc-panel--full{height:100%;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.bc-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-2)}.bc-option{margin:var(--sp-2) 0 0;padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);font-size:var(--fs-small);line-height:1.45}.bc-option.is-pick{border-color:var(--accent);background:var(--accent-surface)}.bc-option-num{margin:0 0 var(--sp-1);font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.bc-option-head{margin:0 0 var(--sp-1);font-weight:700}.bc-option-text{margin:0;white-space:pre-wrap}.bc-option-text.is-folded{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.bc-option-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2)}.bc-option-more{margin-right:auto;padding:0;border:0;background:none;color:var(--ink-soft);font-size:var(--fs-caption);text-decoration:underline;cursor:pointer}.bc-done{display:flex;align-items:flex-start;gap:var(--sp-1);margin:var(--sp-2) 0 0;font-size:12px;font-weight:600;color:var(--status-success)}.bc-handoff{margin:var(--sp-2) 0 0;padding:var(--sp-2);border-radius:var(--r-sm);background:var(--surface-inset);color:var(--ink-soft);font-size:12px}.bc-also-list{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:var(--sp-2)}.bc-also{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--accent-surface);border-radius:var(--r-md);background:transparent;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}.bc-also:hover{border-color:var(--accent);background:var(--accent-surface)}.bc-also.is-applied{border-color:var(--divider);color:var(--ink-soft);cursor:default}.bc-also-text{flex:1 1 auto;min-width:0}.bc-price{font-weight:600;opacity:.85}.lt-overlay .ia-sheet-body{overflow:hidden}.lt-overlay .ia-chat-thread{flex:1 1 auto;min-height:0;overflow-y:auto}.lt-overlay .ia-chat-quick,.lt-overlay .ia-chat-input-row{flex:0 0 auto}.bc-note{display:flex;align-items:flex-start;gap:var(--sp-3);margin:0 0 var(--sp-3);padding:var(--sp-3);border:1px solid var(--accent-surface);border-radius:var(--r-md);background:var(--accent-surface);color:var(--ink)}.bc-note-text{flex:1 1 auto;min-width:0;margin:0;font-size:13.5px;line-height:1.45}.bc-note-close{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-soft);cursor:pointer}.bc-note-close:hover{color:var(--ink)}.bc-panel--standing{height:100%;min-height:0;flex:1 1 auto;border:0;border-radius:0}.bc-panel--standing .bc-head{display:none}/**
 * songStyleKnobs.css — the two engine dials on the Song builder's Style tab
 * (SongStyleKnobs.jsx). Imported by the module, not by a screen, so it loads
 * with the dials and prototype-styles.css stays untouched. Tokens only, so
 * both themes stay legible; the rails themselves are the design-system .ds-seg.
 *
 * @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
 */.song-knobs{display:grid;gap:var(--sp-3);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.song-knobs-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-soft)}.song-knob-head{display:flex;align-items:center;margin-bottom:var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--ink)}.song-knobs-toggle{display:flex;flex:1;align-items:center;gap:var(--sp-2);min-height:32px;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.song-knobs-toggle .icon{margin-left:auto}.song-knobs-sum{font-size:var(--fs-small);font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-muted)}.song-knobs .ds-seg>button{padding-inline:var(--sp-2)}.song-singer{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--ink)}.song-singer .cds-input{width:auto;min-height:44px;margin:0 0 0 var(--sp-1)}/**
 * pronunciationFix.css
 *
 * @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
 */.pfx-open{margin-top:var(--sp-3);align-self:flex-start}.pfx{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);display:flex;flex-direction:column;gap:var(--sp-2)}.pfx-title{margin:0;font-weight:700}.pfx-hint{margin:0;font-size:var(--fs-small);color:var(--muted);line-height:1.4}.pfx-row{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--sp-2);align-items:end}.pfx-field{margin:0;min-width:0}.pfx-remove{min-height:44px}.pfx-problem{grid-column:1 / -1;margin:0;font-size:var(--fs-small);color:var(--status-error)}.pfx-add{align-self:flex-start}.pfx-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}/**
 * @fileoverview The Screen MC block's step cards (EmceeSectionEditor, DESIGN_SPEC
 * §3.40). The scene rows and switches are inventoryEditor.css's; this adds a
 * labelled segmented choice, How to set it up's steps and the venue checklist. Tokens only.
 * @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
 */.emc-set{display:flex;flex-direction:column;gap:var(--sp-3)}.emc-night{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.emc-night .fill-note{flex:1 1 240px;margin:0}.night-fold{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.night-fold>.fill-note{display:flex;gap:var(--sp-2);margin:0}.night-fold>details{align-self:stretch}.emc-seg{display:flex;flex-direction:column;gap:var(--sp-1)}.emc-seg>.ds-seg>button{white-space:normal}.emc-checklist{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding-left:var(--sp-5);color:var(--ink)}.emc-steps{display:flex;flex-direction:column;gap:var(--sp-4);margin:0;padding:0;list-style:none}.emc-step{display:flex;gap:var(--sp-3);align-items:flex-start}.emc-step-n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);font-weight:700;font-size:var(--fs-small);color:var(--muted)}.emc-step.is-done .emc-step-n{border-color:var(--confirm);background:color-mix(in srgb,var(--confirm) 22%,transparent);color:var(--ink)}.emc-step-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);min-width:0;flex:1}.emc-step-body>b{color:var(--ink)}.emc-step-body>.cds-input{width:100%}.emc-step-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.emc-tv{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.emc-tv-url{font-size:clamp(22px,5vw,28px);font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--ink);-webkit-user-select:all;user-select:all}/**
 * @fileoverview HeightSlider.jsx — the Height slider, with its number box, on
 * the Chat, Venue Map, Inventory, Photos, Seating, Menu and Chorus editors'
 * steps. App tokens: the editor is chrome, unlike the block it sizes. Not a
 * .fill-field: that one styles every input in it as a text box.
 *
 * @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
 */.hs{display:flex;flex-direction:column;gap:var(--sp-1);font-size:14px}.hs-head{display:flex;align-items:center;gap:var(--sp-2);min-height:44px}.hs-head>span{font-weight:600;opacity:.8}.hs-head b{color:var(--muted);font-weight:600}.hs-head .btn{margin-left:auto}.hs-box{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--muted);font-weight:600}.hs-box input{width:5.5em;min-height:44px;padding:0 var(--sp-2);font:inherit;font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--bg-elev);border:1px solid var(--edge);border-radius:var(--r-md)}.hs-box input:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.hs input[type=range]{width:100%;min-height:32px;margin:0;accent-color:var(--accent)}.hs-ends{display:flex;justify-content:space-between;font-size:var(--fs-caption);font-weight:600;color:var(--muted)}/**
 * fontPicker.css
 *
 * @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
 */:where(.fp-trigger){font:inherit;color:inherit;background:transparent;border:0;padding:0}.fp-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--sp-1);min-width:0;cursor:pointer;text-align:left}.fp-trigger:disabled{opacity:.5;cursor:default}.fp-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(pointer:coarse){.fp-trigger{min-height:44px}}.fp-trigger-face{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.5}.fp-trigger-caret{flex:0 0 auto;opacity:.7}.fp-hint{margin:0;padding:0 0 var(--sp-2);font-size:13px;line-height:1.45;color:var(--ink-soft)}.fp-list{padding-top:var(--sp-1)}.fp-list:focus{outline:none}.fp-list:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--r-md)}.fp-group+.fp-group{margin-top:var(--sp-3)}.fp-group-label{position:sticky;top:0;z-index:1;padding:var(--sp-2) var(--sp-1);background:var(--bg);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.fp-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:56px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;color:var(--ink)}.fp-row.is-active{background:var(--surface-hover);outline:2px solid var(--accent);outline-offset:-2px}.fp-row.is-selected{background:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-outline)}.fp-row-check{flex:0 0 auto;color:var(--accent)}.fp-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.fp-row-face{font-size:22px;line-height:1.35;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-row-name{font-size:11px;letter-spacing:.04em;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}/**
 * greetingTimeline.css
 *
 * @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
 */.greeting-tm{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.greeting-tm-stack{display:flex;flex-direction:column;align-items:center}.greeting-tm-behind{height:var(--sp-2);border:1.5px solid var(--divider);border-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0;background:var(--bg-elev)}.greeting-tm-behind:nth-last-child(2){width:calc(100% - var(--sp-5));opacity:.85}.greeting-tm-behind:nth-last-child(3){width:calc(100% - 2 * var(--sp-5));opacity:.6}.greeting-tm-behind:nth-last-child(4){width:calc(100% - 3 * var(--sp-5));opacity:.35}.greeting-tm-card{align-self:stretch;display:flex;flex-direction:column;gap:var(--sp-2);max-height:40vh;overflow-y:auto}.greeting-tm-card .greeting-polish-hint{margin:0;font-family:var(--font-sans)}@media(prefers-reduced-motion:no-preference){.greeting-tm-card{animation:greeting-tm-arrive var(--t-medium) ease-out}}@keyframes greeting-tm-arrive{0%{opacity:0;transform:translateY(calc(-1 * var(--sp-2))) scale(.97)}}.greeting-tm-rail{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2)}.greeting-tm-step.btn{flex:0 0 auto;min-width:44px;padding-inline:0;justify-content:center}.greeting-tm-marks{flex:999 1 140px;display:flex;position:relative}.greeting-tm-marks:before{content:"";position:absolute;inset:50% 0 auto;border-top:1.5px solid var(--divider)}.greeting-tm-mark{flex:1 1 0;min-width:0;min-height:44px;padding:0;display:grid;place-items:center;position:relative;background:none;border:0;cursor:pointer}.greeting-tm-mark:after{content:"";width:10px;height:10px;border-radius:var(--r-pill);background:var(--muted);transition:transform var(--t-snap)}.greeting-tm-mark.is-live:after{background:var(--accent)}.greeting-tm-mark[aria-pressed=true]:after{transform:scale(1.4);outline:2px solid var(--ink);outline-offset:2px}.greeting-tm-use.btn{flex:1 1 auto;justify-content:center;gap:var(--sp-1)}@media(hover:none){.greeting-tm .greeting-tm-step.btn,.greeting-tm .greeting-tm-use.btn{min-height:44px}}/**
 * repeatableRows.css
 *
 * @fileoverview A long list folded to one line a row (RepeatableRows `fold`):
 * the find box, the box of fixed height the folded rows scroll in, and the
 * row being edited, open above it. Rows that are not folded keep the look
 * prototype-styles.css gives every `.sse-row`.
 *
 * @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
 */.sse-rows .sse-rows-find{margin:0}.sse-rows-fold{display:flex;flex-direction:column;max-height:372px;overflow-y:auto;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.sse-rows-fold>.cds-hint{margin:0;padding:var(--sp-3)}.sse-row.is-folded{align-items:center;gap:0;padding:0 var(--sp-2) 0 0;border:0;border-top:1px solid var(--divider);border-radius:0;background:transparent}.sse-row.is-folded:first-child{border-top:0}.sse-row.is-folded.is-on{background:var(--accent-surface)}.sse-row-open{flex:1 1 auto;min-width:0;min-height:48px;padding:var(--sp-2) var(--sp-3);cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:2px;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.sse-row-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small)}.sse-row.is-folded>.sse-row-tools{flex-direction:row}.sse-row.is-folded>.sse-row-tools .cse-chip-remove{margin-top:0}.sse-row.is-open{box-shadow:inset 0 0 0 1.5px var(--accent)}/**
 * @fileoverview The Chat block's editor (ChatSectionEditor.jsx, DESIGN_SPEC
 * §3.7): the Photos step's ticks (the Size step's slider is HeightSlider's). App tokens — the editor is chrome, unlike the block it sets.
 *
 * @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
 */.chat-ed{display:flex;flex-direction:column;gap:14px}.chat-ed-group{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-ed-group>.fill-note{margin:-6px 0 6px calc(20px + var(--sp-3));font-size:13px}/**
 * seatingEditor.css — Still to seat beside the tables (DESIGN_SPEC §3.43 D25)
 *
 * @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
 */.sse-seating{display:flex;flex-direction:column;gap:var(--sp-4)}.sse-seating.has-list .sse-tables{min-width:0}@media(min-width:900px){.sse-seating.has-list{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start}.sse-toseat{position:sticky;top:var(--sp-3)}}.sse-toseat{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset)}.sse-toseat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1);max-height:50vh;overflow:auto}.sse-toseat-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--divider)}.sse-toseat-row.is-dragging,.sse-seated-row.is-dragging{opacity:.5}.sse-toseat-who{flex:1;min-width:0;display:flex;flex-direction:column;font-size:14px}.sse-toseat-who b{font-weight:600}.sse-toseat-who small,.sse-seated-who small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sse-seat-pick{width:auto;max-width:130px;min-height:36px;padding:0 var(--sp-2);font-size:13px}.sse-table{display:flex;flex-direction:column;gap:var(--sp-2);border-radius:var(--r-md)}.sse-table.is-over{box-shadow:0 0 0 3px var(--accent-outline);background:var(--accent-surface)}.sse-seated{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.sse-seated-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:14px}.sse-seated-row.is-out{color:var(--status-error)}.sse-seated-who{flex:1;min-width:0;display:flex;flex-direction:column}.sse-more summary{cursor:pointer;color:var(--ink-soft);font-size:13px;font-weight:600}.sse-more .cds-input{margin-top:var(--sp-2)}/**
 * orchestratorChecklist.css — what an orchestrator reads from, a row a block (DESIGN_SPEC §3.43.5)
 *
 * @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
 */.orc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.orc-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.orc-row>.icon{color:var(--ink-soft);flex:0 0 auto}.orc-row.is-in>.icon{color:var(--confirm)}.orc-row.is-off{opacity:.6}.orc-row.is-required.is-missing{border-color:var(--accent-outline);background:var(--accent-surface)}.orc-text{flex:1;min-width:0;display:flex;flex-direction:column}.orc-text b{font-weight:600;font-size:var(--fs-body)}.orc-text small{color:var(--muted);font-size:var(--fs-small)}.orc-need{color:var(--accent-deep);font-weight:600}.orc-state{display:inline-flex;align-items:center;gap:3px;color:var(--ink-soft);font-size:var(--fs-small);font-weight:600;white-space:nowrap}.orc-row.is-in .orc-state{color:var(--confirm)}/**
 * cateringReport.css — the caterer's report on screen (DESIGN_SPEC §3.43.6)
 *
 * @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
 */.cr{display:flex;flex-direction:column;gap:var(--sp-4)}.cr h2{margin:0;font-size:var(--fs-h2)}.cr h3{margin:0 0 var(--sp-2);font-size:var(--fs-body);font-weight:700;display:flex;align-items:center;gap:var(--sp-1)}.cr h4{margin:0 0 var(--sp-1);font-size:var(--fs-body);font-weight:600}.cr h4 small{color:var(--muted);font-weight:500}.cr-head{display:flex;flex-direction:column;gap:2px}.cr-facts,.cr-muted{margin:0;color:var(--muted);font-size:14px}.cr-stamp{margin:var(--sp-1) 0 0;display:inline-flex;align-items:center;gap:var(--sp-1);font-size:13px;font-weight:600;color:var(--ink-soft)}.cr-stamp.is-final{color:var(--accent-deep)}.cr-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.cr-count{display:flex;flex-direction:column;align-items:center;padding:var(--sp-3) var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.cr-count b{font-size:var(--fs-h2);font-weight:700;line-height:1}.cr-count small{color:var(--muted);font-size:12px;margin-top:4px}.cr-count.is-total{background:var(--accent-surface);border-color:var(--accent-outline)}.cr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.cr-list li{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) 0;border-top:1px solid var(--divider);font-size:14px}.cr-list li:first-child{border-top:0}.cr-list b{font-weight:700}.cr-who{color:var(--ink-soft);text-align:right}.cr-allergy{padding:var(--sp-3);border:1px solid var(--accent-outline);border-radius:var(--r-lg);background:var(--accent-surface)}.cr-allergy h3 .icon{color:var(--warn)}.cr-survey{margin-bottom:var(--sp-2)}.cr-survey b{display:block;font-size:14px;margin-bottom:2px}.cr-table{margin-bottom:var(--sp-3)}.cr-rows{list-style:none;margin:0;padding:0}.cr-rows li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.4fr);gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-top:1px solid var(--divider);font-size:14px}.cr-rows li:first-child{border-top:0}.cr-rows li.has-needs{background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:var(--r-sm)}.cr-name small,.cr-meal small{color:var(--muted)}.cr-needs{display:inline-flex;align-items:center;gap:3px;color:var(--warn-fg)}.cr-needs .icon{color:var(--warn)}@media(max-width:560px){.cr-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.cr-rows li{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cr-rows li .cr-needs,.cr-rows li>.cr-muted:last-child{grid-column:1 / -1}}.ca{display:flex;flex-direction:column;gap:var(--sp-2)}.ca-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.ca-door{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.ca-door>b{font-weight:600}.ca-door-row{display:flex;gap:var(--sp-3);align-items:flex-start}.ca-qr{flex:0 0 auto;width:96px;height:96px;border-radius:var(--r-md);border:1px solid var(--divider);background:var(--bg)}.ca-door-text{display:flex;flex-direction:column;gap:4px;min-width:0}.ca-url{font-size:13px;word-break:break-all;color:var(--ink)}.ca-door-text small{color:var(--muted);font-size:12px}/**
 * cateringEditor.css — the Catering block's settings (DESIGN_SPEC §3.43.6)
 *
 * @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
 */.cte-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3);align-items:end}.cte-fields .cds-label{margin:0}.cte-unlock{justify-self:start}.cte-vendor{max-width:220px}.cte-report{gap:var(--sp-4)}/**
 * offersEditor.css — the Deals & Menu editor (OffersSectionEditor,
 * OffersItemPanel, OffersAddMenu): the list read the way the page reads it,
 * headings as rows that open one at a time, and the add menu (which wears the
 * Cover's start tiles from coverStudio.css). Tokens only.
 *
 * @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
 */.ofe-groups{display:flex;flex-direction:column;gap:var(--sp-2)}.ofe-group{border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.ofe-group.is-open{border-color:var(--accent-outline);background:var(--surface-inset)}.ofe-group.is-dragging{opacity:.5}.ofe-group-top{display:flex;align-items:center;gap:var(--sp-1);padding-right:var(--sp-1);border-radius:inherit}.ofe-group-top.is-over{box-shadow:inset 0 0 0 2px var(--accent)}.ofe-group-head{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0;min-height:52px;padding:0 var(--sp-3);border:0;border-radius:inherit;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.ofe-group-head:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-2px}.ofe-group-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body);font-weight:800}.ofe-group-count{flex:0 0 auto;font-size:var(--fs-caption);font-weight:600;color:var(--muted)}.ofe-group-chev{margin-left:auto;color:var(--muted);transition:transform var(--t-snap) var(--easing)}.ofe-group.is-open .ofe-group-chev{transform:rotate(180deg);color:var(--accent)}.ofe-group-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:0 var(--sp-3) var(--sp-3)}.ofe-heading-edit{display:flex;flex-direction:column;gap:var(--sp-3)}.ofe-heading-edit>.btn{align-self:flex-start}.ofe-add{gap:var(--sp-3)}.ofe-add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.ofe-add-btn{align-self:stretch;justify-content:center;min-height:48px}.ofe-shot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.ofe-shot img{width:72px;height:72px;object-fit:cover;flex:0 0 auto;border-radius:var(--r-md)}.ofe-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(6rem,8rem);gap:var(--sp-2);align-items:end}.ofe-pair--even{grid-template-columns:repeat(2,minmax(0,1fr))}.ofe-set{border:0;padding:0;margin:0;min-width:0}.ofe-opt-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.ofe-opt-head .btn.btn-sm{flex:0 0 auto;min-height:44px}.ofe-toggle{cursor:pointer}/**
 * chorusEditor.css — the Chorus block's editor and its Tonight board.
 *
 * @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
 */.che-sound{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;min-width:0}.che-sound-tools{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.che-table{display:flex;flex-direction:column;gap:var(--sp-2)}.che-how{display:grid;gap:var(--sp-2);margin:0;padding:0 0 0 var(--sp-5);counter-reset:how}.che-how li{display:flex;gap:var(--sp-2);align-items:flex-start}.che-how li>.icon{flex:0 0 auto;margin-top:2px;color:var(--accent)}.che-how li>span:last-child{display:flex;flex-direction:column}.che-how b{font-size:var(--fs-body)}.che-how small{color:var(--muted);font-size:var(--fs-small)}.che-ways{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.che-ways>b{font-size:var(--fs-body)}.che-ways .sse-hint{margin:0}.che-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3)}.cht{display:flex;flex-direction:column;gap:var(--sp-3)}.cht-warn{display:flex;gap:var(--sp-2);align-items:flex-start;margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--accent-surface);color:var(--accent-deep);font-size:var(--fs-small);font-weight:600}.cht-doors{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.cht-doors .sse-hint{margin:0}.cht-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.cht-pill.is-open,.cht-pill.is-ready{background:color-mix(in srgb,var(--gold) 30%,transparent);color:var(--ink)}.cht-pill.is-composing{background:var(--accent-surface);color:var(--accent-deep)}.cht-pill.is-collecting{background:var(--surface-inset);color:var(--ink-soft)}.cht-sound{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.cht-sound .sse-hint{margin:0}.cht-pick{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);border:1px dashed var(--edge);border-radius:var(--r-md)}.cht-pill.is-failed,.cht-pill.is-unfunded{background:color-mix(in srgb,var(--status-error) 14%,transparent);color:var(--status-error)}.cht-sum{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.cht-sum b{color:var(--ink);font-variant-numeric:tabular-nums}.cht-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-3)}.cht-card{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm)}.cht-card .sse-hint{margin:0}.cht-th{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:var(--sp-2);row-gap:4px;align-items:center;min-width:0}.cht-th .cht-ring{grid-row:1 / span 2}.cht-th .cht-pill{grid-column:2;justify-self:start}.cht-name{grid-column:2;min-width:0;overflow-wrap:anywhere;font-size:var(--fs-body-lg);line-height:1.2}.cht-ring{position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:conic-gradient(var(--accent) var(--p, 0%),var(--surface-inset) 0);display:grid;place-items:center}.cht-ring i{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:var(--bg-elev)}.cht-ring b{position:relative;font-size:var(--fs-caption);font-weight:800;font-variant-numeric:tabular-nums}.cht-card details summary{cursor:pointer;font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.cht-mem{list-style:none;margin:var(--sp-1) 0 0;padding:0;display:flex;flex-direction:column;font-size:var(--fs-small)}.cht-mem li{display:flex;gap:var(--sp-2);align-items:flex-start;padding:4px 0;border-top:1px solid var(--divider)}.cht-mem li span{flex:1 1 auto;min-width:0}.cht-mem li.is-hidden span{text-decoration:line-through;opacity:.55}.cht-mem li button{flex:0 0 auto;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;font-size:var(--fs-caption);font-weight:600}.cht-songs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.cht-songs li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);font-size:var(--fs-small)}.cht-songs li>span{flex:1 1 100%;min-width:0;display:flex;flex-direction:column}.cht-songs li small{color:var(--muted);font-size:var(--fs-caption)}.cht-acts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.che-band{display:grid;grid-template-columns:1fr;gap:var(--sp-2);padding:var(--sp-2);border:1px dashed var(--edge);border-radius:var(--r-md)}.che-hear{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:flex-end}.cht-codes summary{cursor:pointer;font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.cht-codes[open] summary{margin-bottom:var(--sp-2)}@media(min-width:600px){.che-band{grid-template-columns:1fr 1fr auto;align-items:center}}.cht-fresh{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.cht-fresh .sse-hint{margin:0}.cht-wipe{color:var(--color-danger)}.che-viz,.che-viz-row{display:flex;flex-direction:column;gap:var(--sp-2)}.che-viz-preview{position:relative;width:100%;height:200px;border-radius:var(--r-md);overflow:hidden;background:var(--share-stage)}.che-viz-preview.is-none{height:64px;background:transparent;border:1px dashed var(--edge)}.che-viz-pick{min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.che-slider{display:flex;flex-direction:column;gap:var(--sp-1)}.che-slider-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.che-slider-head b{font-size:var(--fs-h2);font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.che-slider input[type=range]{width:100%;margin:0;accent-color:var(--accent)}.che-ends{display:flex;justify-content:space-between;font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}/**
 * guestbook.css — the couple's side of the Guest Book (DESIGN_SPEC §3.39).
 *
 * @fileoverview The queue, the messages by table, the Hidden fold, the Open
 * card and the editor's setting rows, on the app's warm-paper chrome. Every
 * row is the Builder's card (`.ds-card`); every colour, radius and shadow is a
 * design-system token; 44px targets; one column on a phone and the same on a
 * computer. The one thing that is never here: a coral button — the only coral
 * on screen is the Compass bar's next step.
 *
 * @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
 */.gbk-list{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.gbk-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.gbk-chips .btn[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.gbk-bar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink)}.gbk-bar b{flex:1 1 auto;min-width:0;font-size:var(--fs-small)}.gbk-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-5) var(--sp-4);text-align:center;color:var(--muted)}.gbk-empty .icon{font-size:40px;color:var(--accent-soft)}.gbk-empty b{color:var(--ink)}.gbk-empty span{font-size:var(--fs-small)}.gbk-row{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3)}.gbk-row-head{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.gbk-row-open{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--sp-3);padding:0;border:0;background:none;color:inherit;text-align:left;font:inherit}button.gbk-row-open{cursor:pointer;min-height:44px}.gbk-thumb{position:relative;flex:0 0 auto;width:56px;height:56px;border-radius:var(--r-md);overflow:hidden;display:grid;place-items:center;background:var(--surface-inset);color:var(--ink-soft)}.gbk-thumb.is-video{height:72px;background:var(--ink);color:var(--bg)}.gbk-thumb.is-voice{color:var(--sec-message)}.gbk-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gbk-thumb>.icon{font-size:28px}.gbk-dur{position:absolute;right:4px;bottom:4px;padding:1px 5px;border-radius:var(--r-sm);background:var(--ink);color:var(--bg);font-size:var(--fs-caption);font-weight:700;font-variant-numeric:tabular-nums}.gbk-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.gbk-meta b{font-size:var(--fs-body);overflow-wrap:anywhere}.gbk-meta small{color:var(--muted);font-size:var(--fs-small)}.gbk-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.gbk-pill{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:0 8px;border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:700;white-space:nowrap;background:var(--surface-inset);color:var(--ink-soft)}.gbk-pill.is-warn{background:color-mix(in srgb,var(--status-warning) 16%,transparent);color:var(--status-warning)}.gbk-fav{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}.gbk-fav[aria-pressed=true]{color:var(--accent)}.gbk-fav[aria-pressed=true] .icon{font-variation-settings:"FILL" 1}.gbk-note{margin:0;font-size:var(--fs-small);color:var(--muted)}.gbk-acts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.gbk-acts .btn{flex:1 1 auto;min-height:44px}.gbk-acts .btn.is-approve .icon{color:var(--confirm)}.gbk-acts .btn.is-hide .icon{color:var(--muted)}.gbk-group{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 2px 0;min-width:0}.gbk-group h4{margin:0;flex:1 1 auto;min-width:0;font-size:var(--fs-body);font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.gbk-group h4 small{color:var(--muted);font-weight:500;font-size:var(--fs-small)}.gbk-rename{display:flex;gap:var(--sp-1);align-items:center;flex:1 1 auto;min-width:0}.gbk-rename input{flex:1 1 auto;min-width:0}.gbk-hidden{margin-top:var(--sp-3)}.gbk-hidden>summary{cursor:pointer;font-weight:600;color:var(--ink-soft);font-size:var(--fs-small);padding:var(--sp-2) 0;min-height:44px;display:flex;align-items:center}.gbk-hidden .gbk-list{padding-top:var(--sp-2)}.gbk-confirm{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-lg);background:color-mix(in srgb,var(--status-warning) 12%,var(--bg-elev));color:var(--ink)}.gbk-confirm b{font-size:var(--fs-body)}.gbk-confirm .gbk-acts .btn{flex:1 1 auto}.gbk-foot{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;padding-top:var(--sp-3)}.gbk-open{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-lg);background:var(--accent-surface);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--ink)}.gbk-open b{font-size:var(--fs-body-lg)}.gbk-open small{color:var(--ink-soft);font-size:var(--fs-small);line-height:1.4}.gbk-open .btn{align-self:flex-start}.gbk-set{display:flex;flex-direction:column;gap:var(--sp-3)}.gbk-set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:44px}.gbk-set-row>span{display:flex;flex-direction:column;gap:1px;min-width:0;font-weight:600;font-size:var(--fs-body)}.gbk-set-row>span small{color:var(--muted);font-weight:500;font-size:var(--fs-small)}.gbk-set-row.is-col{flex-direction:column;align-items:stretch}.gbk-tent-pic{width:102px;aspect-ratio:17 / 22;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border)}.gbk-set-row.is-col .ds-seg{width:100%}.gbk-set-row input[type=number]{width:96px}.gbk-print{display:flex;flex-wrap:wrap;gap:var(--sp-2)}/**
 * @fileoverview The Screen MC's remote (EmceeTonight) and its show runners (EmceeRunners), DESIGN_SPEC
 * §3.40. Thumb-first: the controls are a two-column grid of tall buttons on a phone, the preview
 * a 16:9 container the stage's own scenes size themselves to (stageScenes.css, container units).
 * Tokens only.
 * @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
 */.emt{display:flex;flex-direction:column;gap:var(--sp-3)}.emt-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.emt-head .sse-hint{margin:0}.emt-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.emt-pill.is-running,.emt-pill.is-moment{background:color-mix(in srgb,var(--confirm) 22%,transparent);color:var(--ink)}.emt-pill.is-paused,.emt-pill.is-black{background:var(--accent-surface);color:var(--accent-deep)}.emt-preview{position:relative;aspect-ratio:16 / 9;container-type:size;overflow:hidden;border-radius:var(--r-lg);background:var(--share-stage);box-shadow:var(--shadow-sm);pointer-events:none}.emt-now{margin:0;color:var(--ink-soft);font-size:var(--fs-small)}.emt-now b{color:var(--ink)}.emt-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.emt-btn{min-height:52px;justify-content:center;white-space:normal}@media(min-width:720px){.emt-controls{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.emt-set{display:flex;flex-direction:column;gap:var(--sp-1)}.emt-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.emt-chips>[aria-pressed=true]{border-color:var(--accent);color:var(--accent-deep)}.emt-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-2);margin:0;padding:0;list-style:none}.emt-photos li{display:flex;flex-direction:column;gap:var(--sp-1)}.emt-photos img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--r-md);background:var(--surface-inset)}.emt-photos li.is-hidden img{opacity:.35}.emt-end{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.emt-runners{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.emt-runners li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.emt-runners li>span{display:flex;flex-direction:column;min-width:0}.emt-runners small{color:var(--ink-soft);font-size:var(--fs-small)}.emt-invite{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}.emt-invite .cds-label{flex:1 1 200px}.emt-link{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--edge);border-radius:var(--r-md)}.emt-link-qr{align-self:center;width:min(260px,100%);height:auto;border-radius:var(--r-md)}.emt-link-url{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;color:var(--ink);-webkit-user-select:all;user-select:all}.emt-link>div{display:flex;flex-wrap:wrap;gap:var(--sp-2)}/**
 * @fileoverview triviaEditor.css — the Trivia block's editor (DESIGN_SPEC §3.41): a question's
 * answers, each a circle for the right one beside its box, All night's topic chips, and the Tonight
 * remote's round card.
 * Tokens only, so both themes read.
 *
 * @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
 */.trq-opts{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;border:0;min-width:0}.trq-opt{display:flex;align-items:center;gap:var(--sp-2)}.trq-opt input[type=radio]{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--accent)}.trq-opt .cds-input{flex:1 1 auto;min-width:0}.trq-x{flex:0 0 auto;min-width:40px}.trt{display:flex;flex-direction:column;gap:var(--sp-3)}.trt-live{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.trt-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.trt-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:var(--r-pill);background:var(--accent-surface);color:var(--accent-deep);font-size:var(--fs-small);font-weight:700}.trt-pill.is-paused{background:var(--surface-inset);color:var(--ink-soft)}.trt-q{margin:0;font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700;line-height:1.3}.trt-a{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.trt-a b{color:var(--confirm)}.trt-controls{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.trt-controls .btn{flex:1 1 140px;min-height:48px}.trt-rounds{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.trt-rounds li{display:flex;flex-direction:column;gap:var(--sp-2)}.trt-round{font-weight:600}.trt-starts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.trt-starts .btn{flex:1 1 12rem;min-height:48px}.trt-join{display:flex;align-items:center;gap:var(--sp-3)}.trt-join img{flex:0 0 auto;width:120px;height:120px;padding:6px;border-radius:var(--r-md);background:var(--share-paper)}.trt-join-t{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.trt-join-t a{overflow-wrap:anywhere}.tra-topics{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;border:0;min-width:0}.tra-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tra-chip{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font:inherit;cursor:pointer}.tra-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-surface);color:var(--accent-deep);font-weight:700}.tra-chip:disabled{opacity:.5;cursor:default}.tra-n{font-size:var(--fs-small);color:var(--ink-soft)}.trl-ways{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}.trl-more summary{cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-1)}.trl-more .sse-chiprow{margin-top:var(--sp-2)}.trl-lanes{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.trl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}.trl-cards .ds-card{padding-bottom:var(--sp-2)}.trl-see{align-self:flex-start;margin:0 var(--sp-2)}.trl-n{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);font-weight:600}.trl-n .cds-input{width:5.5rem}.trl-qs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.trl-q{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev)}.trl-q input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;margin:2px 0 0;accent-color:var(--accent)}.trl-q-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.trl-q-p{font-weight:600}.trl-q-a,.trl-q-f{font-size:var(--fs-small);color:var(--ink-soft)}.trl-q-a b{color:var(--confirm)}.trl-preview{display:flex;flex-direction:column;gap:var(--sp-3)}.trl-file{margin:0;overflow-wrap:anywhere}.trl-counts{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);margin:0}.trl-counts div{display:flex;flex-direction:column}.trl-counts dt{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.trl-counts dd{margin:0;font-size:var(--fs-h3);font-weight:700;font-variant-numeric:tabular-nums}.trl-refused{margin:0;padding-left:var(--sp-4);font-size:var(--fs-small);color:var(--ink-soft);display:flex;flex-direction:column;gap:var(--sp-1)}.trl-mode{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;border:0}.trl-mode label{display:flex;align-items:center;gap:var(--sp-2);min-height:44px}.trl-mode input[type=radio]{width:22px;height:22px;margin:0;accent-color:var(--accent)}.trl-stat{margin:0 0 var(--sp-3);color:var(--ink-soft)}.trl-stat b{color:var(--ink);font-variant-numeric:tabular-nums}.trl-cats{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.trl-cat{border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);padding:0 var(--sp-3)}.trl-cat-row{display:flex;align-items:center;gap:var(--sp-2);min-height:48px}.trl-cat-name{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;gap:var(--sp-1);padding:0;border:0;background:none;color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer}.trl-cat-n{flex:0 0 auto;font-size:var(--fs-small);color:var(--ink-soft)}.trl-cat .trl-qs{margin:0 0 var(--sp-3)}.trl-check{display:flex;align-items:center;gap:var(--sp-2);min-height:44px}.trl-check input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:var(--accent)}/**
 * storageEditor.css — the Storage Building block's editor (DESIGN_SPEC §3.42).
 *
 * @fileoverview Tokens only, legible in both themes; the editor borrows the
 * Inventory editor's switch rows, actions and notes (inventoryEditor.css).
 * This lays out the boat form's boxes (one column on a phone, two from 480px
 * — the editor's own width, never the window's), the building picker that
 * wraps rather than scrolls sideways, the plan's frame, the Park next list,
 * the month banner, the boat card's facts, the lobby screen's address and the
 * door's code. Every target is 44px.
 *
 * @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
 */.ste{container-type:inline-size}.ste-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-1) var(--sp-3)}.ste-fields>.cds-label,.ste-fields>.timing-field{min-width:0;margin:0}.ste-fields .cds-input{margin:var(--sp-1) 0 0}@container (min-width: 480px){.ste-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ste-wide{grid-column:1 / -1}}.stz{position:relative}.stz-floor{fill:transparent;pointer-events:all}.stz-body{fill:transparent;stroke:none;pointer-events:all;cursor:grab;touch-action:none;outline:none}.stz-zone.is-sel .stz-body{stroke:var(--accent);stroke-width:2px}.stz-body:focus-visible{stroke:var(--focus-ring);stroke-width:3px}.stz-frozen .stz-body{cursor:default;touch-action:auto}.stz-side{stroke:none;stroke-width:20px;pointer-events:stroke;touch-action:none}.stz-side.is-w{cursor:ns-resize}.stz-side.is-h{cursor:ew-resize}.stz-knob{stroke:var(--accent);stroke-width:12px;stroke-linecap:round;pointer-events:none}.stz-dim{fill:var(--accent);font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.stz-ask{position:absolute;z-index:var(--z-raised);width:7.5rem;transform:translate(-50%,-50%);display:grid;gap:var(--sp-1);padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:var(--shadow-md);color:var(--ink);font-size:var(--fs-caption);font-weight:700}.stz-ask .cds-input{margin:0}.ste-sizes{display:grid;gap:var(--sp-2)}.ste-size{display:grid;grid-template-columns:5rem repeat(2,minmax(0,1fr));align-items:end;gap:var(--sp-2)}.ste-size>b{padding-bottom:var(--sp-2);font-weight:600;color:var(--ink)}.ste-size .cds-label{margin:0}.ste-pick{flex-wrap:wrap}.ste-pick>button{flex:1 1 auto}.ste-plan{overflow:auto;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset)}.ste-month{font-size:var(--fs-small);color:var(--ink-soft)}.ste-banner{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--warn);background:var(--status-warning-bg);color:var(--ink);font-size:var(--fs-small);font-weight:600}.ste-next{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.ste-next-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset)}.ste-next-open{display:grid;flex:1 1 12rem;min-width:0;min-height:44px;gap:2px;padding:0;text-align:left;border:0;background:none;color:var(--ink);cursor:pointer;font:inherit}.ste-next-open b{font-weight:600;overflow-wrap:anywhere}.ste-next-open small{font-size:var(--fs-small);color:var(--ink-soft)}.ste-next-act{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-1)}.ste-why{font-size:var(--fs-small);color:var(--status-error);font-weight:600;text-align:right}.ste-panel{flex-wrap:wrap}.ste-panel>button{flex:1 1 auto}.ste-live{margin:0;min-height:1.4em;font-size:var(--fs-small);font-weight:600;color:var(--ink)}.ste-live.is-no{color:var(--status-error)}.ste-where{margin:0 0 var(--sp-3);font-weight:600;color:var(--ink)}.ste-spots{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3)}.ste-spots .cds-hint{margin:0}.ste-rung{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:var(--sp-2)}.ste-rungs{display:grid;gap:var(--sp-2);justify-items:start}.ste-rung .cds-label{margin:0}.ste-facts{display:grid;grid-template-columns:minmax(5rem,auto) minmax(0,1fr);gap:var(--sp-1) var(--sp-3);margin:0}.ste-facts dt{font-size:var(--fs-small);color:var(--ink-soft)}.ste-facts dd{margin:0;overflow-wrap:anywhere}.ste-sheet-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.ste-tv{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.ste-digits{font-family:var(--font-display);font-size:var(--fs-display);font-weight:700;letter-spacing:.12em;color:var(--ink)}.ste-tv-url{font-size:var(--fs-small);overflow-wrap:anywhere}.ste-code{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);margin:0}.ste-code img{display:block;width:160px;height:160px;padding:var(--sp-1);border-radius:var(--r-sm);background:var(--share-paper)}.ste-code figcaption{font-size:var(--fs-small);overflow-wrap:anywhere}.ste-chips{flex-wrap:wrap}.ste-chips>button{flex:1 1 auto}.ste-view{flex:0 0 auto}.ste-pool-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.ste-pool-row{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2) 0 0;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface-inset)}.ste-pool-row.is-held{border-color:var(--accent);background:var(--accent-surface)}.ste-pool-row .ste-next-open{padding:var(--sp-2) 0}.ste-pill{flex:0 0 auto;padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--surface-raised);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700}.ste-pill.is-on{background:color-mix(in srgb,var(--sec-go) 22%,transparent);color:var(--ink)}.ste-lane-tag{flex:0 0 auto;min-width:2.4rem;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--surface-raised);text-align:center;font-size:var(--fs-small);font-weight:700}.ste-hand{position:sticky;bottom:0;z-index:var(--z-raised);display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-md);background:var(--accent-surface);color:var(--ink);box-shadow:var(--shadow-md)}.ste-hand-words{flex:1 1 auto;min-width:0;display:grid;gap:2px}.ste-hand-words b{overflow-wrap:anywhere}.ste-hand-words small{font-size:var(--fs-small);color:var(--ink-soft)}.ste-drag-hint{display:none}@media(min-width:1280px){.ste-drag-hint{display:block}}.ste-scenes{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding:0;list-style:none}.ste-scene{display:flex;align-items:center;gap:var(--sp-2)}.ste-scene>:first-child{flex:1 1 auto;min-width:0}.ste-scene.is-off{opacity:.7}.ste-scene-move,.ste-scene-add{display:flex;flex:0 0 auto}.ste-notice-pic{display:block;max-width:160px;max-height:100px;border-radius:var(--r-sm);object-fit:cover}.ste-openings{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding:0;list-style:none}.ste-opening{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1) 0 var(--sp-2);border-radius:var(--r-md)}.ste-opening.is-sel{background:var(--accent-surface)}.ste-opening .cse-chip-remove{margin-top:0}.ste-ask{width:13rem}.ste-ask>label{display:grid;gap:2px}.ste-ask .ds-seg{margin-bottom:var(--sp-1)}.ste-ask .btn{justify-self:start}/**
 * shareScreen.css
 *
 * @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
 */.shs{position:fixed;left:0;right:0;top:var(--vv-top);height:var(--vv-height);z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--bg);color:var(--ink);outline:none;animation:shs-in var(--t-medium) var(--easing)}@keyframes shs-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.shs-top{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding:max(var(--sp-3),env(safe-area-inset-top)) max(var(--sp-4),env(safe-area-inset-right)) var(--sp-3) max(var(--sp-4),env(safe-area-inset-left));border-bottom:1px solid var(--divider)}.shs-top-title{flex:1 1 12rem;min-width:0;display:flex;flex-direction:column}.shs-top-eyebrow{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.shs-top-name{font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shs-back{flex:1 1 auto;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0;background:none;border:0;cursor:pointer;font:inherit;font-size:var(--fs-body-lg);font-weight:700;color:var(--ink)}.shs-top-actions{flex:0 1 auto;min-width:0;margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.shs-close{flex:0 0 auto;width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);cursor:pointer;transition:background var(--t-snap) var(--easing)}.shs-close:hover{background:var(--surface-inset)}.shs-body{flex:1 1 auto;min-height:0;display:flex}.shs-nav,.shs-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain}.shs-nav{flex:1 1 auto;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4) max(var(--sp-4),env(safe-area-inset-right)) calc(var(--sp-6) + env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left))}.shs-panel{flex:1 1 auto;display:flex;flex-direction:column;background:var(--bg-elev)}.shs-body.is-wide .shs-nav{flex:0 0 360px;border-right:1px solid var(--divider)}.shs-hero{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-lg);background:var(--bg-elev);border:1px solid var(--divider)}.shs-hero-art{position:relative;flex:0 0 auto;width:60px;display:grid;place-items:center;border-radius:var(--r-sm);overflow:hidden;background:var(--accent-surface);color:var(--accent-deep)}.shs-hero-art>img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.shs-hero-art>.icon{padding:var(--sp-4) 0}.shs-hero-art:has(>.plc-cover){aspect-ratio:1}.shs-hero-text{min-width:0;display:flex;flex-direction:column;gap:2px}.shs-hero-title{font-size:var(--fs-body-lg);font-weight:700;overflow-wrap:anywhere}.shs-hero-line{font-size:var(--fs-small);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shs-quick{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3);border-radius:var(--r-lg);background:var(--surface-inset)}.shs-quick>.icon{color:var(--muted);flex:0 0 auto}.shs-quick-text{flex:1 1 11rem;min-width:0;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.45}.shs-quick.is-live{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.shs-quick-url{display:flex;align-items:center;gap:var(--sp-2);min-width:0;min-height:36px;padding:0;background:none;border:0;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.shs-quick-url .icon{color:var(--accent-deep);flex:0 0 auto}.shs-quick-url .shs-quick-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:600}.shs-quick-actions{display:flex;gap:var(--sp-2)}.shs-quick-actions .btn{flex:1 1 0;justify-content:center}.shs-group{display:flex;flex-direction:column;gap:var(--sp-2)}.shs-group-h{margin:0;padding:0 var(--sp-1);font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.shs-list{list-style:none;margin:0;padding:0;overflow:hidden;background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}.shs-list>li+li{border-top:1px solid var(--divider)}.shs-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:60px;padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);background:none;border:0;cursor:pointer;text-align:left;font:inherit;color:var(--ink);transition:background var(--t-snap) var(--easing)}.shs-row:hover{background:var(--surface-inset)}.shs-row.is-open{background:var(--accent-surface)}.shs .shs-row-icon{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--accent-surface);color:var(--accent-deep)}.shs .shs-row.is-open .shs-row-icon{background:var(--accent);color:var(--text-on-accent)}.shs .shs-row-icon.is-brand,.shs .shs-panel-icon.is-brand,.shs .shs-row.is-open .shs-row-icon.is-brand{background:var(--bg-elev)}.shs-row-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.shs-row-label{font-size:var(--fs-body);font-weight:600}.shs-row-sub{font-size:var(--fs-small);color:var(--muted);line-height:1.35}.shs-row-go{flex:0 0 auto;color:var(--muted)}.shs-body.is-wide .shs-row.is-open .shs-row-go{color:var(--accent-deep)}.shs-panel-head{flex:0 0 auto;display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) max(var(--sp-4),env(safe-area-inset-right)) var(--sp-3) max(var(--sp-4),env(safe-area-inset-left))}.shs .shs-panel-icon{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--accent-surface);color:var(--accent-deep)}.shs-panel-titles{min-width:0}.shs-panel-h{margin:0;font-family:var(--font-serif);font-size:var(--fs-h2);line-height:1.2}.shs-panel-sub{margin:2px 0 0;font-size:var(--fs-small);color:var(--muted)}.shs-panel-body{--sticky-lift: var(--sp-4);flex:1 1 auto;padding:0 max(var(--sp-4),env(safe-area-inset-right)) calc(var(--sp-6) + env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left))}.shs-body.is-wide .shs-panel-head,.shs-body.is-wide .shs-panel-body{padding-left:var(--sp-6);padding-right:var(--sp-6)}.shs-body.is-wide .shs-panel-head>*,.shs-body.is-wide .shs-panel-body>*{max-width:760px}.shs-panel .gr-footer-cta{background:var(--bg-elev)}.shs-people{display:flex;flex-direction:column;gap:var(--sp-3)}.gr-chip-editor{color:var(--accent-deep);background:var(--accent-surface)}.shs-updates{display:flex;flex-direction:column}.pqr{display:flex;flex-direction:column;gap:var(--sp-3)}.pqr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}.pqr-item{display:flex;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg)}.pqr-visual{flex:0 0 auto;width:84px;display:flex;justify-content:center;align-items:flex-start}.shs .pqr-icon{width:84px;height:84px;display:grid;place-items:center;font-size:40px;border-radius:var(--r-md);background:var(--accent-surface);color:var(--accent-deep)}.pqr-cover{width:72px;aspect-ratio:3 / 4;object-fit:cover;border-radius:var(--r-sm);box-shadow:var(--shadow-md);transform:rotate(-3deg)}.pqr-qr{width:84px;height:84px;padding:6px;border-radius:var(--r-md);background:var(--share-paper);border:1px solid var(--divider)}.pqr-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.pqr-title{margin:0;font-size:var(--fs-body-lg);font-weight:700}.pqr-blurb{margin:0;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.5}.pqr-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.pqr-state{margin:0;font-size:var(--fs-small);color:var(--muted);line-height:1.5}.pqr-onecode{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}.pqr-onecode label{display:flex;flex-direction:column;gap:var(--sp-1);flex:1 1 200px}.pqr-onecode .cds-input{margin:0}.pqr-back{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:40px;padding:0 var(--sp-2);margin-left:calc(-1 * var(--sp-2));background:none;border:0;border-radius:var(--r-pill);cursor:pointer;font:inherit;font-size:var(--fs-small);font-weight:600;color:var(--accent-deep)}.pqr-back:hover{background:var(--accent-surface)}.pqr-setup>summary{color:var(--ink)}@media(max-width:480px){.pqr-item{flex-direction:column;gap:var(--sp-3)}.pqr-visual{width:auto;justify-content:flex-start}}.pqr-show{position:fixed;left:0;right:0;top:var(--vv-top);height:var(--vv-height);z-index:var(--z-picker);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);background:var(--share-paper);color:var(--share-ink);outline:none}.pqr-show-img{width:min(72vmin,520px);height:auto;image-rendering:pixelated}.pqr-show-title{margin:0;max-width:32ch;text-align:center;font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:700}.pqr-show-url{margin:0;font-size:var(--fs-body-lg);font-weight:600;overflow-wrap:anywhere;text-align:center}.pqr-show-hint{margin:0;font-size:var(--fs-small);opacity:.75}.pqr-show-close{position:absolute;top:max(var(--sp-4),env(safe-area-inset-top));right:max(var(--sp-4),env(safe-area-inset-right));width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--share-border);border-radius:var(--r-pill);background:var(--share-paper);color:var(--share-ink);cursor:pointer}@media(prefers-reduced-motion:reduce){.shs{animation:none}}/**
 * plannerTools.css — Share → People's Pro tools: the Planned by form, the
 * hand-over list and the My Gallery pick (PlannerTools, PlannedByForm).
 *
 * @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
 */.plt-form{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-3)}.plt-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600}.plt-field input{min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);font:inherit}.plt-logo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.plt-logo-img{width:48px;height:48px;object-fit:contain;border:1px solid var(--divider);border-radius:var(--r-sm);background:var(--bg-elev)}.plt-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.plt-note{margin:var(--sp-2) 0;font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}.plt-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-2)}.plt-gallery-tile{aspect-ratio:1;padding:0;overflow:hidden;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);cursor:pointer}.plt-gallery-tile img{display:block;width:100%;height:100%;object-fit:cover}.plt-gallery-tile:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}/**
 * peopleSheets.css
 *
 * @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
 */.gr-to{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);min-height:52px;border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--surface-inset)}.gr-to:focus-within{border-color:var(--accent)}.gr-to-label{font-size:var(--fs-small);font-weight:700;color:var(--muted)}.gr-to-chip{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:32px;padding:0 var(--sp-2) 0 var(--sp-3);border:0;border-radius:var(--r-pill);cursor:pointer;background:var(--accent-surface);color:var(--accent-deep);font:inherit;font-size:var(--fs-small);font-weight:600}.gr-to-chip:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.gr-to-input{flex:1 1 10rem;min-width:0;min-height:36px;border:0;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--ink)}.gr-pickrow{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-1);background:none;border:0;border-radius:var(--r-md);cursor:pointer;text-align:left;font:inherit;color:var(--ink);transition:background var(--t-snap) var(--easing)}.gr-pickrow:hover{background:var(--surface-inset)}.gr-pickrow.is-on{background:var(--accent-surface)}.gr-pickrow .gr-identity{flex:1 1 auto;min-width:0}.gr-pickmark{flex:0 0 auto;color:var(--muted)}.gr-pickrow.is-on .gr-pickmark{color:var(--accent)}.gr-addlist .gr-addrow{padding:0}.gr-addlist .gr-addrow>.gr-identity{flex:1 1 auto;min-width:0}.gr-reach{flex:0 0 auto;display:inline-flex;gap:var(--sp-1);color:var(--muted)}.gr-newrow{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3);border:1px dashed var(--accent-outline);border-radius:var(--r-lg);background:var(--accent-surface);cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.gr-newrow>.icon{color:var(--accent-deep)}.gr-newrow>span:last-child{display:flex;flex-direction:column;gap:2px}.gr-addsheet-more{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.gr-addsheet-more-h{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.gr-addsheet-panel .assist-sheet-body{flex:1 1 auto;min-height:0}.gr-addsheet-cta{flex:0 0 auto;display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--divider)}.gr-addsheet-cta .btn{flex:1 1 9rem;justify-content:center}.gr-audience{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.gr-aud{display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:var(--sp-2) var(--sp-3);cursor:pointer;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);font-size:var(--fs-body)}.gr-aud.is-on{border-color:var(--accent);background:var(--accent-surface)}.gr-aud input{accent-color:var(--accent);width:18px;height:18px;margin:0}.gr-preview-toggle{align-self:flex-start}.gr-preview{display:flex;flex-direction:column;gap:var(--sp-3)}.gr-preview figure{margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}.gr-preview figcaption{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--muted);overflow-wrap:anywhere}.gr-preview figcaption strong{color:var(--ink)}.gr-preview-frame{width:100%;height:440px;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--share-paper)}.gr-preview-bubble{align-self:flex-start;max-width:85%;margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-xl) var(--r-xl) var(--r-xl) var(--r-sm);background:var(--surface-inset);color:var(--ink);font-size:var(--fs-body);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.gr-bulksheet{display:flex;flex-direction:column;gap:var(--sp-3)}.gr-pickthumb{flex:0 0 auto;width:40px;height:52px;object-fit:cover;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--accent-surface);color:var(--accent-deep)}.gr-pickstate{flex:0 0 auto;font-size:var(--fs-small);font-weight:600;color:var(--accent-deep)}.gr-pickrow:disabled{cursor:default}.gr-pickrow:disabled .gr-pickstate{color:var(--muted);font-weight:500}.gr-head{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3)}.gr-head .gr-search{flex:1 1 auto;min-width:0}.gr-more{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);cursor:pointer}.gr-more.is-on{border-color:var(--accent);color:var(--accent-deep)}.gr-more-panel{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.gr--roster .gr-row-tap{width:100%;flex-wrap:nowrap;padding:var(--sp-2) var(--sp-3)}.gr--roster .gr-status{flex:0 1 auto;justify-content:flex-end}.gr-fchip-n{font-weight:700;margin-left:2px}.gr-footer-pair{display:flex;gap:var(--sp-2)}.gr-footer-pair .btn{flex:1 1 0;justify-content:center}/**
 * Outbox — the departures board.
 *
 * Every colour, radius, shadow and space comes from a design token; there is
 * no `var(--x, #hex)` fallback anywhere in this file (the dark-mode
 * pinned-light trap) and nothing is hardcoded. Verified legible in BOTH themes
 * at 390px.
 *
 * NOTE the status chips are defined HERE, not reused: the `.status-pill`
 * classes the old markup emitted have no CSS anywhere in src — every Outbox
 * status rendered as bare lowercase text for as long as the screen existed.
 *
 * @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
 */.obx-screen{max-width:860px}.obx-group{margin-top:var(--sp-5)}.obx-group:first-of-type{margin-top:var(--sp-3)}.obx-group-title{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.obx-group-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-soft)}.obx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.obx-row{background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color var(--t-snap) var(--easing),box-shadow var(--t-snap) var(--easing)}.obx-row:hover{border-color:var(--edge)}.obx-row--attention{border-color:var(--accent-outline);background:linear-gradient(var(--accent-surface),var(--accent-surface)),var(--bg-elev)}.obx-row-top{display:flex;align-items:stretch;gap:var(--sp-2);padding:var(--sp-3)}.obx-row-main{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--sp-3);padding:0;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.obx-row-icon{font-size:22px;line-height:1;color:var(--muted);margin-top:2px}.obx-row-icon--attention{color:var(--accent)}.obx-row-body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.obx-row-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.obx-kind{font-size:var(--fs-caption);font-weight:600;letter-spacing:.02em;color:var(--muted)}.obx-row-title{font-size:var(--fs-body);font-weight:700;color:var(--ink);overflow-wrap:anywhere}.obx-row-facts{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-small);color:var(--ink-soft)}.obx-fact{display:inline-flex;align-items:center;min-width:0}.obx-fact--nums{font-variant-numeric:tabular-nums}.obx-row-reason{font-size:var(--fs-small);color:var(--status-error)}.obx-row-note{font-size:var(--fs-small);color:var(--ink-soft);font-style:italic}.obx-row-caret{font-size:20px;line-height:1;color:var(--muted);align-self:center}.obx-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:1px solid transparent;font-size:var(--fs-caption);font-weight:700;line-height:1.6;white-space:nowrap}.obx-chip.is-waiting{background:var(--surface-inset);border-color:var(--edge);color:var(--ink-soft)}.obx-chip.is-sending{background:var(--accent-surface);border-color:var(--accent-outline);color:var(--accent)}.obx-chip.is-sent{background:color-mix(in srgb,var(--status-success) 14%,transparent);border-color:color-mix(in srgb,var(--status-success) 40%,transparent);color:var(--status-success)}.obx-chip.is-failed,.obx-chip.is-blocked{background:color-mix(in srgb,var(--status-error) 12%,transparent);border-color:color-mix(in srgb,var(--status-error) 40%,transparent);color:var(--status-error)}.obx-chip.is-canceled{background:var(--surface-inset);border-color:var(--divider);color:var(--muted)}.obx-progress{display:block;width:100%;max-width:260px;height:5px;margin-top:var(--sp-1);border-radius:var(--r-pill);background:var(--surface-inset);overflow:hidden}.obx-progress-fill{display:block;height:100%;width:var(--obx-pct, 0%);border-radius:var(--r-pill);background:var(--accent);transition:width var(--t-medium) var(--easing)}@media(prefers-reduced-motion:reduce){.obx-progress-fill{transition:none}}.obx-row-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.obx-row-actions .btn.btn-sm{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.obx-row-actions .btn.obx-btn-danger{color:var(--status-error);border-color:color-mix(in srgb,var(--status-error) 45%,transparent);background:color-mix(in srgb,var(--status-error) 8%,transparent)}.obx-row-actions .btn.obx-btn-danger:not(:disabled):hover{background:color-mix(in srgb,var(--status-error) 16%,transparent)}.obx-detail{padding:var(--sp-3) var(--sp-3) var(--sp-3);margin:0 var(--sp-3) var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset);display:flex;flex-direction:column;gap:var(--sp-2)}.obx-detail-line{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--sp-3);font-size:var(--fs-small)}.obx-detail-label{color:var(--muted);font-weight:600}.obx-detail-value{color:var(--ink);overflow-wrap:anywhere}.obx-detail-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}.obx-chiprow{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:var(--sp-1);margin-bottom:var(--sp-2);scrollbar-width:none}.obx-chiprow::-webkit-scrollbar{display:none}.obx-filter-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1.5px solid var(--divider);background:var(--bg-elev);color:var(--ink-soft);font-size:var(--fs-small);font-weight:600;cursor:pointer;white-space:nowrap}.obx-filter-chip:hover{border-color:var(--edge);color:var(--ink)}.obx-filter-chip.is-on{background:var(--accent);border-color:var(--accent-deep);color:var(--text-on-accent)}.obx-filter-chip-n{font-variant-numeric:tabular-nums;opacity:.75}.obx-filter-chip--attention:not(.is-on){border-color:color-mix(in srgb,var(--status-error) 45%,transparent);color:var(--status-error)}.obx-state{padding:var(--sp-5) var(--sp-4);text-align:center;color:var(--ink-soft);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}.obx-state p{margin:0 0 var(--sp-3)}.obx-state-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}.obx-stale{margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--status-warning) 14%,transparent);border:1px solid color-mix(in srgb,var(--status-warning) 40%,transparent);color:var(--ink);font-size:var(--fs-small)}.obx-foot{margin-top:var(--sp-4);font-size:var(--fs-caption);color:var(--muted)}.obx-skeleton{height:84px;border-radius:var(--r-lg);margin-bottom:var(--sp-2)}.obx-embed{margin-top:var(--sp-4)}.obx-embed .obx-group:first-of-type{margin-top:0}@media(max-width:560px){.obx-row-top{flex-direction:column;gap:var(--sp-3)}.obx-row-actions{width:100%}.obx-row-actions .btn.btn-sm{flex:1 1 0;justify-content:center}.obx-row-main{gap:var(--sp-2)}.obx-detail-line{grid-template-columns:1fr;gap:2px}.obx-progress{max-width:none}}/**
 * printGuide.css — the Print tab's "Before you print" (PrintSetup) and the
 * animated fold guide (FoldGuide). DESIGN_SPEC §3.10.
 *
 * @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
 */.printpanel-h,.printsetup-h{margin:0 0 var(--sp-2);font-size:var(--fs-small);font-weight:700;color:var(--text-primary)}.printpanel-caption{margin:calc(-1 * var(--sp-2)) 0 var(--sp-3);font-size:12.5px;line-height:1.45;color:var(--text-secondary)}.printpanel-caption strong{color:var(--text-primary);font-weight:700}.printpanel-foldguide{margin:var(--sp-4) 0;scroll-margin-top:var(--sp-4)}.printsetup{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin:0 0 var(--sp-3)}.printsetup-list{margin:0 0 var(--sp-2);padding-left:20px;font-size:var(--fs-small);line-height:1.6;color:var(--text-secondary)}.printsetup-list strong,.printsetup-check strong{color:var(--text-primary);font-weight:700}.printsetup-paper{margin:0 0 var(--sp-3);font-size:12.5px;line-height:1.45;color:var(--text-secondary)}.printsetup-check{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);margin:0;padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--fs-small);line-height:1.5;color:var(--text-secondary)}.printsetup-check p{margin:0}.printsetup-check.is-ok{flex-direction:row;align-items:center}.printsetup-check.is-ok .icon{color:var(--confirm)}.printsetup-row{display:flex;gap:var(--sp-2)}.printsetup-link{margin-left:auto;padding:0;border:0;background:none;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.foldguide-stage{height:190px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.fg-scene{perspective:700px;animation:fg-fade 3.6s ease-in-out infinite}.foldguide-count{margin:var(--sp-3) 0 2px;font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.foldguide-title{margin:0 0 4px;font-size:var(--fs-body);font-weight:700;color:var(--text-primary)}.foldguide-text{margin:0;min-height:4.5em;font-size:var(--fs-small);line-height:1.5;color:var(--text-secondary)}.foldguide-nav{display:flex;justify-content:space-between;margin-top:var(--sp-3)}.fg-sheet,.fg-strip,.fg-book{position:relative;transform-style:preserve-3d}.fg-sheet{width:124px;height:160px}.fg-strip,.fg-book{width:192px;height:124px}.fg-half,.fg-leaf{position:absolute;transform-style:preserve-3d}.fg-half{left:0;width:100%;height:50%}.fg-half.is-bottom{bottom:0}.fg-leaf{top:0;width:50%;height:100%;left:50%}.fg-half.is-top{top:0;transform-origin:50% 100%;--fg-end: rotateX(179deg);--fg-still: rotateX(58deg)}.fg-leaf.is-left{left:0;transform-origin:100% 50%;--fg-end: rotateY(-179deg);--fg-still: rotateY(-58deg)}.fg-leaf.is-cover{transform-origin:0 50%;--fg-end: rotateY(-176deg);--fg-still: rotateY(-120deg)}.fg-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--share-paper);box-shadow:0 0 0 1px var(--share-border);backface-visibility:hidden;-webkit-backface-visibility:hidden}.fg-face.is-back{background:color-mix(in srgb,var(--share-paper) 90%,var(--share-ink))}.fg-half .fg-face.is-back{transform:rotateX(180deg)}.fg-leaf .fg-face.is-back{transform:rotateY(180deg)}.fg-p{display:flex;align-items:center;justify-content:center;margin:9%;border:1px dashed var(--share-border);border-radius:2px;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--share-ink)}.fg-p.is-flip{transform:rotate(180deg)}.fg-p.is-front{background:var(--accent-deep);border-color:transparent;color:var(--share-paper)}.fg-anim{animation:fg-fold 3.6s ease-in-out infinite}@keyframes fg-fold{0%,18%{transform:none}58%,to{transform:var(--fg-end)}}@keyframes fg-fade{0%{opacity:0}6%,88%{opacity:1}96%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.fg-scene{animation:none}.fg-anim{animation:none;transform:var(--fg-still)}}/**
 * signDesigner.css — Share → Print & QR codes → A sign (SignDesigner.jsx).
 *
 * The page stays in sight while it is being set: pinned to the top of the
 * place on a phone (a third of the screen, the controls scroll under it), in
 * its own column beside them on a wide place.
 *
 * @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
 */.sign{display:flex;flex-direction:column;gap:var(--sp-3)}.sign-layout{display:flex;flex-direction:column;gap:var(--sp-4)}.sign-preview{position:sticky;top:0;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;background:var(--bg-elev)}.sign-canvas{display:block;height:min(38vh,420px);width:auto;max-width:100%;aspect-ratio:8.5 / 11;border-radius:var(--r-sm);box-shadow:var(--shadow-md)}.sign-controls{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.sign-group{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);min-width:0}.sign-legend{padding:0 var(--sp-1);font-size:var(--fs-body);font-weight:700;color:var(--ink)}.sign-text{margin:0;resize:vertical}.sign-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.sign-row .sign-seg{flex:1 1 200px}.sign-swatch{display:inline-block;width:16px;height:16px;border-radius:var(--r-pill);border:1px solid var(--divider)}.sign-range,.sign-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.sign-range input[type=range]{width:100%;accent-color:var(--accent)}.sign-range span{font-variant-numeric:tabular-nums}.sign-field .cds-input{margin:0}.sign-check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--ink)}.sign-check input{accent-color:var(--accent);width:18px;height:18px}.sign-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sign-stage{position:relative;height:min(38vh,420px);width:auto;max-width:100%}.sign-stage .sign-canvas{width:100%;height:100%}.sign-element-hit{position:absolute;padding:0;border:1px solid transparent;background:transparent;cursor:move;touch-action:none;border-radius:0}.sign-element-hit:hover{border-color:var(--accent)}.sign-element-hit[aria-pressed=true],.sign-element-hit:focus-visible{border:2px solid var(--accent);outline:none}.sign-resize-handle{position:absolute;width:24px;height:24px;bottom:-12px;right:-12px;border-radius:var(--r-sm);background:var(--accent);border:2px solid var(--bg);cursor:nwse-resize;touch-action:none}.sign-position-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.sign-library{display:flex;flex-direction:column;gap:var(--sp-3)}.sign-library h3{margin:0}.sign-library>.ds-seg{align-self:flex-start}.sign-templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.sign-template{min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.sign-template-select{flex:1;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);text-align:left;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--divider);border-radius:var(--r-md);cursor:pointer}.sign-template-select[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.sign-template-picture{display:block;width:100%;height:auto;border-radius:var(--r-sm)}.sign-template-save{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md)}@media(max-width:650px){.sign-templates{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1100px){.sign-preview .sign-stage{width:100%;height:auto}.sign-stage .sign-canvas{height:auto}}@media(min-width:1100px){.sign-layout{flex-direction:row;align-items:flex-start}.sign-preview{flex:0 0 300px;padding:0;background:none}.sign-canvas{width:100%;height:auto}.sign-controls{flex:1 1 auto}}/**
 * ActivityFeed chrome — "what happened", newest first (DESIGN_SPEC §3.13).
 *
 * The feed is read on a phone, mid-event, with a thumb: a scannable column of
 * one-line sentences, each led by a tone-coded badge, with the burst roster and
 * the older pages folded away until asked for. Everything here is layout +
 * token-derived tone — no hardcoded colour/shadow/radius — so the same markup
 * holds on the `/activity` hub ground and inside a Greetlet's Activity tab, in
 * both themes (owner rule).
 *
 * Two traps this file is shaped around: a sticky element only sticks inside its
 * own containing block, so the root and the list stay in BLOCK flow (a grid
 * would pin the "N new" pill to a one-row cage), and anything that scrolls
 * under a sticky needs an OPAQUE backdrop — a translucent accent wash lets the
 * rows read straight through it.
 *
 * @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
 */.afd{--afd-dot: 32px;--afd-indent: calc(var(--afd-dot) + var(--sp-3));position:relative}.afd-new{position:sticky;top:var(--sp-2);z-index:var(--z-raised);display:flex;align-items:center;gap:var(--sp-1);width:fit-content;margin:0 auto var(--sp-2);min-height:36px;padding:var(--sp-2) var(--sp-4);border:1px solid var(--accent-outline);border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 12%,var(--bg-elev));box-shadow:var(--shadow-sm);color:var(--accent);font:inherit;font-size:var(--fs-small);font-weight:700;cursor:pointer}.afd-new:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elev))}.afd-new .icon{font-size:18px}.afd-chips{flex:1 1 0;min-width:0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.afd-chips>*{flex:0 0 auto}.afd-tools:not(.is-open) .afd-chips{display:none}.afd-tools.is-open .afd-chips{flex-basis:100%;order:1}.afd-tools .afd-filter{max-width:100%}.afd-filter .afd-caret{opacity:.75}.afd-count{padding:0 var(--sp-1);border-radius:var(--r-pill);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--muted);font-size:var(--fs-caption);font-weight:700}.pill-btn--primary .afd-count{background:var(--accent-surface);color:inherit}.afd-empty{margin:0;padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--ink-soft);font-size:var(--fs-small);line-height:var(--lh-body)}.afd-list{list-style:none;margin:0;padding:0}.afd-day{position:sticky;top:0;z-index:1;padding:var(--sp-3) 0 var(--sp-1);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.afd-row{padding:var(--sp-3) 0}.afd-row+.afd-row{border-top:1px solid var(--divider)}.afd-skeleton>span{display:block;height:var(--afd-dot);border-radius:var(--r-md);background:linear-gradient(90deg,var(--surface-inset) 25%,color-mix(in srgb,var(--ink) 10%,var(--surface-inset)) 50%,var(--surface-inset) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}.afd-main{display:flex;align-items:flex-start;gap:var(--sp-3)}.afd-dot{flex:0 0 auto;display:inline-grid;place-items:center;width:var(--afd-dot);height:var(--afd-dot);border-radius:var(--r-pill)}.afd-dot .icon{font-size:18px}.afd-dot.is-accent{background:var(--accent-surface);color:var(--accent)}.afd-dot.is-success{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.afd-dot.is-warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.afd-dot.is-muted{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink-soft)}.afd-body{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-1)}.afd-title{margin:0;color:var(--ink);font-size:var(--fs-body);line-height:var(--lh-body)}.afd-badge{display:inline-block;margin-left:var(--sp-2);padding:0 var(--sp-2);border-radius:var(--r-pill);background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);font-size:var(--fs-caption);font-weight:700;white-space:nowrap;vertical-align:middle}.afd-detail{margin:0;color:var(--ink-soft);font-size:var(--fs-small);font-style:italic;line-height:var(--lh-body);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.afd-card{display:inline-flex;align-items:center;gap:var(--sp-2);max-width:100%;min-height:32px;padding:0;border:0;background:none;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:600;text-align:left;cursor:pointer}.afd-card>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.afd-card:hover{color:var(--accent);text-decoration:underline}.afd-thumb{flex:0 0 auto;width:20px;height:20px;border-radius:var(--r-sm);background:var(--surface-inset);object-fit:cover}.afd-when{flex:0 0 auto;margin-left:auto;padding-top:2px;color:var(--muted);font-size:var(--fs-caption);text-align:right;white-space:nowrap}.afd-more{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:32px;margin:var(--sp-1) 0 0 var(--afd-indent);padding:var(--sp-1) var(--sp-2);border:0;border-radius:var(--r-sm);background:none;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer}.afd-more:hover{background:var(--accent-surface);color:var(--ink)}.afd-more .icon{font-size:18px}.afd-sublist{list-style:none;margin:var(--sp-1) 0 0;padding:0 0 0 var(--afd-indent)}.afd-subrow{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) 0;color:var(--ink-soft);font-size:var(--fs-small);line-height:var(--lh-body)}.afd-subrow+.afd-subrow{border-top:1px solid var(--divider)}.afd-subline{flex:1 1 14rem;min-width:0}.afd-subline .afd-detail{display:inline;color:var(--muted)}.afd-page.btn.btn-ghost{display:block;width:100%;min-height:44px;margin-top:var(--sp-3);text-align:center}@media(min-width:640px){.afd-page.btn.btn-ghost{width:auto;margin-inline:auto}}@media(pointer:coarse){.afd-new,.afd-card,.afd-more,.afd-tools .pill-btn,.afd-tools .afd-export.btn{min-height:44px}}@media(prefers-reduced-motion:reduce){.afd-skeleton>span{animation:none}}.afd-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.afd-export{flex:0 0 auto;gap:var(--sp-1);margin-left:auto}@media(min-width:720px){.afd-tools .afd-filter{display:none}.afd-tools:not(.is-open) .afd-chips{display:flex}.afd-tools.is-open .afd-chips{flex-basis:auto;order:0}}/**
 * AnswersView — the consolidated reply tables on a Greetlet's Activity tab
 * (DESIGN_SPEC §3.13).
 *
 * The whole file exists for one problem: a ten-column answer table cannot be a
 * table on a 390px phone. Rather than ship two components, the markup stays a
 * real `<table>` (correct semantics, correct screen-reader behaviour, and it
 * copies into a spreadsheet) and BELOW the breakpoint CSS restacks each row
 * into a card, reading each cell's column name back out of `data-label`.
 *
 * Every colour, radius and shadow is a design-system token; no value is
 * hardcoded and none is theme-specific (owner rule).
 *
 * @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
 */.ansv{display:block;container-type:inline-size}.ansv-table td.is-num,.ansv-table td.is-secs,.ansv-table td.is-money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ansv-empty{padding:var(--sp-4) var(--sp-3);color:var(--muted);font-size:var(--fs-body);text-align:center}.ansv-tools{display:flex;align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-3)}.ansv-jump{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:var(--sp-1)}.ansv-jump .pill-btn{text-decoration:none}.ansv-count{margin-left:var(--sp-1);padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-caption)}.ansv-export{flex:0 0 auto;gap:var(--sp-1)}.ansv-block{margin:0 0 var(--sp-4);scroll-margin-top:var(--sp-5)}.ansv-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.ansv-head .icon{color:var(--accent)}.ansv-title{margin:0;font-size:var(--fs-h3);font-weight:700;color:var(--ink)}.ansv-total{margin-left:auto;color:var(--muted);font-size:var(--fs-caption)}.ansv-tablewrap{overflow-x:auto;border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface)}.ansv-table{width:100%;border-collapse:collapse;font-size:var(--fs-body-sm)}.ansv-table th,.ansv-table td{padding:var(--sp-2);text-align:left;vertical-align:top;border-bottom:1px solid var(--divider)}.ansv-table th{position:sticky;top:0;background:var(--bg-elev);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.ansv-table td{color:var(--ink)}.ansv-table td:first-child{font-weight:600;white-space:nowrap}.ansv-table tbody tr:last-child td{border-bottom:0}.ansv-more{margin-top:var(--sp-2)}.ansv-note{margin:var(--sp-2) 0 0;color:var(--muted);font-size:var(--fs-caption)}@container (max-width: 640px){.ansv-tablewrap{overflow-x:visible;border:0;border-radius:0;background:transparent}.ansv-table thead{display:none}.ansv-table,.ansv-table tbody,.ansv-table tr,.ansv-table td{display:block}.ansv-table tr{margin-bottom:var(--sp-2);padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface)}.ansv-table td{display:flex;gap:var(--sp-2);padding:var(--sp-1) 0;border-bottom:0}.ansv-table td:before{content:attr(data-label);flex:0 0 40%;color:var(--muted);font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.ansv-table td:first-child{margin-bottom:var(--sp-1);padding-bottom:var(--sp-1);border-bottom:1px solid var(--divider);white-space:normal}.ansv-table td:first-child:before{content:none}.ansv-table td.is-num,.ansv-table td.is-secs,.ansv-table td.is-money{text-align:left}}/**
 * needsYou.css — the Needs you groups and the two tabs' badges (DESIGN_SPEC §3.43)
 *
 * @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
 */.ny{display:flex;flex-direction:column;gap:var(--sp-4)}.ny-lead{margin:0;color:var(--text-secondary);font-size:14px}.ny-group{max-width:720px;display:flex;flex-direction:column;gap:var(--sp-3)}.ny-head{display:flex;align-items:center;gap:var(--sp-3)}.ny-thumb{width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-md);object-fit:cover;background:var(--surface-inset)}.ny-title{display:flex;flex-direction:column;flex:1;min-width:0;padding:0;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left}button.ny-title{cursor:pointer}button.ny-title:hover b{color:var(--accent)}.ny-title b{font-weight:600}.ny-title small{color:var(--muted);font-size:12px}.ny-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:var(--sp-1);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:12px;font-weight:700}.ny-badge--quiet{background:var(--surface-inset);color:var(--ink-soft)}.ny-booking{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.ny-booking>.icon{color:var(--accent);flex:0 0 auto}.ny-booking-text{flex:1;min-width:0}.ny-booking-text b{display:block;font-weight:600}.ny-booking-text small{color:var(--muted);font-size:12px}.ny-booking-acts{display:flex;gap:var(--sp-2)}.ny-clear{display:flex;align-items:center;gap:var(--sp-2);margin:0;color:var(--confirm)}@media(max-width:560px){.ny-booking{flex-wrap:wrap}.ny-booking-acts{width:100%;justify-content:flex-end}}/**
 * EmbedTab styles — the Share sheet's "Embed" tab.
 *
 * @fileoverview The live preview of the cover card a website frames, in the
 * snippet's own 3:4 box, and the Ad's page-or-cover choice (DESIGN_SPEC §3.28).
 *
 * @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
 */.embedtab-seg{margin:0 0 var(--sp-3)}.embedtab-preview{display:block;width:100%;max-width:260px;aspect-ratio:3 / 4;margin:0 auto var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset)}/**
 * websiteStart.css — the "Have a website?" box on the New Greetlet door (§3.31).
 *
 * @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
 */.ng-site{margin-top:var(--sp-4);padding:var(--sp-4);border:1px dashed var(--accent);border-radius:var(--r-lg);background:var(--surface)}.ng-site-title{margin:0;font-size:var(--fs-body-lg)}.ng-site-help,.ng-site-fine,.ng-site-error,.ng-site-blocks{margin:var(--sp-1) 0 0;color:var(--ink-soft);font-size:var(--fs-small)}.ng-site-error{color:var(--danger)}.ng-site-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.ng-site-label{flex:1 1 100%;font-weight:600;font-size:var(--fs-small)}.ng-site-row input{flex:1 1 260px;min-width:0;min-height:44px;padding:0 var(--sp-3);font:inherit;font-size:16px;color:var(--ink);background:var(--surface-inset);border:1px solid var(--line);border-radius:var(--r-md)}.ng-site-row input:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.ng-site-found{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line)}.ng-site-lead{margin:0}.ng-site-list{margin:var(--sp-2) 0 0;padding-left:var(--sp-5)}.ng-site-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}/**
 * compassRibbon.css — the Compass bar, Compass's one home on every signed-in
 * page (CompassRibbon.jsx; DESIGN_SPEC §3.6.8; documents/BLOCK_BY_BLOCK_PLAN.md).
 * Tokens only. It wears the accent wash the walk's strip always wore, because
 * it IS that strip with the Ask box and Compass's tools around it; the strip
 * inside it gives up its own frame.
 *
 * @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
 */.cribbon{--compass-size: 96px;--talk-w: 108px;--next-w: 216px;position:relative;flex:0 0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) fit-content(38%) var(--talk-w) var(--next-w);grid-template-areas:"face line acts acts tools" "face ask ask talk next";align-items:center;column-gap:var(--sp-3);max-width:1100px;margin-inline:auto;padding:var(--sp-4) var(--sp-3) var(--sp-3) var(--sp-4);border:1px solid var(--accent-outline);border-radius:var(--r-xl);background:linear-gradient(var(--accent-surface),var(--accent-surface)) var(--bg-elev);box-shadow:var(--shadow-lg);color:var(--ink)}.cribbon-main,.cribbon .cwalk,.cribbon .cwalk-body,.cribbon-slot,.cribbon-turn{display:contents}.cribbon:has(.cribbon-turn.has-line) .cribbon-main{display:none}.cribbon-face{grid-area:face;display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:0;border:0;border-radius:var(--r-md);background:transparent;cursor:pointer}.cribbon-name{font-size:var(--fs-caption);font-weight:700;line-height:1.2;color:var(--ink-soft)}.cribbon-face:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cribbon .cwalk-say{grid-area:line;min-width:0}.cribbon-turn-line{grid-area:line;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:var(--sp-2);min-width:0}.cribbon-turn-line>:not(.cribbon-turn-close){grid-column:1;margin:0}.cribbon-turn-line .inline-progress{margin:0}.cribbon-turn-say{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}.cribbon-turn-note{font-size:var(--fs-small);color:var(--ink-soft)}.cribbon-turn-line .bc-done{font-size:var(--fs-body)}.cribbon-turn .btn.btn-ghost.cribbon-turn-close{grid-column:2;grid-row:1 / span 2;width:34px;min-height:34px;margin:-6px -6px 0 0;padding:0;justify-content:center}.cribbon .cwalk-row{grid-area:acts;align-self:end;justify-content:flex-end;min-width:0;margin:0}.cribbon .cwalk-row .bc-actions{display:contents}.cribbon .cwalk-row .bc-done{margin:0;align-self:center}@media(pointer:fine){.cribbon .cwalk-row .btn.btn-sm{min-height:36px}}.cribbon-tools{grid-area:tools;justify-self:end;display:flex;flex-direction:column;gap:2px}.cribbon .btn.btn-ghost.cribbon-tool{min-height:44px;gap:var(--sp-2);justify-content:flex-start;white-space:nowrap}.cribbon .cribbon-tool.is-muted{color:var(--accent);background:var(--accent-surface)}@media(pointer:fine){.cribbon .btn.btn-ghost.cribbon-tool,.cribbon-guide{min-height:34px}.cribbon .bld-compass-settings .btn.cds-gear{width:36px;min-height:34px}}.cribbon-handle{position:absolute;top:-16px;left:50%;z-index:1;transform:translate(-50%);display:inline-flex;align-items:center;gap:2px;height:30px;padding:0 var(--sp-3) 0 var(--sp-2);border:1px solid var(--accent-outline);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink-soft);font:inherit;font-size:var(--fs-caption);font-weight:600;white-space:nowrap;box-shadow:var(--shadow-sm);cursor:pointer}.cribbon-handle:before{content:"";position:absolute;top:-8px;right:-4px;bottom:-8px;left:-4px}.cribbon-handle .icon{font-size:19px}.cribbon-handle:hover{color:var(--ink);border-color:var(--accent)}.cribbon-handle:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cribbon.is-open .cribbon-handle{display:none}.cribbon-ask,.cribbon-mic,.cribbon .btn.cribbon-next,.cribbon-turn-next{align-self:end;margin-top:var(--sp-2)}.cribbon-ask{grid-area:ask;display:flex;align-items:flex-end;gap:2px;min-width:0;min-height:46px;padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-4);border:1.5px solid var(--edge);border-radius:var(--r-xl);background:var(--bg-elev);box-shadow:var(--shadow-sm);cursor:text}.cribbon-ask:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-surface)}.cribbon-input{flex:1 1 auto;align-self:center;width:100%;min-height:24px;max-height:calc(6lh + 10px);margin:0;padding:5px 0;border:0;resize:none;field-sizing:content;overflow-y:auto;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-body);line-height:var(--lh-body)}.cribbon-input:focus,.cribbon-input:focus-visible{outline:none}.cribbon-input:placeholder-shown{white-space:nowrap;overflow:hidden}.cribbon-input::placeholder{color:var(--muted);opacity:1}.cribbon-ask.has-heard .cribbon-input:placeholder-shown{white-space:normal;overflow-y:auto}.cribbon-ask.has-heard .cribbon-input::placeholder,.cribbon-ask.can-undo .cribbon-input::placeholder{color:var(--ink-soft)}.cribbon-in{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-width:36px;height:36px;padding:0 var(--sp-2);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:700;cursor:pointer}.cribbon-in .icon{font-size:19px}.cribbon-in:hover{background:var(--accent-surface);color:var(--ink)}.cribbon-in:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:1px}.cribbon-ask.can-undo .cribbon-clear{padding:0 var(--sp-3) 0 var(--sp-2);background:var(--accent-surface);color:var(--ink)}.cribbon .cribbon-send{width:36px;padding:0;background:var(--accent);color:var(--text-on-accent)}.cribbon .cribbon-send:hover{background:var(--accent-hover);color:var(--text-on-accent)}.cribbon.is-big .cribbon-grow{color:var(--accent)}.cribbon.is-big .cribbon-ask{flex-wrap:wrap;justify-content:flex-end}.cribbon.is-big .cribbon-input{flex-basis:100%;align-self:stretch;min-height:min(12lh,calc(var(--vv-height, 100dvh) * .4));max-height:min(20lh,calc(var(--vv-height, 100dvh) * .55))}.cribbon.is-big .cribbon-input:placeholder-shown{white-space:normal}.cribbon-mic{grid-area:talk;justify-self:stretch;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:46px;padding:0 var(--sp-4) 0 var(--sp-3);border:1.5px solid var(--accent-outline);border-radius:var(--r-pill);background:var(--accent-surface);color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:700;white-space:nowrap;cursor:pointer;transition:background var(--t-instant) ease-out,border-color var(--t-instant) ease-out,box-shadow 90ms linear,transform var(--t-instant) ease-out}.cribbon-mic .icon{font-size:20px;color:var(--accent)}.cribbon-mic:hover:not(:disabled){border-color:var(--accent)}.cribbon-mic:active:not(:disabled){transform:scale(.96)}.cribbon-mic:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cribbon .cribbon-mic.is-listening{border-color:var(--danger-color);background:var(--danger-color);color:var(--text-on-accent);box-shadow:0 0 0 calc(2px + var(--gtx-level, 0) * 14px) color-mix(in srgb,var(--danger-color) 30%,transparent)}.cribbon .cribbon-mic.is-busy{border-color:var(--accent-glow);background:var(--accent-glow);color:var(--text-on-accent);cursor:progress}.cribbon-mic.is-listening .icon,.cribbon-mic.is-busy .icon{color:inherit}.cribbon-mic.is-busy .icon{animation:gtx-spin .9s linear infinite}.cribbon-mic.is-pausing{overflow:hidden}.cribbon-mic.is-pausing:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:4px;background:var(--text-on-accent);transform-origin:left;animation:cribbon-pause-fill 1.6s linear forwards}@keyframes cribbon-pause-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.cribbon-ask.is-listening{border-color:var(--danger-color)}.cribbon-ask.is-listening .cribbon-input:placeholder-shown{white-space:normal;overflow-y:auto}.cribbon-ask.is-listening .cribbon-input::placeholder{color:var(--ink-soft)}.cribbon .btn.cribbon-next{grid-area:next;justify-self:end}.cribbon .btn.cribbon-next,.cribbon .cribbon-turn-next .btn{max-width:100%;height:46px;gap:var(--sp-1);padding:0 var(--sp-3) 0 var(--sp-4);border:1.5px solid transparent;font-size:var(--fs-body);font-weight:700;white-space:nowrap;box-shadow:0 6px 16px -8px var(--accent-glow)}.cribbon-turn-next{grid-area:next;display:flex;justify-content:flex-end;min-width:0}.cribbon-turn-next:empty{display:none}.cribbon-turn-next .bc-actions{display:contents}.cribbon .cribbon-turn-next .btn{overflow:hidden;text-overflow:ellipsis}.cribbon-next .icon{font-size:20px}.cribbon-next-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.cribbon .btn.cribbon-next.is-quiet{border-color:var(--accent-outline);background:var(--bg-elev);color:var(--ink);box-shadow:none}.cribbon:has(.cribbon-turn-next:not(:empty))>.cribbon-next{display:none}.cribbon:has(.cribbon-turn.is-busy)>.cribbon-next{visibility:hidden}.cribbon-turn-tray,.cribbon-open{position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:calc(100% - var(--sp-4));z-index:-1;max-height:min(calc(var(--vv-height, 100dvh) * .6),470px);border:1px solid var(--accent-outline);border-bottom:0;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--bg-elev);box-shadow:var(--shadow-md);animation:cribbon-tray-in var(--t-medium) var(--easing)}@keyframes cribbon-tray-in{0%{opacity:0;transform:translateY(32px)}}@media(prefers-reduced-motion:reduce){.cribbon-turn-tray,.cribbon-open{animation:none}}.cribbon-turn-tray{display:flex;flex-flow:row wrap;align-content:flex-start;gap:var(--sp-2) var(--sp-3);overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-4) var(--sp-4) calc(var(--sp-4) + var(--sp-4))}.cribbon-turn-tray:empty,.cribbon.is-open .cribbon-turn-tray{display:none}.cribbon-turn-tray>*{flex:1 1 100%;margin:0}.cribbon-turn-tray>.bc-option{flex:1 1 15rem;display:flex;flex-direction:column;min-width:0}.cribbon-turn-tray .bc-option-foot{margin-top:auto;padding-top:var(--sp-2)}.cribbon-turn-tray .bc-option .btn-primary{border:1px solid var(--accent-outline);background:var(--bg-elev);color:var(--ink);box-shadow:none}.cribbon.is-hidden{display:flex;justify-content:center;padding:0;border:0;background:none;box-shadow:none;pointer-events:none}.cribbon.is-hidden>:not(.cribbon-handle){display:none}.cribbon.is-hidden .cribbon-handle{position:relative;inset:auto;transform:none;pointer-events:auto}.bar-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.bar-buttons .btn.btn-sm{min-height:44px;gap:var(--sp-1);padding:0 var(--sp-4);font-size:var(--fs-body);font-weight:700}.bar-buttons .btn.btn-primary{box-shadow:0 6px 16px -8px var(--accent-glow)}.cribbon-open{max-height:min(calc(var(--vv-height, 100dvh) * .62),620px);display:flex;flex-direction:column;overflow:hidden;padding-bottom:var(--sp-4)}.cribbon-open-head{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--divider)}.cribbon-open-head strong{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-serif);font-size:var(--fs-h3)}.cribbon-guide{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-2);font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.cribbon-open .bld-compass-settings{position:static}.cribbon-open .cds-pop{left:var(--sp-2);right:var(--sp-2);width:auto}.cribbon-history{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-3) var(--sp-4) var(--sp-4)}.chist{display:flex;flex-direction:column;gap:var(--sp-2)}.chist-note{margin:0;padding:var(--sp-2) 0;text-align:center;font-size:var(--fs-caption);color:var(--muted)}.chist-day{margin:var(--sp-3) 0 0;text-align:center;font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chist-at{margin:var(--sp-1) 0 calc(-1 * var(--sp-1));text-align:right;font-size:var(--fs-caption);color:var(--muted)}@media(max-width:999.98px){.cribbon{--compass-size: 80px;--next-w: 190px;grid-template-columns:auto minmax(0,1fr) auto var(--next-w);grid-template-areas:"face line line tools" "face acts acts tools" "face ask talk next"}.cribbon .cwalk-row{flex-wrap:nowrap;margin-top:var(--sp-2);justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:3px}.cribbon .cwalk-row::-webkit-scrollbar{display:none}.cribbon .cwalk-row>.btn{flex:0 0 auto}.cribbon-tool-label{display:none}.cribbon .btn.btn-ghost.cribbon-tool{width:44px;padding:0;justify-content:center}}@media(max-width:767.98px){.cribbon{--compass-size: 60px;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"face line line line" "acts acts acts tools" "ask ask talk next";column-gap:var(--sp-2);padding:var(--sp-3) var(--sp-2) var(--sp-2) var(--sp-3)}.cribbon-face{align-self:start}.cribbon .cwalk-say,.cribbon-turn-line{align-self:center}.cribbon .cwalk-row{-webkit-mask-image:linear-gradient(to right,var(--ink) calc(100% - 20px),transparent);mask-image:linear-gradient(to right,var(--ink) calc(100% - 20px),transparent)}.cribbon .cwalk-hear{width:44px;padding:0;justify-content:center}.cribbon .cwalk-hear .icon{font-size:21px}.cwalk-hear-label{display:none}.cribbon-tools{flex-direction:row;align-self:end;gap:0;margin-top:var(--sp-2)}.cribbon .cribbon-mic{width:46px;padding:0}.cribbon-mic-label,.cribbon .cribbon-grow{display:none}.cribbon .btn.cribbon-next,.cribbon .cribbon-turn-next .btn{padding:0 var(--sp-3) 0 var(--sp-4);font-size:var(--fs-small)}.cribbon-turn-tray,.cribbon-open{left:0;right:0}.cribbon-turn-tray{max-height:calc(var(--vv-height, 100dvh) * .62);padding-inline:var(--sp-3)}.cribbon-turn-tray>.bc-option{flex-basis:100%}.cribbon-open{max-height:calc(var(--vv-height, 100dvh) * .62)}.cribbon-open-head{padding-left:var(--sp-3)}.cribbon-open-head strong{font-family:inherit;font-size:var(--fs-body-lg)}:root[data-keyboard] .cribbon.is-hidden,:root[data-keyboard] .cribbon .cwalk-row,:root[data-keyboard] .cribbon .cribbon-tools,:root[data-keyboard] .cribbon .btn.cribbon-next,:root[data-keyboard] .cribbon-turn-next,:root[data-keyboard] .cribbon-turn-tray{display:none}:root[data-keyboard] .cribbon:not(:has(.cribbon-input:focus)) .cribbon-ask,:root[data-keyboard] .cribbon:not(:has(.cribbon-input:focus)) .cribbon-mic{display:none}:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cribbon-face,:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cwalk-say,:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cribbon-turn-line{display:none}:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cribbon-ask{grid-column:1 / 4}:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cribbon-mic{grid-column:4}:root[data-keyboard] .cribbon:has(.cribbon-input:focus) .cribbon-grow{display:inline-flex}:root[data-keyboard] .cribbon.is-big .cribbon-input{min-height:calc(var(--vv-height, 100dvh) * .5)}:root[data-keyboard] .cribbon .clamp-text{max-height:2lh}}/**
 * newGreetlet.css — the New Greetlet page (/new), DESIGN_SPEC §3.6.7.
 *
 * Tokens only ("Quiet Gallery, Living Compass", design-system.css). The kinds
 * are the app's one card (design-system.css §5f) — this file only lays them
 * out. Every control is ≥44px.
 *
 * @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
 */.ng-page{container:ng-page / inline-size;min-width:0;width:100%;max-width:1040px;margin:0 auto}@media(min-width:1024px){.ng-page,.cshell-page{grid-column:1;grid-row:1}}@media(max-width:1023px){.ng-page{transition:padding-bottom var(--t-slow) var(--easing)}.ng-page{padding-bottom:calc(var(--player-height, 0px) + var(--ng-dock-h))}}.ng-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin:0 0 var(--sp-4)}.ng-title{font-family:var(--font-serif);font-size:var(--fs-h1);line-height:1.15;margin:0;color:var(--ink)}.ng-page .btn.ng-customize{flex:0 0 auto;min-height:44px;gap:var(--sp-1)}.ng-coming{margin-top:var(--sp-6);min-width:0}.ng-coming-head{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:var(--fs-small);font-weight:700;color:var(--ink-soft)}.ng-coming-head .icon{color:var(--accent)}.ng-coming-rail{position:relative;display:flex;flex-wrap:nowrap;gap:var(--sp-2);min-width:0;max-width:100%;min-height:44px;overflow:hidden;padding:4px;margin:-4px}.ng-coming-rail.is-open{flex-wrap:wrap;overflow:visible}.ng-coming-measure{position:absolute;left:4px;top:4px;display:flex;gap:var(--sp-2);visibility:hidden;pointer-events:none}.ng-coming-measure .ng-coming-pill{flex:0 0 auto;max-width:none}.ng-coming-measure .ng-coming-label,.ng-coming-measure .ng-coming-when{overflow:visible;text-overflow:unset;max-width:none}.ng-coming-pill{flex:0 1 auto;display:inline-flex;flex-direction:row;align-items:center;gap:var(--sp-2);min-width:0;max-width:100%;min-height:44px;padding:var(--sp-2) var(--sp-4);border:1.5px solid var(--divider);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font:inherit;cursor:pointer}.ng-coming-pill .icon{flex-shrink:0;color:var(--accent)}.ng-coming-pill:hover{border-color:var(--accent-outline)}.ng-coming-pill.is-personal{border-color:var(--accent-outline);background:var(--accent-surface)}.ng-coming-pill.is-on{border-color:var(--accent);background:var(--accent-surface);box-shadow:0 0 0 3px var(--accent-outline)}.ng-coming-pill.is-more{flex:0 0 auto}.ng-coming-pill:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.ng-coming-text{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;overflow:hidden}.ng-coming-label,.ng-coming-when{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ng-coming-label{font-size:var(--fs-small);font-weight:700}.ng-coming-when{font-size:var(--fs-caption);color:var(--ink-soft)}.ng-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@container ng-page (min-width: 600px){.ng-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}}@container ng-page (min-width: 920px){.ng-kinds{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}.ng-templates{margin-top:var(--sp-5)}.ng-which{margin:0 0 var(--sp-3);font-family:var(--font-serif);font-size:var(--fs-h2);line-height:1.15;color:var(--ink)}.ng-kinds.is-asking .ds-card{outline:2px solid var(--accent);outline-offset:2px;animation:ng-kind-ask .9s ease 2}@keyframes ng-kind-ask{0%{outline-offset:12px;outline-color:transparent}30%{outline-offset:2px;outline-color:var(--accent)}50%{outline-color:var(--accent-outline)}70%{outline-color:var(--accent)}}.ng-inside{margin-top:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.ng-inside:hover{border-color:var(--border-hover)}.ng-inside>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-2) 0 var(--sp-4);border-radius:inherit;font-size:var(--fs-small);font-weight:700;color:var(--ink);cursor:pointer;list-style:none}.ng-inside>summary::-webkit-details-marker{display:none}.ng-inside>summary:hover{background:var(--surface-hover)}.ng-inside>summary:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.ng-inside[open]>summary{border-bottom:1px solid var(--divider);border-radius:var(--r-lg) var(--r-lg) 0 0}.ng-inside>summary .ng-inside-chevron{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);transition:transform var(--t-snap) var(--easing)}.ng-inside[open]>summary .ng-inside-chevron{transform:rotate(180deg)}.ng-inside-blocks{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:0;padding:var(--sp-3) var(--sp-4)}.ng-kind-block{display:inline-flex;align-items:center;gap:2px;padding:2px var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:600;background:var(--surface-inset);color:var(--ink-soft)}.ng-kind-block .icon{font-size:16px}.ng-inside-note{margin:0;padding:0 var(--sp-4) var(--sp-4);font-size:var(--fs-small);line-height:1.45;color:var(--ink-soft)}.ng-inside-note strong{color:var(--ink)}.ng-page .bar-buttons{margin-top:var(--sp-4)}@media(max-width:767.98px){.ng-page .bar-buttons .btn{flex:1 1 auto}}.ng-sample{margin-top:var(--sp-4)}@media(prefers-reduced-motion:reduce){.ng-kinds.is-asking .ds-card{animation:none}.ng-inside>summary .ng-inside-chevron{transition:none}.ng-page{transition:none}}@media(max-width:768px){.ng-customize-label{display:none}}.ng-stages{display:flex;align-items:flex-start;gap:var(--sp-2);margin:var(--sp-2) 0;cursor:pointer}.ng-stages input{width:44px;height:24px;margin:2px 0 0;flex:none;accent-color:var(--accent)}.ng-stages span{display:flex;flex-direction:column;gap:2px}.ng-stages small{font-size:var(--fs-small);color:var(--ink-soft);line-height:1.4}/**
 * compassGuide.css — the step-by-step strip on the Compass bar
 * (CompassGuide.jsx, DESIGN_SPEC §3.6.8): Compass's words, then its quiet
 * buttons. The bar places them (compassRibbon.css); this sizes them, and the
 * coral next step is the bar's own. Tokens only.
 *
 * @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
 */.cwalk-body{min-width:0}.cwalk-say{margin:0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}.cwalk-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:var(--sp-2);vertical-align:middle;border-radius:var(--r-pill);background:var(--accent);color:var(--bg);font-size:22px}.clamp-text{max-height:3lh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.clamp-text.has-more{-webkit-mask-image:linear-gradient(to bottom,var(--ink) calc(100% - 1.25em),transparent);mask-image:linear-gradient(to bottom,var(--ink) calc(100% - 1.25em),transparent)}.cwalk-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.cwalk-row:empty{display:none}.cwalk .btn.btn-sm{min-height:44px;font-size:var(--fs-small)}.cwalk-chip{background:var(--bg-elev)}.cwalk .btn.cwalk-hear{color:var(--ink-soft)}@media(max-width:1023px){.cwalk-say{font-size:var(--fs-body-lg)}.cwalk .btn.btn-sm{font-size:var(--fs-body)}}/**
 * @fileoverview *What Compass remembers* (GreetletMemory.jsx, DESIGN_SPEC
 * §3.7.11): a quiet button at the head of the Conversation, and the sheet it
 * opens. Tokens only.
 * @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
 */.gmem-open{align-self:center}.gmem{display:flex;flex-direction:column;gap:var(--sp-4)}.gmem h3{margin:0 0 var(--sp-2);font-size:var(--fs-body-lg)}.gmem h4{margin:0 0 var(--sp-1);font-size:var(--fs-body)}.gmem-lead,.gmem-count,.gmem-empty,.gmem-meta{margin:0;color:var(--ink-soft)}.gmem-count,.gmem-empty,.gmem-meta{font-size:var(--fs-caption)}.gmem-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.gmem-switch{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;font-weight:600}.gmem-switch .gmem-meta{margin-left:auto;font-weight:400}.gmem-said,.gmem-about{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.gmem-row{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);background:var(--surface-inset)}.gmem-row.is-compass{background:none;border:1px solid var(--border-soft)}.gmem-row.is-compass .gmem-text{color:var(--ink-soft);font-size:var(--fs-small)}.gmem-about li{overflow-wrap:anywhere}.gmem-block{margin-bottom:var(--sp-3)}.gmem-block dl,dl.gmem-block{display:grid;grid-template-columns:minmax(0,8rem) minmax(0,1fr);gap:var(--sp-1) var(--sp-3);margin:0}.gmem-block dt{color:var(--ink-soft);font-size:var(--fs-caption)}.gmem-block dd{margin:0;overflow-wrap:anywhere}@media(max-width:479.98px){.gmem-block dl,dl.gmem-block{grid-template-columns:minmax(0,1fr)}.gmem-block dd{margin-bottom:var(--sp-2)}}/**
 * startingDetails.css
 *
 * @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
 */.starting-details{width:100%;max-width:840px;margin:0 auto;padding:var(--sp-5);box-sizing:border-box}.starting-details h2{font-family:var(--font-display);margin:var(--sp-3) 0}.starting-details p{overflow-wrap:anywhere}.starting-intro,.starting-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.starting-intro,.starting-help{color:var(--ink-soft);font-size:var(--fs-small)}.starting-notes{margin-top:var(--sp-5);border-radius:var(--r-md)}.starting-notes.is-over{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:4px}.starting-details label{display:block;font-weight:600;margin:var(--sp-3) 0 var(--sp-2)}.starting-details textarea{width:100%;font-size:var(--fs-body)}.starting-actions{margin-top:var(--sp-3)}.starting-site{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.starting-site label{flex:1 1 100%;margin:0}.starting-site input{flex:1 1 260px;min-width:0;min-height:44px;padding:0 var(--sp-3);font:inherit;font-size:16px;color:var(--ink);background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-md)}.starting-site .starting-help{flex:1 1 100%;margin:0}.starting-details .inline-progress{margin-top:var(--sp-3)}.starting-suggestions{padding-top:var(--sp-4);margin-top:var(--sp-4);border-top:1px solid var(--divider)}.starting-compass{border-left:3px solid var(--accent);padding-left:var(--sp-3);background:transparent}.starting-update{margin:var(--sp-3) 0;padding:var(--sp-3);background:var(--surface-inset);border-radius:var(--r-md)}.starting-update dd{margin:0 0 var(--sp-2);white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:767px){.starting-details{padding:var(--sp-3)}.starting-details textarea{font-size:16px}.starting-actions .btn{min-height:44px}}.starting-update>label{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;font-weight:600;cursor:pointer}.starting-update>label input[type=checkbox]{width:24px;height:24px;flex:0 0 24px;margin:0;accent-color:var(--accent)}.starting-update summary{display:list-item;min-height:44px;line-height:44px;font-size:var(--fs-body);font-weight:600;color:var(--accent);cursor:pointer}.starting-request{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3);padding:var(--sp-3);border-left:3px solid var(--accent);background:var(--accent-surface);border-radius:var(--r-md)}.starting-request p{flex:1 1 240px;margin:0}/**
 * builderRail.css — the Builder's deck of blocks (DESIGN_SPEC §3.6.7).
 *
 * The deck's head, its grid and group headings, and the Background strip; the
 * cards themselves (BlockThumb) are the app's one card, design-system.css §5f.
 * Split from builder.css only for size; every selector is .bld-prefixed and
 * every value is a token.
 *
 * @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
 */.bld-rail{container:bld-deck / inline-size;position:relative;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--sp-3) var(--sp-5);background:var(--bg)}.bld-rail>*{flex:0 0 auto;width:100%;max-width:1040px;margin-inline:auto}.bld-rail-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:center;gap:var(--sp-2);min-height:56px;padding-block:var(--sp-3)}.bld-rail .btn.bld-pill{flex:0 0 auto;min-height:44px;padding:0 var(--sp-4);gap:var(--sp-1);border:1.5px solid var(--edge);border-radius:var(--r-pill);background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink);font-size:var(--fs-body);font-weight:700;white-space:nowrap}.bld-rail .btn.bld-pill .icon{font-size:20px}.bld-rail .btn.bld-pill:hover:not(:disabled){border-color:var(--accent);background:var(--accent-surface)}.bld-rail .btn.bld-pill[aria-pressed=true]{border-color:var(--ink)}.bld-rail .btn.bld-pill:is(.bld-finish,.bld-add,.bld-remove){min-width:12.5em;justify-content:center}.bld-rail-head .bld-exit{justify-self:start;max-width:100%;min-width:0}.bld-exit-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.bld-rail-head .bld-finish{justify-self:end}.bld-head-mid{display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center}.bld-head-mid h1{margin:0;font-size:var(--fs-body-lg);font-weight:700;line-height:var(--lh-tight)}.bld-title{width:100%;min-width:0;min-height:32px;padding:0 var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:600;text-align:center;text-overflow:ellipsis}.bld-title:hover{border-color:var(--divider)}.bld-title:focus{outline:none;border-color:var(--accent);background:var(--surface)}.bld-rail-progress{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) 0 var(--sp-3)}.bld-progress-bar{display:block;flex:1 1 auto;height:6px;border-radius:var(--r-pill);background:var(--surface-inset);overflow:hidden}.bld-progress-bar>span{display:block;width:calc(var(--bld-pct, 0) * 1%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width var(--t-medium) var(--easing)}.bld-progress{flex:0 0 auto;color:var(--ink-soft);font-size:var(--fs-small);font-weight:600;white-space:nowrap}.bld-staged{margin:0;padding:0 0 var(--sp-2);color:var(--ink-soft);font-size:var(--fs-caption)}.bld-rail-progress .bar-buttons{flex:0 0 auto}@container bld-deck (max-width: 479px){.bld-rail-progress,.bld-rail-tabs{flex-wrap:wrap}.bld-rail-progress .bar-buttons,.bld-rail-tabs .bar-buttons{flex:1 1 100%}.bar-buttons .btn{flex:1 1 auto}}.bld-rail>.bld-bg{position:relative;display:flex;align-items:center;gap:var(--sp-2);min-height:64px;margin-bottom:var(--sp-2);padding:var(--sp-2);border:1px solid var(--edge);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-immersive);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.bld-bg:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.bld-bg-fill{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.bld-bg-fill .gcv-bg{border-radius:inherit}.bld-bg-fill img{width:100%;height:100%;object-fit:cover;filter:blur(3px);transform:scale(1.15)}.bld-bg-fill img.is-sharp{filter:none;transform:none}.bld-bg-name,.bld-bg-change{position:relative;display:flex;align-items:center;gap:var(--sp-2);min-width:0;min-height:44px;padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);border-radius:var(--r-pill);background:color-mix(in srgb,var(--bg-elev) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-sm);font-weight:600;line-height:1.2}.bld-bg-change{flex:0 0 auto;margin-left:auto;padding-inline:var(--sp-4);border:1px solid var(--edge)}.bld-bg-name>.icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-pill);background:var(--surface-inset)}.bld-bg-name>span:last-child{display:flex;flex-direction:column;min-width:0}.bld-bg-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:var(--fs-caption);font-weight:400}.bld-bg:hover .bld-bg-change{border-color:var(--ink)}@container bld-deck (max-width: 479px){.bld-rail-head{grid-template-columns:minmax(0,1fr) auto}.bld-head-mid{grid-column:1 / -1;grid-row:2}.bld-rail .btn.bld-pill{padding:0 var(--sp-3);font-size:var(--fs-small)}.bld-rail .btn.bld-pill.bld-exit{padding-left:var(--sp-2)}.bld-rail .btn.bld-pill .icon,.bld-rail .bld-view-seg.ds-seg>button .icon{font-size:18px}.bld-rail .bld-view-seg.ds-seg>button{padding:0 var(--sp-3);font-size:var(--fs-small)}}@container bld-deck (max-width: 359px){.bld-rail .bld-view-seg.ds-seg>button .icon{display:none}}.bld-band{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.bld-band{margin-top:var(--sp-2)}@container bld-deck (min-width: 600px){.bld-band{grid-template-columns:repeat(3,minmax(0,1fr))}}@container bld-deck (min-width: 920px){.bld-band{grid-template-columns:repeat(4,minmax(0,1fr))}}.bld-band-head{grid-column:1 / -1;position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:28px;padding:var(--sp-2) var(--sp-1) 0}.bld-eyebrow{font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.bld-row.is-empty .ds-card-sub{color:var(--muted)}.bld-row.is-failed .ds-card-sub{color:var(--status-error)}.bld-row[data-type=song] .ba-svg{width:162px;max-width:100%}.bld-play{position:absolute;top:var(--sp-4);left:10px;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--accent);color:var(--text-on-accent);cursor:pointer}.bld-play:hover{background:var(--accent-hover)}.bld-rail-tabs{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-3)}.bld-view-seg.ds-seg{flex:0 0 auto;box-sizing:border-box;height:44px;padding:3px;border-color:var(--edge);background:color-mix(in srgb,var(--ink) 10%,transparent)}.bld-view-seg.ds-seg>button{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:0;padding:0 var(--sp-4);font-size:var(--fs-body);font-weight:700}.bld-view-seg.ds-seg>button .icon{font-size:20px}.bld-view-seg.ds-seg>button[aria-pressed=true]{cursor:default}.bld-rail-tabs .btn.bld-pill.bld-add{margin-left:auto;border-color:var(--accent-outline);background:var(--accent-surface);color:var(--accent)}.bld-rail-tabs .btn.bld-pill.bld-add:hover{border-color:var(--accent)}.bld-view-h{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--sp-2)}.bld-view-h p{grid-column:1 / -1}.bld-view-h h2{margin:0;font-family:var(--font-serif);font-size:var(--fs-h2);line-height:var(--lh-tight)}.bld-view-h p{margin:var(--sp-1) 0 var(--sp-3);color:var(--ink-soft);font-size:var(--fs-small);line-height:var(--lh-body)}.bld-rail-tools{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-top:var(--sp-4)}.bld-rail-tools .btn{min-height:44px;gap:var(--sp-1)}/**
 * guestList.css — the guest list in the Builder and the Event overview (DESIGN_SPEC §3.43)
 *
 * @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
 */.gl{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:var(--sp-6)}.gl-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.gl-head h2{margin:0;font-size:var(--fs-h2)}.gl-empty{margin:0;color:var(--muted);font-size:14px}.gl-chips{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.gl-chips .pill-btn b{font-weight:700}.gl-search{min-height:36px;min-width:160px;flex:1 1 160px;border:1px solid var(--edge);border-radius:var(--r-md);padding:0 var(--sp-3);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:14px}.gl-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-outline)}.gl-line{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap;color:var(--muted);font-size:13px}.gl-party{background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.gl-party-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--surface-inset)}.gl-party-name{display:flex;flex-direction:column;min-width:0;flex:1 1 200px}.gl-party-name b{font-weight:600}.gl-party-name small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}.gl-inv{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.gl-inv.is-opened{color:var(--confirm)}.gl-inv.is-not_invited{color:var(--warn)}.gl-party-edit{margin-left:auto}.gl-remove{color:var(--status-error)}.gl-rows{list-style:none;margin:0;padding:0}.gl-row{display:grid;grid-template-columns:minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--divider);font-size:14px}.gl-row:has(.gl-form){display:block}.gl-name{display:flex;align-items:center;gap:var(--sp-2);min-width:0;flex-wrap:wrap}.gl-name b{font-weight:600}.gl-tag{font-size:11px;font-weight:600;padding:1px 7px;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);white-space:nowrap}.gl-tag.is-review{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn-fg)}.gl-answer{font-weight:600;white-space:nowrap}.gl-answer.is-yes{color:var(--confirm)}.gl-answer.is-no{color:var(--status-error)}.gl-answer.is-waiting{color:var(--muted)}.gl-cell{color:var(--ink-soft);min-width:0;overflow:hidden;text-overflow:ellipsis}.gl-diet.has-needs{color:var(--warn-fg);display:inline-flex;align-items:center;gap:var(--sp-1)}.gl-diet .icon{color:var(--warn)}.gl-form{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) 0}.gl-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.gl-form-row .cds-label{margin:0}.gl-form-acts{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.gl-form-acts .gl-remove{margin-left:auto}.gl-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:0 var(--sp-3);margin-bottom:var(--sp-2)}.gl-person-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.gl-person-row .cds-input{flex:1}.gl-person-row .sse-check{margin:0;white-space:nowrap}.gl-hidden{display:none}.gl-out{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.gl-out h3{margin:0;font-size:var(--fs-body)}.gl-out-acts{display:flex;gap:var(--sp-2);flex-wrap:wrap}.gl-note{margin:0;color:var(--muted);font-size:13px}.gl-uses summary{cursor:pointer;color:var(--ink-soft);font-size:13px;font-weight:600}.gl-uses p{margin:var(--sp-2) 0 0;color:var(--muted);font-size:13px}.gl-doors,.gl-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.gl-door{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-3) var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);color:var(--ink);font:inherit;cursor:pointer}.gl-door:hover{background:var(--surface-hover)}.gl-door:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.gl-door>.icon{color:var(--accent)}.gl-door img{width:40px;height:40px;border-radius:var(--r-md);object-fit:cover}.gl-door>span:last-child{display:flex;flex-direction:column;min-width:0}.gl-door b{font-weight:600}.gl-door small{color:var(--muted);font-size:12px}.gl-preview{list-style:none;margin:0;padding:0;max-height:40vh;overflow:auto;border:1px solid var(--divider);border-radius:var(--r-md)}.gl-preview li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--divider);font-size:14px}.gl-preview li:first-child{border-top:0}.gl-preview-name{display:flex;flex-direction:column;min-width:0}.gl-preview-name small{color:var(--muted);font-size:12px}.gl-state{font-size:12px;font-weight:600;white-space:nowrap;color:var(--confirm)}.gl-preview li.is-duplicate .gl-state{color:var(--muted)}.gl-preview li.is-invalid .gl-state{color:var(--status-error)}.gl-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2) var(--sp-3)}.gl-map .cds-label{margin:0}@media(max-width:720px){.gl-row{grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-1) var(--sp-3)}.gl-row>.gl-cell{grid-column:1 / -1;font-size:13px}.gl-row>.gl-cell:empty{display:none}.gl-form-row{grid-template-columns:1fr}}/**
 * gallery.css — the community-Gallery tile grammar, shared by every surface
 * that browses it (galleryTiles.jsx; COVER_SECTION_REDESIGN_PLAN §6.3 + §6.4).
 *
 * Imported by the module, not by a screen (the screens/Help.jsx + help.css
 * precedent), so it loads with the tiles and prototype-styles.css stays
 * untouched. W4 renamed this from coverGallerySheet.css when the sheet stopped
 * being the only consumer: the in-builder picker, the events tower's "From the
 * gallery" tab, and the /gallery screen all paint from this one file.
 *
 * Tokens only — every colour, radius, spacing, duration and easing comes from
 * the design system (design-system.css / prototype-styles.css :root), so both
 * themes track automatically and `npm run lint:design` stays clean. The
 * scrim/overlay chrome is expressed as color-mix over --ink / --bg rather than
 * a pinned rgba, so it inverts correctly in dark mode instead of staying
 * "pinned light".
 *
 * @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
 */.gal-on-chassis{--gal-ink: currentColor;--gal-ink-soft: color-mix(in srgb, currentColor 74%, transparent);--gal-surface: color-mix(in srgb, currentColor 9%, transparent);--gal-surface-hover: color-mix(in srgb, currentColor 16%, transparent);--gal-edge: color-mix(in srgb, currentColor 24%, transparent);--gal-divider: color-mix(in srgb, currentColor 18%, transparent);--gal-error: color-mix(in srgb, var(--status-error) 55%, currentColor)}.gal-search{position:relative;display:flex;align-items:center;margin-bottom:var(--sp-2);border:1px solid var(--gal-edge, var(--edge));border-radius:var(--r-md);background:var(--gal-surface, var(--bg-elev))}.gal-search:focus-within{border-color:var(--accent)}.gal-search-icon{flex:0 0 auto;margin-left:var(--sp-3);color:var(--gal-ink-soft, var(--ink-soft));pointer-events:none}.gal-search-input{flex:1 1 auto;min-width:0;min-height:44px;padding:0 var(--sp-2);border:0;background:transparent;font-family:inherit;font-size:16px;color:var(--gal-ink, var(--ink))}.gal-search-input::placeholder{color:var(--gal-ink-soft, var(--ink-soft))}.gal-search-input:focus-visible{outline:none}.gal-search-input::-webkit-search-cancel-button,.gal-search-input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.gal-search-clear{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--r-md);background:transparent;color:var(--gal-ink-soft, var(--ink-soft));cursor:pointer}.gal-search-clear:hover{color:var(--gal-ink, var(--ink))}.gal-search-clear:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cgs-sheet .assist-sheet-body{flex:1 1 auto;min-height:0;padding-top:0}.cgs-controls{position:sticky;top:0;z-index:1;background:var(--bg);margin:0 calc(var(--sp-4) * -1);padding:var(--sp-3) var(--sp-4) var(--sp-2);border-bottom:1px solid var(--divider)}.cgs-controls .gal-search,.cgs-controls .cps-seg,.cgs-controls .cgs-tag-chip{margin-bottom:var(--sp-2)}.cgs-controls .my-cards-toolbar{margin:0;gap:10px}.cgs-footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--bg);border-top:1px solid var(--divider)}.cgs-footer-hint{margin:0;font-size:var(--fs-caption);color:var(--ink-soft);text-align:center}.cgs-footer-actions{display:flex;gap:var(--sp-2)}.cgs-footer-actions .btn{flex:1;min-height:48px}.gal-tile-skeleton{border-radius:var(--r-lg)}.ft-img-btn:disabled{cursor:default}.gal-tile.is-pickable .gal-face-front:hover,.gal-tile.is-selected .gal-face-front{border-color:var(--accent)}.gal-used{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-caption);font-weight:700;line-height:1.4;color:var(--bg);background:color-mix(in srgb,var(--ink) 82%,transparent);pointer-events:none}.gal-used .icon{font-size:var(--fs-small)}.gal-picked{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r-pill);color:var(--text-on-accent);background:var(--accent);pointer-events:none}.gal-prompt{flex:1 1 auto;min-height:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;font-family:inherit;font-size:var(--fs-caption);line-height:1.45;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;text-align:left;background:transparent;border:0;cursor:copy}.gal-prompt:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-sm)}.gal-prompt.is-copied{color:var(--accent)}.gal-copy-hint{flex:0 0 auto;font-size:10px;letter-spacing:.04em;color:var(--ink-soft)}.gal-back-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--sp-2);padding-right:var(--ft-flip-clear);flex:0 0 auto}.gal-zoom{position:absolute;left:6px;bottom:6px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:zoom-in;color:var(--bg);border:1px solid color-mix(in srgb,var(--bg) 45%,transparent);background:color-mix(in srgb,var(--ink) 76%,transparent)}.gal-lightbox{z-index:var(--z-dialog)}.gal-lightbox-img{max-width:min(100%,900px);max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--r-md);box-shadow:var(--shadow-lg);cursor:default}.gal-lightbox-cap{position:absolute;inset-inline:0;bottom:0;display:flex;flex-direction:column;gap:var(--sp-1);max-width:62ch;margin:0 auto;padding:var(--sp-4) var(--sp-4) max(var(--sp-4),env(safe-area-inset-bottom));text-align:center;color:var(--bg);text-shadow:0 1px 3px color-mix(in srgb,var(--ink) 70%,transparent);pointer-events:none}.gal-lightbox-cap strong{font-family:var(--font-serif);font-size:var(--fs-body);font-weight:600}.gal-lightbox-cap span{font-size:var(--fs-caption);line-height:1.45;opacity:.88}.gal-lightbox-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:var(--bg);border:1px solid color-mix(in srgb,var(--bg) 45%,transparent);background:color-mix(in srgb,var(--ink) 76%,transparent)}.gal-back-btn{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);cursor:pointer;color:var(--ink-soft);border:1px solid var(--edge);background:var(--bg-elev);transition:background var(--t-instant) var(--easing),color var(--t-instant) var(--easing),border-color var(--t-instant) var(--easing)}.gal-back-btn:hover:not(:disabled){background:var(--accent-surface);border-color:var(--accent);color:var(--accent)}.gal-back-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gal-back-btn:disabled{cursor:default}.gal-back-btn.is-done{color:var(--confirm);border-color:var(--confirm)}.gal-back-btn--go{color:var(--accent);border-color:var(--accent)}.gal-back-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--status-error) 10%,transparent);border-color:var(--status-error);color:var(--status-error)}.gal-more{display:flex;justify-content:center;margin-top:var(--sp-4)}.gal-more-btn{min-height:44px}.gal-hint{font-size:var(--fs-caption);margin-top:var(--sp-3)}.gal-hint .icon{vertical-align:text-bottom}.gal-on-chassis .gal-more-btn,.gal-on-chassis .gal-failed-btn{color:var(--gal-ink);border-color:var(--gal-edge);background:var(--gal-surface)}.gal-on-chassis .gal-more-btn:hover:not(:disabled),.gal-on-chassis .gal-failed-btn:hover:not(:disabled){background:var(--gal-surface-hover)}.gal-on-chassis .gal-hint{color:var(--gal-ink-soft)}.gal-failed{margin-top:var(--sp-4);padding:var(--sp-4);border:1px solid var(--gal-edge, var(--edge));border-radius:var(--r-lg);background:var(--gal-surface, var(--bg-elev));text-align:center}.gal-failed-msg{margin:0 0 var(--sp-1);font-size:var(--fs-body);font-weight:600;color:var(--gal-error, var(--status-error))}.gal-failed-hint{margin:0 0 var(--sp-3);font-size:var(--fs-caption);color:var(--gal-ink-soft, var(--ink-soft))}.gal-failed-btn{min-height:44px}@container (max-width: 300px){.gal-face-back{overflow-y:auto;overscroll-behavior:contain}.gal-prompt{flex:0 0 auto;overflow-y:visible}}@media(prefers-reduced-motion:reduce){.gal-flipper,.gal-flip{transition:none}.gal-flip:active{transform:none}.gal-back-btn{transition:none}}/**
 * @fileoverview Focused Cover Studio task forms and painting-style introduction.
 * @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
 */.cst-panel.cst-task-panel{gap:var(--sp-3);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.cst-task-heading{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-2)}.cst-task-panel .cst-panel-q{font-family:var(--font-sans);font-size:var(--fs-h2);line-height:var(--lh-tight);font-weight:700}.cst-task-panel .cst-panel-sub{line-height:var(--lh-body)}.cst-task-panel .cst-task-note{font-size:var(--fs-caption)}.cst-task-actions{padding-top:var(--sp-2)}.cst-task-panel .cst-idea-tools{align-items:flex-start}.cst-task-panel .cst-idea-tools .btn{max-width:100%;white-space:normal;text-align:left}.cst-destination .btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-surface)}.cst-scene-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.cst-task-panel .cst-slot-remove{width:44px;height:44px}.cst-scene-preview{max-width:20rem}.cst-scene-preview img{display:block;width:100%;max-height:12rem;object-fit:contain;border-radius:var(--r-md);background:var(--surface-inset)}.cst-style-intro{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}.cst-style-intro .cps-hint{margin:0}.cst-style-selection{display:flex;align-items:center;gap:var(--sp-2);margin:0;color:var(--accent);font-size:var(--fs-small);font-weight:600}@media(max-width:479px){.cst-task-panel .cst-panel-q{font-size:var(--fs-h3)}}/**
 * startChoices.css — the Cover Studio's source deck, outside the canvas.
 *
 * @fileoverview Scoped layout for the app's one card (design-system.css §5f,
 * `--whole`) with a taller plate and a price. `.cst-tile` on the cards is only
 * the walk's hook (useEditorWalk). Source methods are equal alternatives,
 * never a checklist.
 * Native option illustrations play once, then rest; the selected existing
 * scene stays still while people enter. Reduced motion shows final artwork.
 * @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
 */.cst-start.cst-start-choices{position:static;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--sp-5);width:100%;min-width:0;max-width:880px;margin-inline:auto;padding:0;overflow:visible;container-type:inline-size}.cst-source-intro{display:grid;gap:var(--sp-2)}.cst-source-eyebrow{margin:0;color:var(--ink-soft);font-size:var(--fs-caption);font-weight:600}.cst-source-heading{margin:0;color:var(--ink);font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.15}.cst-source-description{max-width:55ch;margin:0;color:var(--ink-soft);font-size:var(--fs-body);line-height:1.5}.cst-start-choices .cst-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.cst-start-choices .cst-source-card:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:3px}.cst-start-choices .cst-source-art{width:100%;height:104px}.cst-start-choices img.cst-source-art{object-fit:cover}.cst-source-art .ba-svg{max-width:280px;margin-inline:auto}.cst-source-recommended{position:absolute;top:var(--sp-2);left:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:600;line-height:1.2}.cst-source-meta{margin-top:auto;padding-top:var(--sp-1);color:var(--ink-soft);font-size:var(--fs-caption);line-height:1.4}.cst-source-meta .credit-cost{margin-left:0}.cst-source-meta:empty{display:none}.cst-source-peek{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1);width:104px;height:100%;padding:var(--sp-2);margin-inline:auto}.cst-source-peek img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;border-radius:var(--r-sm)}.cst-scene-choice-art{width:100%;height:76px}.cst-scene-choice-art .ba-svg{max-width:280px;margin-inline:auto}.cst-option-art .cst-motion{transform-box:fill-box;transform-origin:center;animation-duration:4.6s;animation-timing-function:var(--easing);animation-iteration-count:infinite;animation-fill-mode:both}.cst-paint-result{animation-name:cst-paint-result}.cst-paint-brush{opacity:0;animation-name:cst-paint-brush}.cst-scene-build{animation-name:cst-scene-build}.cst-scene-arrivals{animation-name:cst-scene-arrivals}.cst-upload-photo{animation-name:cst-upload-photo}.cst-upload-arrow{animation-name:cst-upload-arrow}.cst-gallery-left{animation-name:cst-gallery-left}.cst-gallery-middle{animation-name:cst-gallery-middle}.cst-gallery-right{animation-name:cst-gallery-right}.cst-gallery-choice{animation-name:cst-gallery-middle}.cst-source-peek .cst-gallery-choice:nth-child(2n){animation-name:cst-gallery-right}.cst-blank-colour{animation-name:cst-gallery-left}.cst-blank-sheet{animation-name:cst-gallery-middle}.cst-blank-pattern{animation-name:cst-blank-pattern}@keyframes cst-paint-result{0%,12%{opacity:0}42%{opacity:.45}80%,to{opacity:1}}@keyframes cst-paint-brush{0%,8%{opacity:0;transform:translate(-45px,30px) rotate(-12deg)}15%{opacity:1;transform:translate(-45px,30px) rotate(-12deg)}32%{opacity:1;transform:translate(-15px,5px) rotate(8deg)}50%{opacity:1;transform:translate(-38px,10px) rotate(-8deg)}70%{opacity:1;transform:translate(-8px) rotate(8deg)}85%,to{opacity:0;transform:translateY(-3px)}}@keyframes cst-scene-build{0%,12%{opacity:0;transform:scale(.72)}62%,to{opacity:1;transform:scale(1)}}@keyframes cst-scene-arrivals{0%,18%{opacity:0;transform:translate(-28px,-3px) scale(.9)}72%,to{opacity:1;transform:translate(0) scale(1)}}@keyframes cst-upload-photo{0%,16%{opacity:0;transform:translate(-26px,7px) rotate(-8deg)}62%,to{opacity:1;transform:translate(0) rotate(0)}}@keyframes cst-upload-arrow{0%,22%{opacity:0;transform:translateY(12px)}60%,to{opacity:1;transform:translateY(0)}}@keyframes cst-gallery-left{0%,10%{opacity:0;transform:translate(16px,8px) rotate(8deg)}58%,to{opacity:1;transform:translate(0) rotate(0)}}@keyframes cst-gallery-middle{0%,20%{opacity:0;transform:translateY(9px)}64%,to{opacity:1;transform:translateY(0)}}@keyframes cst-gallery-right{0%,28%{opacity:0;transform:translate(-16px,8px) rotate(-8deg)}70%,to{opacity:1;transform:translate(0) rotate(0)}}@keyframes cst-blank-pattern{0%,40%{opacity:0;transform:translateY(3px)}82%,to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cst-option-art .cst-motion{animation:none}}@container (min-width: 680px){.cst-start-choices .cst-source-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cst-start-choices .cst-source-art{height:120px}}@container (max-width: 359px){.cst-start-choices .cst-source-grid{gap:var(--sp-2)}.cst-start-choices .cst-source-art{height:88px}.cst-source-recommended{font-size:var(--fs-caption);padding:2px var(--sp-1)}}.cst-inspiration{width:100%;max-width:360px;display:grid;gap:var(--sp-3);margin:0 auto}.cst-inspiration-cover{position:relative;width:100%;aspect-ratio:3 / 4;container-type:inline-size;border-radius:var(--r-md);overflow:hidden;background:var(--share-paper);box-shadow:var(--shadow-lg)}.cst-inspiration-cover>img{display:block;width:100%;height:100%;object-fit:cover}.cst-inspiration-words{position:absolute;inset:9% 9% auto;display:flex;flex-direction:column;align-items:center;gap:3cqw;text-align:center;color:var(--share-ink)}.cst-inspiration-kicker{font-family:var(--font-sans);font-size:2.2cqw;line-height:1.4;letter-spacing:.15em;font-weight:600}.cst-inspiration-title{font-family:var(--font-display);font-size:10cqw;line-height:1.02;font-weight:700;letter-spacing:-.035em;white-space:pre-line}.cst-inspiration-subtitle{font-family:var(--font-sans);font-size:2.7cqw;line-height:1.4}.cst-inspiration-cover[data-kind=song] .cst-inspiration-words{color:var(--share-paper)}.cst-inspiration-cover[data-kind=song] .cst-inspiration-title{font-size:9cqw}.cst-inspiration-cover[data-kind=greeting_card] .cst-inspiration-words{top:18%}.cst-inspiration-cover[data-kind=greeting_card] .cst-inspiration-title,.cst-inspiration-cover[data-kind=invitation] .cst-inspiration-title{font-family:var(--font-serif);font-weight:600;letter-spacing:-.02em}.cst-inspiration-cover[data-kind=invitation] .cst-inspiration-words{top:33%;gap:5cqw}.cst-inspiration-cover[data-kind=crew] .cst-inspiration-words{inset:auto 8% 7%;color:var(--share-paper);gap:2cqw}.cst-inspiration-cover[data-kind=crew] .cst-inspiration-title{font-size:6.5cqw;letter-spacing:-.025em}.cst-inspiration-cover[data-kind=promo] .cst-inspiration-words{align-items:flex-start;text-align:left}.cst-inspiration-cover[data-kind=promo] .cst-inspiration-title{font-size:10.5cqw}.cst-inspiration figcaption{display:grid;gap:var(--sp-1);color:var(--ink-soft);font-size:var(--fs-caption);line-height:1.4;text-align:center}.cst-inspiration figcaption strong{font-weight:600}/**
 * coverStage.css
 *
 * @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
 */.cst-frame{flex:1 1 auto;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-2) var(--sp-4);overflow:hidden}.cst-square{position:relative;flex:0 0 auto;width:0;height:0;border-radius:var(--r-lg);overflow:visible;background:var(--surface-inset);box-shadow:var(--shadow-md)}.cst-square.is-empty{overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,var(--accent-surface),transparent 62%),var(--bg-elev);box-shadow:var(--shadow-sm);outline:2px dashed var(--accent-outline);outline-offset:-2px}.cst-square.is-fitting{touch-action:none;cursor:grab}.cst-square.is-fitting:active{cursor:grabbing}.cst-canvas{display:block;width:100%;height:100%;border-radius:inherit}.cst-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cst-guides{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cst-guide-under,.cst-guide-line{fill:none;vector-effect:non-scaling-stroke}.cst-guide-under{stroke:color-mix(in srgb,var(--share-stage) 55%,transparent);stroke-width:3px}.cst-guide-line{stroke:var(--share-paper);stroke-width:1.5px;stroke-dasharray:6 5}.cst-guide-note{position:absolute;left:var(--sp-2);bottom:var(--sp-2);max-width:calc(100% - var(--sp-4));margin:0;padding:4px var(--sp-2);border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 62%,transparent);color:var(--share-paper);font-size:var(--fs-caption);line-height:1.3}.cst-words{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cst-word{position:absolute;pointer-events:auto;touch-action:none;margin:0;padding:0;border:1px dashed color-mix(in srgb,var(--share-paper) 45%,transparent);border-radius:var(--r-sm);background:transparent;cursor:grab;-moz-appearance:none;appearance:none;-webkit-appearance:none;overflow:visible}.cst-word:active{cursor:grabbing}.cst-word.is-sel{border-width:2px;border-style:solid;border-color:var(--share-paper);box-shadow:0 0 0 1px color-mix(in srgb,var(--share-stage) 55%,transparent)}.cst-word.is-editing{cursor:text}.cst-grip{position:absolute;z-index:2;width:12px;height:12px;padding:0;border:2px solid var(--accent);border-radius:var(--r-pill);background:var(--share-paper);pointer-events:auto;touch-action:none;cursor:nwse-resize}.cst-grip:after{content:"";position:absolute;top:-16px;right:-16px;bottom:-16px;left:-16px}.cst-grip-tl{top:0;left:0;transform:translate(-50%,-50%)}.cst-grip-tr{top:0;right:0;transform:translate(50%,-50%)}.cst-grip-bl{bottom:0;left:0;transform:translate(-50%,50%)}.cst-grip-br{bottom:0;right:0;transform:translate(50%,50%)}.cst-grip-rot{top:-28px;left:50%;transform:translate(-50%,-50%);background:var(--accent);border-color:var(--share-paper);cursor:grab}.cst-grip-rot:before{content:"";position:absolute;left:50%;top:100%;width:2px;height:22px;margin-left:-1px;background:var(--accent);pointer-events:none}.cst-grip-rot:after{top:-16px;right:-16px;bottom:0;left:-16px}.cst-grip-w{width:8px;height:22px;border-radius:var(--r-sm);cursor:ew-resize}.cst-grip-ml{top:50%;left:0;transform:translate(-50%,-50%)}.cst-grip-mr{top:50%;right:0;transform:translate(50%,-50%)}.cst-word-edit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;margin:0;padding:0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--share-paper);caret-color:var(--share-paper);line-height:1.18;white-space:pre-wrap;overflow:hidden;resize:none;pointer-events:auto}.cst-word:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cst-words.is-locked{pointer-events:none}.cst-snap{position:absolute;pointer-events:none;background:var(--share-paper);opacity:.85}.cst-snap-v{top:0;bottom:0;width:1px;transform:translate(-50%)}.cst-snap-h{left:0;right:0;height:1px;transform:translateY(-50%)}/**
 * coverStudio.css — the Cover Studio's own layout (COVER_STUDIO_PLAN §3).
 *
 * The source deck and focused step controls sit beside a quiet cover preview,
 * then stack on phones. Existing image, type and decoration controls retain
 * their tokens and renderer behaviour. The source deck is the app's one card
 * (design-system.css §5f), laid out in startChoices.css.
 *
 * @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
 */.cst{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.cst-open{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-raised);display:flex;align-items:center;justify-content:center;margin:0;background:var(--bg);color:var(--ink);font-size:var(--fs-body-lg);font-weight:600}.cst-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-4);overflow:hidden}.cst-body>.cst-frame{padding-left:0;padding-right:0}.cst-note{flex:0 0 auto;margin:0;color:var(--ink-soft);font-size:var(--fs-small);text-align:center}.cst-error{flex:0 0 auto;margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--status-error) 14%,transparent);color:var(--ink);font-size:var(--fs-small)}.cst-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.cst .cst-row>.btn,.cst .cst-row>.btn.btn-sm,.cst .cst-panel .btn{min-height:44px}.cst .cst-zoom.btn{min-width:44px;padding-inline:var(--sp-2)}.cst-spent{margin:0;color:var(--ink-soft);font-size:var(--fs-caption)}.cst-panel{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm)}.cst-panel-q{margin:0;font-family:var(--font-serif);font-weight:700;color:var(--ink);font-size:var(--fs-h3)}.cst-panel-sub{margin:0;color:var(--ink-soft);font-size:var(--fs-small);line-height:1.4}.cst-panel-label{font-weight:600;font-size:var(--fs-small);color:var(--ink)}.cst-slots{display:grid;grid-template-columns:repeat(3,minmax(0,9rem));gap:var(--sp-2)}.cst-slot{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.cst-slot-face{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;background:var(--surface-inset)}.cst-slot-face img{width:100%;height:100%;object-fit:contain;display:block}.cst-slot-remove{position:absolute;top:var(--sp-1);right:var(--sp-1);display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);cursor:pointer}.cst-slot-remove:hover{color:var(--accent)}.cst-slot--add{position:relative;aspect-ratio:1;align-items:center;justify-content:center;padding:var(--sp-2);border:1.5px dashed var(--edge);border-radius:var(--r-md);background:var(--surface);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:600;text-align:center;cursor:pointer}.cst-slot--add:hover{border-color:var(--accent);color:var(--accent)}.cst-slot--add:focus-within{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cst-slot--add.is-disabled{opacity:.6;cursor:not-allowed}.cst-slot--add input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.cst-slot-name{width:100%;min-width:0;min-height:44px;padding:0 var(--sp-2);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:var(--fs-body)}.cst-start-q{margin:0;text-align:center;font-family:var(--font-serif);font-weight:700;color:var(--ink);font-size:var(--fs-h2);line-height:1.2}.cst-start-q:after{content:"";display:block;width:3rem;height:2px;margin:var(--sp-2) auto 0;background:var(--accent);border-radius:var(--r-pill)}.cst-stage-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);flex:0 0 auto;flex-wrap:wrap}.cst-stage-row .cst-note{flex:1 1 auto}.cst-ink{width:44px;height:44px;padding:0;border:2px solid var(--edge);border-radius:var(--r-pill);cursor:pointer}.cst-ink.is-on{border-color:var(--accent)}.cst-ink:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cst-ink-any{width:44px;height:44px;display:grid;place-items:center;border:2px solid var(--edge);border-radius:var(--r-pill);overflow:hidden;cursor:pointer}.cst-ink-any input[type=color]{width:48px;height:48px;padding:0;border:0;background:transparent;cursor:pointer}.cst-blank{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;background:var(--bg)}.cst-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2)}.cst-swatch{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-1);min-height:44px;padding:var(--sp-1);border:2px solid var(--edge);border-radius:var(--r-md);background:var(--surface);cursor:pointer}.cst-swatch:hover{border-color:var(--accent)}.cst-swatch:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.cst-swatch canvas{width:100%;aspect-ratio:1;border-radius:var(--r-sm);display:block}.cst-swatch span{font-size:var(--fs-small);color:var(--ink);text-align:center}.cst-row .btn.is-disabled{opacity:.6;pointer-events:none}.cst-add-menu{display:flex;flex-wrap:wrap;gap:var(--sp-2);width:100%}.cst-add-menu .btn{min-height:44px}.cst-more-row{display:flex;align-items:center;gap:var(--sp-3);color:var(--ink);font-size:var(--fs-small)}.cst-more-row input[type=range]{flex:1 1 auto;min-width:0}.cst-size{flex:1 1 7rem;min-width:5.5rem;min-height:44px;display:flex;align-items:center}.cst-size input[type=range]{width:100%;accent-color:var(--accent)}.cst .cover-versions{margin-top:0}.cst .cover-versions-label{font-size:var(--fs-small);font-weight:600;color:var(--ink-soft);margin-bottom:var(--sp-1)}.cst .cover-versions-hint{margin:0 0 var(--sp-1);font-size:var(--fs-caption);color:var(--ink-soft)}.cst .cover-versions-rail{display:flex;gap:var(--sp-2);overflow-x:auto;padding:2px 2px var(--sp-1);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}.cst .cover-version-item{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);width:76px}.cst .cover-version-thumb{position:relative;width:72px;height:72px;min-width:44px;min-height:44px;padding:0;border:2px solid transparent;border-radius:var(--r-md);overflow:hidden;background:var(--surface-hover);cursor:pointer}.cst .cover-version-thumb img{width:100%;height:100%;object-fit:cover;display:block}.cst .cover-version-thumb.is-current{border-color:var(--accent);cursor:default}.cst .cover-version-thumb:not(.is-current):hover{border-color:var(--edge)}.cst .cover-version-thumb:disabled:not(.is-current){opacity:.6;cursor:default}.cst .cover-version-badge{position:absolute;top:3px;right:3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:var(--bg);font-size:var(--fs-caption);font-weight:700;line-height:1}.cst .cover-version-source{font-size:var(--fs-caption);color:var(--ink-soft);text-align:center;max-width:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cst-peek-hold{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;width:100%;height:100%;object-fit:cover;pointer-events:none}.cst-share-ask{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev)}.cst-share-ask .cst-note{flex:1 1 12rem;margin:0;text-align:left}.cst-ink canvas{width:100%;height:100%;border-radius:inherit;display:block;pointer-events:none}.cst textarea.cst-words-box{min-height:calc(2 * 1.4em + 2 * var(--sp-2));line-height:1.4;padding:var(--sp-2) var(--sp-3);white-space:pre-wrap;overflow-wrap:anywhere;resize:vertical}.cst-history{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.cst-history-head{display:flex;align-items:center;gap:var(--sp-2)}.cst-history-title{flex:1 1 auto;font-weight:700;font-size:var(--fs-small);color:var(--ink)}.cst-history-at{min-width:4.5em;text-align:center;font-size:var(--fs-small);color:var(--ink-soft)}.cst-history-rail{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:var(--sp-1)}.cst-history-thumb{position:relative;flex:0 0 auto;width:72px;height:72px;padding:0;border:2px solid var(--divider);border-radius:var(--r-sm);overflow:hidden;background:var(--surface-inset);cursor:pointer}.cst-history-thumb img{width:100%;height:100%;object-fit:cover;display:block}.cst-history-thumb.is-shown{border-color:var(--accent)}.cst-history-thumb.is-kept{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-surface)}.cst-history-badge{position:absolute;left:2px;bottom:2px;padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--fs-caption);font-weight:700}.cst-history-tick{position:absolute;top:2px;right:2px;border-radius:var(--r-pill);background:var(--bg-elev);color:var(--accent)}.cst-history .cst-note{flex:1 1 100%;margin:0}.cst .btn.btn-sm.cst-style-trigger{gap:var(--sp-1)}.cst .btn.btn-sm.cst-style-trigger.is-set{border-color:var(--accent);color:var(--accent);background:var(--accent-surface)}.cst{container:cover-room / inline-size}.cst .cst-workspace{--sticky-lift: var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5);overflow-y:auto;overscroll-behavior:contain;padding:var(--sticky-lift)}.cst .cst-task{min-width:0;outline:none}.cst-task>.cst-wait,.cst-task>.cst-error{margin-bottom:var(--sp-4)}.cst-task>.ds-back{margin-bottom:var(--sp-4)}.cst-task-heading{margin-bottom:var(--sp-5)}.cst-task-heading h2{margin:0 0 var(--sp-2);font-family:var(--font-display);font-size:var(--fs-h2);line-height:1.2}.cst-task-heading p{margin:0;color:var(--ink-soft);font-size:var(--fs-body);line-height:1.5}.cst-cover-actions>.btn{max-width:100%;white-space:normal;text-align:left}.cst-task .editor-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cst-task .editor-step-body{width:100%}.cst-task .editor-step-head{margin-bottom:var(--sp-4)}.cst-preview{container-type:inline-size;display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;align-self:stretch;padding:var(--sp-4);background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-lg)}.cst-preview .cst-frame{flex:none;padding:0;width:100%;height:min(calc(100cqw * 4 / 3),36rem)}.cst-preview-label{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-caption);color:var(--ink-soft)}.cst-stage-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.cst-start-price{margin-top:var(--sp-4);text-align:left}.cst-picture-tools{display:flex;flex-direction:column;gap:var(--sp-4)}.cst-direction{text-align:left;line-height:1.5}.cst-business-brief{display:grid;gap:var(--sp-3)}.cst-business-brief label{display:flex;flex-wrap:wrap;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600}.cst-business-brief label span{font-weight:400;color:var(--ink-soft)}.cst-business-brief input{width:100%;min-width:0;min-height:44px}.cst-disclosure{border-top:1px solid var(--divider);padding-top:var(--sp-3)}.cst-disclosure>summary{cursor:pointer;min-height:44px;padding-block:var(--sp-2);font-weight:600}.cst-disclosure .cst-history{margin-top:var(--sp-3)}.cst-layer-list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.cst-layer-list .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}.cst-layer-list .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-surface)}.cst-task .cst-row{margin-block:var(--sp-3)}.cst .cst-blank{padding:0}.cst-workspace.is-arranging>.cst-preview{order:-1}@container cover-room (min-width: 760px){.cst .cst-workspace{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start;--sticky-lift: var(--sp-6)}.cst-workspace>.cst-preview,.cst-workspace.is-arranging>.cst-preview{position:sticky;top:var(--sp-4);order:0;align-self:start}}@container cover-room (max-width: 380px){.cst .cst-workspace{--sticky-lift: var(--sp-3);gap:var(--sp-4)}.cst-preview{padding:var(--sp-3)}}.cst-wait{display:flex;align-items:center;gap:var(--sp-3)}.cst-wait.is-framed{padding:var(--sp-3) var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset)}.cst-wait .inline-progress{flex:1 1 auto;min-width:0;margin:0}.cst-wait-thumb{flex:none;width:3rem;height:3rem;object-fit:cover;border-radius:var(--r-sm)}.cst-wait-over{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:flex-end;padding:var(--sp-3);border-radius:var(--r-lg);background:color-mix(in srgb,var(--bg) 45%,transparent);pointer-events:auto}.cst-wait-over.is-quiet{background:none;pointer-events:none}.cst-wait-over .cst-wait{display:none;width:100%;pointer-events:auto;background:var(--bg-elev);box-shadow:var(--shadow-md)}.cst-workspace.is-arranging .cst-wait-over .cst-wait{display:flex}.cst-workspace.is-arranging .cst-task>.cst-wait{display:none}.cst-square.is-empty.ai-thinking{outline-color:transparent}@container cover-room (min-width: 760px){.cst-wait-over .cst-wait{display:flex}.cst-task>.cst-wait{display:none}}.cst-stages{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--divider)}.cst-stages h3{margin:0;font-size:var(--fs-body)}.cst-stage-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.cst-stage-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:end;gap:var(--sp-2)}.cst-stage-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--r-md)}.cst-stage-add{display:flex;flex-direction:column;gap:var(--sp-2)}.cst-stage-pictures{flex-wrap:wrap}.cst-stage-pick{width:72px;height:72px;padding:0;border:2px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);overflow:hidden;cursor:pointer}.cst-stage-pick img{width:100%;height:100%;object-fit:cover}/**
 * @fileoverview The Builder's room, its editor and preview, and the dock that
 * holds the Compass bar. The deck of blocks is builderRail.css.
 * Field help and the editors' shared rules are in editorWorkspace.css.
 * Existing editor interiors keep their design-system controls.
 *
 * @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
 */.bld{position:fixed;top:var(--vv-top, 0px);left:0;right:0;z-index:calc(var(--z-overlay) - 10);display:flex;flex-direction:column;height:calc(var(--vv-height, 100dvh) - var(--player-height, 0px));min-height:0;padding-top:env(safe-area-inset-top);overflow:hidden;background:var(--bg);color:var(--ink)}.bld-loading,.bld-failed{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);color:var(--ink-soft)}.bld-ctl{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-soft);cursor:pointer}.bld-ctl:hover:not(:disabled){background:var(--surface-inset);color:var(--ink)}.bld-ctl:disabled{opacity:.3;cursor:default}@media(hover:none){.bld-ctl{width:44px;height:44px}.bld-look-btn{min-height:44px}.bld-look-swatch{width:44px;height:44px}}.bld-body{position:relative;flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.bld.has-live .bld-body{grid-template-columns:clamp(480px,var(--bld-split),100% - 520px) auto minmax(0,1fr)}.bld.has-live .bld-edit-tools .bld-finish{display:none}.bld.has-live .bld-edit-tools{grid-template-columns:minmax(0,1fr) auto auto}.bld-live{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface)}.bld-live-head{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2);min-height:56px;padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--divider);background:var(--bg-elev)}.bld-live-title{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--sp-1);margin:0;font-size:var(--fs-body);font-weight:700;white-space:nowrap}.bld-live-title small{min-width:0;overflow:hidden;text-overflow:ellipsis;margin-left:var(--sp-1);font-size:var(--fs-small);font-weight:400;color:var(--ink-soft)}.bld-live-head .btn.btn-sm{flex:0 0 auto;min-height:44px;gap:var(--sp-1)}.bld.has-live-folded .bld-body{grid-template-columns:minmax(0,1fr) 56px}.bld-live.is-folded{border-left:1px solid var(--divider);background:var(--bg-elev)}.bld-live.is-folded .bld-live-head{flex:1 1 auto;align-items:stretch;padding:0;border:0;background:transparent}.bld-live-strip{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:background var(--t-snap) var(--easing)}.bld-live-strip .icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--edge);border-radius:var(--r-pill);background:color-mix(in srgb,var(--ink) 10%,transparent);font-size:20px}.bld-live-strip .bld-live-label{writing-mode:vertical-rl}.bld-live-strip:hover{background:var(--surface-inset)}.bld-live-strip:hover .icon{border-color:var(--accent);background:var(--accent-surface)}.bld-split{position:relative;z-index:1;width:1px;background:var(--divider);cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;transition:background var(--t-snap) var(--easing)}.bld-split:before{content:"";position:absolute;top:0;right:-10px;bottom:0;left:-3px}.bld-split.is-dragging{z-index:calc(var(--z-raised) + 1)}.bld-split.is-dragging:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;cursor:col-resize}.bld-split-grip{position:absolute;top:50%;left:50%;width:8px;height:40px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);box-shadow:var(--shadow-sm);transform:translate(-50%,-50%);transition:background var(--t-snap) var(--easing),border-color var(--t-snap) var(--easing)}.bld-split:is(:hover,.is-dragging,:focus-visible),.bld-split:is(:hover,.is-dragging,:focus-visible) .bld-split-grip{background:var(--accent);border-color:var(--accent)}@media(hover:none){.bld-split:before{top:0;right:-12px;bottom:0;left:-12px}}.bld-dock{position:relative;z-index:var(--z-raised);flex:0 0 auto;padding:0 var(--sp-2) calc(var(--sp-2) + env(safe-area-inset-bottom));background:var(--bg)}.bld-editor{container:bld-editor / inline-size;display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--surface)}.bld-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.bld-edit-tools{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto 1fr;align-items:center;gap:var(--sp-2);min-height:56px;padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--divider);background:var(--bg-elev)}.bld-bar-left,.bld-bar-right{grid-row:1;display:flex;align-items:center;gap:var(--sp-2)}.bld-bar-left{grid-column:1;min-width:0}.bld-bar-right{grid-column:3;justify-content:flex-end;white-space:nowrap}.bld-bar-step{grid-row:1;grid-column:2;display:flex;align-items:center}.bld-bar-step:empty{display:none}.bld-edit-tools .btn.btn-sm{min-height:44px}.bld-finish{flex:0 0 auto;gap:var(--sp-1);white-space:nowrap}.bld-next-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-view-name{flex:0 1 auto;min-width:0;display:inline-flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--fs-body);font-weight:700}.bld-view-name .icon{color:var(--accent)}.bld-view-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-block-state{flex:0 0 auto;display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-caption);font-weight:700;white-space:nowrap}.bld-block-state.is-done,.bld-block-state.is-ready{background:color-mix(in srgb,var(--confirm) 24%,transparent);color:var(--ink)}.bld-block-state.is-partial{background:color-mix(in srgb,var(--gold) 26%,transparent);color:var(--ink)}.bld-block-state.is-working{background:var(--accent-surface);color:var(--accent)}.bld-block-state.is-failed{background:color-mix(in srgb,var(--status-error) 16%,transparent);color:var(--status-error)}.bld-modes.ds-seg{padding:3px;border-color:var(--edge)}.bld-modes.ds-seg>button{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:40px;padding:0 var(--sp-4);font-size:var(--fs-body);font-weight:700}.bld-modes.ds-seg>button[aria-pressed=true]:disabled{opacity:1;cursor:default}.bld-modes.ds-seg>button .icon{font-size:18px}@media(max-width:1099px){.bld-edit-tools{grid-template-columns:minmax(0,1fr) auto;padding-block:var(--sp-1)}.bld-bar-right{grid-column:2}.bld-bar-step{grid-row:2;grid-column:1 / -1;justify-content:center;padding-bottom:var(--sp-1)}}@container bld-editor (max-width: 559px){.bld.has-live .bld-edit-tools{grid-template-columns:minmax(0,1fr) auto}.bld-bar-right{grid-column:2}.bld-bar-step{grid-row:2;grid-column:1 / -1;justify-content:center;padding-bottom:var(--sp-1)}}@media(max-width:767px){.bld-edit-tools .bld-finish,.bld-edit-tools:has(.bld-bar-right .bld-next) .bld-block-state{display:none}}.bld-view-edit-pill{position:absolute;top:var(--sp-3);right:var(--sp-3);z-index:2;width:auto;min-height:40px;gap:var(--sp-1);background:var(--bg-elev);box-shadow:var(--shadow-md)}.bld-view-song{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.bld-hold-note{flex:0 0 auto;margin:0;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--divider);background:var(--accent-surface);color:var(--ink-soft);font-size:var(--fs-caption);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-look-anchor{position:relative;flex:0 0 auto}.bld-look-open{gap:var(--sp-1);white-space:nowrap}.bld-look-pop{position:absolute;top:calc(100% + var(--sp-1));right:0;z-index:calc(var(--z-raised) + 6);width:min(420px,calc(100vw - 2 * var(--sp-3)));padding:var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-lg)}.bld-look-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-3)}.bld-look-more{flex:1 1 100%;display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding-bottom:var(--sp-1)}.bld-look-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}.bld-look-swatches .bld-look-btn{display:inline-flex;align-items:center;gap:var(--sp-1)}.bld-look-swatch{width:32px;height:32px;padding:0;border:2px solid transparent;border-radius:var(--r-pill);cursor:pointer}.bld-look-swatch.is-on{border-color:var(--ink);box-shadow:var(--shadow-sm)}.bld-look-name{margin:0;font-size:var(--fs-caption);font-weight:600;color:var(--ink-soft)}.bld-look-opacity{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);font-weight:700;color:var(--muted)}.bld-look-opacity input[type=range]{flex:1 1 auto;min-width:0;accent-color:var(--accent)}.bld-look-pct{font-variant-numeric:tabular-nums;color:var(--ink)}.bld-look{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--r-pill);background:var(--surface-inset)}.bld-look-all{align-self:flex-start;background:var(--surface-inset)}.bld-look-label{font-size:var(--fs-small);font-weight:700;color:var(--ink)}.bld-look-btn{min-height:36px;padding:0 var(--sp-3);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer}.bld-look-btn.is-on{background:var(--bg-elev);color:var(--ink);box-shadow:var(--shadow-sm)}.bld-editor-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.section-edit-inline{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.bld-editor-body .gcv-inline-editor{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-width:none;margin:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;animation:none}.bld-editor-body .gcv-inline-editor-head{display:none}.bld-editor-body .fill-block-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.section-edit-inline>.cds-muted,.bld-editor-body .section-edit-error{padding:var(--sp-4)}.bld-editor-body .song-stale-banner{position:sticky;top:var(--sp-2);z-index:var(--z-raised)}.bld-editor-body .btn.song-stale-regen{min-height:44px}@media(max-width:1099px){.bld.is-editing .bld-editor{animation:bld-slide-in var(--t-medium) var(--easing)}@keyframes bld-slide-in{0%{transform:translate(100%)}to{transform:none}}}@media(prefers-reduced-motion:reduce){.bld.is-editing .bld-editor{animation:none}}.bld-whole{--player-height: 0px;position:relative;transform:translateZ(0);flex:1 1 auto;min-height:0;overflow:hidden;background:var(--share-stage)}.bld-whole-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain}.bld-view{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:var(--share-stage)}.bld-view-scroll{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow-y:auto;overscroll-behavior:contain}.bld-view-col{display:flex;flex-direction:column;gap:var(--sp-4);max-width:560px;margin:0 auto;padding:var(--sp-6) var(--sp-4)}.bld-second{display:grid;gap:var(--sp-2)}.bld-second>p{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.bld-second-card{text-align:left;cursor:pointer}.bld-second-card.is-primary{border-color:var(--accent)}.bld-companions{display:grid;gap:var(--sp-2)}.bld-companions-q{margin:0;font-size:var(--fs-body);font-weight:600}.bld-companions>p{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.bld-companions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-2)}/**
 * @fileoverview Shared block editing controls. See DESIGN_SPEC §3.6.7 and §3.7.10.
 * @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
 */.bld-editor-body{overflow:hidden}.bld-editor-body--starting{overflow-y:auto}.bld [data-ds-point]{animation:none;outline-style:dashed}.bc-option-changes summary{cursor:pointer;min-height:44px;padding-block:var(--sp-2)}.bc-option-changes dd{margin:0 0 var(--sp-2);white-space:pre-wrap;overflow-wrap:anywhere}.bc-option-changes dt{font-weight:600;text-transform:capitalize}.bld .song-author-bar{display:none}.bld .song-panel{border:0;background:transparent}.bld .song-accordion{max-width:1000px;width:100%;margin-inline:auto;padding:var(--sp-4)}.bld .editor-steps .acc-group-done{margin-top:var(--sp-5)}@media(max-width:1099px){.bld .song-accordion{padding:var(--sp-3)}.bld input,.bld textarea,.bld select{font-size:16px}}@media(max-height:600px){.bld-edit-tools{padding-block:0}}@media(max-height:600px)and (max-width:1099px){.bld{overflow-y:auto}.bld-body{flex:0 0 auto}.bld-body,.bld-editor-body{min-height:260px}.bld-editor-body{overflow:visible}}.bld.is-cover-studio .bld-editor-body{min-height:0;overflow:hidden}/**
 * eventOverview.css — the Event overview's header and tiles (DESIGN_SPEC §3.43)
 *
 * @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
 */.ov{width:100%;max-width:960px;margin:0 auto;padding:var(--sp-2) var(--sp-4) var(--sp-6);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--sp-3)}.ov-head{display:flex;flex-direction:column;gap:var(--sp-3)}.ov-back{align-self:flex-start}.ov-title{display:flex;align-items:center;gap:var(--sp-3)}.ov-cover{flex:0 0 auto;width:64px;height:64px;border-radius:var(--r-md);object-fit:cover;background:var(--surface-inset)}.ov-name{min-width:0}.ov-name h1{margin:0;font-size:var(--fs-h2);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ov-facts{margin:2px 0 0;color:var(--muted);font-size:14px}.ov-acts{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ov-coord{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:13px;font-weight:600;color:var(--ink-soft)}.ov-coord select{min-height:32px;border:1px solid var(--edge);border-radius:var(--r-pill);padding:0 var(--sp-3);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:13px}.ov-tile{background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.ov-tile-head{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.ov-tile-head:hover{background:var(--surface-hover)}.ov-tile-head:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:-2px}.ov-tile-head>.icon{color:var(--accent)}.ov-tile-text{flex:1;min-width:0;display:flex;flex-direction:column}.ov-tile-text b{font-weight:600}.ov-tile-text small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-chev{color:var(--muted);transition:transform var(--t-instant)}.ov-tile.is-open .ov-chev{transform:rotate(180deg)}.ov-tile-body{padding:0 var(--sp-4) var(--sp-4);border-top:1px solid var(--divider);padding-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.ov-muted{margin:0;color:var(--muted);font-size:14px}.ov-ready{margin:0;display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-soft);font-size:14px}.ov-ready .icon{color:var(--confirm)}.ov-night{display:flex;flex-direction:column;gap:var(--sp-3)}.ov-night-acts{display:flex;gap:var(--sp-2);flex-wrap:wrap}/**
 * cateringDoor.css — the caterer's door page (DESIGN_SPEC §3.43.6)
 *
 * @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
 */.cd{width:100%;max-width:760px;margin:0 auto;padding:var(--sp-4) var(--sp-4) var(--sp-6);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--sp-4);color:var(--ink);background:var(--bg);min-height:100vh}.cd h1{margin:0;font-size:var(--fs-h2)}.cd-muted{margin:0;color:var(--muted)}.cd-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.cd-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.cd-acts{display:flex;gap:var(--sp-2)}.cd-foot{margin:0}/**
 * @fileoverview Chrome for the in-app crew page (screens/CrewPage.jsx), the
 * in-app received Greetlet (screens/ReceivedCard.jsx), and the editing note
 * GreetletDetail shows on a crew. Tokens only.
 *
 * The page runs FULL-BLEED inside `.main-content`: the card stage is a dark
 * theatre and a 2rem paper-coloured frame around it reads as a rendering
 * mistake, so the wrapper cancels the shell's padding the way chat.css does.
 * The shell's extra bottom padding for a docked player is deliberately NOT
 * cancelled — the last block has to stay reachable above the player bar.
 *
 * @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
 */.crew-page,.received-page{display:flex;flex-direction:column;margin:calc(var(--main-pad, 2rem) * -1);margin-bottom:0;min-height:calc(100dvh - var(--nav-h));background:var(--share-stage)}.main-content.header-collapsed .crew-page,.main-content.header-collapsed .received-page{min-height:calc(100dvh - 28px)}.received-page .pcv-refresh{top:calc(var(--nav-h, 56px) + var(--sp-2))}.crew-bar{position:sticky;top:0;z-index:var(--z-raised);display:flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:var(--sp-1) max(var(--sp-3),env(safe-area-inset-right)) var(--sp-1) max(var(--sp-3),env(safe-area-inset-left));background:var(--bg-elev);color:var(--ink);border-bottom:1px solid var(--divider)}.main-content:not(.header-collapsed) .crew-bar{top:var(--nav-h)}.crew-bar-title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--font-serif);font-size:var(--fs-body-lg);font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-bar .btn{flex:0 0 auto;min-height:44px}.crew-bar-label{display:none}@media(min-width:600px){.crew-bar-label{display:inline}}.crew-bar .is-busy .icon{animation:pcv-refresh-spin .9s linear infinite}@media(prefers-reduced-motion:reduce){.crew-bar .is-busy .icon{animation:none;opacity:.6}}.crew-editing-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin:0 auto var(--sp-3);max-width:620px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small)}.crew-editing-note strong{color:var(--ink)}.crew-editing-note .btn{margin-left:auto}.crew-roster-leave{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--divider);color:var(--ink-soft);font-size:var(--fs-small)}.crew-roster-take{display:flex;align-items:flex-start;gap:var(--sp-2);margin:var(--sp-2) 0 var(--sp-3);color:var(--ink);cursor:pointer}.crew-roster-take input{margin-top:3px;accent-color:var(--accent)}/**
 * photoDrop.css — the table tents' photo screen (PhotoDropView): the wedding
 * disposable camera, on the guest's phone.
 *
 * @fileoverview The share page's own theme-invariant palette (--share-*): the
 * hero on the dark stage, the roll on the cream card, whatever the guest's
 * phone theme — so a guest who scanned a tent and one who opened the
 * invitation see one product. Frames develop like instant film as they
 * arrive; motion stops for reduced-motion. The field, buttons and progress bar
 * are the share page's own (.gcv-*). DESIGN_SPEC §3.16.
 *
 * @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
 */.pdrop{min-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:0 var(--sp-4) var(--sp-6);background:var(--share-stage);color:var(--share-paper)}.pdrop-bar{position:sticky;top:0;z-index:var(--z-sticky);align-self:stretch;margin:0 calc(-1 * var(--sp-4));display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) max(var(--sp-4),calc((100% - 560px)/2));background:color-mix(in srgb,var(--share-stage) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.pdrop-join{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 var(--sp-4);border-radius:var(--r-pill);background:var(--share-accent);color:var(--share-paper);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}.pdrop-hero{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2)}.pdrop-cover{width:96px;aspect-ratio:3 / 4;object-fit:cover;padding:6px 6px 18px;margin-bottom:var(--sp-2);border-radius:var(--r-sm);background:var(--share-paper);box-shadow:var(--shadow-md);transform:rotate(-4deg)}.pdrop-eyebrow{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.7}.pdrop-title{margin:0;font-family:var(--font-serif);font-size:clamp(32px,9vw,42px);line-height:1.05}.pdrop-prompt{margin:0;max-width:32em;font-size:16px;line-height:1.45;opacity:.85}.pdrop-live{display:inline-flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 0;padding:8px 14px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-paper) 10%,transparent);font-size:14px;font-weight:600}.pdrop-live-dot{width:9px;height:9px;border-radius:50%;background:var(--share-success);animation:pdrop-pulse 1.8s ease-in-out infinite}.pdrop-live-text{animation:pdrop-pop .5s ease}.pdrop-card{width:100%;max-width:560px;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5) var(--sp-4);border-radius:var(--r-lg);background:var(--share-paper);color:var(--share-ink)}.pdrop-roll-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.pdrop-h2{margin:0;font-family:var(--font-serif);font-size:24px}.pdrop-shots{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:var(--r-pill);background:var(--share-accent);color:var(--share-paper);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.pdrop-hint,.pdrop-note{margin:0;font-size:14px;line-height:1.45;opacity:.75}.pdrop-link{padding:0;border:0;background:none;color:var(--share-accent);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.pdrop-frames{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2)}.pdrop-frame{position:relative;margin:0;aspect-ratio:1 / 1;border-radius:var(--r-md);overflow:hidden}.pdrop-frame img{display:block;width:100%;height:100%;object-fit:cover}.pdrop-frame.is-filled{background:var(--share-border-soft)}.pdrop-frame.is-filled img{animation:pdrop-develop 1.1s ease-out}.pdrop-frame.is-empty{border:2px dashed var(--share-border);background:color-mix(in srgb,var(--share-border-soft) 45%,transparent)}.pdrop-frame.is-next{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;border:2px dashed var(--share-accent);background:color-mix(in srgb,var(--share-accent) 8%,transparent);color:var(--share-accent);font:inherit;font-size:13px;font-weight:700;cursor:pointer;animation:pdrop-breathe 2.4s ease-in-out infinite}.pdrop-frame.is-next .icon{font-size:34px}.pdrop-name{display:flex;flex-direction:column;gap:6px}.pdrop-name-label{font-size:15px;font-weight:700}.pdrop-frame-badge{position:absolute;left:6px;bottom:6px;padding:3px 8px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 72%,transparent);color:var(--share-paper);font-size:11px;font-weight:700}.pdrop-frame-remove{position:absolute;top:0;right:0;width:44px;height:44px;display:flex;align-items:flex-start;justify-content:flex-end;padding:6px;border:0;background:none;color:var(--share-paper);cursor:pointer}.pdrop-frame-remove .icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--share-stage) 72%,transparent);font-size:16px}.pdrop-frame.is-sending img{opacity:.55;animation:none}.pdrop-frame.is-rejected img{opacity:.45;filter:grayscale(1);animation:none}.pdrop-frame.is-rejected .pdrop-frame-badge{background:var(--share-error)}.pdrop-ring{position:absolute;top:28%;right:28%;bottom:28%;left:28%;transform:rotate(-90deg)}.pdrop-ring circle{fill:none;stroke-width:4}.pdrop-ring-track{stroke:color-mix(in srgb,var(--share-paper) 70%,transparent)}.pdrop-ring-fill{stroke:var(--share-accent);stroke-linecap:round;transition:stroke-dasharray .2s linear}.pdrop-full{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-5);border:1px solid color-mix(in srgb,var(--share-paper) 30%,transparent);border-radius:var(--r-pill);color:var(--share-paper);font-weight:700;text-decoration:none}@keyframes pdrop-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}@keyframes pdrop-pop{0%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes pdrop-breathe{0%,to{transform:scale(1)}50%{transform:scale(.96)}}@keyframes pdrop-develop{0%{opacity:.2;filter:brightness(1.8) sepia(.7) blur(2px)}to{opacity:1;filter:none}}@media(prefers-reduced-motion:reduce){.pdrop-live-dot,.pdrop-live-text,.pdrop-frame.is-next,.pdrop-frame.is-filled img{animation:none}}.pshow{justify-content:center}/**
 * @fileoverview guestbookDoor.css — the guest book's door on the Chorus
 * room's chassis (DESIGN_SPEC §3.39). `.chd-*` (chorusDoor.css) is the room:
 * the bar, the body that scrolls inside itself, the foot with the one coral
 * button. This file adds only what a message needs — the three ways in as the
 * Builder's cards, the viewfinder and the live meter, the record ring, the
 * take on review, the rows of one's own messages — every colour a token, so
 * both themes read.
 *
 * @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
 */.gbd .chd-team{max-width:52%}.gbd-table-t{min-width:0;overflow:hidden;text-overflow:ellipsis}.gbd-intro{flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-3)}.gbd-intro-art{position:relative;flex:0 0 auto;width:64px;height:64px;border-radius:var(--r-md);overflow:hidden;display:grid;place-items:center;background:var(--accent-surface);color:var(--accent)}.gbd-intro-art img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.gbd-intro-art .icon{position:relative;font-size:32px}.gbd-intro-t{flex:1 1 auto;min-width:0}.gbd-intro-t b,.gbd-intro-play b{display:block;font-size:var(--fs-body)}.gbd-intro-t small{display:block;color:var(--muted);font-size:var(--fs-small)}.gbd-intro q,.gbd-intro-play q{display:block;margin-top:4px;font-family:var(--font-display);font-style:italic;color:var(--ink-soft);font-size:var(--fs-small)}.gbd-intro-play{gap:var(--sp-2);padding:var(--sp-3)}.gbd-intro-play video{width:100%;max-height:50dvh;border-radius:var(--r-md);background:var(--share-stage)}.gbd-intro-play audio{width:100%}.gbd-ways{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.gbd-ways.is-two{grid-template-columns:repeat(2,1fr)}.gbd-ways.is-one{grid-template-columns:1fr}.gbd-way{align-items:center;gap:4px;min-height:92px;padding:var(--sp-3) var(--sp-2);border-width:2px;text-align:center}.gbd-way .icon{font-size:30px;color:var(--accent)}.gbd-way b{font-size:var(--fs-body)}.gbd-way small{color:var(--muted);font-size:var(--fs-caption);line-height:1.3}.gbd-way[aria-checked=true]{border-color:var(--accent);background:var(--accent-surface)}.gbd-ideas{display:flex;flex-direction:column;align-items:center;gap:6px}.gbd-ideas .chd-eye{text-align:center}.gbd-idea{width:auto;max-width:100%;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--bg-elev);color:var(--ink);font-size:var(--fs-small);font-weight:600;text-align:left;cursor:pointer}.gbd-idea .icon{flex:0 0 auto;color:var(--accent);font-size:20px}.gbd-perm{margin:0;padding:var(--sp-4);list-style:none;gap:var(--sp-2)}.gbd-perm li{display:flex;gap:var(--sp-3);align-items:flex-start}.gbd-perm .icon{flex:0 0 auto;color:var(--accent)}.gbd-note{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small);text-align:left}.gbd-note .icon{flex:0 0 auto;font-size:20px;color:var(--muted)}.gbd-note.is-warn{background:color-mix(in srgb,var(--status-warning) 14%,transparent)}.gbd-note.is-warn .icon{color:var(--status-warning)}.gbd-view{position:relative;width:100%;aspect-ratio:3 / 4;max-height:52dvh;border-radius:var(--r-xl);overflow:hidden;background:var(--share-stage);color:var(--share-paper);display:grid;place-items:center}.gbd-view.is-voice{aspect-ratio:auto;height:30dvh;min-height:170px;background:var(--bg-elev);color:var(--ink);border:1px solid var(--divider)}.gbd-view video{width:100%;height:100%;object-fit:cover}.gbd-view video.is-mirrored{transform:scaleX(-1)}.gbd-view .vmx-live-wave{width:86%;height:96px}.gbd-view>.chd-sub{padding:0 var(--sp-5)}.gbd-view-top{position:absolute;top:10px;left:10px;right:10px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px}.gbd-timer{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--share-stage) 55%,transparent);color:var(--share-paper);font-size:var(--fs-small);font-weight:700;font-variant-numeric:tabular-nums}.gbd-view.is-voice .gbd-timer{background:var(--surface-inset);color:var(--ink)}.gbd-dot{width:10px;height:10px;border-radius:50%;background:var(--status-error);animation:gbd-blink 1s steps(2) infinite}@keyframes gbd-blink{to{opacity:.2}}.gbd-flip{width:44px;height:44px;border:0;border-radius:50%;background:color-mix(in srgb,var(--share-stage) 55%,transparent);color:var(--share-paper);display:grid;place-items:center;cursor:pointer}.gbd-prompt{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;display:flex;gap:8px;align-items:center;padding:8px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--share-stage) 60%,transparent);color:var(--share-paper);font-size:var(--fs-small);font-weight:600;text-align:left}.gbd-prompt .icon{flex:0 0 auto;font-size:20px;color:var(--accent-soft)}.gbd-view.is-voice .gbd-prompt{background:var(--surface-inset);color:var(--ink)}.gbd-view.is-voice .gbd-prompt .icon{color:var(--accent)}.gbd-count{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-items:center;font-family:var(--font-display);font-size:120px;font-weight:700;color:var(--share-paper);background:color-mix(in srgb,var(--share-stage) 35%,transparent)}.gbd-rec{position:relative;width:84px;height:84px;margin:0 auto;padding:0;border:4px solid var(--edge);border-radius:50%;background:var(--bg-elev);display:grid;place-items:center;cursor:pointer}.gbd-rec>i{width:60px;height:60px;border-radius:50%;background:var(--status-error);transition:border-radius .2s,transform .2s}.gbd-rec.is-on>i{border-radius:12px;transform:scale(.6)}.gbd-rec.is-on{border-color:var(--status-error);animation:gbd-breathe 1.6s ease-in-out infinite}.gbd-rec:disabled{cursor:default;opacity:.6}@keyframes gbd-breathe{0%,to{box-shadow:0 0 0 8px color-mix(in srgb,var(--status-error) 16%,transparent)}50%{box-shadow:0 0 0 16px color-mix(in srgb,var(--status-error) 10%,transparent)}}.gbd-rec-l{margin:0;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}.gbd-file{display:none}.gbd-clip{position:relative;width:100%;border-radius:var(--r-xl);overflow:hidden;background:var(--share-stage)}.gbd-clip video{display:block;width:100%;max-height:46dvh;object-fit:contain}.gbd-clip.is-voice{display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;padding:var(--sp-4);background:var(--bg-elev);color:var(--ink);border:1px solid var(--divider)}.gbd-clip audio{width:100%}.gbd-wave{display:block;width:100%;height:56px}.gbd-wave path{fill:none;stroke:var(--accent-soft);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}.gbd-dur{margin:0;font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.gbd-from{display:flex;flex-direction:column;gap:4px;text-align:left}.gbd-from>span{font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.gbd-from input,.gbd-from select{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-size:16px}.gbd .fine-print{color:var(--muted);font-size:var(--fs-caption)}.gbd-progress{width:100%;height:10px;border-radius:var(--r-pill);background:var(--surface-inset);overflow:hidden}.gbd-progress>i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .25s}.gbd-check{width:72px;height:72px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--confirm) 30%,transparent);color:var(--confirm)}.gbd-check .icon{font-size:40px}.gbd-mine{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left}.gbd-row{flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3)}.gbd-row-icon{flex:0 0 auto;width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--surface-inset);color:var(--accent)}.gbd-row-t{flex:1 1 auto;min-width:0}.gbd-row-t b{display:block;font-size:var(--fs-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gbd-row-t small{display:block;color:var(--muted);font-size:var(--fs-small)}.gbd-row-t small.is-error{color:var(--status-error)}.gbd-row .btn{flex:0 0 auto;min-height:44px;padding:0 12px;font-size:var(--fs-small)}.gbd-confirm{flex:0 0 auto;display:flex;gap:var(--sp-1)}.gbd-join{width:auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-1) var(--sp-2);color:var(--muted);font-size:var(--fs-small);text-decoration:none}.gbd-join b{color:var(--accent-deep)}.gbd-teaser{margin:0;font-family:var(--font-display);font-size:var(--fs-h1);font-weight:700;line-height:1.15;text-wrap:balance}@media(prefers-reduced-motion:reduce){.gbd-rec.is-on,.gbd-dot{animation:none}}/**
 * @fileoverview triviaDoor.css — the Trivia door on the Chorus room's chassis (DESIGN_SPEC §3.41).
 * `.chd-*` (chorusDoor.css) is the room; this adds what a round needs: the name box and the table
 * picker, the answers as big thumb-sized buttons, the countdown, the result line, the scores. Every
 * colour a token, so both themes read; every input 16px so the phone never zooms.
 *
 * @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
 */.tvd-field{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left}.tvd-field>span{font-size:var(--fs-small);font-weight:600;color:var(--ink-soft)}.tvd-field input{width:100%;min-height:48px;padding:8px 12px;border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-size:16px}.tvd-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:var(--sp-2)}.tvd-tables button{min-height:48px;border:2px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink);font-size:var(--fs-body);font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.tvd-tables button[aria-checked=true]{border-color:var(--accent);background:var(--accent-surface);color:var(--accent-deep)}.tvd-paused{display:flex;align-items:center;gap:6px;margin:0;padding:8px 12px;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small);font-weight:600}.tvd-prize{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin:0;font-weight:700;color:var(--accent-deep);text-align:center}.tvd-big{margin:0;font-family:var(--font-display);font-size:72px;font-weight:700;line-height:1;color:var(--accent-deep);font-variant-numeric:tabular-nums}.tvd-q{font-family:var(--font-display)}.tvd-opts{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:var(--sp-2)}.tvd-opt{width:100%;display:flex;align-items:center;gap:var(--sp-3);min-height:64px;padding:var(--sp-2) var(--sp-3);border:2px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);color:var(--ink);font-size:var(--fs-body-lg);font-weight:600;text-align:left;cursor:pointer}.tvd-opt>b{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface-inset);color:var(--ink-soft);font-weight:800}.tvd-opt>span:not(.icon){flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.tvd-opt>.icon{flex:0 0 auto}.tvd-opt:disabled{cursor:default;opacity:.6}.tvd-opt.is-picked{border-color:var(--accent);background:var(--accent-surface);opacity:1}.tvd-opt.is-picked>b{background:var(--accent);color:var(--text-on-accent)}.tvd-opt.is-right{border-color:var(--confirm);background:color-mix(in srgb,var(--confirm) 16%,var(--bg-elev));opacity:1}.tvd-opt.is-right>b,.tvd-opt.is-right>.icon{color:var(--confirm)}.tvd-opt.is-right>b{background:color-mix(in srgb,var(--confirm) 24%,transparent)}.tvd-opt.is-wrong{border-color:var(--status-error);opacity:1}.tvd-opt.is-wrong>.icon{color:var(--status-error)}.tvd-clock{width:100%;display:flex;align-items:center;gap:var(--sp-3)}.tvd-clock>b{flex:0 0 auto;min-width:2ch;font-size:var(--fs-h2);font-variant-numeric:tabular-nums}.tvd-bar{flex:1 1 auto;height:10px;border-radius:var(--r-pill);background:var(--surface-inset);overflow:hidden}.tvd-bar>i{display:block;height:100%;border-radius:inherit;background:var(--accent);transform-origin:left center;transition:transform .25s linear}.tvd-result{margin:0;width:100%;padding:12px;border-radius:var(--r-md);background:var(--surface-inset);font-size:var(--fs-body-lg);font-weight:700}.tvd-result.is-right{background:color-mix(in srgb,var(--confirm) 18%,transparent);color:var(--confirm)}.tvd-result.is-wrong{background:color-mix(in srgb,var(--status-error) 12%,transparent)}.tvd-fact{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink-soft);font-size:var(--fs-small);text-align:left}.tvd-fact .icon{flex:0 0 auto;color:var(--accent)}.tvd-rank{margin:0;font-size:var(--fs-body-lg)}.tvd-rank b{color:var(--accent-deep)}.tvd-board{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:var(--sp-1);text-align:left}.tvd-board li{display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--bg-elev);font-weight:600}.tvd-board li>b{flex:0 0 auto;width:2ch;color:var(--muted);font-variant-numeric:tabular-nums}.tvd-board li>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tvd-board li>i{flex:0 0 auto;font-style:normal;color:var(--ink-soft);font-variant-numeric:tabular-nums}.tvd-board li.is-me{border-color:var(--accent);background:var(--accent-surface)}@media(prefers-reduced-motion:reduce){.tvd-bar>i{transition:none}}/**
 * @fileoverview A scanned sticker's door (InventoryDoorView, DESIGN_SPEC
 * §3.35): app chrome in the viewer's theme, phone first, the same components
 * at every width — the body is only centred and capped on a computer. Tokens
 * only. The bar carries Back, the logo with greetlet.com under it and the
 * inventory's pill (Home); the big Talk is the one coral until an answer, then
 * the foot's button is. Coral is never text: links and the pill are ink.
 *
 * @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
 */.invd{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-sans);--compass-size: 104px}.invd-bar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-2);min-height:60px;padding:var(--sp-2) var(--sp-4);padding-top:max(var(--sp-2),env(safe-area-inset-top));border-bottom:1px solid var(--divider);background:var(--bg)}.invd-exit{align-self:center;margin-top:var(--sp-4)}.invd-pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:62%;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:700}button.invd-pill{cursor:pointer}button.invd-pill:hover{border-color:var(--ink-soft)}.invd-pill-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invd-body{flex:1 1 auto;display:flex;flex-direction:column;gap:var(--sp-4);width:100%;max-width:680px;margin:0 auto;padding:var(--sp-4) var(--sp-4) var(--sp-6)}.invd-center{align-items:center;justify-content:center;text-align:center}.invd-ask{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center}.invd-say{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25;text-wrap:balance}.invd-sub{margin:0;font-size:var(--fs-body);color:var(--ink-soft)}.invd-hint{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.invd .btn.invd-alt{width:auto;min-height:48px;padding:0 var(--sp-4);font-size:var(--fs-body)}.invd-typebox{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;max-width:520px}.invd-typerow{display:flex;gap:var(--sp-2)}.invd-mic{flex:0 0 auto;width:64px;height:64px;display:grid;place-items:center;padding:0;border:2px solid var(--edge);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink);cursor:pointer}.invd-mic.is-on{border-color:var(--ink);background:var(--ink);color:var(--bg)}.invd-mic:disabled{opacity:.6;cursor:progress}.invd-input{flex:1 1 auto;min-width:0;width:100%;min-height:64px;margin:0;padding:0 var(--sp-4);border:2px solid var(--edge);border-radius:var(--r-lg);background:var(--surface-inset);color:var(--ink);font:inherit;font-size:var(--fs-body-lg);-webkit-appearance:none;-moz-appearance:none;appearance:none}.invd-input:focus{border-color:var(--accent)}.invd-input::placeholder{color:var(--ink-soft);opacity:.75}.invd-input::-webkit-search-cancel-button{display:none}.invd .btn.invd-find{width:100%;min-height:52px}.invd-link{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-2);border:0;background:none;color:var(--ink);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.invd-quick{justify-content:center}.invd-speak{align-self:center;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);font:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer}.invd-speak.is-on{border-color:var(--ink);background:var(--surface-inset);color:var(--ink)}.invd-answer{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.invd-near{width:100%}.invd .btn.invd-primary{width:100%;max-width:420px;min-height:52px}.invd-center .btn.invd-primary{margin-top:var(--sp-2);text-decoration:none}/**
 * @fileoverview MenuDoorView.jsx — a menu tent's door (DESIGN_SPEC §3.36):
 * the mark, the menu as the page draws it, the way out. The page scrolls —
 * the one-screen cap a block keeps on the Greetlet's page (LeafBody) is
 * lifted here, where the menu IS the screen.
 *
 * @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
 */.mdoor{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.mdoor-bar{display:flex;align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-2) var(--sp-4) 0}.mdoor-of{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--ink-soft)}.mdoor-body{flex:1 1 auto;--share-stage: transparent}.mdoor-body .leaf-body.is-long{max-height:none;overflow:visible}.mdoor-body .section-expand{display:none}.mdoor-foot{display:flex;justify-content:center;padding:var(--sp-3) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom))}/**
 * player.css
 *
 * @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
 */body.player-active{--player-height: calc(64px + env(safe-area-inset-bottom)) }@media(max-width:768px){body.player-active{--player-height: calc(56px + env(safe-area-inset-bottom)) }}.player-bar{position:fixed;left:0;right:0;bottom:0;background:var(--background-card);color:var(--text-primary);border-top:1px solid var(--border-color);box-shadow:0 -4px 16px #0000001f;padding-bottom:env(safe-area-inset-bottom);z-index:150}.player-bar[data-theme=dark]{color-scheme:dark}body:has(.block-expand--with-player) .player-bar{z-index:calc(var(--z-overlay) + 10)}body:has(.block-expand--with-player) .player-sheet-backdrop{z-index:calc(var(--z-overlay) + 15)}body:has(.block-expand--with-player) .player-bar--expanded{z-index:calc(var(--z-overlay) + 20)}.player-bar-inner{display:grid;grid-template-columns:minmax(160px,1fr) minmax(200px,2fr) auto;align-items:center;gap:16px;padding:8px 16px;box-sizing:border-box;height:64px}.player-bar-left{display:flex;align-items:center;gap:12px;min-width:0}.player-bar-cover{width:48px;height:48px;flex:0 0 48px;border-radius:6px;object-fit:cover;background:var(--background-secondary);overflow:hidden}.player-cover--ph{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary)}.player-bar-meta{min-width:0;display:flex;flex-direction:column;gap:2px}.player-bar-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-bar-artist{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-bar-resume{font-size:12px;font-weight:600;color:var(--accent-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-bar-center{display:flex;align-items:center;gap:8px;min-width:0}.player-bar-scrub{flex:1;min-width:0;display:flex}.player-bar-right{display:flex;align-items:center;gap:4px;flex:0 0 auto}.player-btn{background:transparent;border:none;color:var(--text-primary);width:44px;height:44px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;padding:0;transition:background-color .12s ease}.player-btn:hover{background:var(--background-secondary)}.player-btn:disabled{opacity:.4;cursor:not-allowed}.player-btn--on{color:var(--accent-color)}.player-btn-play{background:var(--accent-color);color:var(--text-on-accent)}.player-btn-play:hover{background:var(--accent-color-hover)}.player-btn-play--resume{animation:playerResumePulse 2s ease-in-out infinite}@keyframes playerResumePulse{0%,to{box-shadow:0 0 0 0 var(--accent-color-light)}50%{box-shadow:0 0 0 8px transparent}}.player-scrubber-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.player-time{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex:0 0 auto}.player-scrubber{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;padding:12px 0;background-clip:content-box;border-radius:2px;background-image:linear-gradient(to right,var(--accent-color) var(--player-scrub-pct, 0%),var(--border-color) var(--player-scrub-pct, 0%));outline:none;cursor:pointer;min-width:80px;margin:0}.player-scrubber::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-color);cursor:pointer;border:none}.player-scrubber::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-color);cursor:pointer;border:none}.player-scrubber:disabled{cursor:default;opacity:.5}.player-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:299;animation:fadeIn .16s ease}.player-bar--expanded{height:min(85vh,720px);border-radius:16px 16px 0 0;overflow:hidden;display:flex;flex-direction:column;z-index:300}.player-sheet{display:flex;flex-direction:column;height:100%;min-height:0}.player-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border-color);flex:0 0 auto}.player-sheet-source{font-size:13px;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.player-sheet-head-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}.player-sheet-media{flex:1 1 auto;min-height:120px;display:flex;align-items:center;justify-content:center;padding:16px 20px 0}.player-sheet-cover{max-width:min(70vw,320px);max-height:100%;border-radius:12px;object-fit:contain;box-shadow:var(--shadow-md)}.player-sheet-cover.player-cover--ph{width:200px;height:200px;background:var(--background-secondary);box-shadow:none}.player-sheet-cover.player-cover--ph .icon{font-size:64px}.player-sheet-meta{flex:0 0 auto;text-align:center;padding:12px 20px 0;min-width:0}.player-sheet-title{font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sheet-artist{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sheet-controls{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;padding:8px 20px 12px}.player-sheet-transport{display:flex;align-items:center;justify-content:center;gap:8px}.player-sheet-transport .player-btn-play{width:56px;height:56px}.player-sheet-transport .player-btn--skip .icon{font-size:26px}.player-sheet-transport .player-btn-play .icon{font-size:32px}.player-sheet-queue{flex:0 1 auto;max-height:40%;overflow-y:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--border-color);padding:8px 12px}.player-sheet-queue-header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:4px 8px 8px}.player-queue-row{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:4px 8px;border:none;border-radius:8px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer;transition:background-color .12s ease}.player-queue-row:hover{background:var(--background-secondary)}.player-queue-row-num{flex:0 0 20px;font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right}.player-queue-row-cover{width:36px;height:36px;flex:0 0 36px;border-radius:4px;object-fit:cover;background:var(--background-secondary)}.player-queue-row-cover.player-cover--ph .icon{font-size:18px}.player-queue-row-meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}.player-queue-row-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-queue-row-artist{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sheet-lyrics{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:4px 20px 0;overflow:hidden}.player-sheet-lyrics--community .community-lyrics-panel{display:flex;flex-direction:column;min-height:0}.player-sheet-lyrics--community .community-lyrics-scroll{min-height:0;max-height:none;overscroll-behavior:contain}.player-lyrics-window{flex:1 1 auto;min-height:0;overflow:hidden;text-align:center;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%)}.player-lyrics-stack{transition:transform .4s cubic-bezier(.2,.7,.2,1);will-change:transform}.player-lyrics-line{font-family:"Source Serif 4",Georgia,serif;font-size:17px;line-height:1.45;padding:5px 0;color:var(--text-secondary);opacity:.45;transition:opacity .3s ease,color .3s ease}.player-lyrics-line.is-active{opacity:1}.player-lyrics-line.is-seekable{cursor:pointer}.player-lyrics-line.is-seekable:hover,.player-lyrics-line.is-seekable:focus-visible{opacity:.85;outline:none}.player-lyrics-line.is-seekable:focus-visible{text-decoration:underline;text-underline-offset:3px}.player-lyrics-word{color:var(--text-secondary);transition:color 40ms linear}.player-lyrics-word.is-sung{color:var(--text-primary)}.player-lyrics-hint{flex:0 0 auto;margin:0;padding:6px 0 0;font-size:12px;text-align:center;color:var(--text-secondary)}.player-lyrics-empty{margin:auto;padding:24px 0;text-align:center;color:var(--text-secondary);font-size:14px}.player-bar--lyrics .player-sheet-media{flex:0 0 auto;min-height:0;padding-top:12px}.player-bar--lyrics .player-sheet-cover{max-width:96px;max-height:96px}.player-bar--lyrics .player-sheet-cover.player-cover--ph{width:96px;height:96px}.player-bar--lyrics .player-sheet-cover.player-cover--ph .icon{font-size:32px}@media(prefers-reduced-motion:reduce){.player-lyrics-stack,.player-lyrics-line,.player-lyrics-word{transition:none}}@media(max-width:768px){.player-bar-inner{grid-template-columns:auto 1fr auto;gap:8px;padding:6px 12px;height:56px}.player-bar-left{max-width:45vw}.player-bar-cover{width:44px;height:44px;flex-basis:44px}.player-bar-artist,.player-bar-scrub{display:none}.player-bar-center{justify-content:flex-end;gap:4px}.player-bar-center .player-btn--skip{display:none}.player-sheet-controls{padding-left:8px;padding-right:8px}.player-sheet-transport{gap:2px}.player-bar--expanded{height:100dvh;border-radius:0}.player-sheet-head{padding-top:calc(12px + env(safe-area-inset-top))}.player-bar--lyrics .player-sheet-media,.player-bar--lyrics .player-sheet-queue{display:none}.player-bar--lyrics .player-sheet-lyrics{padding-left:12px;padding-right:12px}}@media(max-width:359px){.player-sheet-transport .player-btn{width:38px;height:38px}.player-sheet-transport .player-btn-play{width:52px;height:52px}}/**
 * signView.css — the signer's page at /sign/<token> (plan §5.5, decision #6).
 * Warm-paper chrome from the design system only: every colour, radius and
 * shadow is a token, so the page follows the viewer's theme like the rest of
 * the app. Inputs stay 16px so iOS never zooms on focus.
 *
 * @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
 */.sign-page{min-height:100dvh;background:var(--bg);color:var(--ink);padding:var(--sp-5) var(--sp-4) var(--sp-7);display:flex;flex-direction:column;align-items:center;gap:var(--sp-4)}.sign-card{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.sign-cover{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:var(--r-md);display:block}.sign-kicker{margin:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.sign-title{margin:0;font-size:24px;line-height:1.2;font-weight:700;text-wrap:balance}.sign-muted{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.5}.sign-done{background:var(--surface-hover);border:1px solid var(--border-color);border-radius:var(--r-md);padding:var(--sp-3);color:var(--ink);font-size:15px}.sign-form{display:flex;flex-direction:column;gap:var(--sp-2)}.sign-label{font-size:13px;font-weight:600;color:var(--ink-soft)}.sign-input{width:100%;font-size:16px;font-family:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--border-color);border-radius:var(--r-md);padding:12px 14px;min-height:44px}.sign-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sign-textarea{resize:vertical;line-height:1.5}.sign-count{align-self:flex-end;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.sign-error{margin:0;color:var(--error-color);font-size:14px}.sign-submit{min-height:44px;margin-top:var(--sp-1)}.sign-list{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-color)}.sign-list-head{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sign-entry{margin:0;background:var(--surface-hover);border-radius:var(--r-md);padding:var(--sp-3)}.sign-entry-msg{margin:0 0 var(--sp-1);font-size:15px;line-height:1.55;white-space:pre-wrap}.sign-entry-name{font-style:normal;font-size:13px;font-weight:600;color:var(--ink-soft)}.sign-footer{color:var(--ink-soft);font-size:14px;text-decoration:none;border-bottom:1px solid var(--border-color);padding-bottom:2px}.sign-footer:hover{color:var(--accent)}/**
 * @fileoverview greetlet.com's banner (HeroStage.jsx, HeroPhones.jsx): the
 * kind tabs whose fill times each slide, the sliding track, each slide's
 * words and its phone. The band is a `.wl-stage` — blush paper in light, the
 * dark stage in dark (welcome.css) — and every phone is a `.wl-screen`, dark
 * in either theme, because a real Greetlet opens on that stage.
 *
 * @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
 */.wl-hero{position:relative;overflow:hidden;color:var(--wl-on-stage);background:linear-gradient(160deg,color-mix(in srgb,var(--sec-people) 9%,var(--bg)),var(--wl-stage) 48%,color-mix(in srgb,var(--sec-treasure) 9%,var(--bg)))}:root[data-theme=dark] .wl-hero{background:var(--wl-stage)}.wl-hero-viz{position:absolute;top:0;right:0;bottom:0;left:0}.wl-hero .gcv-viz{background:transparent}.wl-hero .gcv-viz-scrim{display:none}.wl-hero-viz:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(100deg,color-mix(in srgb,var(--wl-stage) 88%,transparent),color-mix(in srgb,var(--wl-stage) 52%,transparent) 55%,color-mix(in srgb,var(--wl-stage) 30%,transparent))}.wl-hero audio{display:none}.wl-hero-inner{position:relative;width:min(1160px,100%);margin:0 auto;box-sizing:border-box;padding:clamp(24px,4vw,48px) var(--wl-gutter) clamp(48px,7vw,96px)}.wl-hero-kicker{margin:0 0 var(--sp-4);font-size:var(--fs-body);font-weight:600;color:var(--wl-stage-accent)}.wl-hero-tabbar{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:clamp(20px,3vw,36px)}.wl-hero-tabs{position:relative;display:flex;gap:var(--sp-2);min-width:0;overflow-x:auto;scrollbar-width:none;padding:2px;scroll-padding-inline:var(--sp-4)}.wl-hero-tabs::-webkit-scrollbar{display:none}.wl-hero-tab{position:relative;flex:none;overflow:hidden;min-height:44px;padding:0 18px;cursor:pointer;border:1px solid var(--wl-stage-line);border-radius:var(--r-pill);background:transparent;color:var(--wl-on-stage-soft);font:inherit;font-size:var(--fs-small);font-weight:700;white-space:nowrap}.wl-hero-tab:hover{color:var(--wl-on-stage);border-color:var(--wl-on-stage-soft)}.wl-hero-tab[aria-selected=true]{background:var(--wl-stage-card);color:var(--wl-on-stage);border-color:var(--wl-on-stage)}.wl-hero-dwell{position:absolute;left:0;right:0;bottom:0;height:3px;transform-origin:left;background:var(--accent);animation:wl-dwell 9s linear forwards}@keyframes wl-dwell{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.wl-hero-hold{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border:1px solid var(--wl-stage-line);border-radius:50%;background:transparent;color:var(--wl-on-stage);cursor:pointer}.wl-hero-view{margin:-32px calc(-1 * var(--wl-gutter));padding:32px var(--wl-gutter);overflow:hidden;touch-action:pan-y}.wl-hero-track{--gap: 96px;display:flex;gap:var(--gap);translate:calc(var(--at) * (-100% - var(--gap))) 0;transition:translate .7s var(--easing)}.wl-slide{flex:0 0 100%;min-width:0;display:grid;gap:clamp(32px,5vw,64px);align-items:center}@media(min-width:960px){.wl-slide{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}}.wl-hero-title{margin:0 0 var(--sp-5);font-family:var(--font-serif);font-size:clamp(34px,4.6vw,58px);font-weight:700;line-height:1.06;letter-spacing:-.025em;text-wrap:balance}.wl-sung{color:color-mix(in srgb,var(--wl-on-stage) 30%,transparent);animation:wl-sing .56s ease-out forwards;animation-delay:calc(.24s + var(--i) * .15s)}@keyframes wl-sing{45%{color:var(--wl-stage-accent)}to{color:var(--wl-on-stage)}}.wl-hero-lede{margin:0 0 var(--sp-5);max-width:56ch;font-size:clamp(16px,1.5vw,18px);line-height:1.6;color:var(--wl-on-stage-soft)}.wl-hero-points{list-style:none;margin:0 0 var(--sp-6);padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wl-hero-points li{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 14px 6px 10px;border:1px solid var(--wl-stage-line);border-radius:var(--r-pill);background:var(--wl-stage-card);font-size:var(--fs-small);font-weight:600}.wl-hero-points .icon{font-size:18px;color:var(--wl-stage-accent)}.wl-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-5)}.wl-hero-listen,.wl-hero-more{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-2);border:0;background:transparent;color:var(--wl-on-stage);font:inherit;font-weight:700;cursor:pointer}.wl-hero-more{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--wl-stage-line)}.wl-hero-listen .icon{font-size:30px;color:var(--wl-stage-accent)}.wl-hero-fine{margin:var(--sp-6) 0 0;font-size:var(--fs-small);color:var(--wl-on-stage-faint)}.wl-phone{width:min(360px,100%);margin:0 auto;box-sizing:border-box;border-radius:32px;overflow:hidden;border:1px solid var(--wl-stage-line);box-shadow:var(--shadow-lg)}.wl-phone--live,.wl-phone--drawn{height:min(640px,82svh)}.wl-phone-cover{position:relative;aspect-ratio:3 / 4}.wl-phone-cover img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.wl-phone-play{position:absolute;left:50%;top:50%;translate:-50% -50%;display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border:0;border-radius:50%;cursor:pointer;background:var(--share-paper);color:var(--share-stage);box-shadow:var(--shadow-lg)}.wl-phone-play .icon{font-size:40px}.wl-phone-play.is-idle{animation:wl-breathe var(--t-breathe) ease-in-out infinite}@keyframes wl-breathe{50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--share-paper) 18%,transparent)}}.wl-phone-lyrics{min-height:104px;padding:var(--sp-4) var(--sp-5) var(--sp-2);text-align:center;font-family:var(--font-serif)}.wl-phone-lyrics p{margin:0 0 var(--sp-1);font-size:14px;line-height:1.4;color:color-mix(in srgb,var(--share-paper) 34%,transparent)}.wl-phone-lyrics p.is-now{font-size:17px;color:color-mix(in srgb,var(--share-paper) 52%,transparent)}.wl-phone-lyrics .is-sung{color:var(--share-paper)}.wl-phone-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) var(--sp-4)}.wl-phone-title{flex:1;min-width:0;text-align:center}.wl-phone-title strong,.wl-phone-title span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-phone-title strong{font-family:var(--font-serif);font-size:var(--fs-body)}.wl-phone-title span{font-size:var(--fs-caption);color:var(--wl-on-stage-soft)}.wl-phone-step{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--wl-stage-line);background:transparent;color:var(--wl-on-stage);cursor:pointer}.wl-phone-meta{margin:0;padding:var(--sp-3) var(--sp-5) var(--sp-5);text-align:center;font-size:var(--fs-caption);color:var(--wl-on-stage-soft)}.wl-phone-wrap{display:grid;justify-items:center;gap:var(--sp-3)}.wl-phone--live iframe{display:block;width:100%;height:100%;border:0}.wl-phone-poster{display:flex;flex-direction:column;width:100%;height:100%;padding:0;border:0;cursor:pointer;background:transparent;color:inherit;font:inherit;text-align:center}.wl-phone-poster img{flex:1;min-height:0;width:100%;object-fit:contain}.wl-phone-caption{flex:1;display:grid;align-content:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-5) var(--sp-5)}.wl-phone-caption strong{font-family:var(--font-serif);font-size:var(--fs-h3);line-height:1.2}.wl-phone-caption span{font-size:var(--fs-small);color:var(--wl-on-stage-soft)}.wl-phone-caption em{justify-self:center;margin-top:var(--sp-2);padding:10px 18px;border-radius:var(--r-pill);background:var(--share-paper);color:var(--share-stage);font-style:normal;font-size:var(--fs-small);font-weight:700}.wl-phone-out{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--wl-on-stage)}.wl-phone--drawn{display:flex;flex-direction:column;padding:var(--sp-5) var(--sp-4) 0}.wl-drawn-title{margin:0 0 var(--sp-4);text-align:center;font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700}.wl-drawn-blocks{list-style:none;margin:0;padding:0;flex:1;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:var(--sp-3)}.wl-drawn-blocks li{display:grid;gap:var(--sp-1);font-size:var(--fs-caption);font-weight:600;color:var(--wl-on-stage-soft)}.wl-drawn-blocks li:first-child{grid-column:1 / -1}.wl-drawn-art{height:72px;border-radius:var(--r-md)}.wl-drawn-blocks li:first-child .wl-drawn-art{height:128px}@media(prefers-reduced-motion:reduce){.wl-hero-track{transition:none}.wl-hero-dwell{display:none}.wl-sung{animation:none;color:var(--wl-on-stage)}.wl-phone-play.is-idle{animation:none}}/**
 * @fileoverview greetlet.com's Screen MC reel (EmceeReel, DESIGN_SPEC §3.40): a 16:9 TV the stage's
 * own scenes size themselves to (stageScenes.css, container units), its stand, the scene's
 * caption and the night's timeline. Tokens only; the TV is the dark stage in both themes.
 * @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
 */.wl-reel{max-width:960px;margin:0 auto var(--sp-6)}.wl-reel-tv{position:relative;aspect-ratio:16 / 9;container-type:size;overflow:hidden;border:clamp(5px,1vw,10px) solid color-mix(in srgb,var(--share-paper) 10%,var(--share-stage));border-radius:var(--r-lg);background:var(--share-stage);box-shadow:var(--shadow-md)}.wl-reel-stand{width:22%;height:clamp(6px,1.2vw,12px);margin:0 auto;border-radius:0 0 var(--r-md) var(--r-md);background:color-mix(in srgb,var(--share-paper) 10%,var(--share-stage))}.wl-reel-says{min-height:3lh;margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-body);line-height:1.45;color:var(--ink-soft)}.wl-reel-says b{margin-right:var(--sp-1);color:var(--ink)}.wl-reel-bar{display:flex;align-items:center;gap:var(--sp-2)}.wl-reel-times{flex:1 1 auto;display:flex;gap:var(--sp-2);margin:0;padding:2px;list-style:none;overflow-x:auto;scrollbar-width:none}.wl-reel-times::-webkit-scrollbar{display:none}.wl-reel-times li{flex:none}.wl-reel-time{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:108px;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-elev);color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer}.wl-reel-time b{font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;color:var(--muted)}.wl-reel-time>span{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-small);font-weight:600;white-space:nowrap}.wl-reel-time>span .icon{color:var(--muted)}.wl-reel-time[aria-current]>span .icon{color:var(--accent-deep)}.wl-reel-time:hover{border-color:var(--ink-soft)}.wl-reel-time[aria-current]{border-color:var(--ink);color:var(--ink)}.wl-reel-time[aria-current] b{color:var(--accent-deep)}.wl-reel-fill{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform-origin:left center;transition:transform .1s linear}@media(min-width:900px){.wl-reel-times li{flex:1 1 0;min-width:0}.wl-reel-time{width:100%;height:100%;min-width:0}.wl-reel-time>span{white-space:normal}}.wl-reel-blocks{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-4)}.wl-reel-blocks p{margin:0;font-size:var(--fs-small);color:var(--ink-soft)}.wl-reel-blocks .wl-step-blocks{margin:0}.wl-pile{position:absolute;left:50%;top:46%;width:58cqh;height:52cqh;transform:translate(-50%,-50%)}.wl-pile-print{top:0;left:0;width:58cqh;animation:wl-land .9s var(--easing) both}.wl-pile-print.is-a{transform:translate(-16cqh) rotate(-7deg)}.wl-pile-print.is-b{transform:translate(14cqh) rotate(5deg)}.wl-pile-print.is-c{transform:translateY(2cqh) rotate(-1.5deg)}@keyframes wl-land{0%{opacity:0;translate:0 -12cqh;scale:1.15}}.wl-bokeh{filter:saturate(1.15)}.wl-bokeh.is-a{background:radial-gradient(7% 10% at 42% 58%,var(--share-stage) 95%,transparent),radial-gradient(7% 10% at 58% 54%,var(--share-stage) 95%,transparent),radial-gradient(17% 30% at 42% 100%,var(--share-stage) 96%,transparent),radial-gradient(17% 32% at 58% 100%,var(--share-stage) 96%,transparent),radial-gradient(circle at 18% 26%,color-mix(in srgb,var(--gold) 90%,transparent) 0 7%,transparent 10%),radial-gradient(circle at 46% 16%,color-mix(in srgb,var(--share-paper) 70%,transparent) 0 4%,transparent 6.5%),radial-gradient(circle at 76% 30%,color-mix(in srgb,var(--accent) 80%,transparent) 0 9%,transparent 13%),radial-gradient(circle at 28% 52%,color-mix(in srgb,var(--rose) 70%,transparent) 0 6%,transparent 9%),radial-gradient(circle at 86% 62%,color-mix(in srgb,var(--gold) 70%,transparent) 0 5%,transparent 8%),radial-gradient(circle at 8% 70%,color-mix(in srgb,var(--accent) 60%,transparent) 0 8%,transparent 12%),linear-gradient(160deg,color-mix(in srgb,var(--sec-treasure) 60%,var(--share-stage)),var(--share-stage) 80%)}.wl-bokeh.is-b{background:radial-gradient(6% 9% at 28% 60%,var(--share-stage) 95%,transparent),radial-gradient(6.5% 9.5% at 50% 56%,var(--share-stage) 95%,transparent),radial-gradient(6% 9% at 72% 61%,var(--share-stage) 95%,transparent),radial-gradient(14% 28% at 28% 100%,var(--share-stage) 96%,transparent),radial-gradient(15% 30% at 50% 100%,var(--share-stage) 96%,transparent),radial-gradient(14% 28% at 72% 100%,var(--share-stage) 96%,transparent),radial-gradient(circle at 14% 22%,color-mix(in srgb,var(--sec-know) 80%,transparent) 0 8%,transparent 12%),radial-gradient(circle at 40% 30%,color-mix(in srgb,var(--gold) 85%,transparent) 0 5%,transparent 8%),radial-gradient(circle at 64% 18%,color-mix(in srgb,var(--share-paper) 65%,transparent) 0 6%,transparent 9%),radial-gradient(circle at 88% 34%,color-mix(in srgb,var(--rose) 80%,transparent) 0 9%,transparent 13%),radial-gradient(circle at 92% 72%,color-mix(in srgb,var(--gold) 60%,transparent) 0 6%,transparent 9%),linear-gradient(200deg,color-mix(in srgb,var(--sec-know) 50%,var(--share-stage)),var(--share-stage) 80%)}.wl-bokeh.is-c{background:radial-gradient(circle at 50% 44%,color-mix(in srgb,var(--share-paper) 95%,transparent) 0 2.5%,color-mix(in srgb,var(--gold) 80%,transparent) 5%,transparent 22%),radial-gradient(circle at 22% 30%,color-mix(in srgb,var(--accent) 75%,transparent) 0 7%,transparent 11%),radial-gradient(circle at 78% 24%,color-mix(in srgb,var(--gold) 85%,transparent) 0 6%,transparent 9%),radial-gradient(circle at 70% 70%,color-mix(in srgb,var(--rose) 70%,transparent) 0 8%,transparent 12%),radial-gradient(circle at 16% 76%,color-mix(in srgb,var(--confirm) 55%,transparent) 0 6%,transparent 9%),radial-gradient(circle at 40% 84%,color-mix(in srgb,var(--share-paper) 55%,transparent) 0 4%,transparent 6%),linear-gradient(180deg,color-mix(in srgb,var(--accent) 35%,var(--share-stage)),var(--share-stage) 85%)}@media(prefers-reduced-motion:reduce){.wl-reel .st-bg-glow,.wl-reel .st-scene,.wl-reel .st-dot,.wl-pile-print{animation:none}.wl-reel-fill{transition:none}}/**
 * plans.css — the Plans screen (/plans, /credits): the ladder, My plan, the
 * short-balance choices, the inline checkout, the code box and refills.
 * Tokens only (design-system.css); the cards are `.ds-card` (§5f) and the
 * interval rail is `.ds-seg` (§5c). PRICING_PLANS_PLAN.md §8.
 *
 * @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
 */.plans-page{max-width:760px;margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-7)}.plans-skeleton{height:140px;margin-top:var(--sp-3)}.plans-h1{margin:0 0 var(--sp-2)}.plans-lede{margin:0 0 var(--sp-4);color:var(--ink-soft);line-height:1.5}.plans-fine{margin:var(--sp-2) 0 0;font-size:var(--fs-small);line-height:1.55;color:var(--muted)}.plans-fine a{text-decoration:underline;text-underline-offset:2px}.plans-hint{margin-top:var(--sp-3);font-size:var(--fs-small)}.plans-label{display:block;margin-bottom:var(--sp-2);font-size:var(--fs-small);font-weight:600}.plans-seg{max-width:360px;margin:0 0 var(--sp-4)}.plans-deck{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}@media(min-width:600px){.plans-deck{grid-template-columns:repeat(3,minmax(0,1fr))}.plans-deck--one{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.plans-deck--one>.ds-card{grid-column:1}}.plans-tag{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:1;padding:3px var(--sp-2);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1}.plans-price{color:var(--ink);font-size:var(--fs-body)}.plans-sub-h{margin:var(--sp-6) 0 var(--sp-3);font-size:var(--fs-body-lg);font-weight:600}.plans-pro{margin:var(--sp-3) 0 0;color:var(--ink-soft);line-height:1.5}.plans-pro a{color:inherit}.plans-facts-list{margin:0;padding-left:1.2em;line-height:1.6}.plans-buy{margin-top:var(--sp-4)}.plans-consent{display:flex;gap:var(--sp-2);align-items:flex-start;margin:0 0 var(--sp-3);font-size:var(--fs-small);line-height:1.5;cursor:pointer}.plans-consent input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}.plans-checkout{margin-top:var(--sp-3)}.plans-checkout-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.plans-checkout-head strong{margin-left:auto;text-align:right}.plans-frame{max-width:480px;margin:0 auto;padding:var(--sp-3);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm)}.plans-frame>.plans-fine{margin:0 0 var(--sp-3);color:var(--ink)}.plans-panel{margin-top:var(--sp-4);padding:var(--sp-4);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.plans-panel-h{margin:0;font-size:var(--fs-body-lg);font-weight:700}.plans-when{margin:var(--sp-1) 0 0;color:var(--ink-soft);line-height:1.5}.plans-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-1) var(--sp-3);margin:var(--sp-3) 0;font-size:var(--fs-small);line-height:1.5}.plans-facts dt{color:var(--muted)}.plans-facts dd{margin:0}.plans-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.plans-short{margin-bottom:var(--sp-2)}.plans-choice{margin:0 0 var(--sp-2);line-height:1.5}.plans-balance{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3);margin-top:var(--sp-4)}.plans-balance .plans-fine{margin:0}.plans-balance-num{font-size:30px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.plans-balance-note{margin-left:auto}.plans-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}.plans-pack{margin-top:0;text-align:center}.plans-pack-name{font-weight:600}.plans-pack-credits{margin-top:var(--sp-1);font-size:30px;font-weight:800;line-height:1.1}.plans-pack-price{margin-top:var(--sp-2);font-size:20px;font-weight:700}.plans-pack-buy{width:100%;margin-top:var(--sp-3)}.plans-field{min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-inset);color:var(--ink);font:inherit}.plans-code-row{display:flex;gap:var(--sp-2)}.plans-code-input{flex:1 1 auto;min-width:0;text-transform:uppercase;letter-spacing:.04em}.plans-msg{margin-top:var(--sp-2);font-size:var(--fs-small);font-weight:500}.plans-msg.is-ok{color:var(--status-success)}.plans-msg.is-err{color:var(--status-error)}.plans-refills.is-closed{opacity:.6}.plans-refills-head{display:flex;align-items:center;gap:var(--sp-3)}.plans-refills-head .plans-label{margin:0}.plans-refills-head .toggle-switch{flex:none;margin-left:auto}.plans-refills-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--fs-small)}.plans-floor{width:96px}.plans-compare{margin-top:var(--sp-6);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg-elev)}.plans-compare>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-4);cursor:pointer;list-style:none;font-weight:600}.plans-compare>summary::-webkit-details-marker{display:none}.plans-compare[open]>summary .icon{transform:rotate(180deg)}.plans-compare-body{padding:0 var(--sp-4) var(--sp-4)}.plans-compare-wrap{overflow-x:auto}.plans-compare-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.plans-compare-table th,.plans-compare-table td{padding:var(--sp-2);border-bottom:1px solid var(--divider);text-align:left;vertical-align:top}.plans-compare-table thead th{color:var(--muted);font-size:var(--fs-caption);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.plans-compare-cl{display:none}.plans-compare-notes{display:grid;gap:var(--sp-4);margin-top:var(--sp-4)}.plans-compare-notes h3{margin:0 0 var(--sp-2);font-size:var(--fs-body)}.plans-compare-notes p{margin:0 0 var(--sp-2);color:var(--ink-soft);line-height:1.55}.plans-compare-notes p:last-child{margin-bottom:0}@media(min-width:720px){.plans-compare-notes{grid-template-columns:1fr 1fr}}@media(max-width:719px){.plans-compare-wrap{overflow:visible}.plans-compare-table thead{display:none}.plans-compare-table,.plans-compare-table tbody,.plans-compare-table tr,.plans-compare-table th,.plans-compare-table td{display:block}.plans-compare-table tr{margin-bottom:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface)}.plans-compare-table th[scope=row]{padding:0 0 var(--sp-1);border:0;font-weight:600}.plans-compare-table td{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) 0;border:0}.plans-compare-cl{display:inline;color:var(--muted)}}/**
 * @fileoverview greetlet.com's frame (WelcomePage.jsx): the page, its type,
 * the top bar, the closing band, the footer and Compass's bar. The banner at
 * the top is heroStage.css; the bands live in welcomeBands.css.
 *
 * Every band follows the visitor's theme, which is light until they pick
 * dark (the moon in the top bar; owner 2026-10-07). The stage bands (hero,
 * song, gift, stories, the close) read the `--wl-stage*` tokens: warm blush
 * paper in light, the dark stage a Greetlet opens on in dark. A drawn screen
 * (a phone, the lyric player) wears `.wl-screen`, which is that dark stage in
 * either theme, because a real Greetlet opens on it. Colour comes from the
 * blocks' own family hues (`--sec-*`, drawn by BlockArt); the chrome keeps one
 * coral accent for the one next step.
 *
 * @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
 */.wl{--wl-gutter: max(16px, env(safe-area-inset-left));--wl-stage: color-mix(in srgb, var(--accent) 7%, var(--bg));--wl-on-stage: var(--ink);--wl-on-stage-soft: var(--ink-soft);--wl-on-stage-faint: var(--muted);--wl-stage-line: var(--edge);--wl-stage-card: var(--bg-elev);--wl-stage-accent: var(--accent-deep);min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-x:clip}.wl [id]{scroll-margin-top:84px}.wl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.wl-wrap{width:min(1160px,100%);margin:0 auto;padding-inline:var(--wl-gutter);box-sizing:border-box}:root[data-theme=dark] .wl,.wl .wl-screen{--wl-stage: var(--share-stage);--wl-on-stage: var(--share-paper);--wl-on-stage-soft: color-mix(in srgb, var(--share-paper) 74%, transparent);--wl-on-stage-faint: color-mix(in srgb, var(--share-paper) 58%, transparent);--wl-stage-line: color-mix(in srgb, var(--share-paper) 14%, transparent);--wl-stage-card: color-mix(in srgb, var(--share-paper) 6%, var(--share-stage));--wl-stage-accent: var(--accent-soft)}.wl-screen{background:var(--wl-stage);color:var(--wl-on-stage)}@media(min-width:600px){.wl{--wl-gutter: 24px}}@media(min-width:1024px){.wl{--wl-gutter: 32px}}.wl-h2{margin:0 0 var(--sp-4);font-family:var(--font-serif);font-size:clamp(30px,4.4vw,48px);font-weight:700;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}.wl-h3{margin:0 0 var(--sp-2);font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700;line-height:1.2}.wl-lede{margin:0;max-width:62ch;font-size:var(--fs-body-lg);line-height:1.6;color:var(--ink-soft)}.wl-head{margin-bottom:clamp(28px,4vw,48px)}.wl-fine{margin:var(--sp-4) 0 0;font-size:var(--fs-small);line-height:1.55;color:var(--muted)}.wl-fine--wide{max-width:80ch}.wl-fine a{color:inherit}.wl .btn.btn-primary,.wl .btn.btn-secondary{width:auto}.wl .btn.wl-cta{min-height:52px;padding:0 28px;border-radius:var(--r-pill);font-size:17px;font-weight:700;justify-content:center}.wl .btn.wl-cta-quiet{min-height:48px;padding:0 22px;border-radius:var(--r-pill);background:transparent;color:var(--wl-on-stage);border:1.5px solid var(--wl-stage-line);font-size:var(--fs-body);font-weight:700}.wl .btn.wl-cta-quiet:hover{border-color:var(--wl-on-stage);filter:none}.wl-band-cta{margin-top:clamp(28px,4vw,44px)}.wl-band{padding:clamp(64px,9vw,120px) 0}.wl-band--alt{background:var(--surface-inset)}.wl-stage{background:var(--wl-stage);color:var(--wl-on-stage)}.wl-stage .wl-lede{color:var(--wl-on-stage-soft)}.wl-stage .wl-fine{color:var(--wl-on-stage-faint)}.wl-nav{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--divider)}.wl-nav-row{display:flex;align-items:center;gap:var(--sp-4);width:min(1160px,100%);margin:0 auto;box-sizing:border-box;min-height:64px;padding-inline:var(--wl-gutter)}.wl-nav-logo img{display:block;height:34px;width:auto}.wl-nav-places{display:none;gap:var(--sp-5);margin-inline:auto}.wl-nav-places a{color:var(--ink-soft);font-size:var(--fs-small);font-weight:600;text-decoration:none;white-space:nowrap}.wl-nav-places a:hover{color:var(--ink)}.wl-nav-auth{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.wl-nav-auth .btn{min-height:40px;padding:0 16px}.wl-nav-theme{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--ink-soft);cursor:pointer}.wl-nav-theme:hover{background:var(--surface-inset);color:var(--ink)}@media(min-width:1040px){.wl-nav-places{display:flex}.wl-nav-auth{margin-left:0}}.wl-notice{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-2) var(--wl-gutter);background:var(--accent-surface);color:var(--ink);font-size:var(--fs-small);font-weight:600;text-align:center}.wl-notice-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.wl-final{text-align:center;padding-inline:var(--wl-gutter)}.wl-final .compass-mascot{--compass-size: 150px;margin-bottom:var(--sp-3)}.wl-final .wl-lede{margin:0 auto var(--sp-6)}.wl-footer{padding:var(--sp-7) 0 calc(var(--sp-8) + 64px);border-top:1px solid var(--divider);color:var(--ink-soft)}.wl-footer-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4) var(--sp-6)}.wl-footer-top img{display:block;height:32px;width:auto}.wl-footer nav{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5)}.wl-footer nav a{color:var(--ink);font-size:var(--fs-small);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--edge);padding-block:var(--sp-2)}.wl-footer-discord{display:inline-flex;align-items:center;gap:var(--sp-1)}.wl-legal{margin-top:var(--sp-5);display:grid;gap:var(--sp-2);max-width:86ch}.wl-legal p{margin:0;font-size:var(--fs-caption);line-height:1.6;color:var(--muted)}.wl-legal a{color:inherit}.wl-cbar{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:var(--z-sticky);display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-3);width:min(760px,calc(100% - 2 * var(--wl-gutter)));box-sizing:border-box;padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);background:var(--bg-elev);color:var(--ink);border:1px solid var(--edge);border-radius:28px;box-shadow:var(--shadow-lg);translate:-50% calc(100% + 32px);opacity:0;transition:translate var(--t-card) var(--easing),opacity var(--t-medium) var(--easing)}.wl-cbar.is-shown{translate:-50% 0;opacity:1}.wl-cbar .compass-mascot{--compass-size: 48px}.wl-cbar-line{margin:0;font-size:var(--fs-small);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wl .btn.wl-cbar-go{min-height:44px;padding:0 18px;border-radius:var(--r-pill);font-size:var(--fs-body);white-space:nowrap}.wl-cbar-fold{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--ink-soft);cursor:pointer}.wl-cbar-fold:hover{background:var(--surface-inset);color:var(--ink)}@media(max-width:420px){.wl-cbar{gap:var(--sp-2)}.wl-cbar .compass-mascot{--compass-size: 40px}.wl-cbar-fold{width:36px}}@media(prefers-reduced-motion:reduce){.wl-cbar{transition:none}}.wl-notice-extra{max-width:520px;margin:var(--sp-2) auto 0;padding:0 var(--sp-4)}/**
 * @fileoverview greetlet.com's bands (WelcomePage.jsx): the five kinds, the
 * blocks and their catalog, the Song and Cover, the living link, the late
 * birthday with its printed sheet, events and business, Compass, Greetlet
 * Stories, pricing and the questions. Frame, type and buttons: welcome.css.
 *
 * @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
 */.wl-kinds{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4)}.wl-kind{padding:var(--sp-4) var(--sp-4) var(--sp-5);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-xl)}.wl-kind p{margin:0;line-height:1.55;color:var(--ink-soft)}.wl-kind-art{height:104px;border-radius:var(--r-lg);margin-bottom:var(--sp-4)}.wl-kind .wl-kind-for{margin-top:var(--sp-3);font-size:var(--fs-small)}.wl-kind-for span{font-weight:700;color:var(--ink)}@media(min-width:640px){.wl-kinds{grid-template-columns:repeat(2,1fr)}.wl-kind--promo{grid-column:1 / -1}}@media(min-width:960px){.wl-kinds{grid-template-columns:repeat(6,1fr)}.wl-kind{grid-column:span 2}.wl-kind--song,.wl-kind--greeting_card{grid-column:span 3}.wl-kind--song .wl-kind-art,.wl-kind--greeting_card .wl-kind-art{height:150px}}.wl-blocks-intro{display:grid;gap:var(--sp-6);align-items:center;margin-bottom:clamp(48px,7vw,88px)}@media(min-width:900px){.wl-blocks-intro{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:var(--sp-8)}}.wl-points{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-3);max-width:60ch}.wl-points li{padding-left:var(--sp-5);position:relative;line-height:1.55;color:var(--ink-soft)}.wl-points li:before{content:"";position:absolute;left:2px;top:.6em;width:8px;height:8px;border-radius:2px;background:var(--accent)}.wl-points strong{color:var(--ink)}.wl-stack{list-style:none;margin:0 auto;padding:var(--sp-3);width:min(340px,100%);box-sizing:border-box;display:grid;gap:var(--sp-2);background:var(--bg-elev);border:1px solid var(--edge);border-radius:32px;box-shadow:var(--shadow-md)}.wl-stack li{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:var(--sp-3)}.wl-stack-art{height:48px;border-radius:var(--r-md)}.wl-stack li:first-child{grid-template-columns:1fr}.wl-stack li:first-child .wl-stack-art{height:120px}.wl-stack li:first-child>span:last-child{display:none}.wl-stack span{font-weight:700;font-size:var(--fs-small)}.wl-catalog-title{margin:0 0 var(--sp-4);font-family:var(--font-serif);font-size:clamp(22px,2.6vw,28px);font-weight:700;line-height:1.2}.wl-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-5)}.wl-chip{min-height:40px;padding:0 var(--sp-4);border-radius:var(--r-pill);cursor:pointer;border:1px solid var(--edge);background:var(--bg-elev);color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:600}.wl-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.wl-tiles{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}@media(min-width:600px){.wl-tiles{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}}.wl-tile{padding:var(--sp-2) var(--sp-2) var(--sp-4);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}.wl-tile-art{aspect-ratio:150 / 64;border-radius:var(--r-md);margin-bottom:var(--sp-3)}.wl-tile h4{margin:0 var(--sp-2) var(--sp-1);font-size:var(--fs-body)}.wl-tile p{margin:0 var(--sp-2);font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}.wl-duo{display:grid;gap:var(--sp-5)}@media(min-width:900px){.wl-duo{grid-template-columns:1fr 1fr}}.wl-feature{padding:var(--sp-4) var(--sp-4) var(--sp-5);background:var(--wl-stage-card);border:1px solid var(--wl-stage-line);border-radius:var(--r-xl)}.wl-feature>p{margin:0;line-height:1.6;color:var(--wl-on-stage-soft)}.wl-feature>.wl-fine{margin-top:var(--sp-4)}.wl-lyric,.wl-blend{min-height:220px;margin-bottom:var(--sp-5);border-radius:var(--r-lg);border:1px solid var(--wl-stage-line)}.wl-lyric{display:flex;flex-direction:column;justify-content:center;padding:var(--sp-5);font-family:var(--font-serif)}.wl-lyric p{margin:0 0 var(--sp-2);font-size:17px;line-height:1.35;color:color-mix(in srgb,var(--share-paper) 32%,transparent)}.wl-lyric p.is-now{font-size:22px}.wl-lyric .is-sung{color:var(--share-paper)}.wl-takes{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600}.wl-takes>span{display:inline-flex;align-items:center;gap:var(--sp-1);padding:6px 12px;border-radius:var(--r-pill);border:1px solid var(--wl-stage-line);color:var(--wl-on-stage-soft)}.wl-takes .is-picked{border-color:var(--accent-soft);color:var(--share-paper)}.wl-blend{display:grid;grid-template-columns:1fr auto 1.15fr;align-items:center;gap:var(--sp-3);padding:var(--sp-4)}.wl-blend-photo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);aspect-ratio:4 / 5;border:1.5px dashed var(--wl-stage-line);border-radius:var(--r-md);color:var(--wl-on-stage-soft);font-size:var(--fs-small)}.wl-blend-photo .icon{font-size:34px}.wl-blend-arrow{color:var(--accent-soft)}.wl-blend-scene{width:100%;border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.wl-sky-top{stop-color:var(--sec-treasure)}.wl-sky-low{stop-color:var(--accent)}.wl-sun{fill:var(--sec-plan)}.wl-isle{fill:color-mix(in srgb,var(--sec-go) 45%,var(--share-stage))}.wl-lake{fill:color-mix(in srgb,var(--sec-know) 55%,var(--share-stage))}.wl-glint{stroke:var(--sec-plan);stroke-width:2;stroke-linecap:round;opacity:.8}.wl-boat{fill:var(--sec-brand)}.wl-who{fill:var(--share-stage)}.wl-ticks{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:grid;gap:var(--sp-2)}.wl-ticks li{position:relative;padding-left:var(--sp-5);line-height:1.45}.wl-ticks li:before{content:"✓";position:absolute;left:0;color:var(--wl-stage-accent);font-weight:700}.wl-compare{width:100%;margin-top:clamp(40px,6vw,72px);border-collapse:collapse;font-size:var(--fs-body)}.wl-compare caption{margin-bottom:var(--sp-4);text-align:left;font-family:var(--font-serif);font-size:clamp(22px,2.6vw,28px);font-weight:700}.wl-compare th,.wl-compare td{padding:var(--sp-3) var(--sp-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--wl-stage-line);line-height:1.45}.wl-compare thead th{font-size:var(--fs-small);color:var(--wl-on-stage-soft);font-weight:600}.wl-compare tbody th{font-weight:600;color:var(--wl-on-stage-soft);width:26%}.wl-compare td{color:var(--wl-on-stage-soft)}.wl-compare td:last-child{color:var(--wl-on-stage);font-weight:600;background:color-mix(in srgb,var(--accent) 12%,transparent)}@media(max-width:599px){.wl-compare{font-size:var(--fs-small)}.wl-compare th,.wl-compare td{padding:var(--sp-3) var(--sp-2)}}.wl-living{display:grid;gap:var(--sp-6)}.wl-living-phone{display:none}@media(min-width:960px){.wl-living{grid-template-columns:340px minmax(0,1fr);gap:var(--sp-8);align-items:start}.wl-living-phone{display:block;position:sticky;top:96px}}.wl-mini-phone{padding:var(--sp-3);background:var(--bg-elev);border:1px solid var(--edge);border-radius:32px;box-shadow:var(--shadow-md)}.wl-mini-url{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);margin:0 0 var(--sp-3);padding:8px 12px;border-radius:var(--r-pill);background:var(--surface-inset);font-size:var(--fs-caption);font-weight:600;color:var(--ink-soft)}.wl-mini-title{margin:0 0 var(--sp-3);text-align:center;font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700}.wl-mini-blocks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.wl-mini-blocks li{position:relative;display:grid;gap:4px;font-size:var(--fs-caption);font-weight:600;border-radius:var(--r-md)}.wl-mini-art{height:40px;border-radius:var(--r-md)}.wl-mini-blocks li.is-new .wl-mini-art{outline:2px solid var(--accent);outline-offset:2px;animation:wl-arrive var(--t-slow) var(--easing)}.wl-mini-blocks li.is-new:after{content:"New";position:absolute;top:4px;right:4px;padding:1px 7px;border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:11px;font-weight:700}@keyframes wl-arrive{0%{transform:scale(.92);opacity:.4}}.wl-living-caption{margin:var(--sp-3) 0 0;text-align:center;font-size:var(--fs-small);color:var(--muted)}.wl-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4)}.wl-step{padding:var(--sp-2) 0 var(--sp-2) var(--sp-5);border-left:3px solid var(--divider);transition:border-color var(--t-medium) var(--easing)}@media(min-width:960px){.wl-step{min-height:30vh;display:flex;flex-direction:column;justify-content:center}}.wl-step.is-active{border-left-color:var(--accent)}.wl-step>p{margin:0;max-width:60ch;line-height:1.6;color:var(--ink-soft)}.wl-step-when{font-size:var(--fs-small);font-weight:700;color:var(--accent-deep);margin-bottom:var(--sp-1)!important}:root[data-theme=dark] .wl-step-when{color:var(--accent-soft)}.wl-step-blocks{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.wl-step-blocks>li{display:inline-flex;align-items:center;gap:var(--sp-2);padding:4px 12px 4px 4px;border:1px solid var(--divider);border-radius:var(--r-pill);font-size:var(--fs-small);font-weight:600;background:var(--bg-elev)}.wl-ico{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%}.wl-ico .icon{font-size:17px;color:var(--ba-a)}.wl-mechanics{list-style:none;margin:clamp(40px,6vw,72px) 0 0;padding:0;display:grid;gap:var(--sp-4)}@media(min-width:800px){.wl-mechanics{grid-template-columns:repeat(3,1fr)}}.wl-mechanics li{padding-top:var(--sp-4);border-top:2px solid var(--ink);line-height:1.55;color:var(--ink-soft)}.wl-mechanics strong{display:block;margin-bottom:var(--sp-1);color:var(--ink);font-family:var(--font-serif);font-size:var(--fs-h3)}.wl-gift-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-5)}@media(min-width:640px){.wl-gift-steps{grid-template-columns:repeat(2,1fr)}}@media(min-width:1040px){.wl-gift-steps{grid-template-columns:repeat(4,1fr)}}.wl-gift-steps p{margin:0;line-height:1.55;color:var(--wl-on-stage-soft)}.wl-gift-art{height:72px;border-radius:var(--r-md);margin-bottom:var(--sp-4)}.wl-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-right:var(--sp-2);border:1.5px solid var(--wl-stage-line);border-radius:50%;font-family:var(--font-sans);font-size:var(--fs-small);vertical-align:2px}.wl-gift-show{display:grid;gap:var(--sp-7);align-items:center;margin-top:clamp(48px,7vw,88px)}@media(min-width:900px){.wl-gift-show{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}}.wl-claim{width:min(300px,100%);margin:0 auto;padding:var(--sp-5);box-sizing:border-box;background:var(--share-paper);color:var(--share-ink);border-radius:28px;box-shadow:var(--shadow-lg);text-align:center}.wl-claim-kicker{margin:0;font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700}.wl-claim-amount{margin:var(--sp-1) 0;font-family:var(--font-serif);font-size:48px;font-weight:700;line-height:1}.wl-claim-ask{margin:0 0 var(--sp-3);font-size:var(--fs-small)}.wl-claim ul{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.wl-claim li{display:grid;justify-items:center;gap:2px;padding:var(--sp-2) 0;border:1px solid var(--share-border);border-radius:var(--r-md);font-size:11px;font-weight:600}.wl-claim-btn{display:block;padding:12px;border-radius:var(--r-pill);background:var(--share-accent);color:var(--share-paper);font-weight:700}.wl-sheet-fig{margin:0}.wl-sheet-fig figcaption{margin:var(--sp-4) auto 0;max-width:54ch;font-size:var(--fs-small);line-height:1.6;color:var(--wl-on-stage-soft)}.wl-sheet{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:min(440px,100%);aspect-ratio:17 / 22;margin:0 auto;overflow:hidden;background:var(--share-paper);color:var(--share-ink);border-radius:6px;box-shadow:var(--shadow-lg);font-size:clamp(6px,2vw,9px)}.wl-sheet:before,.wl-sheet:after{content:"";position:absolute;pointer-events:none;border:0 dotted var(--share-border)}.wl-sheet:before{left:0;right:0;top:50%;border-top-width:2px}.wl-sheet:after{top:0;bottom:0;left:50%;border-left-width:2px}.wl-quad{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7% 8%;text-align:center;overflow:hidden}.wl-quad.is-flipped{transform:rotate(180deg)}.wl-sheet-greeting{margin:0;font-family:var(--font-serif);font-size:1.15em;line-height:1.55}.wl-sheet-sign{margin:1.2em 0 0;font-family:var(--font-serif);font-style:italic}.wl-sheet-lyrics{justify-content:flex-start;align-items:stretch}.wl-sheet-songtitle{margin:0 0 1em;font-family:var(--font-serif);font-weight:700;letter-spacing:.05em;text-align:center}.wl-sheet-lyrics span{display:block;height:.32em;margin:.42em 0;border-radius:var(--r-pill);background:var(--share-border)}.wl-sheet-lyrics i{display:block;height:.8em}.wl-sheet-back img{width:62%;height:auto}.wl-sheet-from{margin:.6em 0 1.4em;font-family:var(--font-serif);font-style:italic}.wl-sheet-scan{margin:0 0 .6em;font-weight:700}.wl-sheet-back .wl-qr{width:42%}.wl-sheet-front{padding:5.88%}.wl-sheet-art{flex:1;width:100%;display:flex;align-items:flex-end;background:linear-gradient(150deg,var(--sec-plan),var(--accent) 55%,var(--sec-treasure))}.wl-sheet-art p{margin:0;width:100%;padding:12% 8%;font-family:var(--font-serif);font-size:2em;font-weight:700;line-height:1.12;color:var(--share-paper)}.wl-qr{display:block;aspect-ratio:1;shape-rendering:crispEdges;fill:var(--share-stage)}.wl-qr-pad{fill:var(--share-paper);shape-rendering:geometricPrecision}.wl-uses{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4)}@media(min-width:720px){.wl-uses{grid-template-columns:repeat(2,1fr)}.wl-use:last-child{grid-column:1 / -1}}@media(min-width:1040px){.wl-uses{grid-template-columns:repeat(6,1fr)}.wl-use{grid-column:span 2}.wl-use:nth-child(-n+2){grid-column:span 3}.wl-use:last-child{grid-column:span 2}}.wl-use{padding:var(--sp-5);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-xl)}.wl-use>p{margin:0;line-height:1.6;color:var(--ink-soft)}.wl-use .wl-use-tag{margin-bottom:var(--sp-2);font-size:var(--fs-small);font-weight:700;color:var(--muted)}.wl-embed,.wl-qr-band{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-6);align-items:center;margin-top:clamp(56px,8vw,104px)}@media(min-width:900px){.wl-embed,.wl-qr-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-8)}}.wl-embed p,.wl-qr-band>div>p{margin:0;max-width:58ch;line-height:1.6;color:var(--ink-soft)}.wl-code{margin:var(--sp-4) 0 0;padding:var(--sp-3) var(--sp-4);overflow-x:auto;background:var(--surface-inset);border:1px solid var(--divider);border-radius:var(--r-md);font-size:12.5px;line-height:1.6;color:var(--ink)}.wl-code code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.wl-browser{padding:0 var(--sp-4) var(--sp-5);background:var(--bg-elev);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.wl-browser-bar{display:flex;align-items:center;gap:6px;margin:0 calc(-1 * var(--sp-4)) var(--sp-4);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--divider)}.wl-browser-bar span{width:10px;height:10px;border-radius:50%;background:var(--edge)}.wl-browser-bar em{margin-left:var(--sp-3);padding:3px 12px;border-radius:var(--r-pill);background:var(--surface-inset);font-style:normal;font-size:var(--fs-caption);color:var(--ink-soft)}.wl-browser-head{margin:0 0 var(--sp-3);font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:700}.wl-browser-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.wl-embed-card{display:grid;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--bg)}.wl-embed-card strong{font-family:var(--font-serif);font-size:var(--fs-body);padding-inline:var(--sp-1)}.wl-embed-cover{display:flex;align-items:flex-start;justify-content:center;aspect-ratio:4 / 3;border-radius:var(--r-md);padding-top:var(--sp-2)}.wl-embed-cover span{font-family:var(--font-serif);font-style:italic;font-size:var(--fs-caption);color:var(--share-paper)}.wl-embed-cover.is-a{background:linear-gradient(160deg,var(--sec-people),var(--sec-treasure))}.wl-embed-cover.is-b{background:linear-gradient(160deg,var(--sec-go),var(--sec-know))}.wl-embed-open{padding:8px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 88%,var(--ink));color:var(--text-on-accent);font-size:var(--fs-caption);font-weight:700;text-align:center}.wl-qr-jobs{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-3)}.wl-qr-jobs li{display:grid;grid-template-columns:40px 1fr;column-gap:var(--sp-3);align-items:center}.wl-qr-jobs .icon{grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--surface-inset);color:var(--accent-deep)}.wl-qr-jobs span:last-child{font-size:var(--fs-small);color:var(--ink-soft)}.wl-qr-show{display:grid;gap:var(--sp-6);justify-items:center}.wl-tent{width:min(280px,76vw);filter:drop-shadow(0 18px 24px color-mix(in srgb,var(--share-stage) 40%,transparent))}.wl-tent-crease{height:10px;border-radius:9px 9px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--share-stage) 34%,transparent),transparent)}.wl-tent-face{padding:6%;background:var(--share-paper);color:var(--share-ink);aspect-ratio:4.25 / 2.75;box-sizing:border-box;border-radius:0 0 3px 3px;font-size:clamp(8px,2.6vw,10px)}.wl-tent-ask{margin:0;text-align:center;font-size:1.8em;font-weight:700;line-height:1.1}.wl-tent-title{margin:.2em 0 .6em;text-align:center;font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:1.15em}.wl-tent-body{display:grid;grid-template-columns:34% 1fr;gap:6%;align-items:center}.wl-tent-body ol{margin:0;padding-left:1.2em;line-height:1.4}.wl-wall{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:min(340px,100%);padding:var(--sp-3);box-sizing:border-box;background:var(--share-stage);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.wl-wall span{aspect-ratio:4 / 3;border-radius:6px}.wl-wall .is-a{background:linear-gradient(140deg,var(--sec-plan),var(--accent))}.wl-wall .is-b{background:linear-gradient(140deg,var(--sec-go),var(--sec-know))}.wl-wall .is-c{background:linear-gradient(140deg,var(--sec-treasure),var(--sec-people))}.wl-wall .is-d{background:linear-gradient(140deg,var(--sec-know),var(--sec-go))}.wl-wall .is-e{background:linear-gradient(140deg,var(--accent),var(--sec-plan))}.wl-wall .is-f{background:linear-gradient(140deg,var(--sec-gifts),var(--sec-go))}.wl-wall-qr{position:absolute;right:18px;bottom:18px;width:52px;padding:4px;background:var(--share-paper);border-radius:6px}.wl-compass{display:grid;gap:var(--sp-6);align-items:center}@media(min-width:900px){.wl-compass{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:var(--sp-8)}}.wl-compass-stage{display:grid;justify-items:center;gap:var(--sp-4)}.wl-compass-stage>.compass-mascot{--compass-size: clamp(150px, 26vw, 220px)}.wl-bubble{position:relative;margin:0;max-width:300px;padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border:1px solid var(--edge);border-radius:20px;font-weight:600;line-height:1.45;text-align:center;box-shadow:var(--shadow-sm)}.wl-bubble:after{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:14px;translate:-50% 0;rotate:45deg;background:var(--bg-elev);border-right:1px solid var(--edge);border-bottom:1px solid var(--edge)}.wl-mini-bar{display:flex;align-items:center;gap:var(--sp-2);width:min(340px,100%);padding:6px 6px 6px 10px;box-sizing:border-box;background:var(--bg-elev);border:1px solid var(--edge);border-radius:24px;font-size:var(--fs-small);font-weight:600}.wl-mini-bar .compass-mascot{--compass-size: 32px}.wl-mini-bar>span:nth-child(2){flex:1}.wl-mini-bar-next{padding:8px 14px;border-radius:var(--r-pill);border:1.5px solid var(--accent);color:var(--accent-deep);white-space:nowrap}:root[data-theme=dark] .wl-mini-bar-next{color:var(--accent-soft)}.wl-abilities{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-2)}.wl-abilities button{display:grid;gap:2px;width:100%;padding:var(--sp-3) var(--sp-4);text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}.wl-abilities button span{font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}.wl-abilities button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-surface)}.wl-stories{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-6) var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.wl-stories.is-single{max-width:760px;grid-template-columns:1fr}.wl-story p{margin:0;line-height:1.55;color:var(--wl-on-stage-soft)}.wl-story-frame{position:relative;aspect-ratio:16 / 9;margin-bottom:var(--sp-3);overflow:hidden;border-radius:var(--r-lg);background:var(--share-stage);border:1px solid var(--wl-stage-line)}.wl-story-frame iframe,.wl-story-play{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.wl-story-play{padding:0;cursor:pointer;background:transparent}.wl-story-play img{width:100%;height:100%;object-fit:cover}.wl-story-play .icon{position:absolute;left:50%;top:50%;translate:-50% -50%;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--share-paper);color:var(--share-stage);font-size:36px;box-shadow:var(--shadow-lg)}.wl-prices{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.wl-prices li{padding:var(--sp-4);background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}.wl-prices h3{margin:0 0 var(--sp-1);font-size:var(--fs-body)}.wl-prices p{margin:0;font-size:var(--fs-small);line-height:1.5;color:var(--ink-soft)}.wl-prices .wl-price{margin:0 0 var(--sp-2);font-family:var(--font-serif);font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.wl-price span{display:block;font-family:var(--font-sans);font-size:var(--fs-small);font-weight:500;color:var(--muted)}.wl-plans li.is-popular{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.wl-plans p+p{margin-top:var(--sp-1)}.wl-plans-sub{margin:var(--sp-6) 0 var(--sp-3);font-size:var(--fs-body-lg);font-weight:600;color:var(--ink)}.wl-plans--biz{grid-template-columns:minmax(min(100%,240px),320px)}.wl-plan-tag{display:inline-block;margin-left:var(--sp-2);padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.wl-faq{display:grid;gap:var(--sp-5)}@media(min-width:900px){.wl-faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:var(--sp-8)}}.wl-qa{border-bottom:1px solid var(--edge)}.wl-qa summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:44px;padding:var(--sp-4) 0;cursor:pointer;list-style:none;font-size:var(--fs-body-lg);font-weight:600}.wl-qa summary::-webkit-details-marker{display:none}.wl-qa summary:after{content:"+";flex:none;font-size:24px;font-weight:400;line-height:1;color:var(--muted)}.wl-qa[open] summary:after{content:"−"}.wl-qa p{margin:0 0 var(--sp-4);max-width:64ch;line-height:1.6;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.wl-mini-blocks li.is-new .wl-mini-art{animation:none}.wl-step{transition:none}}.wl-eyebrow{margin:0 0 var(--sp-2);font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}.wl-chorus-wall{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);text-align:left}.wl-storage-plan{padding:var(--sp-3) var(--sp-4)}.wl-storage-plan .stg-plan{max-height:360px}.wl-chorus-pot{margin:0 0 var(--sp-1);font-size:var(--fs-small);font-weight:600;color:var(--muted)}.wl-chorus-pot b{font-size:var(--fs-h3);color:var(--ink)}.wl-chorus-line{display:flex;gap:var(--sp-2);align-items:flex-start;margin:0;font-size:var(--fs-small);line-height:1.35}.wl-chorus-line b{display:block}.wl-chorus-who{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--ink);font-weight:800;font-size:var(--fs-caption)}.wl-chorus-steps{list-style:none;margin:0 0 var(--sp-3);padding:0;display:flex;flex-direction:column;gap:var(--sp-3);counter-reset:step}.wl-chorus-steps li{display:flex;gap:var(--sp-3);align-items:flex-start}.wl-chorus-steps li>span:last-child{display:flex;flex-direction:column;gap:2px}.wl-chorus-steps b{font-size:var(--fs-body-lg)}.wl-chorus-steps li>span:last-child>span{color:var(--muted);font-size:var(--fs-small);line-height:1.4}/**
* onboarding.css — the first run's third question, *Who is this for?*: three
* of the Builder's cards (design-system.css §5f) in the onboarding card.
*
* @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
*/.onb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2)}/**
 * Crew directory on Contacts (DESIGN_SPEC §3.4 / §3.24).
 *
 * @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
 */.crew-dir{display:flex;flex-direction:column;gap:var(--sp-3)}.crew-dir-error{color:var(--status-error)}.crew-dir-file{display:none}.crew-dir-preview{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.crew-dir-preview p{margin:0 0 var(--sp-2);font-size:var(--fs-small)}.crew-dir-preview-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.crew-dir-me{display:flex;flex-direction:column;gap:var(--sp-2);max-width:28rem}.crew-dir-me-title{font-size:var(--fs-small);font-weight:700}.crew-dir-list{list-style:none;margin:0;padding:0}.crew-dir-row{border-bottom:1px solid var(--border)}.crew-dir-main{display:flex;gap:var(--sp-3);align-items:center;width:100%;min-height:56px;padding:var(--sp-2) 0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.crew-dir-avatar{width:40px;height:40px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--accent-surface);color:var(--accent);font-weight:700}.crew-dir-copy{display:flex;flex-direction:column;min-width:0}.crew-dir-name{font-weight:700}.crew-dir-sub{font-size:var(--fs-small);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-dir-details{padding:0 0 var(--sp-3) 52px;font-size:var(--fs-small);display:flex;flex-direction:column;gap:var(--sp-1)}.crew-dir-k{opacity:.7;margin-right:var(--sp-1)}/**
 * @fileoverview Compact Contacts management without dropping tools or row actions.
 * @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
 */.contacts-tools{margin-bottom:var(--sp-4)}.contacts-manage>summary,.contact-more>summary{width:fit-content;cursor:pointer}.contacts-manage-actions,.contact-more-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-block:var(--sp-3)}.contact-more-actions{flex-direction:column;align-items:stretch}.contact-more[open]{background:var(--surface-inset);border-radius:var(--r-sm)}.contacts-tools .library-search-row{margin-bottom:var(--sp-2)}.contacts-tools .ph-help{margin:var(--sp-2) 0}.ph-mobile-rel{display:none}.contacts-manage>summary.btn,.contacts-manage-actions>.btn.btn-sm,.contact-more>summary.ph-chip,.contact-more-actions>.ph-chip{min-height:44px}.contact-more>summary.ph-chip{display:flex;align-items:center}.ph-cell-actions>.ph-chip,.ph-cell-actions>.ph-expand-btn{min-height:44px}.ph-cell-actions>.ph-expand-btn{min-width:44px;justify-content:center}@media(max-width:600px){.contacts-tools .library-search-row{gap:var(--sp-2)}.contacts-tools .library-search-row>select{flex:1 1 130px;min-width:0}}@media(max-width:640px){.ph-mobile-rel{display:inline}}@media(max-width:480px){.ph-table .ph-row-main{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--sp-2)}.ph-row-main .ph-cell-identity{min-width:0}.ph-row-main .ph-name{white-space:normal;overflow-wrap:anywhere}.ph-row-main .ph-cell-actions{grid-column:2;justify-self:end}.ph-row-main .ph-sub{white-space:normal;overflow-wrap:anywhere}}.cg-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}/**
 * Admin feedback triage queue (/admin/feedback) — DESIGN_SPEC §3.17 P3.
 *
 * @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
 */.fb-screen{min-height:100vh;padding:var(--sp-4) var(--sp-4) var(--sp-8);background:var(--bg);color:var(--ink)}.fb-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.fb-head h1{margin:0;font-size:var(--fs-title);font-weight:800;letter-spacing:-.02em}.fb-head-meta{font-size:var(--fs-caption);color:var(--muted)}.fb-stale{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:color-mix(in srgb,var(--status-warning) 14%,transparent);border:1px solid color-mix(in srgb,var(--status-warning) 35%,transparent);color:var(--status-warning);font-size:var(--fs-caption);font-weight:600}.fb-new-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent);font-size:var(--fs-caption);font-weight:600;cursor:pointer}.fb-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--sp-2);margin-bottom:var(--sp-4)}@media(min-width:640px){.fb-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:900px){.fb-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}.fb-kpi-cell{position:relative;min-height:88px}.fb-kpi-btn{display:block;width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer;text-align:left;border-radius:var(--r-md)}.fb-kpi-btn.is-active .gchart-tile{outline:2px solid var(--accent);outline-offset:2px}.fb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.fb-toolbar .ops-input{flex:1 1 200px;min-width:0}.fb-filter-panel{display:flex;flex-wrap:wrap;gap:var(--sp-3);padding:var(--sp-3);margin-bottom:var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset);border:1px solid var(--edge)}.fb-filter-field{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-caption);color:var(--muted);min-width:140px}.fb-filter-field input,.fb-filter-field select{font-size:var(--fs-body)}.fb-status-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.fb-status-chip{padding:4px var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--edge);background:var(--bg);font-size:var(--fs-caption);font-weight:600;cursor:pointer}.fb-status-chip.is-on{background:var(--accent-surface);border-color:var(--accent-outline);color:var(--accent)}.fb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.fb-row{border-radius:var(--r-md);border:1px solid var(--edge);background:var(--bg-elev);overflow:hidden}.fb-row--attention{border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}.fb-row-top{display:flex;align-items:stretch}.fb-row-main{flex:1;display:block;width:100%;padding:var(--sp-3);border:none;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.fb-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1)}.fb-row-title{display:block;font-weight:700;font-size:var(--fs-body);line-height:1.35}.fb-row-facts{display:flex;flex-wrap:wrap;gap:var(--sp-2);font-size:var(--fs-caption);color:var(--muted)}.fb-ref{font-family:var(--font-mono, ui-monospace, monospace);font-weight:600;color:var(--ink-soft)}.fb-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);border:1px solid transparent;font-size:var(--fs-caption);font-weight:700;line-height:1.6;white-space:nowrap}.fb-chip.is-new{background:var(--accent-surface);border-color:var(--accent-outline);color:var(--accent)}.fb-chip.is-acked{background:color-mix(in srgb,var(--chart-2) 14%,transparent);border-color:color-mix(in srgb,var(--chart-2) 40%,transparent);color:var(--chart-2)}.fb-chip.is-working{background:color-mix(in srgb,var(--status-info) 14%,transparent);border-color:color-mix(in srgb,var(--status-info) 40%,transparent);color:var(--status-info)}.fb-chip.is-waiting{background:var(--surface-inset);border-color:var(--edge);color:var(--ink-soft)}.fb-chip.is-resolved{background:color-mix(in srgb,var(--status-success) 14%,transparent);border-color:color-mix(in srgb,var(--status-success) 40%,transparent);color:var(--status-success)}.fb-chip.is-wontfix,.fb-chip.is-dupe,.fb-chip.is-canceled{background:var(--surface-inset);border-color:var(--divider);color:var(--muted)}.fb-chip.is-attention{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.fb-chip.is-sending{background:color-mix(in srgb,var(--status-info) 14%,transparent);border-color:color-mix(in srgb,var(--status-info) 40%,transparent);color:var(--status-info)}.fb-chip.is-sent{background:color-mix(in srgb,var(--status-success) 14%,transparent);border-color:color-mix(in srgb,var(--status-success) 40%,transparent);color:var(--status-success)}.fb-detail-quote{margin:var(--sp-2) 0 0;padding:var(--sp-3);border-left:3px solid var(--accent);background:var(--surface-inset);border-radius:0 var(--r-md) var(--r-md) 0;white-space:pre-wrap;word-break:break-word}.fb-actions{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--divider)}.fb-actions-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.fb-actions-hint{margin:0;font-size:var(--fs-caption);color:var(--muted)}.fb-status-btns{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.fb-status-confirm{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset);border:1px solid var(--edge)}.fb-notify-toggle{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-body)}.fb-compose-block{display:flex;flex-direction:column;gap:var(--sp-2)}.fb-compose-block--note{padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-inset)}.fb-compose-block--reply{padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elev);border-left:3px solid var(--accent)}.fb-compose-label{display:flex;align-items:center;gap:var(--sp-1);font-weight:700;font-size:var(--fs-body)}.fb-compose-caption{margin:0;font-size:var(--fs-caption);color:var(--muted)}.fb-compose{width:100%;min-height:72px;padding:var(--sp-2);border-radius:var(--r-md);border:1px solid var(--edge);font:inherit;resize:vertical}.fb-compose--inset{background:var(--bg)}.fb-actions-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.fb-actions-error{margin:0;color:var(--status-error);font-size:var(--fs-caption)}.hlp-reports{margin-top:var(--sp-6)}.fb-detail{padding:0 var(--sp-3) var(--sp-3);border-top:1px solid var(--divider)}.fb-detail-loading{padding:var(--sp-4);color:var(--muted);font-size:var(--fs-caption)}.fb-detail-grid{display:grid;gap:var(--sp-3);padding-top:var(--sp-3)}@media(min-width:900px){.fb-detail-grid{grid-template-columns:1fr 1fr}}.fb-detail-block h3{margin:0 0 var(--sp-2);font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.fb-detail-text{margin:0;white-space:pre-wrap;word-break:break-word;font-size:var(--fs-body);line-height:1.5}.fb-submitter-line{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-body)}.fb-submitter-line small{color:var(--muted);font-size:var(--fs-caption)}.fb-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.fb-timeline li{font-size:var(--fs-caption);color:var(--ink-soft);padding-left:var(--sp-3);border-left:2px solid var(--divider)}.fb-context-list{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-caption)}.fb-context-list dt{color:var(--muted);font-weight:600}.fb-context-list dd{margin:0;word-break:break-all}.fb-empty{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--muted)}.fb-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-caption)}/**
 * help.css
 *
 * @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
 */.hlp-screen{max-width:760px;margin:0 auto;padding:var(--sp-4)}.hlp-title{font-family:var(--font-serif);font-size:32px;line-height:1.2;margin:0 0 var(--sp-2);color:var(--ink)}.hlp-quickstart{background:var(--surface);border:1px solid var(--divider);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-4);margin:var(--sp-5) 0 var(--sp-6);box-shadow:var(--shadow-sm)}.hlp-steps{list-style:none;margin:0 0 var(--sp-5);padding:0;display:flex;flex-direction:column;gap:var(--sp-4)}.hlp-step{display:flex;align-items:flex-start;gap:var(--sp-3);color:var(--ink-soft);font-size:15px;line-height:1.55}.hlp-step strong{color:var(--ink)}.hlp-step-n{flex:0 0 28px;width:28px;height:28px;border-radius:var(--r-pill);background:var(--accent);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;margin-top:1px}.hlp-group{margin-bottom:var(--sp-6)}.hlp-group-title{display:flex;align-items:center;gap:var(--sp-2);font-size:18px;font-weight:600;color:var(--ink);margin:0 0 var(--sp-3)}.hlp-group-icon{font-size:20px;color:var(--accent)}.hlp-item{border:1px solid var(--divider);border-radius:var(--r-md);background:var(--surface);margin-bottom:var(--sp-2);overflow:hidden}.hlp-item[open]{border-color:var(--accent-soft)}.hlp-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:44px;padding:var(--sp-3) var(--sp-4);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.hlp-summary::-webkit-details-marker{display:none}.hlp-summary:hover{background:var(--surface-hover)}.hlp-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hlp-q{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}.hlp-chevron{flex:0 0 auto;color:var(--muted);transition:transform var(--t-snap) var(--easing)}.hlp-item[open] .hlp-chevron{transform:rotate(180deg)}.hlp-body{padding:0 var(--sp-4) var(--sp-4);color:var(--ink-soft);font-size:15px;line-height:1.6}.hlp-body p{margin:0 0 var(--sp-3)}.hlp-body p:last-child{margin-bottom:0}.hlp-body strong{color:var(--ink)}.hlp-body ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5)}.hlp-body li{margin-bottom:var(--sp-2)}.hlp-body li:last-child{margin-bottom:0}.hlp-body code{font-size:13px;padding:1px 5px;border-radius:var(--r-sm);background:var(--surface-hover);color:var(--ink)}.hlp-body a{color:var(--accent)}.hlp-price-card{border:1px solid var(--divider);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-3);background:var(--bg)}.hlp-price-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--divider)}.hlp-price-row:last-of-type{border-bottom:none}.hlp-price-label{color:var(--ink-soft)}.hlp-price-value{font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}.hlp-price-money{font-weight:400;color:var(--muted)}.hlp-price-foot{margin:var(--sp-2) 0 0;padding-top:var(--sp-2);border-top:1px solid var(--divider);font-size:13px;color:var(--muted)}.hlp-note{font-size:14px;color:var(--muted)}.hlp-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}.hlp-foot{text-align:center;padding:var(--sp-6) var(--sp-4) var(--sp-7);border-top:1px solid var(--divider)}.hlp-foot-q{font-family:var(--font-serif);font-size:20px;color:var(--ink);margin:0 0 var(--sp-4)}.hlp-foot-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.hlp-foot-actions .hlp-cta{flex:1 1 140px;max-width:220px}@media(max-width:640px){.hlp-title{font-size:28px}.hlp-quickstart{padding:var(--sp-4) var(--sp-3)}.hlp-summary{padding:var(--sp-3)}.hlp-body{padding:0 var(--sp-3) var(--sp-3)}}/**
 * trailReturn.css — the "Back to where you were" pill (DESIGN_SPEC §3.25).
 * A hugging pill, not a full-width bar: it sits above whatever screen the user
 * detoured to and reads as one tap home. Tokens only (DESIGN_SYSTEM.md §4).
 *
 * @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
 */.trail-nav{margin:0 0 var(--sp-3)}.trail-bar{display:flex;align-items:center;width:fit-content;max-width:100%;border-radius:var(--r-pill);background:var(--accent-surface);color:var(--ink);font-size:var(--fs-small);animation:trail-in var(--t-snap) var(--easing)}.trail-bar-back{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;min-height:44px;padding:0 var(--sp-2) 0 var(--sp-3);border:0;border-radius:var(--r-pill);background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}.trail-bar-back .icon{color:var(--accent)}.trail-bar-back:hover .trail-bar-text{text-decoration:underline}.trail-bar-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trail-bar-text strong{font-weight:700}.trail-bar-hide,.trail-bar-more{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);cursor:pointer}.trail-bar-hide:hover,.trail-bar-more:hover{background:var(--accent-outline);color:var(--ink)}.trail-menu{display:flex;flex-direction:column;gap:2px;width:fit-content;max-width:100%;margin-top:var(--sp-1);padding:var(--sp-1);border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--bg-elev);animation:trail-in var(--t-snap) var(--easing)}.trail-menu-item{display:flex;align-items:center;gap:var(--sp-2);min-width:0;min-height:44px;padding:0 var(--sp-3);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-small);font-weight:600;text-align:left;cursor:pointer}.trail-menu-item .icon{color:var(--muted)}.trail-menu-item:hover{background:var(--accent-surface)}@keyframes trail-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.trail-bar,.trail-menu{animation:none}}/**
 * @fileoverview A browse page with the Compass bar at its foot (CompassShell;
 * documents/BLOCK_BY_BLOCK_PLAN.md step 4). Tokens only.
 * @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
 */.main-content:has(>.cshell){display:flex;flex-direction:column;padding-bottom:var(--sp-2)}body.player-active .main-content:has(>.cshell){padding-bottom:calc(var(--sp-2) + var(--player-height, 0px))}.cshell{flex:1 0 auto;display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.cshell-page{flex:1 0 auto;min-width:0}.cshell-dock{position:sticky;bottom:calc(var(--sp-2) + var(--player-height, 0px) + 100dvh - var(--vv-height, 100dvh) - var(--vv-top, 0px));z-index:var(--z-sticky)}.cshell-dock:has(>.cribbon.is-hidden){pointer-events:none}/**
 * galleryScreen.css — chrome for the /gallery browse screen (screens/Gallery.jsx,
 * COVER_SECTION_REDESIGN_PLAN §6.4).
 *
 * Imported by the screen (the screens/Help.jsx + help.css precedent). The TILES
 * are not styled here — they come from the shared components/cover/sections/
 * gallery.css via galleryTiles.jsx, so this screen and the two sheets can never
 * drift. This file carries only what a full-width PAGE needs and a 480px sheet
 * doesn't: the empty state and the pool switch's width cap. The pool switch
 * itself is the shared `.cps-seg` control (prototype-styles.css), not a
 * gallery-only one. The toolbar is My Greetlets' `.my-cards-toolbar`
 * (App.css) — one filter chrome for both library screens, not a second one.
 *
 * Tokens only — every colour, radius, spacing and easing comes from the design
 * system.
 *
 * @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
 */.my-cards-toolbar-field .gal-search{margin-bottom:0}.gs-empty{max-width:52ch;margin-top:var(--sp-5)}.gs-empty-title{margin:0 0 var(--sp-2);font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:600;color:var(--ink)}.gs-empty p{margin:0 0 var(--sp-3);font-size:var(--fs-body);line-height:1.55;color:var(--ink-soft)}.gs-empty-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}.gs-empty-actions .btn{min-height:44px}/**
 * charts.css
 *
 * @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
 */:root{--chart-1: #2a78d6;--chart-2: #1baf7a;--chart-3: #eda100;--chart-4: #008300;--chart-5: #4a3aa7;--chart-6: #e34948;--chart-7: #e87ba4;--chart-8: #eb6834;--chart-revenue: var(--chart-2);--chart-cogs: var(--chart-3);--chart-profit: var(--chart-1);--chart-failure: var(--chart-6);--chart-ok: #0ca30c;--chart-warning: #fab219;--chart-critical: #d03b3b;--chart-surface: var(--surface, #fff);--chart-ink: var(--ink, #1a1714);--chart-label: var(--muted, #8b8278);--chart-grid: var(--divider, rgba(26, 23, 20, .08));--chart-axis: rgba(26, 23, 20, .22);--chart-track: rgba(26, 23, 20, .06)}[data-theme=dark]{--chart-1: #3987e5;--chart-2: #199e70;--chart-3: #c98500;--chart-4: #2fae54;--chart-5: #9085e9;--chart-6: #e66767;--chart-7: #d55181;--chart-8: #d95926;--chart-axis: rgba(242, 237, 229, .24);--chart-track: rgba(242, 237, 229, .08)}.gchart{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font-sans)}.gchart-wrap{position:relative;width:100%}.gchart-grid{stroke:var(--chart-grid);stroke-width:1;shape-rendering:crispEdges}.gchart-axis{stroke:var(--chart-axis);stroke-width:1;shape-rendering:crispEdges}.gchart-tick,.gchart-bar-label{fill:var(--chart-label);font-size:11px;font-variant-numeric:tabular-nums}.gchart-axis-label{fill:var(--chart-label);font-size:11px;font-weight:600;letter-spacing:.02em}.gchart-bar-value{fill:var(--chart-ink);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.gchart-track{fill:var(--chart-track)}.gchart-crosshair{stroke:var(--chart-axis);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}.gchart-dot{stroke:var(--chart-surface);stroke-width:2;pointer-events:none}.gchart-series-line{pointer-events:none}.gchart-spark-area{opacity:.14}.gchart-spark-flat{stroke:var(--chart-grid);stroke-width:2;stroke-dasharray:3 4;stroke-linecap:round}.gchart-arc,.gchart-stack-g rect{transition:opacity .12s ease}.gchart-stack-g.is-hot rect{opacity:.85}.gchart-bar-g:hover path{opacity:.85}.gchart-empty{display:flex;align-items:center;justify-content:center;width:100%;border:1px dashed var(--chart-grid);border-radius:var(--r-md, 10px);color:var(--chart-label);font-size:13px;padding:var(--sp-4, 16px)}.gchart-tooltip{position:absolute;transform:translate(-50%);min-width:132px;max-width:240px;padding:8px 10px;background:var(--bg-elev, #fff);color:var(--chart-ink);border:1px solid var(--divider, rgba(0, 0, 0, .08));border-radius:var(--r-sm, 6px);box-shadow:var(--shadow-md, 0 6px 24px rgba(0, 0, 0, .12));font-size:12px;pointer-events:none;z-index:4}.gchart-tooltip-x{color:var(--chart-label);font-weight:600;margin-bottom:4px;white-space:nowrap}.gchart-tooltip-row{display:flex;align-items:center;gap:6px;line-height:1.6}.gchart-tooltip-label{color:var(--chart-ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchart-tooltip-val{color:var(--chart-ink);font-weight:700;font-variant-numeric:tabular-nums}.gchart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:10px 0 0;padding:0;font-size:12px}.gchart-legend li{display:flex;align-items:center;gap:6px;min-width:0}.gchart-legend-col{flex-direction:column;gap:6px;margin:0}.gchart-swatch{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.gchart-legend-label{color:var(--chart-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchart-legend-value{color:var(--chart-label);font-variant-numeric:tabular-nums}.gchart-donut-wrap{display:flex;align-items:center;gap:var(--sp-4, 16px);flex-wrap:wrap}.gchart-arc{stroke:var(--chart-surface);stroke-width:2}.gchart-donut-value{fill:var(--chart-ink);font-size:20px;font-weight:700}.gchart-donut-label{fill:var(--chart-label);font-size:11px}.gchart-tile{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3, 12px) var(--sp-4, 16px);background:var(--bg-elev, #fff);border:1px solid var(--divider, rgba(0, 0, 0, .08));border-radius:var(--r-md, 10px);min-width:0}.gchart-tile[data-accent=on]{border-left:3px solid var(--tile-accent, var(--chart-1))}.gchart-tile-label{color:var(--chart-label);font-size:12px;font-weight:600;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchart-tile-value{color:var(--chart-ink);font-size:26px;font-weight:700;line-height:1.15}.gchart-tile-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.gchart-delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.gchart-delta.is-good{color:#0a7a0a}.gchart-delta.is-bad{color:#c22f2f}.gchart-delta.is-neutral{color:var(--chart-label)}[data-theme=dark] .gchart-delta.is-good{color:#3fce54}[data-theme=dark] .gchart-delta.is-bad{color:#f07070}.gchart-tile-hint{color:var(--chart-label);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchart-tile-spark{margin-top:6px;height:32px}.gchart-tile-spark .gchart-spark{height:32px}.gchart-meter{display:flex;flex-direction:column;gap:6px;min-width:0}.gchart-meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.gchart-meter-label{color:var(--chart-label);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchart-meter-value{color:var(--chart-ink);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;flex:0 0 auto}.gchart-meter-max{color:var(--chart-label);font-weight:500}.gchart-meter-track{position:relative;height:8px;border-radius:999px;background:var(--chart-track);overflow:hidden}.gchart-meter-fill{height:100%;border-radius:999px;background:var(--chart-ok);transition:width .2s ease}.gchart-meter-track.is-warning .gchart-meter-fill{background:var(--chart-warning)}.gchart-meter-track.is-critical .gchart-meter-fill{background:var(--chart-critical)}.gchart-meter-hint{color:var(--chart-label);font-size:11px}/**
 * Activity screen (/activity) — the cross-greetlet engagement hub.
 *
 * All colour/shadow/radius comes from design tokens (design-system.css +
 * prototype-styles.css scale tokens); no hardcoded values, legible in both
 * themes (owner rule). The page chrome (.dashboard / .my-cards-toolbar) is
 * reused from the sibling library screens — only the KPI row, table, chips and
 * the expanded detail live here.
 *
 * @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
 */.act-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-auto-rows:1fr;gap:var(--sp-2);margin:0 0 var(--sp-3)}.act-kpis--primary{grid-template-columns:repeat(4,minmax(0,1fr))}.act-kpis--more{margin-top:var(--sp-3)}.act-metrics>details>summary.btn{width:fit-content;min-height:44px;cursor:pointer}.act-metric-note{margin:var(--sp-3) 0 var(--sp-5);color:var(--text-muted);font-size:var(--fs-caption)}@media(max-width:600px){.act-kpis--primary{grid-template-columns:repeat(2,minmax(0,1fr))}}.act-kpi-cell{position:relative;display:flex;min-height:132px}.act-kpi-btn{display:block;flex:1 1 auto;width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:var(--r-lg);-webkit-tap-highlight-color:transparent}.act-kpi-cell>.tooltip-wrapper{position:absolute;top:var(--sp-1);right:var(--sp-1);z-index:1}.act-kpi-cell .help-bubble{position:relative;width:20px;height:20px;margin:0;font-size:12px;opacity:.4}.act-kpi-cell .help-bubble:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.act-kpi-cell .help-bubble:hover,.act-kpi-cell .help-bubble:focus-visible{opacity:1}.act-kpi-btn>.gchart-tile{height:100%;transition:outline-color .12s ease;outline:2px solid transparent;outline-offset:0}.act-kpi-btn:hover>.gchart-tile{outline-color:color-mix(in srgb,var(--accent) 45%,transparent)}.act-kpi-btn.is-active>.gchart-tile{outline-color:var(--accent)}.act-kpi-btn:focus-visible{outline:none}.act-kpi-btn:focus-visible>.gchart-tile{outline-color:var(--accent)}.act-tablewrap{overflow-x:auto;border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface)}.act-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}.act-table thead th{text-align:left;padding:var(--sp-2) var(--sp-2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--divider);white-space:nowrap}.act-table td{padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--divider);vertical-align:middle}.act-row{cursor:pointer}.act-row:hover,.act-row.is-open{background:var(--accent-surface)}.act-c-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.act-c-ago{white-space:nowrap;color:var(--ink-soft)}.act-c-caret{width:1.5rem;text-align:center;color:var(--muted)}.act-c-thumb{width:52px}.act-thumb{width:44px;height:44px;object-fit:cover;border-radius:var(--r-md);display:block;background:var(--bg-elev)}.act-thumb--empty{background:var(--bg-elev)}.act-c-title{min-width:200px}.act-title-btn{border:0;background:transparent;padding:0;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}.act-title-btn:hover{color:var(--accent);text-decoration:underline}.act-linkchip{display:inline-block;padding:1px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:700;line-height:1.6;color:var(--muted);background:color-mix(in srgb,var(--ink) 7%,transparent)}.act-linkchip--sm{margin-left:var(--sp-2);vertical-align:middle}.act-linkchip.is-active{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.act-linkchip.is-expired{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}.act-linkchip.is-purged{color:var(--error-color);background:color-mix(in srgb,var(--error-color) 14%,transparent)}.act-linkchip.is-disabled,.act-linkchip.is-none{color:var(--muted);background:color-mix(in srgb,var(--ink) 7%,transparent)}.act-collab{display:inline-flex;align-items:center;gap:3px;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.act-collab .icon{font-size:13px}.act-youtube{display:inline-flex;align-items:center;gap:6px;color:var(--ink);background:color-mix(in srgb,var(--ink) 9%,transparent);text-decoration:none}.act-youtube:hover{background:color-mix(in srgb,var(--ink) 14%,transparent)}.act-row--shared td:first-child{box-shadow:inset 3px 0 color-mix(in srgb,var(--accent) 55%,transparent)}.act-detail-cols--collab{margin-top:var(--sp-3)}.act-collab-summary{color:var(--muted);font-size:13px;margin-bottom:var(--sp-2)}.act-detail-row td{background:var(--bg-elev);padding:0}.act-detail{padding:var(--sp-3)}.act-detail-cols{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}@media(min-width:720px){.act-detail-cols{grid-template-columns:1.4fr 1fr}}.act-detail-block{background:var(--surface);border:1px solid var(--divider);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.act-detail-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:var(--sp-2)}.act-muted{color:var(--muted);font-size:13px}.act-trunc{margin-top:var(--sp-2);text-align:center}.act-people{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2);max-height:340px;overflow-y:auto}.act-person{border-top:1px solid var(--divider);padding-top:var(--sp-2)}.act-person:first-child{border-top:0;padding-top:0}.act-person-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2)}.act-person-name{font-weight:600;color:var(--ink)}.act-person-stats{color:var(--ink-soft);font-size:12px}.act-answers{margin:4px 0 0;padding-left:16px;font-size:13px;color:var(--ink-soft)}.act-q{font-weight:600;color:var(--ink)}.act-when{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}li.act-when{list-style:none;margin-top:1px}.act-linkstate{margin-bottom:var(--sp-2)}.act-anon{font-size:13px;color:var(--ink);margin-bottom:var(--sp-2)}.act-linkctl{display:grid;gap:var(--sp-2);margin-top:var(--sp-2)}.act-linkrow{display:flex;gap:var(--sp-2);align-items:center}.act-linkurl{flex:1 1 auto;min-width:0;font-size:13px}.act-linkactions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.act-expiry{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:12px;color:var(--muted)}.act-expiry select{font-size:13px}.act-danger{color:var(--error-color)}.act-linkflash{display:flex;gap:var(--sp-1);align-items:flex-start;margin-top:var(--sp-2);padding:var(--sp-2);border:1px solid color-mix(in srgb,var(--success-color) 35%,var(--divider));border-radius:var(--r-md);background:color-mix(in srgb,var(--success-color) 8%,transparent);color:var(--ink);font-size:13px;line-height:1.4}.act-linkflash .icon{color:var(--success-color);flex:0 0 auto}.act-empty{text-align:center;color:var(--ink-soft);padding:var(--sp-5) var(--sp-3);display:grid;gap:var(--sp-2);justify-items:center}.act-more{text-align:center;margin-top:var(--sp-3)}.act-inline-lens{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2);padding:var(--sp-2) 0}.act-inline-lens-head{display:flex;align-items:center;gap:var(--sp-2)}.act-inline-lens-head .btn{margin-left:auto}.act-inline-lens>.act-gifts-row:first-child{border-top:0;padding-top:0}.act-inline-lens .act-gifts-what{flex:0 1 auto}.act-inline-lens .act-gifts-open{margin-left:var(--sp-1)}.act-gifts-panel{display:grid;gap:var(--sp-3);margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface)}.act-gifts-group{display:grid;gap:var(--sp-2)}.act-gifts-head{display:flex;align-items:center;gap:var(--sp-1);font-weight:700;font-size:14px;color:var(--ink)}.act-gifts-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--divider);font-size:14px;color:var(--ink)}.act-gifts-amount{font-weight:700;min-width:72px}.act-gifts-what{flex:1 1 200px;min-width:0}.act-gifts-chip{padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--divider);color:var(--ink-soft)}.act-gifts-chip--claimed,.act-gifts-chip--fulfilled{color:color-mix(in srgb,var(--sec-treasure) 55%,var(--ink));border-color:color-mix(in srgb,var(--sec-treasure) 45%,var(--divider))}.act-gifts-chip--paid{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--divider))}.act-gifts-open{margin-left:auto}.act-welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.act-welcome-copy{flex:1 1 260px;min-width:0}.act-refresh{flex:0 0 auto;gap:var(--sp-1);margin-top:var(--sp-1)}.act-spin{animation:act-spin .9s linear infinite}@keyframes act-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.act-spin{animation:none}}.act-updated{margin:calc(var(--sp-2) * -1) 0 var(--sp-3);font-size:var(--fs-caption);color:var(--muted)}.act-lens,.act-sublens{margin:0 0 var(--sp-3)}@media(max-width:560px){.act-lens .dashboard-subtab .icon,.act-sublens .dashboard-subtab .icon{display:none}.act-lens,.act-sublens{gap:4px}}.act-answers-pick{margin:0 0 var(--sp-3);max-width:420px}.act-lens .dashboard-subtab{display:inline-flex;align-items:center;gap:var(--sp-1)}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/playfair-display-cyrillic-400-normal-CjW2EstV.woff2) format("woff2"),url(/assets/playfair-display-cyrillic-400-normal-ZiRag6zj.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/playfair-display-vietnamese-400-normal-BV2APVTb.woff2) format("woff2"),url(/assets/playfair-display-vietnamese-400-normal-BbvUAu4N.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/playfair-display-latin-ext-400-normal-BxlSGspa.woff2) format("woff2"),url(/assets/playfair-display-latin-ext-400-normal-qdZwdvNS.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/playfair-display-latin-400-normal-CFtfchNt.woff2) format("woff2"),url(/assets/playfair-display-latin-400-normal-DHYHbkg3.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-cyrillic-ext-400-normal-DwaaZvol.woff2) format("woff2"),url(/assets/lora-cyrillic-ext-400-normal-PiPRSBNu.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-cyrillic-400-normal-CbVom6TB.woff2) format("woff2"),url(/assets/lora-cyrillic-400-normal-BedExNGj.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-math-400-normal-D2gccGFf.woff2) format("woff2"),url(/assets/lora-math-400-normal-BToItYw_.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-symbols-400-normal-DmcY0X7a.woff2) format("woff2"),url(/assets/lora-symbols-400-normal-BK2bqsD8.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-vietnamese-400-normal-BxA6xcFr.woff2) format("woff2"),url(/assets/lora-vietnamese-400-normal-DlgyXXxo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-latin-ext-400-normal-CyviI4c-.woff2) format("woff2"),url(/assets/lora-latin-ext-400-normal-B9GmMl5M.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lora-latin-400-normal-DnxXpLNu.woff2) format("woff2"),url(/assets/lora-latin-400-normal-DBJS-Hc6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-ext-400-normal-CBMNjBwz.woff2) format("woff2"),url(/assets/eb-garamond-cyrillic-ext-400-normal-DvVFcYIV.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-400-normal-DLFur4M8.woff2) format("woff2"),url(/assets/eb-garamond-cyrillic-400-normal-Cgupd8z3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-ext-400-normal-xgh5yVqR.woff2) format("woff2"),url(/assets/eb-garamond-greek-ext-400-normal-m3zVZPMF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-400-normal-Bd9qxgO7.woff2) format("woff2"),url(/assets/eb-garamond-greek-400-normal-Co9-8-br.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-vietnamese-400-normal-CfDT8MMM.woff2) format("woff2"),url(/assets/eb-garamond-vietnamese-400-normal-yoRrTn3C.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-ext-400-normal-8a_ZZ2Qq.woff2) format("woff2"),url(/assets/eb-garamond-latin-ext-400-normal-Ckqal4CG.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-DSJrtJSV.woff2) format("woff2"),url(/assets/eb-garamond-latin-400-normal-zgGxM6DR.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-ext-400-normal-W3Dto7M0.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-400-normal-DLdKLAvx.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-400-normal-DD2KOZkl.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-400-normal-CVFrM67f.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-vietnamese-400-normal-6K-YXo6g.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-400-normal-4uxlocMh.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-ext-400-normal-Drx2k2n9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-400-normal-uvC0WHQr.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2) format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2) format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2) format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2) format("woff2"),url(/assets/poppins-devanagari-400-normal-CqVvlrh5.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-ext-400-normal-by3JarPu.woff2) format("woff2"),url(/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2) format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/josefin-sans-vietnamese-400-normal-5bZRxDiL.woff2) format("woff2"),url(/assets/josefin-sans-vietnamese-400-normal-7lki-pri.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/josefin-sans-latin-ext-400-normal-WydUZGG0.woff2) format("woff2"),url(/assets/josefin-sans-latin-ext-400-normal-GP5qjHwf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/josefin-sans-latin-400-normal-Bw73c5y2.woff2) format("woff2"),url(/assets/josefin-sans-latin-400-normal-OLNf33Pm.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Raleway;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/raleway-cyrillic-ext-400-normal-zbv6uFvq.woff2) format("woff2"),url(/assets/raleway-cyrillic-ext-400-normal-QD38Acpa.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Raleway;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/raleway-cyrillic-400-normal-B1ZxqHSH.woff2) format("woff2"),url(/assets/raleway-cyrillic-400-normal-BOk4FNQ-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Raleway;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/raleway-vietnamese-400-normal-CTw6K1Xj.woff2) format("woff2"),url(/assets/raleway-vietnamese-400-normal-CTqj18iX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Raleway;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/raleway-latin-ext-400-normal-B4d0sYmR.woff2) format("woff2"),url(/assets/raleway-latin-ext-400-normal-DoUy7GWe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Raleway;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/raleway-latin-400-normal-C5eIEfLm.woff2) format("woff2"),url(/assets/raleway-latin-400-normal-sMcq1OIP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dancing-script-vietnamese-400-normal-lz8MlVep.woff2) format("woff2"),url(/assets/dancing-script-vietnamese-400-normal-D2srOv8f.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dancing-script-latin-ext-400-normal-C917Kz-3.woff2) format("woff2"),url(/assets/dancing-script-latin-ext-400-normal-DaWfpMsu.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dancing-script-latin-400-normal--YrtvvVF.woff2) format("woff2"),url(/assets/dancing-script-latin-400-normal-BY5FxJb0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-cyrillic-ext-400-normal-CKQhgFwn.woff2) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAmkAA4AAAAADTQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABRAAAABYAAAAWABEABEdQT1MAAAFcAAAAVAAAAHqVRI47R1NVQgAAAbAAAABgAAAAjoeYkVBPUy8yAAACEAAAAEkAAABgYtiUfmNtYXAAAAJcAAAATgAAAGw/qukiZ2FzcAAAAqwAAAAIAAAACAAAABBnbHlmAAACtAAABLMAAAacpmf7H2hlYWQAAAdoAAAANgAAADYm83RJaGhlYQAAB6AAAAAgAAAAJAlRByJobXR4AAAHwAAAACsAAAAyFpoASGxvY2EAAAfsAAAAHAAAABwL4g3gbWF4cAAACAgAAAAcAAAAIAAgAetuYW1lAAAIJAAAARIAAAJWMLNPCXBvc3QAAAk4AAAAawAAAJAuexw8AAEAAAAMAAAAAAAAAAIAAQABAAMAAQAAeNpNxqUBAlAUheHvPtxpSGQCdkASkQmQgkNjeVyP/gJlfUNpOJ5Mdefn00ZdFq5XwR+HtF6eduqvRSBkJUVxb9IEPW1JEpKsvJCTxNNZIW7N4wuaeNo1iwEGgEAURN+2lQTICnSCjhAICQToAglghSx0+u0bZXzzx7zBAS0jE35Zt51wPnckxCNdBEqAnEW584iJBiiwhGemt6xOPhpZf8nLB7tORGFyJvXyf6dfql62kAv5eNpjYGGSZZzAwMrAwNTFFMHAwOANoRnjGJwZ/RlQASMyx93f353hAAOvwhbm4H/5DAwsHUx+CgyM08EKPZjeASkFBmYA3G4LRAAAAHjaY2BgYAJiZiAWAZKMYJqFIQJICzEIMDADZXkZFBgcGRYwHGRkYklW2PL/P1AOWSwJJPb/z//n/w/8z/jv+J/x96L7YUCTMAAAp8oW5AAAAAEAAf//AA942pWURZizRhiAhxkcQkIIARJikEBs2Y2SrLv097q7u7u7u7tf6673p+5y67l2qrfpQOre6CfY+44AEtQBID6CxwMGCCAK0gC0XNkvaDJTKsgFDX99X/Nd32VcRmPaLEvcx3E/7Etc+8OhNrHph4dWdt5F2XlnZZed8S8H9+G5729hY3C74vefL9xzj3Xvffa999r33A8giA9eRHsiFuwODgeAspxOu+tLyB4G3a7vQRy0mmqCodVEMqlNw1YzqSbCQ1wJ4VqrOY3wkWGZkeCwAn2cSgjhXqft2BZNM8kkLNSLWiy9ec/9m/NzrhMfSeXGizLPkZTT1WZvenCvLbv2dz3kQLd/SCc15dueO3rQwXuuT8p5QRANa7asKZmJridTjDw6udV55b332rq51tvtpjP69d1ml7zKZjW/9frmtmv9cxYLc5loqV1UcgLDRoT0qMUvn7C60muujKYFKVra65CDRhqN/q6HHlzJp2XJNN0jTuqU8u78lgpkajuu1aHC6fXFRt1bO34xIoLBIPR0MXoGOoAAIBgV+Nrg05/qZ6F7f6mL8P7BJziWB5/BvVEaHAYAYTmOiwXQ9E9uQiOhKQ07C12HWnHyW/UOPgqfZVvDXMP2u0EQjAauB0ZbzebPFVwg3hf661xrQddT45O9A7YerTadtQmbJFlajJfmt2+0Z7Plld0O8rfewTC1ybzVi2hZMSnQGVVqG8qInp8yIjZLczTrFzu7JQWnxAlRkmKVKbgjImH/nNnZwyrjq9P7Hd8bmyx0ZnJChBUhmTUKK1NObanc3Hfn5cruGysHrk6c3oMQn8lKOYIgIIGI1opAsRBSiFw/jihIQJpCjKQAAAcfDr6CRWJrsAkcAoAfMnbaIfvPn5+4Ma8vwSALfGljQScoBz6wjhaW0VRpbAzrHnrU2sO+2u2G1n8ZBaz3TT7GMUjg7JSxNMLIUT5OF+fthKmxcY5G0ogXV6qGvjCrMChuxuS2aeUFlo+QlD6ui9lxm2PSy9WKzV8VFwSBJmMJY1KPRmKq0teN6/WcJIikmDD0HbePQOyAWrtirpihCHZm66LmqepIlih0cnLOScXdqKoQjUlusUHka56VcEgpJrIIyiaXSPfqZlWJJcp2fGiKeBWbmgVbA1D6hV2CIa3/f8xpfzJC1H9ilNvzbsWWldh/trMq8r/gJ5fe/onKnix5eJeoG//BxAVaJfILrA8AAbTBl/BEOAcOBMAP6LqtFn585ufQD8iccCGFBJiRsdyg6Q8XU4gfCrKZ38VBMtyjWmGM3Tld7K5B4tepqqftSlIUeb0kLG+XrdKznr6ybibG8F0esoWEwvCpvY5pjq7k1XpmD+8gmuFuJ5HpqefQLP+olJYaSq1WGitV8zwB6fYus9WZlNkS5dd5iuJEXYDBP0NZfbPcMkS9qPG6UIkSCdWMmhHLlRVnqpru6hyFxx9GkjwOSE6VvBWXlpIxFKOyhtHYakwUsSEWrYGn0csgAoDiOB0sBDuQUIoR3M1FNgr5WrOG1iDFpKazcYNJpbXAK0AbwIfoCaAAoAxlhqPf9YebyG7eqEyWnVzdpERe6aANdTvKm7aR43hazlXBj5RxA3YAAAEAAAABGl44egReXw889QAPA+gAAAAA36m1QQAAAADiK2Fy/hX91AfmBIEAAAAGAAIAAAAAAAB42mNgZGBgDv6Xz8DAzvFP9O929mfMLxhQAQ8AlkUGf3jaY+Jj0GE6wyAEx/oMgox3/98GYYbVDAwgzBQBxP0M4kAeBwMDADA1Cu8AAAAANADIANQA4AF2AgsCgQKBAoECgQMSAy0DTnjaY2BkYGDgZWRiYGd4DsQgHgKwMDACABYhAQ142o2RBU4EMBREH+7EieDu7hDBieIeW3f3vRRH4BQcaCfNuufbfOs0LdCPiy46ugeAv469PO5grGMijzsZ7RjN4y7O+M/jbpb4zeMe3vjJ414WOMrjUSHwkJBEiGt7WxIWdhISc1g+QQAvdlOJy2+pGsPNvbwTq/of6tuE42zyougmSUCdmDpO+Thec9IMu2zJdtjnnBnD6tJcUjGMB69hm2GFlJk8kR3IjtnkEIfMxmoZ70wZ80wVcznTPY+Se6E27lyZNWC7Nm+UVc+rWY/p7olNjEJvqjiZaXjTJ9XDxehT1W5mLs1LeFSLmbmVmp9x4zUTSWxsaStM0FTDEjcBnMU/i6N6kX+TVJF/NQcSwlzgAAB42mNgYgCD/wsZlBmwAV4gVmE4ycjEyMzIwsjKwMzIxsjOyMHIycjF5phUlFqWyl6al2lgYmYEpY15obReYk6JoQFY1MDRgMk5CMQ0MnAy4UtMLi1JTc7PTdJLTixO5QGpMDYwA3MAc1cb7gA=) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-cyrillic-400-normal-C-wcqNJs.woff2) format("woff2"),url(/assets/great-vibes-cyrillic-400-normal-DtFXCWjq.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAyYABEAAAAAGNwAAAw9AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbHhwuBmAAXAiBOAmcDBEICocIhk4LFAABNgIkAyIEIAWEVgdiDIFWG2EXUZSOVhngi4N4zGk0V1oau5Mro0Vz7peZlJLY3LcjJJn1n//f9v9jrr3WLtpKjEbExoKNYp3CKDwWKtbpwntb3+sbFXij8/NFBjz/7+2+fbGJTCSPx0ESxNpJYo2W//6FvuWvZRHTzGTy7yCvqBB7iMnuyfTQlMD/o+1/jxaVWJAdDmIZzAbLNVQS5P+EO7yifkU9XbUyuP/f2qt9d2ZSJosgHKCt0DVmMz80s1vY/wO7Yd6UMASqQEKhyokEIFWHjoQisD1VtkbV6gpT3YZXq34MMJ0K1yHOXbU04DfZCATADLgMJKZ0LgfQkWOvpGDPjhGo4L8SKEehiNUuLlLXGcepw3uRckWO7kcKqhTH8Jzl0ncgALbBJgBsP98YmkFXQjg6lDDl3j3Ui1dgISYN//8A8CvYLifoWvDCPvb7hU5SHAPGq1NIoIUcfVOxQgWDDAucAm7Dq8TsKk37Fa3fTxOvJKICCOFIZc4FLbI/o1ISr1Mk8c//0IpExuiKMrO36VDif+dDOd12yfz5zspN3MXmKZr47z9ou6+iiBZ6pMRdnmhdhFM/o/2ebmf/Zj5a9qvWPwZA4CktsvT0L0buniI/fEo0LFL+VjY0jr7CvP5TpU+aa/vmvAdvgDafkIQlBgg480aAwbz5gAQNP6SpPVvijGSqlNjY1Cy2kk7C+G5TmA3GWR3gt5sT6+hgiRS0D/ke72Sd3npwSOqxOCWnyXxXBm7T9zylpQ6lxD1SkMo0jD5KCwU9rdMgXrmFV5+m8jTMxXqBfJQ8kuc3n1OD140TysAtrAz1423le9+y2iilDpRLKMWoYR7tQdMrxbShcaOEpKuCame/1lusiZqcknP5IDDHzDW4T+BioTwW4YTllcy7qH/tskaN8FdII+ehZihy9oLySySNFnNAQAvBvQ5C4auEYhHVovM+Qzkgh9wYFLlNaUQBpMuWc0GecxD5S0Gs+4IXQ43O/3iK5ul2ePU6lVeuvsnJss/CeEhQuNiEmtNdQAEaz03oSDWpxTWLJnB2qrDGBtS8AGU9oEEWX2Dl+i+XhqSkYuQMC5T5uC8dkzYiXMSzvnjIVLqYLLOkkSkMEO5Fi7GoaAi4H4tJKcK5iBE0B8mrrLmahlhE2BR3AuVOySqdemE/LEPSefQqeWc+n/UBGxrrOGKxzAN2QFnCxidCgoNcixk7BfewpwQcUF9g+tVfLs2xqOBg0TinvlFE1m8Snr5Ljbfm+TiWtm2ilJz+Oj19u7Kd/3jyhilomJi9j0jyBodKxBEZEOax2aaw9w/NmJD8VWokLHCOHTdU9Zn2dW9QaVsOQyz49m2LZ2xcYaf7FFjCKpLGIRsk2eYQwc5EKW1eWCq2NHQcvUskWdQCq0UshshR5U/G3FYZ37JrS4wxCpQybqi0lL5gMxaP5UAaGqbPBdJ9RpTBGGUyibIYp2wmKIfJlMsUymMq5TMtsQqWg06R89N3ydRBX5eYuwMuwPQ08btr9fRS8ddkTmzBFr6mQ+XXSo5K+YgCKAqhKIKiGIoSKEqhKIOiHIoKKCqhaW6oL1qq8RYysmYGmbO0plLGXbfZHlATV/OsB2ohrZTRVKs37cq94ijtIkB1IcvUZu05qrquqF1vIk0v0sXsqVUfoorj0hqga9YnNGLLqJ4jvS4U/1OBvkEx8xMCIHjPbraGNO1vkzRBvVY+OID7Bwo0o9vXB7zwFIjrltfagsZk5oQ6rYBFmD8eN05sZVXpm/MZsjh5U5refTbQCjBDukW4wx3afzPLASae+z66TepH77OHtoC6RaGQLXLEirnrlakbd+kH153qfvBq50KO0YROjUVcjbRlQeZFNr8IilumdjjLYAjWYQcDdnVDl2u7MvncauoYurJlvekMnUuYo1PTDYum2kbKsqr4jUZ4RUh24dWPzOKuJC/02vQafZk50B6PrSQhKsf6m+npHQF0TMSSpGJVdZrP51BItPsEj6lTb97BOpKESIeL7Eitx/dfQhJZbsWHZkxb2df0W3OMKdPlTk6ZboelOdeAqYvkb16SzvTKvclJfe6aJ02dCwQQh79xr+rv5K8w1xN3gdZQWjwI2mJ0qqyzmxy9cA8yOzxd1B3ATI1aVfTzK2aL7ssiPd3Uq7ObOn7iPWh6l0cwU9Z/xaqSpV/yuuzB3m46XzNRPttKvYnYOBcZ1YcYGuVtdh27GQb0W9MXff+ES3nErtyMpvV92Za9HQ0JsGkeKTtAi0s7e8PMwtRpORaViPl3oahtdoYeMxFyPQb0LAwwosFZBAwx0sM49LIROaLRWQSMMfKOux4H0DUxwYnCswmY5ES7FwGEKU40PZuAGU56Vi+62Ry6WQTdbB7demGCPrYoJxSdRcASI3PZNgT5CoJ8FUG+hiDfgyDfiyDfhyDfj2DRAdcW2pNoHqTYceMVhxDQhwPvG6Mz44hri3B0NIj4sSCi4zHokIwTogMnRYd1qolOOg2CIc4gIM6ik87FwCcT54UPF4QPMeHDuvDhIuHDxcKHS6b7canw4zLhx+XCjyuEH1cKPzaEP23T9Zjp3m2xuJz9GGfR6BNFBdkF4XBnVVyNxqXigZM32J1Ug0AJbDiapUElMVT18MLvkEMpXuoBB0uw8MwJpHJunrVbU0xpIt2SylPmLcLcYeHm8fHRmrFx98iYa3Rk38ZXtP519n1fGFNvjnP80a+r7vnoNVp/0LSJWMpViL34YcnXZCDpXyL2BdTuech3EHsVV18bu+bB8tzrESt/oYPuVx9L7ObVAJozS4fWv+o03nZGnvzyzDXX0PNft7X0k3HVM+88c2bjJVq/1xR7Uf8Ln38wfROxjPs+aDi5cOruK6KX32i7avSqopA91NMZvmPyjoLwneG7CifvDN9ZGL4jfPe40+8qCror0kJ/fTQ0OLs9WlvXaQz3t5ReVNJldxk3/f6q+uJkq66ZlOYdpuyZwVV/93XHH+2NDO7u8dZ5e3a717KW9bKWNcuuq9rnmtYKV6prP6nVrHhXd8/u2b46Yfu3yRS35mym+feXnWwsOZCce09joHpAFRFFd4+39fVXXZJUHlHn0gerartqXX3V3unr+s4f83a9MGV6UNPozv7IXcpqqKND/VHGNfdn3SOLz3e6f2M2jeccLs1/5qU+sy5/x93vYqUggBQo7JPE7ylDq+yexO88AJC0XpE2pOfPj7Iu3WWMCMYkZPfMjC99eScmwWVixKQd4JKQuIhBMEmw8wAkDmkZjIiNgzGalYkYhYBni/9UoUBJVuT0KsO6t7EkN0WoTCbB2Y7t8YyBCaMBTFM1psYgq1yVecxEKrhQ+SoECIJWoegEBVGaJkUgSV5tV7bRyupAAnSXpK2KeEAhKGFBcQoiq1c6OI38uVnC6jm7f27/8GBvt6+9vrayPCfLrGMmM2YtrWqL0TOJ38cbG/jde/W4DKqrMipsRIx2gBG7FARQGESIFIEwGFgtuorkJHMlrQoEgLJmljzf/8Gsrf1vqk36JQD84P4nAwDw46rI4f+n/u8L5ed8HYAMBgAg4PksW1Er6GnJWfroSpVZ4WofIGm1yoNABpsALrsgr0YMCn5BQzP0WMc3AcqymsFByGGWSCCuAXiJ6tBeS0hLzloGK1nXSmj1xVqOUo+sFRgxuVZGsSZljXKAFUftxgcd0apGHeCcqP2WWO3P5u21aoGqjhzlXjmHLev13KhIDcYwn3NEtaGds+yYvVkcVlFRR0RKy3Gq5b5P9qjXxqnZXRLpUEdP3IpVjXlO5Y6jlVdUw71xs2qNFu+eV6G7pnOxB2dpbW6vkFW9UaXtLk2piEazK07uKYclbtnKQtWJ1Oo6jaCIVsjaogGHHTiv1jLmAs4MRMNcibE+si07O3HLVlFdHTPPbcEB+3rUAVu0bK9o3vSRvnAbllc7nlaB4eiIidtR5EVrAIq9SwwSScRJkCwH5g9Hj0eVY/tXPZ6Ah3UNWSMLx45GFw7sm//PWtrcG1fvaSIMg+0f3hma2CL6VjhOd/IHubegdD41icAoFKgcjWCYB5Re3qiVyZmK0MldjIvtzCdXc6cYBjZ3vpRiJMES0yHHIGCa5LBhWDsGzzce9FlIQPAppisGJ+LGFRM0WmTl8c+omJVAcGZvlS2KPafGQLw2emGkUx6N2zAPiX7mlSt4thDWymcoUZx/c4uVlHzFoozgBgA=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAZIAA4AAAAAB8AAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABRAAAABYAAAAWABEABEdQT1MAAAFcAAAAHgAAAB5EdEx1R1NVQgAAAXwAAAAtAAAALiN2JIJPUy8yAAABrAAAAEkAAABgYth0zGNtYXAAAAH4AAAAQgAAAFwCmQDsZ2FzcAAAAjwAAAAIAAAACAAAABBnbHlmAAACRAAAAfYAAAI4Gxe4fGhlYWQAAAQ8AAAANgAAADYm83RJaGhlYQAABHQAAAAgAAAAJAlRBx5obXR4AAAElAAAAB4AAAAiDiAAamxvY2EAAAS0AAAAFAAAABQDgwPkbWF4cAAABMgAAAAcAAAAIAAcAetuYW1lAAAE5AAAARIAAAJWMLNPCXBvc3QAAAX4AAAATQAAAGLEq8E+AAEAAAAMAAAAAAAAAAIAAQABAAMAAQAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB42mNgZGBg4GLQAUJmFzefEAaJ5MqiHAaRnMSSPAYRBhBgARH//4NIAJZPBzwAAAB42mNgYZJlnMDAysDA1MUUwcDA4A2hGeMYnBn9GVABIzLH3d/fneEAAy8jE3Pwv3wGBpYOJj8FBsbpYIUeTO+AlAIDMwDEogpzAAAAeNpjYGBgAmJmIBYBkoxgmoXBA0jzMXAA5dgYeBkUGBwZFjAcZGT6/x8ojsL///P/k/8H/qf+d/zPCNSNAgA1SBF7AAAAAQAB//8AD3jaPRE1lBNB9GfmkrV4VuK2lhB7WT13w93dHSqswb3FoTurocGtf1hPR43172xPR777hwYoA7h+obNAAAMBSADoasjOCSFCzoVygvNtW7BVWyVUQiAMknSNUtTkAdf9yROia/Xki4Ft2yPbtkW2b3MghfbT1MQzMog2ShP/e4aH8yOj4siIODwGCMJTn/EeTMIuOAXgziumYdl+LM4RlmVXkUPoGscSHo7leaEd6RrPsbMmqh87Ml1rx47lrJjwozkJsh3Wj7GjMw1FzHs8BM+jXFkSgok1ew5p3V2qEq7EM81SiKYa3IoldD55vnftjqYdx4+oTcfNeJstVtXa0WN7VvChLMN4Y/nOghBJtVjVkJsI1VqX3Sjs27tOW9q488mlpvLOzr5qcQ2XXbdC27C06VpvrisVkA0pkmEI0sckanm6/9zgQKM2UEsw/oC89/jRSr3etOPEsWI2EfInk+rpC6acVbvXFhFR2rK0jCJUtNxbL1eXnu31eWFqanZOd/E7pIALAAgg0I+pv/PyK3hkUU6isak/Dk3ipfAWfwUfQERRTGeSGk/4cZxg1DUSGUB0SSvhpchNxNvT4RgRTwjgeAFeCT/xK4g4XrMr0Gem6TjPLsCzs1oLNRSUTDnp9tIRE68siwE6KcYyFO0JZZbANMsDbBcAAAABAAAAARpeKHzLAl8PPPUADwPoAAAAAN+ptUEAAAAA4ithcv4V/dQH5gSBAAAABgACAAAAAAAAeNpjYGRgYA7+l8/AwM7xT/TvdvZnzC8YUAEHAJZBBnt42mPiY9BhOsMgBMMMqxkYQJgpggEEOBgYAGAQBJUAAAAAADQAyADUAOAA4ADgAOAA+wEceNpjYGRgYOBkZGJgZ3gOxCAeArAwMAIAFbUBCXjajZEFTgQwFEQf7sSJ4O7uEMGJ4h5bd/e9FEfgFBxoJ82659t86zQt0I+LLjq6B4C/jr087mCsYyKPOxntGM3jLs74z+NulvjN4x7e+MnjXhY4yuNRIfCQkESIa3tbEhZ2EhJzWD5BAC92U4nLb6kaw829vBOr+h/q24TjbPKi6CZJQJ2YOk75OF5z0gy7bMl22OecGcPq0lxSMYwHr2GbYYWUmTyRHciO2eQQh8zGahnvTBnzTBVzOdM9j5J7oTbuXJk1YLs2b5RVz6tZj+nuiU2MQm+qOJlpeNMn1cPF6FPVbmYuzUt4VIuZuZWan3HjNRNJbGxpK0zQVMMSNwGcxT+Lo3qRf5NUkX81BxLCXOAAAHjaY2BiAIP/CxmUGbABTiBWYTjJyMTAzMjMyMLIysjG5phUlFqWyl6al2lg4GjA5BzEl5hcWpKanJ+bpJecWJzKA5IxNjADcwArehFkAAAA) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-vietnamese-400-normal-a2O3jU53.woff2) format("woff2"),url(/assets/great-vibes-vietnamese-400-normal-Cxbm9Uac.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-latin-ext-400-normal-CsjMq8GN.woff2) format("woff2"),url(/assets/great-vibes-latin-ext-400-normal-wh4xxCIu.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-latin-400-normal-q5-78SH_.woff2) format("woff2"),url(/assets/great-vibes-latin-400-normal-BAZ173uY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sacramento;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sacramento-latin-ext-400-normal-CKF0Zc5Q.woff2) format("woff2"),url(/assets/sacramento-latin-ext-400-normal-CJ-VJynE.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sacramento;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sacramento-latin-400-normal-mRAQrhvZ.woff2) format("woff2"),url(/assets/sacramento-latin-400-normal-D-mHOmJi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Satisfy;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/satisfy-latin-400-normal-CIU_tGU7.woff2) format("woff2"),url(/assets/satisfy-latin-400-normal-ez4YC6jz.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pacifico;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pacifico-cyrillic-ext-400-normal-BuyJL26e.woff2) format("woff2"),url(/assets/pacifico-cyrillic-ext-400-normal-BH1b5rOk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Pacifico;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pacifico-cyrillic-400-normal-DS5_g9Hw.woff2) format("woff2"),url(/assets/pacifico-cyrillic-400-normal-BtlfDWif.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Pacifico;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pacifico-vietnamese-400-normal-CNs27uJ4.woff2) format("woff2"),url(/assets/pacifico-vietnamese-400-normal-CLnUcRoK.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Pacifico;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pacifico-latin-ext-400-normal-Ba3kv-va.woff2) format("woff2"),url(/assets/pacifico-latin-ext-400-normal-nyRvH6_c.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pacifico;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pacifico-latin-400-normal-7HIToT7q.woff2) format("woff2"),url(/assets/pacifico-latin-400-normal-DArfF-vd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-cyrillic-ext-400-normal-3iEGd-c5.woff2) format("woff2"),url(/assets/caveat-cyrillic-ext-400-normal-Cg0RnRQ5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-cyrillic-400-normal-9cDH9rLW.woff2) format("woff2"),url(/assets/caveat-cyrillic-400-normal-CebvvJET.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-latin-ext-400-normal-D7hBUiug.woff2) format("woff2"),url(/assets/caveat-latin-ext-400-normal-DtiRFvw0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-latin-400-normal-D6LQsQ_v.woff2) format("woff2"),url(/assets/caveat-latin-400-normal-BzhAQZkN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lobster;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lobster-cyrillic-ext-400-normal-CAda7jDo.woff2) format("woff2"),url(/assets/lobster-cyrillic-ext-400-normal-CTC7nHHC.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Lobster;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lobster-cyrillic-400-normal-DeMp0mA3.woff2) format("woff2"),url(/assets/lobster-cyrillic-400-normal-C0k4M1Yq.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Lobster;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lobster-vietnamese-400-normal-t7FFQ-Nt.woff2) format("woff2"),url(/assets/lobster-vietnamese-400-normal-CQxa60ei.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lobster;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lobster-latin-ext-400-normal-CBN1Kyd4.woff2) format("woff2"),url(/assets/lobster-latin-ext-400-normal-DjkE4ffB.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lobster;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lobster-latin-400-normal-VmWungf4.woff2) format("woff2"),url(/assets/lobster-latin-400-normal-Cc8ENR_t.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-ext-400-normal-DWiEslNC.woff2) format("woff2"),url(/assets/bebas-neue-latin-ext-400-normal-HFKRJXnW.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-400-normal-9mHNbWWO.woff2) format("woff2"),url(/assets/bebas-neue-latin-400-normal-Bi-ndsyu.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-ext-400-normal-XQK_CSAr.woff2) format("woff2"),url(/assets/cinzel-latin-ext-400-normal-DJ0Lq8y-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-400-normal-DnUIPmzd.woff2) format("woff2"),url(/assets/cinzel-latin-400-normal-C8jUSQqm.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Abril Fatface;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/abril-fatface-latin-ext-400-normal-Ctcf6qDM.woff2) format("woff2"),url(/assets/abril-fatface-latin-ext-400-normal-CYCbX7fF.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Abril Fatface;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/abril-fatface-latin-400-normal-utNZUC9m.woff2) format("woff2"),url(/assets/abril-fatface-latin-400-normal-CSRW-xuf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/alfa-slab-one-vietnamese-400-normal-C0oZnEo7.woff2) format("woff2"),url(/assets/alfa-slab-one-vietnamese-400-normal-BeSfPuN6.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/alfa-slab-one-latin-ext-400-normal-DZhSYPC8.woff2) format("woff2"),url(/assets/alfa-slab-one-latin-ext-400-normal-Dg9tQUb7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alfa Slab One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/alfa-slab-one-latin-400-normal-CbTZiZTW.woff2) format("woff2"),url(/assets/alfa-slab-one-latin-400-normal-UIGeWgec.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/**
* Greetlet - Global Stylesheet
*
* @fileoverview Complete CSS variable system, keyframes, and component
* styles implementing the Greetlet Style Guide. This single file contains
* all styling for the application shell and components.
*
* @author David Seguin, Chief Software Architect
* @company 44 North Incorporated
* @copyright © 2026 44 North Incorporated. All Rights Reserved.
* @license Professional - All Rights Reserved
* @version 1.0.0
* @since 2026
*/:root{--accent-color: #E8624A;--accent-color-hover: #FF7F50;--accent-color-light: #FFA07A;--primary-color: var(--accent-color);--primary-color-dark: var(--accent-color-hover);--primary-orange: var(--accent-color);--primary-orange-hover: var(--accent-color-hover);--primary-orange-light: var(--accent-color-light);--danger-color: #dc3545;--danger-color-hover: #c82333;--accent-warning: #f0ad4e;--accent-warning-hover: #ec971f;--status-success: #2e7d32;--status-success-bg: rgba(46, 125, 50, .14);--status-error: #c62828;--status-error-bg: rgba(198, 40, 40, .12);--status-warning: #ef6c00;--status-warning-bg: rgba(239, 108, 0, .12);--status-info: #1565c0;--status-info-bg: rgba(21, 101, 192, .12);--led-healthy: #22c55e;--led-degraded: #eab308;--led-unhealthy: #ef4444;--text-on-accent: #FFFFFF;--cost-cogs-color: #1565c0;--cost-credit-color: #a86a00;--hero-tint: #F4D4C8;--bg-primary: #F5F5F5;--bg-secondary: #EFEFEF;--bg-tertiary: #FFFFFF;--background-main: #F5F5F5;--background-card: #FFFFFF;--background-input: #FFFFFF;--background-secondary: #EFEFEF;--text-primary: #1A1A1A;--text-secondary: #666666;--text-placeholder: #999999;--border-color: #E0E0E0;--border-hover: #CCCCCC;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15)}[data-theme=dark]{--danger-color: #ff6b6b;--danger-color-hover: #ff5252;--accent-warning: #f39c12;--accent-warning-hover: #e67e22;--status-success: #66bb6a;--status-success-bg: rgba(102, 187, 106, .22);--status-error: #ff7676;--status-error-bg: rgba(255, 118, 118, .2);--status-warning: #ffb74d;--status-warning-bg: rgba(255, 183, 77, .2);--status-info: #64b5f6;--status-info-bg: rgba(100, 181, 246, .2);--led-healthy: #4ade80;--led-degraded: #facc15;--led-unhealthy: #f87171;--hero-tint: #3a1f1a;--cost-cogs-color: #64b5f6;--cost-credit-color: #f0c050;--bg-primary: #1A1A1A;--bg-secondary: #252525;--bg-tertiary: #2A2A2A;--background-main: #1A1A1A;--background-card: #2A2A2A;--background-input: #333333;--background-secondary: #252525;--text-primary: #FFFFFF;--text-secondary: #CCCCCC;--text-placeholder: #888888;--border-color: #404040;--border-hover: #555555;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}:root{--nav-h: 64px}@media(max-width:768px){:root{--nav-h: 56px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--background-main);color:var(--text-primary);line-height:1.6;transition:background-color .3s ease,color .3s ease}::selection{background:var(--accent-color);color:var(--text-on-accent)}::-moz-selection{background:var(--accent-color);color:var(--text-on-accent)}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--background-input);border-radius:5px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:center;gap:var(--sp-3);height:var(--nav-h);padding:0 var(--sp-4);background:var(--bg-elev);border-bottom:1px solid var(--divider);box-shadow:var(--shadow-sm);transition:transform var(--t-medium) var(--easing),box-shadow var(--t-medium) var(--easing)}.header.is-collapsed{transform:translateY(-100%);box-shadow:none;pointer-events:none}.header-peek{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:calc(var(--z-nav) + 1);display:flex;align-items:center;justify-content:center;width:64px;height:24px;padding:0;border:1px solid var(--divider);border-top:none;border-radius:0 0 12px 12px;background:var(--bg-elev);color:var(--ink-soft);box-shadow:var(--shadow-sm);cursor:pointer;transition:color .2s ease,background-color .2s ease}.header-peek:hover{background-color:var(--surface-inset);color:var(--accent)}.header-peek .icon{font-size:20px;line-height:1}.topnav-logo{display:flex;align-items:center;flex:0 0 auto}.topnav-logo img{display:block;height:40px;width:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.topnav-logo .topnav-logo-mark{display:none}.topnav-nav{display:flex;align-items:center;gap:var(--sp-1);flex:1 1 auto;min-width:0;margin-left:var(--sp-3)}.header .topnav-link{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-pill);color:var(--ink-soft);font-size:var(--fs-small);font-weight:600;text-decoration:none;white-space:nowrap;transition:background var(--t-snap) var(--easing),color var(--t-snap) var(--easing)}.header .topnav-link svg{width:20px;height:20px;flex:0 0 auto}.header .topnav-link:hover{background:var(--surface-inset);color:var(--ink)}.header .topnav-link[aria-current=page]{background:var(--accent-surface);color:var(--ink)}.header .topnav-link[aria-current=page] svg{color:var(--accent)}.topnav-actions{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 auto;margin-left:auto}.conn-note{display:inline-flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);min-height:32px;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink);font-size:var(--fs-small);font-weight:600;white-space:nowrap}.topnav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim-dim);z-index:calc(var(--z-nav) + 1);animation:fadeIn .2s ease}.topnav-drawer{display:flex;flex-direction:column;gap:var(--sp-1);position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:var(--bg-elev);border-left:1px solid var(--divider);box-shadow:var(--shadow-lg);z-index:calc(var(--z-nav) + 2);animation:more-in var(--t-medium) var(--easing)}@keyframes more-in{0%{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.topnav-drawer{animation:none}}.topnav-drawer .user-menu-header{margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3)) var(--sp-2)}.topnav-drawer .more-close{margin-left:auto;width:44px;min-height:44px;padding:0;justify-content:center}.topnav-drawer-new{flex:0 0 auto;min-height:48px;margin-bottom:var(--sp-2)}@media(min-width:769px){.topnav-drawer .more-place{display:none}}.more-row-tail{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.topnav-drawer-link{display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-3);border:none;background:none;border-radius:var(--r-md);color:var(--ink);font:inherit;font-size:var(--fs-body);font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.topnav-drawer-link svg{width:22px;height:22px;flex:0 0 auto;color:var(--accent)}.topnav-drawer-link .icon{font-size:22px;width:22px;flex:0 0 auto;color:var(--accent)}.topnav-drawer-link:hover{background:var(--surface-inset)}.topnav-drawer-link[aria-current=page]{background:var(--accent-surface)}.topnav-drawer-rule{height:1px;margin:var(--sp-2) 0;background:var(--divider)}@media(max-width:1099px){.header .topnav-link span{display:none}.header .topnav-link{padding:0 var(--sp-2)}}.topnav-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:calc(-1 * var(--sp-2));padding:0;border:none;border-radius:var(--r-md);background:none;color:var(--ink);cursor:pointer}.topnav-burger:hover{background:var(--surface-inset);color:var(--accent)}.topnav-burger:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}@media(max-width:768px){.topnav-nav,.topnav-logo .topnav-logo-word{display:none}.topnav-logo .topnav-logo-mark{display:block}.topnav-burger{display:inline-flex}.conn-note{font-size:0;gap:0;padding:0 var(--sp-2)}}.main-content{margin-top:var(--nav-h);margin-left:0;--main-pad: 2rem;padding:var(--main-pad);min-height:calc(100vh - var(--nav-h))}.main-content.header-collapsed{margin-top:28px;min-height:calc(100vh - 28px)}body.player-active .main-content{padding-bottom:calc(var(--main-pad) + var(--player-height, 0px))}body.player-active .topnav-drawer,body.player-active .topnav-scrim{bottom:var(--player-height, 0px)}.user-menu-wrapper{position:relative}.user-menu-button{background:none;border:2px solid var(--border-color);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0}.user-menu-button:hover{border-color:var(--accent-color)}.user-menu-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-color),var(--accent-color-hover));color:var(--text-on-accent);font-weight:600;font-size:.9rem;display:flex;align-items:center;justify-content:center;text-transform:uppercase;flex-shrink:0}.user-menu-avatar--large{width:40px;height:40px;font-size:1rem}.user-menu-header{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-secondary)}.user-menu-info{display:flex;flex-direction:column;gap:2px;min-width:0}.user-menu-name{font-weight:600;font-size:.95rem;color:var(--text-primary)}.user-menu-email{font-size:.8rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-badge{font-size:.7rem;padding:2px 6px;background:linear-gradient(135deg,var(--accent-color),var(--accent-color-hover));color:var(--text-on-accent);border-radius:4px;font-weight:600;text-transform:uppercase;width:fit-content}.user-menu-version{padding:8px 12px;text-align:center;font-size:.75rem;color:var(--text-secondary);opacity:.7;font-family:Courier New,monospace;-webkit-user-select:none;user-select:none;cursor:default}.theme-toggle{background:none;border:2px solid var(--border-color);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:var(--text-primary);padding:0}.theme-toggle:hover{border-color:var(--accent-color);transform:rotate(180deg)}.credit-pill{display:inline-flex;align-items:center;gap:5px;height:40px;padding:0 13px;border-radius:999px;border:2px solid var(--border-color);background:var(--background-card);color:var(--text-primary);font-size:13px;font-weight:700;line-height:1;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.credit-pill:hover{border-color:var(--accent-color)}.credit-pill .credit-pill-num{font-variant-numeric:tabular-nums}.credit-pill.is-empty{border-color:var(--danger-color);color:var(--danger-color);background:var(--status-error-bg)}.credit-cost{font-size:max(.82em,var(--fs-caption));font-weight:600;opacity:.75;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:5px}.gd-cost-badge{gap:8px}.gd-cost-num{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.gd-cost-num+.gd-cost-num{padding-left:8px;border-left:1px solid var(--border-color)}.gd-cost-num .icon{font-size:16px}.gd-cost-cogs{color:var(--cost-cogs-color)}.gd-cost-credit{color:var(--cost-credit-color)}.card-credit-pill{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 13px;border-radius:999px;border:2px solid var(--border-color);background:var(--background-card);color:var(--cost-credit-color);font-size:13px;font-weight:700;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.card-credit-pill .icon{font-size:16px}.theme-icon{width:20px;height:20px;transition:transform .3s ease}.settings-tabs{display:flex;border-bottom:2px solid var(--border-color);margin-bottom:1.5rem}.settings-tab{flex:1;padding:.875rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;position:relative;bottom:-2px;font-family:inherit}.settings-tab:hover{color:var(--text-primary);background:var(--bg-secondary)}.settings-tab--active{color:var(--accent-color);border-bottom-color:var(--accent-color);font-weight:600}.dashboard-subtabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;background:var(--background-secondary);border-radius:8px;width:fit-content}.dashboard-subtab{padding:.5rem 1.25rem;background:transparent;border:none;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:6px;font-family:inherit;white-space:nowrap}@media(max-width:600px){.dashboard-subtab{padding:.45rem .8rem}}.dashboard-subtab:hover{color:var(--text-primary);background:var(--background-input)}.dashboard-subtab--active{color:var(--text-on-accent);background:var(--accent-color);font-weight:600;box-shadow:0 1px 3px #0000001a}.dashboard-subtabs--nested{background:transparent;padding:0;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--divider, var(--border-color));border-radius:0;width:100%}.dashboard-subtabs--nested .dashboard-subtab{padding:.4rem .9rem;font-size:.85rem;border-radius:6px 6px 0 0}.dashboard-subtabs--nested .dashboard-subtab--active{color:var(--accent-color);background:transparent;box-shadow:inset 0 -2px 0 var(--accent-color);border-radius:6px 6px 0 0}.settings-section{margin-bottom:32px}.settings-section:last-child{margin-bottom:0}.settings-section h3{font-size:18px;color:var(--text-primary);margin:0 0 8px}.settings-description{font-size:14px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.accent-color-swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.accent-color-name{margin:12px 0 0;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--accent-color);text-align:center}.accent-swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s ease;padding:0}.accent-swatch:hover{transform:scale(1.15)}.accent-swatch--active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--background-card),0 0 0 4px var(--text-primary)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-color);border-radius:24px;cursor:pointer;transition:background .2s ease}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s ease}.toggle-switch input:checked+.toggle-slider{background:var(--accent-color)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0}.settings-row-label{font-size:14px;font-weight:500;color:var(--text-primary)}.msp-title{margin-top:0;display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.msp-err{color:var(--danger, #c0392b);font-size:var(--fs-small, 13px);margin:0 0 var(--sp-3, 12px)}.msp-notice{color:var(--confirm, #7FA68C);font-size:var(--fs-small, 13px);margin:0 0 var(--sp-3, 12px)}.msp-kind-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:var(--sp-3, 12px) 0 var(--sp-4, 16px)}.msp-kind-tab{min-height:40px;padding:0 14px;border-radius:var(--r-pill, 999px);border:1px solid var(--divider);background:var(--bg-elev, var(--surface));color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.msp-kind-tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.msp-kind-tab:disabled{opacity:.55;cursor:default}.msp-occasion-row{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4, 16px)}.msp-occasion-label{font-size:13px;font-weight:600;color:var(--ink-soft)}.msp-occasion-select{min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--divider);background:var(--surface-inset, var(--bg));color:var(--ink);font-size:16px}.msp-song-row,.msp-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--divider)}.msp-song-row{margin-bottom:4px}.msp-grid{list-style:none;margin:0;padding:0}.msp-tile-text{display:flex;align-items:flex-start;gap:10px;min-width:0;flex:1}.msp-tile-text .icon{color:var(--ink-soft);margin-top:2px}.msp-tile-label{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.msp-tile-hint{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.35}.msp-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:999px;background:var(--accent-soft, rgba(232, 98, 74, .12));color:var(--accent)}.msp-badge--yours{background:#7fa68c2e;color:var(--confirm, #7FA68C)}.msp-tile.is-locked{opacity:.72}.msp-foot{margin:var(--sp-4, 16px) 0 0;font-size:12px;color:var(--muted);line-height:1.4}.btn{padding:10px 20px;border-radius:var(--r-pill, 999px);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:6px;line-height:1;font-family:inherit}.btn:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(50%)}.btn-primary{background:var(--accent-color);color:var(--text-on-accent)}.btn-primary:not(:disabled):hover{background:var(--accent-color-hover);transform:translateY(-1px)}.btn-secondary{background:var(--background-input);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:not(:disabled):hover{background:var(--border-hover)}.btn-danger{background:var(--danger-color);color:var(--text-on-accent);border:1px solid var(--danger-color)}.btn-danger:not(:disabled):hover{background:var(--danger-color-hover);transform:translateY(-1px)}.btn-sm{padding:6px 12px;font-size:12px}.form-input,.form-select{width:100%;padding:.75rem 1rem;border:2px solid var(--border-color);border-radius:8px;background:var(--background-input);color:var(--text-primary);font-size:1rem;font-family:inherit;transition:all .3s ease;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input::placeholder{color:var(--text-placeholder)}.form-input:hover,.form-select:hover{border-color:var(--border-hover)}.form-input:focus,.form-select:focus{border-color:var(--accent-color);background:var(--background-input)}.form-label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-group{margin-bottom:1rem}.card{background:var(--background-card);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .3s ease}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.card--accent:hover{border-color:var(--accent-color)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-in-out}.modal-content{background:var(--background-card);border-radius:12px;box-shadow:var(--shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease-out}.modal-content--large{max-width:800px}.settings-modal{height:80vh;max-width:960px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-header h2{font-size:24px;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:28px;color:var(--text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;font-family:inherit}.modal-close:hover{background:var(--background-input);color:var(--text-primary)}.modal-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px}.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);flex-shrink:0}.modal-footer-buttons{display:flex;gap:12px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.dialog-content{background:var(--background-card);border-radius:12px;box-shadow:var(--shadow-lg);max-width:500px;width:90%;border:1px solid var(--border-color);overflow:hidden;animation:slideIn .3s ease-out}.dialog-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--border-color);background:var(--background-input)}.dialog-icon{width:24px;height:24px;flex-shrink:0}.dialog-icon--warning{color:var(--status-warning)}.dialog-icon--error{color:var(--status-error)}.dialog-icon--success{color:var(--status-success)}.dialog-icon--info{color:var(--status-info)}.dialog-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.dialog-body{padding:24px}.dialog-message{font-size:15px;line-height:1.6;color:var(--text-primary);white-space:pre-line}.dialog-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--background-input)}.dialog-content .dialog-footer .btn{flex:1 1 0;width:auto;min-height:48px;justify-content:center;white-space:nowrap;font-size:16px;border-radius:var(--r-lg, 14px)}.dialog-footer--stack{flex-direction:column;align-items:stretch}.dialog-content .dialog-footer--stack .btn{flex:0 0 auto;width:100%;white-space:normal}.toast-container{position:fixed;left:50%;transform:translate(-50%);top:24px;z-index:10001;max-width:600px;width:90%;animation:toastSlideIn .3s ease-out;pointer-events:none}.toast{background:var(--background-card);border-radius:8px;box-shadow:var(--shadow-lg);padding:16px 20px;display:flex;align-items:center;gap:12px;border:1px solid var(--border-color);border-left-width:4px;pointer-events:all}.toast--error{border-left-color:var(--status-error)}.toast--warning{border-left-color:var(--status-warning)}.toast--success{border-left-color:var(--status-success)}.toast--info{border-left-color:var(--status-info)}.toast-icon{width:24px;height:24px;flex-shrink:0}.toast--error .toast-icon{color:var(--status-error)}.toast--warning .toast-icon{color:var(--status-warning)}.toast--success .toast-icon{color:var(--status-success)}.toast--info .toast-icon{color:var(--status-info)}.toast-message{flex:1;font-size:14px;line-height:1.5;color:var(--text-primary)}.toast-action{flex-shrink:0;min-height:36px;padding:0 var(--sp-2);border:none;border-radius:var(--r-sm);background:transparent;color:var(--accent-color);font-size:14px;font-weight:600;cursor:pointer}.toast-action:hover{background:var(--surface-hover)}.toast-action:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring);outline-offset:2px}.toast-close{background:transparent;border:none;font-size:18px;color:var(--text-secondary);cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;flex-shrink:0;font-family:inherit}.toast-close:hover{background:var(--background-input);color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) scale(.95);background:var(--text-primary);color:var(--background-card);padding:.5rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500;white-space:nowrap;z-index:1000;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;box-shadow:0 4px 12px #0000004d}.tooltip-wrapper:hover .tooltip{opacity:1;transform:translate(-50%) scale(1)}.skeleton{background:linear-gradient(90deg,var(--background-input) 25%,var(--border-color) 50%,var(--background-input) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:6px}.dashboard{max-width:1200px;margin:0 auto}.dashboard-welcome{margin-bottom:2rem}.dashboard-welcome h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.dashboard-welcome p{font-size:1rem;color:var(--text-secondary);margin:0;line-height:1.6}.gtx{position:relative;display:block;width:100%}.gtx>textarea{display:block;width:100%;box-sizing:border-box}.gtx-tools{position:absolute;top:6px;right:6px;display:flex;align-items:center;gap:2px;pointer-events:none}.gtx-tool{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;margin:0;border:0;border-radius:999px;cursor:pointer;background:transparent;color:var(--text-secondary, var(--muted, #8b8278));transition:background .15s ease,color .15s ease}.gtx-tool:hover:not(:disabled){color:var(--text-primary, var(--ink, #1a1a1a));background:color-mix(in srgb,currentColor 16%,transparent)}.gtx-tool:active:not(:disabled){background:color-mix(in srgb,currentColor 26%,transparent)}.gtx-tool:disabled{opacity:.4;cursor:default}.gtx-tool .icon{font-size:18px;line-height:1}@media(pointer:coarse){.gtx-tools{top:4px;right:4px;gap:0}.gtx-tool{width:44px;height:44px}.gtx-tool .icon{font-size:24px}}.gtx-mic.is-busy .icon{animation:gtx-spin .9s linear infinite}.gtx-mic.is-blocked{opacity:.45}.gtx-counter{position:absolute;bottom:4px;right:8px;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums;padding:1px 6px;border-radius:999px;color:var(--text-secondary, var(--muted, #8b8278));background:#7f7f7f29}.gtx-counter.is-warn{color:#b26a00;font-weight:600}.gtx-counter.is-over{color:#e5484d;font-weight:700}@media(pointer:coarse){.gtx-counter{font-size:12px}}@keyframes gtx-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.gtx-mic.is-busy .icon{animation:none}}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--background-main);gap:2rem}.connection-led{display:inline-block;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--background-card);transition:background-color .18s ease}.connection-led--healthy{background:var(--led-healthy);box-shadow:0 0 6px color-mix(in srgb,var(--led-healthy) 40%,transparent),0 0 0 2px var(--background-card)}.connection-led--degraded{background:var(--led-degraded);box-shadow:0 0 6px color-mix(in srgb,var(--led-degraded) 40%,transparent),0 0 0 2px var(--background-card)}.connection-led--unhealthy{background:var(--led-unhealthy);box-shadow:0 0 6px color-mix(in srgb,var(--led-unhealthy) 40%,transparent),0 0 0 2px var(--background-card);animation:connection-pulse 1.4s ease-in-out infinite}@keyframes connection-pulse{0%,to{opacity:1}50%{opacity:.4}}.connection-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:10000;display:flex;align-items:center;justify-content:center;padding:2rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.connection-overlay-card{max-width:440px;width:100%;padding:1.5rem 1.75rem;text-align:center;border-color:var(--danger-color)}.connection-overlay-title{margin:0 0 .5rem;color:var(--danger-color)}.connection-overlay-message{color:var(--text-secondary);margin:0 0 1.25rem}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--background-main)}.error-boundary-card{max-width:640px;width:100%;padding:2rem;border-color:var(--danger-color)}.error-boundary-title{margin:0 0 .5rem;color:var(--danger-color);font-size:1.5rem}.error-boundary-message{margin:0 0 1.5rem;color:var(--text-secondary);font-size:.9375rem}.error-boundary-stack{background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;margin:0 0 1.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.45;white-space:pre-wrap;overflow-x:auto;max-height:320px}.error-boundary-actions{display:flex;gap:.5rem}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--text-secondary)}.not-found-code{font-size:6rem;font-weight:700;line-height:1;color:var(--accent-color);margin:0}.not-found-title{font-size:1.5rem;margin:.5rem 0 .25rem;color:var(--text-primary)}.not-found-message{margin:0 0 1.5rem;max-width:440px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:var(--text-secondary);gap:.75rem}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip-bubble{position:absolute;z-index:9999;padding:6px 10px;background:var(--tooltip-bg, #1a1a1a);color:var(--tooltip-text, #fff);font-size:.75rem;line-height:1.3;border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease}.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble{opacity:1;transform:translateY(0)}.tooltip-wrapper:not([data-tooltip-open=true]) .tooltip-bubble{display:none}@starting-style{.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble{opacity:0}}.tooltip-bubble[data-placement=top]{bottom:calc(100% + 6px);left:50%;transform:translate(-50%,4px)}.tooltip-bubble[data-placement=bottom]{top:calc(100% + 6px);left:50%;transform:translate(-50%,-4px)}.tooltip-bubble[data-placement=left]{right:calc(100% + 6px);top:50%;transform:translate(4px,-50%)}.tooltip-bubble[data-placement=right]{left:calc(100% + 6px);top:50%;transform:translate(-4px,-50%)}.tooltip-bubble[data-placement=bottom-end]{top:calc(100% + 6px);right:0;transform:translateY(-4px)}.tooltip-bubble[data-placement=top-start]{bottom:calc(100% + 6px);left:0;transform:translateY(4px)}.tooltip-bubble[data-placement=top-end]{bottom:calc(100% + 6px);right:0;transform:translateY(4px)}.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=bottom-end],.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=top-start],.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=top-end]{transform:translateY(0)}.tooltip-wrapper[data-tooltip-pinned=true] .tooltip-bubble{pointer-events:auto}.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=top],.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=bottom]{transform:translate(-50%)}.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=left],.tooltip-wrapper[data-tooltip-open=true] .tooltip-bubble[data-placement=right]{transform:translateY(-50%)}.tooltip-bubble--wide{white-space:normal;width:max-content;max-width:260px;text-align:left}.help-bubble{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;padding:0;flex:0 0 auto;vertical-align:middle;position:relative;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;opacity:.55;font-size:11px;font-weight:700;line-height:1;cursor:help;transition:opacity .12s ease}.help-bubble:hover,.help-bubble:focus-visible{opacity:1}@media(pointer:coarse){.help-bubble:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px}}.form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:1rem}.form-field-label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.form-field-label--required:after{content:" *";color:var(--danger-color)}.form-field-input,.form-field-textarea,.form-field-select{width:100%;padding:8px 12px;background:var(--background-input, var(--background-card));color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.form-field-input:focus,.form-field-textarea:focus,.form-field-select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-color-light)}.form-field-textarea{min-height:80px;resize:vertical}.form-field--invalid .form-field-input,.form-field--invalid .form-field-textarea,.form-field--invalid .form-field-select{border-color:var(--danger-color)}.form-field-help,.form-field-error{font-size:.75rem;line-height:1.4}.form-field-help{color:var(--text-secondary)}.form-field-error{color:var(--danger-color)}@media(max-width:768px){.settings-tabs{flex-flow:row nowrap;overflow-x:auto;flex-shrink:0;margin-bottom:0}.settings-tab{flex:0 0 auto;white-space:nowrap;min-height:44px;padding:var(--sp-3) var(--sp-4)}.settings-modal{height:92dvh;max-height:92dvh}.settings-modal .modal-body{min-height:0;padding:var(--sp-4);text-align:left}.settings-modal .modal-close{width:44px;height:44px}}@media(max-width:640px){.main-content{--main-pad: 1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.my-cards-toolbar{display:flex;flex-direction:column;gap:14px;margin:12px 0 18px}.my-cards-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 16px;align-items:end;padding:14px 16px 16px;background:var(--bg-elev);border:1px solid var(--divider);border-radius:var(--r-lg)}@media(prefers-reduced-motion:no-preference){.my-cards-filters{animation:mycards-filters-in var(--t-snap, .16s) var(--easing, ease-out) both}}@keyframes mycards-filters-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.my-cards-filter-toggle .my-cards-filter-caret{opacity:.75}.my-cards-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--accent-color);color:var(--text-on-accent);font-size:11px;font-weight:700;line-height:1}.my-cards-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.my-cards-toolbar-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}.my-cards-toolbar-field>span{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.my-cards-toolbar-field select,.my-cards-toolbar-field input[type=search]{width:100%;box-sizing:border-box;min-height:42px;padding:9px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--background-input);color:var(--text-primary);font:inherit}.my-cards-toolbar-search{grid-column:span 2}.my-cards-toolbar-spacer{flex:1}.my-cards-toolbar-count{font-size:13px;color:var(--text-secondary)}@media(max-width:600px){.my-cards-filters{grid-template-columns:1fr 1fr;gap:10px 12px;padding:12px}.my-cards-toolbar-search{grid-column:1 / -1}.my-cards-toolbar-field select,.my-cards-toolbar-field input[type=search]{min-height:44px}.my-cards-actions .my-cards-toolbar-spacer{display:none}}.cats-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:nowrap}.cats-toolbar .cats-search{flex:1 1 auto;width:auto;min-width:0}.cats-toolbar .cats-search::placeholder{color:var(--text-placeholder)}.cats-toolbar-count{color:var(--text-secondary);font-size:13px;white-space:nowrap}.cats-toolbar .btn{flex-shrink:0;white-space:nowrap}@media(max-width:600px){.cats-toolbar{flex-wrap:wrap}.cats-toolbar .cats-search{flex-basis:100%}}.cats-list{margin:0;padding:0;list-style:none;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--background-card)}.cats-row{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.cats-row:last-child{border-bottom:none}.cats-row.is-inactive{opacity:.55}.cats-row__icon{font-size:28px;width:40px;text-align:center;flex-shrink:0}.cats-row__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.cats-row__label{font-weight:600;color:var(--text-primary)}.cats-row__disabled{margin-left:8px;font-size:12px;font-weight:400;color:var(--text-secondary)}.cats-row__meta{font-size:12px;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:4px 8px}.cats-row__meta code{font-family:inherit;color:var(--text-primary);background:var(--background-secondary);padding:0 6px;border-radius:4px}.cats-row__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.cats-card{background:var(--background-card);border:1px solid var(--border-color);border-radius:8px;padding:14px;margin-bottom:12px;color:var(--text-primary)}.cats-card--accent{background:var(--background-secondary)}.cats-muted{color:var(--text-secondary)}.cats-muted-sm{color:var(--text-secondary);font-size:12px}.cats-empty{color:var(--text-secondary);text-align:center;padding:32px 16px;border:1px dashed var(--border-color);border-radius:8px;background:var(--background-card)}.cats-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.cats-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--background-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:12px;line-height:1}.cats-chip__remove{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:0;font-size:16px;line-height:1}.cats-chip__remove:hover{color:var(--danger-color)}.cats-chip-input{display:flex;gap:6px}.cats-chip-input input{width:auto;flex:1 1 auto;min-width:0}.cats-tone-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.cats-tone{padding:4px 12px;border-radius:999px;background:var(--background-card);border:1px solid var(--border-color);color:var(--text-primary);font-size:12px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.cats-tone:hover{border-color:var(--border-hover)}.cats-tone.is-on{background:var(--accent-color);border-color:var(--accent-color);color:var(--text-on-accent)}.cats-editor-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.cats-editor-head h3{margin:0;display:flex;align-items:baseline;gap:10px;color:var(--text-primary)}.cats-editor-head .cats-editor-slug{font-size:13px;font-weight:400;color:var(--text-secondary)}.cats-editor-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.cats-toggle-row{display:flex;align-items:center;gap:12px;margin:12px 0;color:var(--text-primary)}.cats-cover-block{margin:12px 0 20px}.cats-cover-preview{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg-elev, #fafafa);border:1px solid var(--border-color);border-radius:8px}.cats-cover-thumb{width:120px;height:120px;object-fit:cover;border-radius:6px;flex:0 0 auto}.cats-cover-meta{display:flex;flex-direction:column;gap:6px}.cats-cover-empty{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--bg-elev, #fafafa);border:1px dashed var(--border-color);border-radius:8px}.cats-cover-link{color:var(--accent, #2563eb);text-decoration:none;font-size:13px;font-weight:500}.cats-cover-link:hover{text-decoration:underline}.cats-legacy-details{margin-top:20px;padding-top:12px;border-top:1px solid var(--border-color)}.cats-legacy-details>summary{cursor:pointer;font-weight:600;font-size:.875rem;color:var(--text-secondary);margin-bottom:12px;-webkit-user-select:none;user-select:none}.cats-legacy-details[open]>summary{margin-bottom:16px}.cats-form-section{margin-bottom:20px}.cats-form-section:last-of-type{margin-bottom:0}.cats-form-section__label{display:block;font-weight:600;font-size:.875rem;color:var(--text-secondary);margin-bottom:8px}.cats-form-row{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.cats-form-row>.form-field{margin-bottom:0}.cats-form-row .cats-order-field{max-width:120px;flex:0 0 auto}.cats-form-row .cats-active-pair{display:flex;align-items:center;gap:10px;color:var(--text-primary);padding-bottom:8px}.cats-greeting-form{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;padding:20px;margin-bottom:12px}.cats-greeting-row{display:flex;align-items:flex-start;gap:12px;background:var(--background-card);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px;margin-bottom:10px;color:var(--text-primary)}.cats-greeting-row.is-inactive{opacity:.55}.cats-greeting-row__body{flex:1 1 0;min-width:0}.cats-greeting-row__text{font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;color:var(--text-primary)}.cats-greeting-row__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.cats-greeting-row__actions .btn{flex-shrink:0}.cats-insert-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.cats-insert-bar__label{font-size:12px;color:var(--text-secondary);margin-right:4px}.cats-insert-token{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--background-card);border:1px solid var(--border-color);color:var(--accent-color);cursor:pointer;line-height:1;transition:background .12s ease,border-color .12s ease}.cats-insert-token:hover{background:var(--background-input);border-color:var(--accent-color)}.cats-insert-token[title]{position:relative}.cats-help{border:1px solid var(--border-color);border-radius:8px;background:var(--background-card);margin-bottom:16px;overflow:hidden}.cats-help>summary{cursor:pointer;padding:12px 16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px;list-style:none;-webkit-user-select:none;user-select:none}.cats-help>summary::-webkit-details-marker{display:none}.cats-help>summary:before{content:"▸";display:inline-block;color:var(--text-secondary);font-size:12px;width:12px;transition:transform .12s ease}.cats-help[open]>summary:before{transform:rotate(90deg)}.cats-help__body{padding:0 16px 16px;color:var(--text-secondary);font-size:13px;line-height:1.5;border-top:1px solid var(--border-color)}.cats-help__body p{margin:12px 0}.cats-help__body ol{margin:12px 0;padding-left:20px;line-height:1.6}.cats-help__prompt{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:6px;padding:14px;margin:12px 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;color:var(--text-primary);max-height:360px;overflow:auto}.cats-help__actions{display:flex;gap:8px;margin-top:8px}.cats-question-card{background:var(--background-card);border:1px solid var(--border-color);border-radius:8px;padding:14px;margin-bottom:12px}.cats-question-card .cats-question-row{display:grid;grid-template-columns:1fr 2fr;gap:12px}@media(max-width:600px){.cats-question-card .cats-question-row{grid-template-columns:1fr}}.cats-greeting-form-actions{display:flex;gap:8px;margin-top:12px}.cats-cover-examples{margin:18px 0}.cats-example-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;margin-bottom:10px}.cats-example-row textarea{width:100%;resize:vertical}@media(max-width:600px){.cats-example-row{grid-template-columns:1fr}}.cats-panel .form-field-label,.cats-panel .form-field-help{color:var(--text-secondary)}.cats-panel .form-field-label--required:after{color:var(--danger-color)}.license-gate{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg);color:var(--ink)}.license-gate-card{width:100%;max-width:680px;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:hidden}.license-gate-header{display:flex;align-items:center;gap:10px;padding:18px 20px 12px;border-bottom:1px solid var(--divider)}.license-gate-brand{margin:0;font-size:22px;letter-spacing:-.02em}.license-gate-badge{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-outline);background:var(--accent-surface);border-radius:var(--r-sm);padding:2px 8px}.license-gate-welcome{padding:14px 20px;font-size:14px;line-height:1.55;color:var(--ink-soft);border-bottom:1px solid var(--divider);background:var(--accent-surface);flex:0 0 auto;max-height:30dvh;overflow-y:auto}.license-gate-doc{flex:1 1 auto;min-height:120px;overflow-y:auto;padding:16px 20px;font-size:13px;line-height:1.6;color:var(--ink-soft);background:var(--surface-inset);-webkit-overflow-scrolling:touch}.license-gate-actions{flex:0 0 auto;padding:12px 20px 16px;border-top:1px solid var(--divider);display:flex;flex-direction:column;gap:10px;background:var(--bg-elev)}.license-gate-agree{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;cursor:pointer}.license-gate-agree input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}.license-gate-buttons{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.license-gate-error{margin:0;font-size:13px;color:var(--status-error)}@media(max-width:640px){.license-gate{padding:0}.license-gate-card{max-width:none;max-height:none;height:100dvh;border-radius:0;border:none}.license-gate-buttons{justify-content:stretch}.license-gate-buttons .btn{flex:1 1 auto}}.terms-page{min-height:100dvh;background:var(--bg);color:var(--ink);padding:24px 16px 48px;display:flex;justify-content:center}.terms-page-card{width:100%;max-width:760px;background:var(--bg-elev);border:1px solid var(--edge);border-radius:var(--r-lg);padding:24px;font-size:14px;line-height:1.65;color:var(--ink-soft)}.terms-page-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--divider);padding-bottom:12px}.terms-page-back{color:var(--accent);text-decoration:none;font-weight:600}.terms-page-meta{margin:0;font-size:12px;color:var(--muted)}.maint-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg);color:var(--ink);text-align:center}.maint-card{width:100%;max-width:460px;background:var(--bg-elev);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:28px 24px 22px}.maint-icon{font-size:40px;color:var(--accent);display:block;margin-bottom:6px}.maint-brand{margin:0 0 12px;font-size:22px;letter-spacing:-.02em}.maint-body{font-size:14px;line-height:1.6;color:var(--ink-soft);text-align:left;margin-bottom:18px}.maint-note{margin:12px 0 0;font-size:12px;color:var(--muted)}.maint-admin-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-pill, 999px);background:var(--status-error);color:var(--bg);font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;cursor:default}.maint-admin-pill .icon{font-size:14px}@media(max-width:640px){.maint-admin-pill{font-size:0;gap:0;padding:3px 6px}.maint-admin-pill .icon{font-size:15px}}
