/* The reward hall: an engraved object, a quiet inventory, a view of the fleet. */
.fleet-kit{--kit-gold:#edcb90;--kit-muted:#b6a184;--kit-line:#b68b4c42;isolation:isolate;padding:144px clamp(20px,4.4vw,84px) 76px;min-height:100svh;background:#090705;color:#fff1d7}
.kit-backdrop{position:absolute;inset:0;z-index:-2;background-position:center 14%;background-size:cover;opacity:.46;pointer-events:none}
.fleet-kit::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#080605a8,#0a0705ad 45%,#080604f5 85%),linear-gradient(90deg,#0c08069e,transparent 60%);pointer-events:none}
.kit-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;max-width:1440px;margin:auto}
.kit-heading p{font:12px var(--mina);color:var(--kit-gold);margin-bottom:12px}
.kit-heading h1{font-size:clamp(27px,3.5vw,54px);letter-spacing:-.045em;line-height:1.1}
.kit-back,.horizon-bottom button,.collection-bottom button{background:none;font:12px var(--bai);color:#d3bd9d;padding:12px 0;border-bottom:1px solid var(--kit-line);white-space:nowrap;cursor:pointer}
:is(#kit-sound-slot,#collection-sound-slot){display:flex;justify-content:flex-end;max-width:1440px;margin:20px auto 22px;min-height:54px}
:is(#kit-sound-slot,#collection-sound-slot) .audio-dock,#horizon-sound-slot .audio-dock{position:static;inset:auto;width:auto;max-width:100%;padding:0;transform:none;background:transparent;box-shadow:none;border:0}
:is(#kit-sound-slot,#collection-sound-slot) .audio-feedback:empty,#horizon-sound-slot .audio-feedback:empty,.kit-asset-dialog .audio-feedback:empty{display:none}
.kit-layout{max-width:1440px;margin:auto}
.kit-workspace{min-width:0}
.kit-panel{margin-top:22px;min-width:0}.kit-ticket-object{perspective:1100px;filter:drop-shadow(0 24px 36px #000b);margin:0 -2.4%}.kit-ticket-object canvas{display:block;width:100%;height:auto;transform-origin:center;}
.kit-ticket-note{font:10px var(--mina);color:#b8a183;text-align:center;margin-top:8px;line-height:1.65}
.kit-personalize{margin-top:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:1px solid var(--kit-line);padding-top:22px}.kit-personalize>label{font:11px var(--bai);color:#d6b888;max-width:330px;flex:1}.kit-personalize input{display:block;background:#0b0907ad;border:1px solid #a9855259;padding:12px 14px;color:#fff0d0;margin-top:9px;border-radius:2px;width:100%;min-height:47px;font:14px var(--mina)}.kit-personalize input::placeholder{color:#ad9474}
.kit-export-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.fleet-kit .button-hot,.horizon-stage .button-hot{background:linear-gradient(120deg,#f5dfaa,#d4ad69 70%,#e9c98c);border:1px solid #f0d399;box-shadow:inset 0 1px #fff9dc99;color:#211607;border-radius:2px;min-height:48px;padding:13px 20px;font-size:12px;white-space:normal}.fleet-kit .button-hot:hover,.horizon-stage .button-hot:hover{background:#ffe4ae;transform:translateY(-1px)}
.kit-secondary{font:12px var(--bai);border:1px solid #d1a76277;background:#2b1d0a44;color:#f4d29a;padding:13px 18px;min-height:48px;border-radius:2px}.kit-secondary:hover{background:#d5a04d1c}.fleet-kit button:disabled{opacity:.45;cursor:not-allowed}
#kit-status{font:12px var(--mina);line-height:1.8;color:#f0cea0;max-width:70ch}#kit-status:not(:empty){margin-top:20px;padding:12px 16px;border-left:1px solid #d1a762;background:#b98c420c}
.kit-share-fallback{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font:12px var(--bai);color:#ecd2a5;border:1px solid var(--kit-line);padding:16px;margin-top:20px}.kit-share-fallback p{flex-basis:100%;font-family:var(--mina)}.kit-share-fallback a,.kit-share-fallback button{background:none;border-bottom:1px solid #c3a06b;padding:7px 0}.kit-share-fallback textarea{width:100%;min-height:115px;background:#110c08;color:#eee0c6;border:1px solid #725332;padding:12px}
.kit-next{margin-top:30px;padding-top:22px;border-top:1px solid var(--kit-line);display:flex;justify-content:space-between;align-items:center;gap:20px}.kit-next>span{font:11px var(--mina);color:#bda486}.kit-next-button{font:700 15px var(--bai);color:#f2ce92;background:none;display:flex;gap:24px;align-items:center;min-height:44px;padding:0}.kit-next-button>span{font-size:25px}.kit-next-button:hover{color:#fff2d6}
.kit-portrait-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.85fr);gap:40px;align-items:center;padding:12px 0 20px}.kit-portrait-wrap{max-width:370px;width:100%;justify-self:center;position:relative}.kit-portrait-wrap canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab;filter:drop-shadow(0 18px 40px #0009);outline-offset:6px}.kit-portrait-wrap canvas:active{cursor:grabbing}.kit-portrait-wrap>span{display:block;text-align:center;font:10px var(--mina);color:#c0a27a;margin-top:12px}
.kit-upload-button{display:block;background:#eaca9419;border:1px dashed #e8c2849c;color:#ffe0a9;padding:18px 22px;font:700 13px var(--bai);text-align:center;cursor:pointer;border-radius:3px}.kit-upload-button:focus-within{outline:2px solid #f5cb80;outline-offset:3px}.kit-upload-button:hover{background:#eaca9429}.kit-upload-button input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.kit-crop-controls>p{font-size:10px;line-height:1.75;color:#b8a386;margin-top:12px}.kit-crop-controls fieldset{padding:16px 0 0;margin:18px 0 0;border:0;border-top:1px solid var(--kit-line)}.kit-crop-controls legend{font:10px var(--bai);text-transform:uppercase;letter-spacing:.12em;color:#c8a773;padding-right:12px}.kit-crop-controls fieldset label{display:block;font:11px var(--bai);color:#cfb994;margin-bottom:16px}.kit-crop-controls input[type=range]{display:block;width:100%;margin:10px 0 0;accent-color:#e7bd78;height:20px;cursor:pointer}.kit-crop-controls fieldset>button{background:none;font:11px var(--bai);padding:8px 12px 8px 0;margin-right:8px;color:#ebc38b}.kit-crop-controls .kit-private{color:#d1b48b}
#kit-banner-canvas{display:block;width:100%;height:auto;box-shadow:0 14px 40px #0007;margin:34px 0 15px}.kit-banner-options{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;font:10px var(--bai);color:#baa180}.kit-banner-options button,.kit-banner-options a{background:none;padding:5px 0;color:#edc994;border-bottom:1px solid #b58c4540}.kit-banner-options span{padding:5px 0}
.kit-filters{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.kit-filters button{background:#0b090880;border:1px solid #ae865138;border-radius:2px;font:11px var(--bai);padding:9px 12px;color:#c4ad8c}.kit-filters button[aria-pressed=true]{background:#cf9a451b;border-color:#d7ac69;color:#ffdea7}.kit-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 15px}.kit-gallery>button{padding:0;background:none;text-align:left;border:1px solid #b88f4d24;transition:border-color .2s,transform .2s}.kit-gallery>button:hover{border-color:#e6b76b99;transform:translateY(-3px)}.kit-gallery-image{aspect-ratio:1.3;overflow:hidden;background:#15100b;position:relative;display:grid;place-items:center}.kit-gallery-image img{position:absolute;inset:0;min-width:0;min-height:0;width:100%;height:100%;object-fit:contain;transition:transform .35s}.kit-gallery>button:hover img{transform:scale(1.025)}.kit-gallery>button>span{display:block;padding:13px 12px}.kit-gallery strong{display:block;font:700 12px var(--bai);line-height:1.5;color:#efd7ac}.kit-gallery small{display:block;font:9px var(--mina);color:#b89c76;margin-top:4px}.kit-film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:34px;color:#fff4d3}.kit-collection-note{font:10px var(--mina);color:#bca382;margin-top:20px;line-height:1.7}
.kit-tracks article{display:flex;align-items:center;gap:18px;padding:22px 0;border-top:1px solid var(--kit-line)}.kit-track-play{background:#e5bb7a13;color:#f5d598;border:1px solid #dbad685c;width:44px;height:44px;flex:none;font-size:20px}.kit-tracks h3{font:700 15px var(--bai);margin:0 0 5px}.kit-tracks p{font:10px var(--mina);color:#b8a07e}.kit-tracks article>div:last-child{display:flex;gap:18px;margin-left:auto}.kit-tracks a{display:block;font:700 12px var(--bai);padding:8px 0;color:#edc68c;border-bottom:1px solid #a57b423b}.kit-tracks a span{display:block;font:9px var(--mina);color:#b9a280;margin-top:4px}#kit-music-player{width:100%;margin-top:14px;height:44px}
.kit-asset-dialog{width:min(1080px,94vw);max-height:90svh;background:#100c08;color:#f3deba;border:1px solid #b79157;padding:24px;box-shadow:0 30px 100px #000c;border-radius:4px;overflow:auto}.kit-asset-dialog::backdrop{background:#050402de;backdrop-filter:blur(8px)}.kit-asset-dialog .log-dialog-header{margin-bottom:18px}.kit-asset-dialog h2{font-size:24px;letter-spacing:-.025em}.kit-asset-dialog .audio-dock{position:static;inset:auto;margin:0 0 18px;width:auto;max-width:100%;transform:none}.kit-asset-dialog .icon-button{flex:none}.kit-asset-dialog #kit-asset-preview{background:#080603;min-height:160px;display:grid;place-items:center}.kit-asset-dialog img,.kit-asset-dialog video{max-width:100%;max-height:57svh;object-fit:contain;margin:auto}.kit-asset-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}.kit-asset-actions>span{margin-left:auto;font:11px var(--mina);color:#cbb089}#kit-asset-status{font:12px var(--mina);line-height:1.7;margin-top:15px;color:#d9bd94}
body:is([data-stage=crown],[data-stage=collection]) .preview-footer,body[data-stage=horizon] .preview-footer{display:none}
/* A final dispatch, held against the warm lights of the empire. */
.horizon-stage{--kit-line:#c5a56844;isolation:isolate;min-height:100svh;padding:160px clamp(24px,6.5vw,130px) 125px;background:#090705;display:flex;align-items:center}
.horizon-art,.horizon-shade{position:absolute;inset:0;z-index:-2;pointer-events:none}.horizon-art{background-size:cover;background-position:62% center;opacity:.8}.horizon-shade{z-index:-1;background:linear-gradient(90deg,#050504f0 0%,#070603d4 36%,#0b080661 70%,#0b08062b),linear-gradient(0deg,#090604eb,transparent 36%,#06050338)}
.horizon-copy{max-width:820px}.horizon-eyebrow{font:10px/1.6 var(--bai);text-transform:uppercase;letter-spacing:.16em;color:#dab478;margin-bottom:22px}.horizon-copy h1{font-size:clamp(62px,7.6vw,120px);letter-spacing:-.06em;line-height:.95;filter:drop-shadow(0 6px 22px #0008)}.horizon-copy h1>span{color:#f0cc8d}.horizon-dispatch{display:flex;gap:17px;align-items:center;margin-top:30px}.horizon-star{font:46px var(--bai);color:#eac184}.horizon-dispatch p{font:13px/1.85 var(--mina);color:#c5b08e}.horizon-dispatch strong{color:#fae2b8;font-weight:400}
.horizon-harbour{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:26px}.horizon-wallet{font:12px/1.7 var(--mina);color:#c9b596;margin:0;max-width:420px}.horizon-wallet-address{font:700 12px var(--bai);letter-spacing:.14em;color:#e6bd88;margin:-6px 0 0}.horizon-community{border-top:1px solid #b28c4a5c;max-width:495px;margin-top:30px;padding-top:24px}.horizon-community .horizon-eyebrow{margin-bottom:12px;color:#e1b778}.horizon-community h2{font-size:28px;line-height:1.15;color:#fff1d6}.horizon-community>p:not(.horizon-eyebrow){font:12px/1.8 var(--mina);margin-top:16px;color:#c9b596}.community-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.community-links:empty{display:none}.community-links a{display:inline-flex;align-items:center;gap:25px;padding:14px 22px;min-height:50px;font:700 13px var(--bai);border:1px solid #e5bd7e99;background:#dfb06014;color:#f1d5a4}.community-links a:first-child{color:#281a08;background:linear-gradient(120deg,#f3d69a,#cfa05b);border-color:#f0d6a7}.community-links a:hover{filter:brightness(1.15)}.horizon-community .community-pending{border:1px solid #d0a25a5c;background:#bc8c3f0d;padding:16px 20px;max-width:380px}.horizon-community .horizon-whisper{font-size:10px!important;color:#dfbb80!important;letter-spacing:.025em}
.horizon-replay{background:none;color:#c8ad83;font:10px var(--bai);padding:12px 0;margin-top:18px}.horizon-bottom{position:absolute;left:clamp(24px,6.5vw,130px);right:clamp(24px,6.5vw,130px);bottom:33px;display:flex;justify-content:space-between;align-items:center}.horizon-bottom>span{font:9px var(--bai);color:#d4b882;letter-spacing:.15em}#horizon-sound-slot{position:absolute;right:clamp(24px,4vw,76px);top:130px;z-index:2}
@media(max-width:1050px){.kit-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.fleet-kit{padding:113px 20px 42px}.kit-heading{align-items:flex-start}.kit-heading h1{font-size:31px;max-width:260px}.kit-heading p{font-size:10px;margin-bottom:8px}.kit-back{font-size:10px;white-space:normal;text-align:right;max-width:67px;padding:3px 0 8px;line-height:1.7}:is(#kit-sound-slot,#collection-sound-slot){justify-content:flex-start;margin:20px 0 18px;min-height:0;position:sticky;top:0;z-index:8;background:#0d0906f5;padding:8px 0;box-shadow:0 0 0 8px #0d0906f5}:is(#kit-sound-slot,#collection-sound-slot) .audio-dock,#horizon-sound-slot .audio-dock{display:flex;flex-direction:column;gap:7px;align-items:stretch;width:100%}:is(#kit-sound-slot,#collection-sound-slot) .audio-buttons,#horizon-sound-slot .audio-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}:is(#kit-sound-slot,#collection-sound-slot) .audio-control,#horizon-sound-slot .audio-control{min-width:0;width:100%}.kit-ticket-note{font-size:9px}.kit-ticket-object{margin:10px -4.5% 0}.kit-panel{margin-top:17px}.kit-personalize{padding-top:18px;margin-top:20px}.kit-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.fleet-kit .button-hot,.kit-secondary{font-size:11px;padding:12px 9px;text-align:center;justify-content:center;min-height:48px;line-height:1.45}.kit-next{align-items:center;margin-top:25px;padding-top:15px;gap:13px}.kit-next>span{max-width:125px;font-size:10px}.kit-next-button{font-size:12px;gap:12px}.kit-next-button>span{font-size:21px}.kit-portrait-layout{gap:30px;padding-top:10px}.kit-portrait-wrap{max-width:270px}.kit-crop-controls{padding:0 10px}.kit-gallery{gap:14px 10px}.kit-gallery strong{font-size:11px}.kit-gallery>button>span{padding:11px 9px}.kit-gallery-image{aspect-ratio:.9}.kit-filters{gap:7px;margin:17px 0}.kit-filters button{font-size:10px;padding:9px}.kit-tracks article{flex-wrap:wrap;gap:12px;padding:18px 0}.kit-tracks article>div:last-child{margin-left:auto;gap:15px}.kit-tracks h3{font-size:12px}.kit-tracks p{font-size:9px}.kit-tracks a{font-size:10px}.kit-track-play{width:36px;height:40px}.kit-asset-dialog{padding:18px 14px;width:94vw}.kit-asset-dialog h2{font-size:20px}.kit-asset-dialog .audio-dock{width:100%;max-width:100%}.kit-asset-actions>span{margin:0;flex-basis:100%;font-size:10px}.kit-asset-dialog .audio-buttons{display:grid;grid-template-columns:1fr 1fr}.kit-asset-dialog .audio-control{min-width:0}.horizon-stage{padding:208px 24px 105px;display:block;min-height:100svh}.horizon-art{background-position:57% center;opacity:.55}.horizon-shade{background:linear-gradient(90deg,#070503e6,#07050377),linear-gradient(0deg,#090604ed,transparent 55%,#06050399)}.horizon-copy h1{font-size:clamp(48px,11.6vw,85px);letter-spacing:-.065em}.horizon-eyebrow{font-size:8px;letter-spacing:.1em;margin-bottom:18px}.horizon-dispatch{margin-top:24px;gap:12px}.horizon-star{font-size:35px}.horizon-dispatch p{font-size:11px}.horizon-harbour{margin-top:20px;gap:10px}.horizon-wallet{font-size:11px}.horizon-community{margin-top:22px;padding-top:22px}.horizon-community h2{font-size:26px}.horizon-community>p:not(.horizon-eyebrow){font-size:11px}.horizon-community .community-pending{padding:14px 16px}.horizon-community .horizon-whisper{font-size:9px!important}.horizon-bottom{left:24px;right:24px;bottom:23px}.horizon-bottom button{font-size:10px}.horizon-bottom>span{display:none}#horizon-sound-slot{top:106px;left:24px;right:24px}.community-links{flex-direction:column}.community-links a{justify-content:space-between;width:100%;font-size:12px}.horizon-replay{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.fleet-kit *,.horizon-stage *,.kit-caption{animation:none!important;transition:none!important}.kit-ticket-object{perspective:none}.kit-gallery>button:hover{transform:none}}
@media(min-width:761px){.kit-heading h1{font-size:clamp(27px,3.2vw,49px)}.kit-heading .kit-back{position:absolute;right:clamp(20px,4.4vw,84px);top:268px}.kit-layout{margin-top:76px}.kit-ticket-note{margin-top:0}}
@media(max-width:899px){.horizon-stage{display:block;padding-top:125px}#horizon-sound-slot{position:relative;inset:auto;margin-bottom:40px;width:fit-content;max-width:100%}}
@media(max-width:760px){.horizon-stage{padding-top:106px}#horizon-sound-slot{width:100%}}
#kit-asset-preview audio{width:90%;max-width:600px;margin:50px auto;}

/* Preserve tall campaign cards and constrain decoded images to their preview frame. */
.kit-gallery[data-category="Campaign"] .kit-gallery-image{aspect-ratio:1078/1283}

/* The way onward, three times where it costs nothing: a tracker by the title, the
   last stop in the inventory, and a bar docked to the bottom of the screen. The
   ticket stays the hero, sized so the whole station fits one screen. */
.kit-heading-side{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:14px}
.kit-voyage{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:14px;font:600 10px var(--bai);letter-spacing:.1em;text-transform:uppercase;color:#a99270;white-space:nowrap}
.kit-voyage li{display:flex;align-items:center;gap:8px}
.kit-voyage li+li::before{content:'';width:18px;height:1px;background:#8b673566}
.kit-voyage li.kit-voyage-done{color:#8f7c62}
.kit-voyage li.kit-voyage-done::after{content:'✓';color:#d7a35f}
.kit-voyage li[aria-current=step]{color:#ffcb91}
.kit-voyage button{background:none;border:1px solid #d9a56b;color:#f5d9b8;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:8px 12px;display:flex;gap:8px;align-items:center;min-height:36px}
.kit-voyage button:hover{background:#d5a04d1c;color:#ffe6bd}
.kit-next{position:fixed;left:0;right:0;bottom:0;z-index:21;margin:0;padding:12px clamp(20px,4.4vw,84px) calc(12px + env(safe-area-inset-bottom));background:#080604f0;backdrop-filter:blur(12px);border-top:1px solid var(--kit-line)}
.kit-next>span{font:11px var(--mina);color:#bda486}
.kit-next .kit-next-button{color:#211607;font:700 13px var(--bai);gap:18px;min-height:46px;display:inline-flex}
.fleet-kit{padding-bottom:120px}
.kit-post{font:700 12px var(--bai);border:1px solid #f0d399;background:#fff3dd;color:#211607;padding:13px 18px;min-height:48px;border-radius:2px;display:inline-flex;align-items:center;gap:10px}
.kit-post:hover{background:#ffe9c4}
@media(max-width:1050px){.kit-voyage{flex-wrap:wrap}}
@media(max-width:760px){
 .kit-heading{flex-direction:column;align-items:flex-start;gap:12px}
 .kit-heading-side{gap:10px 16px;margin-top:10px}
 .kit-voyage{font-size:9px;gap:8px;justify-content:flex-start}.kit-voyage li+li::before{width:10px}
 .kit-voyage button{padding:6px 9px;min-height:32px}
 .kit-back{max-width:none}
 .kit-next{padding:10px 16px calc(10px + env(safe-area-inset-bottom));margin:0}
 .kit-next>span{max-width:130px;font-size:10px}
 .kit-next .kit-next-button{font-size:12px;gap:10px;min-height:44px;padding:10px 14px}
 .fleet-kit{padding-bottom:110px}
}

/* The title block carries the tracker and the way back, so the right edge holds
   only the sound controls and the stations can start higher. Ticket width follows
   the height of the window so the station, its controls and the docked bar share
   one screen on ordinary laptops. */
@media(min-width:761px){
 .fleet-kit{padding-top:112px}
 .kit-heading .kit-back{position:static;padding:6px 0}
 .kit-layout{margin-top:30px}
}

.kit-record{margin:10px 0 0;font:12px/1.5 var(--mina);color:#cfae82;letter-spacing:.02em}
.kit-signout{display:block;margin-top:12px;background:none;border:0;padding:0;color:#9d8b79;font:11px var(--mina);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.kit-signout:hover{color:#f0d8b8}

/* The final page fits one desktop screen: its rhythm scales with the viewport height. */
@media(min-width:761px) and (max-height:1100px){
.horizon-stage{padding-top:min(160px,12svh);padding-bottom:max(90px,min(125px,10svh))}
.horizon-eyebrow{margin-bottom:min(22px,1.8svh)}.horizon-dispatch{margin-top:min(30px,2.4svh)}
.horizon-community{margin-top:min(30px,2.4svh);padding-top:min(24px,2svh)}.horizon-community>p:not(.horizon-eyebrow){margin-top:min(16px,1.4svh)}.horizon-replay{margin-top:min(18px,1.4svh)}
}
@media(min-width:761px) and (max-height:1000px){
.horizon-stage{padding-top:min(120px,10svh);padding-bottom:max(84px,9svh)}
.horizon-copy h1{font-size:clamp(52px,min(7.6vw,9.8svh),120px)}
.horizon-eyebrow{margin-bottom:min(14px,1.4svh)}.horizon-dispatch{margin-top:min(18px,1.8svh)}.horizon-dispatch p{font-size:12px;line-height:1.65}
.horizon-harbour{margin-top:min(18px,1.8svh);gap:min(12px,1.2svh)}.horizon-wallet{font-size:11px;line-height:1.55}
.horizon-community{margin-top:min(18px,1.8svh);padding-top:min(16px,1.6svh)}.horizon-community h2{font-size:clamp(20px,2.6svh,28px)}.horizon-community>p:not(.horizon-eyebrow){margin-top:min(10px,1svh);line-height:1.6}
.community-links{margin-top:min(14px,1.4svh)}.community-links a{min-height:44px;padding:10px 18px}.horizon-community .community-pending{padding:10px 14px}
.horizon-replay{margin-top:min(10px,1svh);padding:6px 0}
}
@media(min-width:761px) and (max-height:820px){
.horizon-stage{padding-top:76px;padding-bottom:70px}
.horizon-copy h1{font-size:clamp(46px,min(7.6vw,8.8svh),120px)}.horizon-eyebrow{margin-bottom:8px}.horizon-dispatch{margin-top:10px}.horizon-harbour{margin-top:12px;gap:8px}
.horizon-community{margin-top:10px;padding-top:10px}.horizon-community h2{font-size:21px}.community-links{margin-top:10px}.horizon-community>p:not(.horizon-eyebrow){margin-top:10px}.horizon-replay{margin-top:6px}
}

/* Five stations in a row on every screen: a rail under the title, a numbered heading with
   a live preview per station, and each station's own actions. Phones stack them in one
   column (mockup C); wider screens lay the same sections out as a grid of cards (D1). */
.kit-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:34px auto 0;max-width:1440px}
.kit-rail button{display:block;position:relative;background:none;border:0;padding:12px 0 0;min-height:0;text-align:left;color:#8f7c62;font:11px/1.6 var(--bai);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .3s}
.kit-rail button i{position:absolute;left:0;right:0;top:0;height:2px;border-radius:2px;background:#ffffff1c;transition:background .3s}
.kit-rail button b{color:#cfa77a;margin-right:8px}
.kit-rail button.on{color:#f0dfc4}.kit-rail button.on i{background:#e6c79a}.kit-rail button:hover{color:#ffe6bd}
.kit-panel{scroll-margin-top:120px}
.kit-station-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.kit-station-no{display:flex;align-items:baseline;gap:12px;margin:0 0 6px;font:12px/1.6 var(--bai);letter-spacing:.14em;text-transform:uppercase;color:#cfa77a}.kit-station-no b{font-weight:700;color:var(--peach)}
.kit-station-title{margin:0;font:700 24px/1.15 var(--bai);letter-spacing:-.02em;color:var(--paper)}

.kit-ticket-object{margin:0;border-radius:14px;overflow:hidden;box-shadow:0 14px 44px #000a,0 0 0 1px #d8b57a2e;filter:none;perspective:none}
.kit-ticket-note{text-align:left;margin-top:10px}
#kit-ticket .kit-personalize{margin-top:18px;padding-top:0;border-top:0;flex-direction:column;align-items:stretch;gap:18px}
#kit-ticket .kit-personalize>label{display:flex;align-items:flex-end;gap:14px;max-width:none;border-bottom:1px solid #bd925366;padding-bottom:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#cfa77a;white-space:nowrap}
#kit-ticket .kit-personalize input{flex:1;min-width:0;margin:0;padding:0 0 2px;min-height:0;background:none;border:0;border-radius:0;font:18px/1.3 var(--mina);color:#fff0d0;text-transform:none;letter-spacing:0}
.kit-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kit-export-actions>*{justify-content:center;min-height:52px;font-size:13px}
#kit-share-fallback{margin-top:16px}
.kit-station-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.kit-station-actions>*{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;font:700 13px var(--bai);text-align:center;border-radius:2px;cursor:pointer}
.kit-station-actions .kit-secondary{background:transparent;color:#efdcbf;border:1px solid #bd925366;padding:12px 10px;text-decoration:none}
.kit-portrait-layout{display:block;padding:0}
.kit-portrait-wrap{max-width:200px;margin:8px auto 0}
.kit-portrait-wrap canvas{border-radius:50%;filter:drop-shadow(0 14px 30px #000a)}
.kit-portrait-wrap>span{text-align:center}
.kit-crop-controls .kit-upload-button,.kit-crop-controls>p,#kit-crop-fields:disabled{display:none}
.kit-crop-controls fieldset{margin-top:20px}
#kit-banner-canvas{margin:0;border-radius:14px;box-shadow:0 14px 44px #000a,0 0 0 1px #d8b57a2e}
.kit-banner-options{margin-top:12px}
.kit-peek{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kit-peek button{padding:0;background:none;border:0;border-radius:10px;overflow:hidden;min-height:0}
.kit-peek img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.kit-see-all{display:flex;width:100%;align-items:center;justify-content:center;gap:12px;margin-top:12px;min-height:52px;font:700 13px var(--bai);background:transparent;color:#efdcbf;border:1px solid #bd925366}
.kit-tracks article{border:1px solid var(--line);border-radius:14px;background:#0d0906;padding:14px 16px;margin-top:12px;gap:14px;flex-wrap:nowrap}
.kit-tracks article>div:last-child{flex-direction:column;gap:6px;align-items:flex-end}
.kit-tracks a{padding:2px 0}
.kit-track-play{width:44px;height:44px;border-radius:50%;background:#e6c79a;color:#1a1005;border:0}
.kit-next-card{display:none}
#kit-status:not(:empty),.kit-caption{position:fixed;left:50%;transform:translateX(-50%);width:min(70ch,calc(100% - 32px));bottom:28px;z-index:22;margin:0;background:#100c09f2;border:1px solid #d1a762;box-shadow:0 12px 40px #000a}
@media(max-width:760px){
 .kit-rail{gap:6px;margin-top:22px}
 .kit-rail button{padding:0;height:3px;pointer-events:none}
 .kit-rail button i{height:3px}
 .kit-rail button span{display:none}
 .kit-panel{margin-top:36px}
 .kit-hear .kit-hear-length{display:none}
 .kit-peek button:nth-child(n+4){display:none}
 #kit-status:not(:empty){bottom:calc(76px + env(safe-area-inset-bottom))}
}
@media(min-width:761px){
 .kit-workspace{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:stretch}
 .kit-panel{margin:0;background:#0d0906d9;border:1px solid #d8b57a24;border-radius:16px;padding:22px 24px 24px;box-shadow:0 22px 60px #0008;display:flex;flex-direction:column;min-width:0}
 #kit-ticket{grid-column:1/9}#kit-portrait{grid-column:9/13}#kit-banner{grid-column:1/9}#kit-collection{grid-column:9/13}#kit-soundtrack{grid-column:1/8}.kit-next-card{grid-column:8/13}
 .kit-portrait-wrap{max-width:220px;margin:8px auto 0}
 .kit-portrait-wrap>span{text-align:center}
 #kit-portrait .kit-portrait-layout{margin-block:auto}
 #kit-portrait .kit-station-actions{padding-top:18px}
 #kit-collection .kit-peek{margin-bottom:14px}
 #kit-collection .kit-see-all{margin-top:auto}
 .kit-next-card{display:flex;justify-content:center;align-items:flex-start;background:linear-gradient(140deg,#1c130a,#0d0906 60%);border-color:#d8b57a55}
 .kit-next-card p{margin:0 0 18px;font:16px/1.6 var(--mina);color:#cbbba7;max-width:32ch}
 .kit-next-card .kit-next-card-button{width:100%;justify-content:center;gap:14px;min-height:58px;font-size:15px}
 .kit-next-card .kit-quiet{margin:16px 0 0;font:12px/1.6 var(--mina);color:#8f8175}
 .kit-next{display:none}
 .fleet-kit{padding-bottom:76px}
}
@media(min-width:761px) and (max-width:1100px){.kit-workspace{gap:18px}#kit-ticket,#kit-banner{grid-column:1/8}#kit-portrait,#kit-collection{grid-column:8/13}#kit-soundtrack{grid-column:1/7}.kit-next-card{grid-column:7/13}}

/* Desktop heading row: the sound controls sit in the site header's band, the tracker reads
   left to right, and the actions (sign out, the next voyage) close the row at the far right. */
@media(min-width:761px){
 body:is([data-stage=crown],[data-stage=collection]){position:relative}
 body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock{position:absolute;top:10px;right:var(--page-pad);bottom:auto;z-index:40;flex-direction:row;align-items:center;width:auto;max-width:490px;gap:12px}
 body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock .audio-buttons{width:284px;flex:none}
 body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock .audio-feedback{position:absolute;right:0;top:calc(100% + 8px);bottom:auto}
 :is(#kit-sound-slot,#collection-sound-slot){display:none}
 .kit-heading{padding-right:0}
 .kit-heading>div{flex:1;min-width:0}
 .kit-heading-side{width:100%;flex-wrap:wrap;gap:10px 22px}
 .kit-voyage{display:contents}
 .kit-voyage li{font:600 10px var(--bai);letter-spacing:.1em;text-transform:uppercase;color:#a99270;white-space:nowrap}
 .kit-voyage li:last-child{order:5}
 .kit-voyage li:last-child::before{display:none}
 .kit-back{order:3}
 .kit-signout{order:4;margin:0 0 0 auto}
 .kit-voyage button{background:linear-gradient(120deg,#f5dfaa,#d4ad69 70%,#e9c98c);border:1px solid #f0d399;box-shadow:inset 0 1px #fff9dc99;color:#211607;font:700 12px var(--bai);letter-spacing:.06em;text-transform:uppercase;padding:12px 20px;min-height:44px;border-radius:2px}
 .kit-voyage button:hover{background:#ffe4ae;color:#211607}
}
@media(min-width:761px) and (max-width:1050px){.kit-heading-side{flex-wrap:wrap;gap:10px 18px}.kit-signout{margin-left:0}body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock{gap:8px}body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock .audio-buttons{width:246px}body:is([data-stage=crown],[data-stage=collection])>aside.audio-dock .sound-invitation{display:none}}

/* The voice, pulled to the front: a real Hear button with a speaking state, a progress rule,
   the words in a fixed caption at the foot of the screen, a guided tour of the stations, narration as you scroll,
   and a one-time pulse that teaches the button. */
.kit-hear{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-width:140px;min-height:34px;padding:7px 12px;border:1px solid #c9914f;border-radius:999px;background:#c9914f14;color:#f0ce91;font:700 10.5px var(--bai);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}
.kit-hear:hover{background:#c9914f2e;color:#fff0cf}
.kit-hear[aria-pressed=true]{background:#c9914f;color:#0b0806}
.kit-hear-length{opacity:.75;font-weight:500}
.kit-station-head{position:relative}
.kit-hear-bar{position:absolute;left:0;right:0;bottom:-8px;height:2px;border-radius:2px;background:#3a2c1c;opacity:0;transition:opacity .3s}
.kit-hear-bar i{display:block;height:100%;width:0;background:#f0ce91;border-radius:2px;transition:width .25s linear}
.kit-speaking .kit-hear-bar{opacity:1}
.kit-panel.kit-speaking{box-shadow:0 0 0 1px #f0ce91,0 22px 60px #0008,0 0 28px #c9914f55}
.kit-hear-pulse{animation:kit-pulse 1.4s ease-out 2}
@keyframes kit-pulse{0%{box-shadow:0 0 0 0 #c9914faa}100%{box-shadow:0 0 0 16px #c9914f00}}
.kit-tour,.kit-tour-next{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid #d9a56b;color:#f5d9b8;font:700 10px var(--bai);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;min-height:36px;border-radius:2px;white-space:nowrap;cursor:pointer}
.kit-tour:hover,.kit-tour-next:hover{background:#d5a04d1c;color:#ffe6bd}
.kit-tour[aria-pressed=true]{background:#c9914f;border-color:#c9914f;color:#0b0806}
.kit-tour small{font:inherit;opacity:.75}
.kit-scroll-voice{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:8px 0;color:#a99270;font:600 10px var(--bai);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.kit-scroll-voice::before{content:'';width:8px;height:8px;border-radius:50%;border:1px solid #a99270}
.kit-scroll-voice[aria-pressed=true]{color:#f0ce91}
.kit-scroll-voice[aria-pressed=true]::before{background:#f0ce91;border-color:#f0ce91}

/* The collection stage: the narrator's line and the door back at the top, every piece below. */
.collection-stage{padding-top:112px}
.collection-heading .kit-heading-side{margin-top:16px}
.kit-heading .collection-lede{font:15px/1.6 var(--mina);color:#d8c9b4;max-width:52ch;margin:0}
.collection-head{margin:14px 0 0;align-items:center}
.collection-side{gap:12px 22px}
.collection-side .kit-back{order:0;position:static;padding:6px 0}
.kit-voyage-next{background:linear-gradient(120deg,#f5dfaa,#d4ad69 70%,#e9c98c);border:1px solid #f0d399;color:#211607;font:700 12px var(--bai);letter-spacing:.06em;text-transform:uppercase;padding:12px 20px;min-height:44px;border-radius:2px;display:inline-flex;gap:10px;align-items:center;cursor:pointer}
.kit-voyage-next:hover{background:#ffe4ae}
.collection-layout{margin-top:34px}
.collection-layout .kit-filters{margin:0 0 20px}
.collection-layout .kit-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
.collection-layout .kit-collection-note{margin-top:22px;font:11px var(--mina);color:#a08b6e}
.collection-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px;padding-top:22px;border-top:1px solid var(--kit-line)}
.collection-bottom>span{font:9px var(--bai);color:#d4b882;letter-spacing:.15em}
@media(max-width:1100px){.collection-layout .kit-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
 .collection-stage{padding-top:113px}
 .collection-layout{margin-top:20px}
 .collection-layout .kit-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
 .collection-head{align-items:flex-start}
 .collection-bottom{flex-direction:column;align-items:flex-start}
 .kit-hear{min-width:104px;min-height:36px;padding:6px 10px}
 .kit-scroll-long,.kit-tour-show{display:none}
 .kit-voice-strip{margin-top:16px;gap:8px 12px}
 .kit-panel.kit-speaking{box-shadow:none;outline:1px solid #f0ce91;outline-offset:8px;border-radius:4px}
}

/* One narration strip under the rail: the tour, the auto-narration switch, and while the tour
   runs, the station that is speaking (a button that brings the card into view on request) and
   Next. One height in every state, so nothing above or below it moves. */
.kit-voice-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;max-width:1440px;margin:14px auto 0;min-height:40px}
.kit-tour-show{margin-left:auto;background:none;border:0;padding:8px 0;font:700 10.5px var(--bai);letter-spacing:.08em;text-transform:uppercase;color:#f0ce91;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#c9914f88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%;cursor:pointer}
.kit-tour-show:hover{color:#fff0cf}
.kit-scroll-short{display:none}
/* The spoken words: one fixed caption at the foot of the screen that fades, never reflows. */
.kit-caption{z-index:23;padding:12px 18px;background:#100c09ee;border:1px solid #c9914f66;border-radius:8px;font:italic 13px/1.55 var(--mina);color:#e6c79a;opacity:0;transition:opacity .35s ease;pointer-events:none}
.kit-caption.on{opacity:1}
body[data-stage=horizon] .kit-caption{bottom:88px}
/* Keyboard focus and thumb targets on the new controls. */
.kit-hear:focus-visible,.kit-tour:focus-visible,.kit-scroll-voice:focus-visible,.kit-tour-show:focus-visible,.kit-tour-next:focus-visible{outline:2px solid #f5cb80;outline-offset:3px}
@media(hover:none) and (pointer:coarse){.kit-hear,.kit-tour,.kit-tour-next{min-height:40px}}
@media(max-width:760px){
 .kit-scroll-short{display:inline}
 body[data-stage=crown] .kit-caption{bottom:calc(84px + env(safe-area-inset-bottom))}
}

/* The empty frame is a way in: it invites a click and lights up while a file hovers over the station. */
.kit-portrait-empty canvas{cursor:pointer}
.kit-portrait-over canvas{box-shadow:0 0 0 3px #f0ce91,0 0 34px #c9914f88}
.kit-portrait-wrap>.kit-portrait-drop{display:none;margin-top:6px;font:10px var(--mina);color:#8f7c62}
@media(hover:hover) and (pointer:fine){.kit-portrait-empty>.kit-portrait-drop{display:block}}

/* Both kit stages pin their backdrop to the viewport, so the picture keeps one size however tall the
   page is (five stations, or a gallery of forty), and the page slides over it. The large viewport height
   keeps phones from re-fitting it as the address bar comes and goes. */
.fleet-kit .kit-backdrop,.fleet-kit::before{position:fixed;inset:auto;top:0;left:0;width:100vw;height:100vh;height:100lvh}

/* On desktop the empty frame carries a camera at its centre, so the click is expected; hover
   lifts it, keyboard focus rings the frame, and a photo takes the camera away. The top margin
   sits inside a frame that is exactly the square canvas, so the disc is centred on it. */
.kit-portrait-frame{position:relative;display:block}
.kit-portrait-pick{display:none;position:absolute;top:50%;left:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:#0b0806b8;border:1px solid #f0ce9180;color:#f0ce91;place-items:center;pointer-events:none;box-shadow:0 8px 24px #0008;transition:background .2s,color .2s,transform .2s}
.kit-portrait-pick svg{width:30px;height:30px}
@media(hover:hover) and (pointer:fine){
 .kit-portrait-empty .kit-portrait-pick{display:grid}
 .kit-portrait-empty:hover .kit-portrait-pick,.kit-portrait-over .kit-portrait-pick{background:#c9914f;color:#0b0806;transform:scale(1.06)}
 .kit-portrait-empty:hover canvas{filter:drop-shadow(0 14px 30px #000a) brightness(1.08)}
}
.kit-portrait-wrap canvas:focus-visible{outline:2px solid #f5cb80;outline-offset:6px}
