:root{--sea: #2f7de1;--sea-deep: #1f5fc4;--sea-light: #7fb8ff;--sky: #dff3ff;--sky-deep: #b9e0ff;--sand: #f5d9a6;--wood: #b9713f;--wood-dark: #8a4f27;--leaf: #4caf6d;--stage-text: #123a5f;--panel-w: 23rem}.is-game .site-main{display:flex;flex-direction:column;padding:0}.is-game .site-main>.game{width:100%;max-width:none;margin:0;flex:1}.game{position:relative;display:grid;gap:0}.game__panel{display:grid;gap:var(--space-4);padding:var(--space-4) 1.25rem;border-radius:0;border-width:0 0 1px;background:#fcfcfd}.game__title{font-size:var(--text-lg)}.stage__title-wrap{position:relative;z-index:4;justify-self:start;max-width:min(100%,60rem);margin-bottom:var(--space-2);padding:.4rem .6rem .6rem;border-radius:var(--radius);border:1px dashed transparent;cursor:grab;touch-action:none;transition:border-color .15s,background-color .15s}.stage__title-wrap:hover,.stage__title-wrap:focus-within,.stage__title-wrap.is-dragging,.stage__title-wrap.is-resizing{border-color:#ffffffb3;background:#ffffff1f}.stage__title-wrap.is-dragging{cursor:grabbing}.stage__title{margin:0;font-size:var(--title-size, clamp(1.6rem, 3.2vw, 2.6rem));line-height:1.15;font-weight:800;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 6px rgba(0,30,80,.45),0 0 1px rgba(0,0,0,.6);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;border-radius:var(--radius-sm)}.stage__title:focus-visible{box-shadow:0 0 0 3px var(--color-focus)}.stage__title-tools{position:absolute;left:.4rem;top:-1.3rem;display:flex;gap:.2rem;opacity:0;transition:opacity .15s}.stage__title-wrap:hover .stage__title-tools,.stage__title-wrap:focus-within .stage__title-tools,.stage__title-wrap.is-dragging .stage__title-tools{opacity:1}@media(hover:none){.stage__title-tools{opacity:1}}.stage__title-btn{min-width:1.7rem;height:1.7rem;padding:0 .35rem;border:0;border-radius:.35rem;background:#ffffffeb;color:var(--color-text);font-size:.75rem;font-weight:700;line-height:1;box-shadow:0 1px 3px #00000040}.stage__title-btn--drag{cursor:grab;font-size:.95rem}.stage__title-grip{position:absolute;right:-.4rem;bottom:-.4rem;width:.9rem;height:.9rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;cursor:ew-resize;opacity:0;transition:opacity .15s}.stage__title-wrap:hover .stage__title-grip,.stage__title-wrap:focus-within .stage__title-grip,.stage__title-wrap.is-resizing .stage__title-grip{opacity:1}.stage__title-wrap[data-custom]{position:absolute;margin:0;max-width:min(80%,60rem)}.stage[data-state=idle] .stage__title-wrap:not([data-custom]){justify-self:center;text-align:center}@media print{.stage__title-wrap{position:static;padding:0;border:0}.stage__title{color:#000;text-shadow:none;font-size:1.6rem!important}.stage__title-tools,.stage__title-grip{display:none}}.tabs{display:grid;gap:var(--space-2)}.tabs__list{display:flex;gap:.15rem;border-bottom:1px solid var(--color-border)}.tabs__tab{flex:1;min-height:2.25rem;padding:.4rem .25rem;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--color-muted);font-weight:600;font-size:.8125rem;white-space:nowrap}.tabs__tab:hover{color:var(--color-text)}.tabs__tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--color-text)}.tabs__panel{display:grid;gap:var(--space-4);padding-top:var(--space-2)}.tabs__panel[hidden]{display:none}.panel__status{min-height:1.3em;font-size:.8125rem;line-height:1.4;color:var(--color-muted);font-variant-numeric:tabular-nums}.panel__preview{padding:.45rem .7rem;border-radius:var(--radius-sm);background:#f3f4f6;color:var(--color-text)}.panel__status:empty{display:none}.game__panel .tool__submit .btn{flex:1;width:100%}.panel__head{display:flex;align-items:center;gap:var(--space-2);min-height:1.75rem}.panel__title{flex:1;min-width:0;margin:0;font-size:var(--text-lg);font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game__tagline{flex:1;min-width:0;font-size:var(--text-xs, .8rem);line-height:1.4;color:var(--color-muted)}.panel__collapse{display:none;flex:none;width:1.75rem;height:1.75rem;margin:-.15rem -.35rem 0 0;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);cursor:pointer;align-items:center;justify-content:center}.panel__collapse:hover{background:var(--color-surface);color:var(--color-text)}.panel__expand{display:none}.panel__summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.15rem .35rem;margin-top:calc(-1 * var(--space-2));font-size:.75rem;color:var(--color-muted)}.panel__summary:empty{display:none}.panel__chip{padding:0;border:0;background:none;color:var(--color-accent);font:inherit;text-decoration:underline dotted;text-underline-offset:2px;cursor:pointer}.panel__chip--action{color:var(--color-muted)}.panel__chip:hover{color:var(--color-text)}.disclosure{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f9fafb}.disclosure__summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .5rem;padding:.55rem var(--space-3);list-style:none;cursor:pointer;font-size:.8125rem;font-weight:600}.disclosure__summary::-webkit-details-marker{display:none}.disclosure__summary:after{content:"\25be";margin-left:auto;color:var(--color-muted)}.disclosure[open]>.disclosure__summary:after{content:"\25b4"}.disclosure__hint{font-weight:400;font-size:.75rem;color:var(--color-muted)}.disclosure__body{display:grid;gap:var(--space-3);padding:0 var(--space-3) var(--space-3)}.game__help{font-size:var(--text-sm);color:var(--color-muted)}.game__help a{color:inherit}.game__panel .field__textarea:not(.field__textarea--short){min-height:10rem;max-height:14rem}.game__panel .tool__submit{position:sticky;bottom:calc(-1 * var(--space-3));margin:0 calc(-1 * var(--space-4)) calc(-1 * var(--space-3));padding:var(--space-3) var(--space-4);background:#fffffff5;border-top:1px solid var(--color-border)}.game__panel .tool__submit .btn{flex:1}.segmented--4{grid-template-columns:repeat(4,1fr)}.segmented--3{grid-template-columns:repeat(3,1fr)}.range{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.range .field__input--number{width:6.5rem}.range__sep{color:var(--color-muted)}.segmented--4 .segmented__label{padding:var(--space-2) .2rem;font-size:var(--text-sm)}@media(min-width:64em){.game{display:block;min-height:36rem}.game__panel{position:absolute;left:var(--space-4);top:var(--space-4);max-height:calc(100% - 2 * var(--space-4));width:var(--panel-w);z-index:10;overflow:auto;border:1px solid rgba(255,255,255,.7);border-radius:1rem;background:#fcfcfdf0;backdrop-filter:blur(6px);box-shadow:0 8px 28px #0f172a24}}.stage{position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:85dvh;border-radius:0;overflow:hidden;color:var(--stage-text);background:linear-gradient(180deg,#cfeaff 0%,#e6f5ff 38%,#fff3dc 55%,#fff3dc 56%,#5aa8ff 56%,var(--sea) 72%,var(--sea-deep) 100%);color-scheme:light}.stage__scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.stage__cloud{position:absolute;top:8%;width:7rem;height:2.6rem;border-radius:999px;background:#fff;opacity:.9;filter:drop-shadow(0 4px 6px rgba(20,60,120,.08));animation:cloud-drift 60s linear infinite;animation-play-state:paused}.stage.is-live .stage__cloud,.stage.is-live .stage__waves{animation-play-state:running}.stage__cloud:before,.stage__cloud:after{content:"";position:absolute;bottom:30%;border-radius:50%;background:#fff}.stage__cloud:before{left:18%;width:3rem;height:3rem}.stage__cloud:after{left:48%;width:3.6rem;height:3.6rem}.stage__cloud--1{left:6%}.stage__cloud--2{left:42%;top:15%;transform:scale(.7);animation-duration:80s}.stage__cloud--3{left:74%;top:5%;transform:scale(.85);animation-duration:70s}.stage__sun{position:absolute;left:58%;top:9%;width:6rem;height:6rem;border-radius:50%;background:radial-gradient(circle,#fff7d6 0 45%,#ffe08a 46% 60%,#ffe08a00 61%);box-shadow:0 0 60px 30px #ffecaa8c;animation:sun-pulse 8s ease-in-out infinite;animation-play-state:paused}.stage--art .stage__sun{box-shadow:0 0 80px 40px #ffecaa59}@keyframes sun-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.stage__birds{position:absolute;left:20%;top:14%;width:9rem;height:3rem;animation:birds-fly 45s linear infinite;animation-play-state:paused}.stage__bird{transform-origin:center;animation:bird-flap .9s ease-in-out infinite alternate;animation-play-state:paused}.stage__bird--2{animation-delay:-.3s}.stage__bird--3{animation-delay:-.6s}@keyframes birds-fly{0%{translate:-30vw 0}to{translate:90vw -3rem}}@keyframes bird-flap{0%{transform:scaleY(1)}to{transform:scaleY(.4)}}.stage__waves--back{top:54.5%;height:1rem;opacity:.55;animation-duration:9s;animation-direction:reverse}.stage--art .stage__waves--back{height:1.6rem}.stage__sparkle{position:absolute;left:0;right:0;top:60%;height:22%;background:radial-gradient(ellipse 6px 2px at 20% 20%,rgba(255,255,255,.9),transparent 70%),radial-gradient(ellipse 8px 2px at 45% 55%,rgba(255,255,255,.8),transparent 70%),radial-gradient(ellipse 5px 2px at 70% 30%,rgba(255,255,255,.9),transparent 70%),radial-gradient(ellipse 7px 2px at 85% 70%,rgba(255,255,255,.7),transparent 70%),radial-gradient(ellipse 6px 2px at 33% 80%,rgba(255,255,255,.8),transparent 70%),radial-gradient(ellipse 9px 2px at 60% 85%,rgba(255,255,255,.6),transparent 70%);background-size:22rem 8rem;animation:sparkle 5s ease-in-out infinite;animation-play-state:paused}@keyframes sparkle{0%,to{opacity:.35}50%{opacity:1}}.stage__boat{position:absolute;right:12%;bottom:calc(clamp(3.5rem,7vh,5.25rem) + .5rem);width:11rem;height:5.6rem;background:url(../img/game/harbor/boat.webp) center bottom / contain no-repeat;opacity:0;transform-origin:50% 100%;animation:boat-moored 4s ease-in-out infinite;animation-play-state:paused;transition:opacity .6s}.stage--art .stage__boat{opacity:1}.stage.is-sailing .stage__boat,.stage.is-arrived .stage__boat{animation:boat-sail 2.5s ease-in forwards}@keyframes boat-moored{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-5px) rotate(1.5deg)}}@keyframes boat-sail{to{transform:translate(60vw) translateY(-6px);opacity:0}}.stage.is-live .stage__sun,.stage.is-live .stage__birds,.stage.is-live .stage__bird,.stage.is-live .stage__sparkle,.stage.is-live .stage__boat{animation-play-state:running}@keyframes cloud-drift{0%{translate:0 0}to{translate:40px 0}}.stage__island{position:absolute;right:8%;top:48%;width:9rem;height:3rem;border-radius:50% 50% 40% 40%/100% 100% 40% 40%;background:var(--sand);box-shadow:inset 0 -.6rem #0000000f}.stage__island:before{content:"";position:absolute;left:40%;top:-1.6rem;width:2.4rem;height:2rem;border-radius:50%;background:var(--leaf)}.stage__waves{position:absolute;left:0;right:0;top:55.5%;height:1.2rem;background:radial-gradient(circle at 50% 100%,transparent 55%,rgba(255,255,255,.55) 56%,rgba(255,255,255,.55) 62%,transparent 63%) 0 0 / 3rem 1.2rem repeat-x;animation:waves 6s linear infinite;animation-play-state:paused}.stage--art .stage__waves{height:2rem;background:url(../img/game/harbor/wave-strip.webp) 0 0 / auto 100% repeat-x}@keyframes waves{0%{background-position-x:0}to{background-position-x:3rem}}.stage__hud{position:relative;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3)}.stage__hud-spacer{flex:1}.stage__chip:empty{display:none}.stage__chip{font-size:var(--text-sm);font-weight:600;padding:.25rem .7rem;border-radius:999px;background:#fffc}.stage__chip--count{font-variant-numeric:tabular-nums}.stage__btn{background:#ffffffe6;border-color:#123a5f33;color:var(--stage-text)}.stage__btn--icon{width:2.5rem;min-height:2.5rem;padding:0}.stage__btn--icon .btn__icon{width:1.3rem;height:1.3rem}.stage__btn--icon[aria-pressed=true] .stage__sound-off,.stage__btn--icon[aria-pressed=false] .stage__sound-on{display:none}.stage__btn.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.stage__btn[data-phase]{display:none}.stage[data-state=ceremony] .stage__btn[data-phase~=ceremony],.stage[data-state=reveal] .stage__btn[data-phase~=reveal],.stage[data-state=done] .stage__btn[data-phase~=done]{display:inline-flex}.stage__body{position:relative;z-index:2;display:grid;align-content:start;gap:var(--space-3);padding:0 var(--space-3) var(--space-3);overflow:auto}.stage__empty{place-self:center;align-self:center;text-align:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:#ffffffd9;backdrop-filter:blur(2px);max-width:20rem;font-size:var(--text-sm)}.stage__body{grid-template-rows:auto}.stage[data-state=idle] .stage__body{align-content:center;align-content:safe center;padding-bottom:min(26vh,10rem)}.stage__empty-title{font-weight:700;margin-bottom:var(--space-1)}.stage__summary{width:fit-content;max-width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:#ffffffd9;font-weight:600}.stage__summary:empty{display:none}.stage__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.stage__status{color:#0a4a2a;font-weight:600;text-shadow:0 1px 0 rgba(255,255,255,.7)}.stage__status:empty{display:none}.stage__tips{font-size:var(--text-sm);color:#ffffffeb;text-shadow:0 1px 2px rgba(0,30,80,.6)}.stage__tips:empty,.stage.is-presenting .stage__tips,.stage[data-state=idle] .stage__tips{display:none}[data-action=edit-list]{display:none}@media(max-width:63.99em){[data-action=edit-list]{display:inline-flex}}.stage__pier{position:relative;z-index:2;min-height:clamp(3.5rem,7vh,5.25rem);padding:var(--space-2) var(--space-3);background:repeating-linear-gradient(90deg,var(--wood) 0 2.2rem,var(--wood-dark) 2.2rem 2.35rem);border-top:.35rem solid var(--wood-dark);box-shadow:0 -6px 12px #0000001f}.stage--art .stage__pier{background:url(../img/game/harbor/dock-foreground.webp) center top / cover no-repeat;border-top:0}.stage[data-state=done] .stage__pier{min-height:1.5rem;padding:0}.stage__dock{display:flex;flex-wrap:wrap;gap:.35rem;max-height:8rem;overflow:hidden;align-content:flex-start}.stage__dock:empty{display:none}.card{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem .2rem .25rem;border-radius:999px;background:#fff;color:var(--stage-text);font-size:var(--text-sm);font-weight:500;box-shadow:0 1px 2px #00000026;white-space:nowrap}.card__initial,.boat__initial{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:hsl(var(--hue) 70% 86%);color:hsl(var(--hue) 60% 30%);font-size:.75rem;font-weight:700;flex:none}.card--small .card__name{max-width:7rem;overflow:hidden;text-overflow:ellipsis}.card--more{background:#ffffffb3;padding-inline:.6rem}.stage__flight{position:absolute;inset:0;z-index:6;pointer-events:none}.flight-card{position:absolute;left:0;top:0;will-change:transform;font-size:var(--text-base)}.stage__spot{position:absolute;left:50%;top:42%;z-index:7;transform:translate(-50%,-50%);pointer-events:none}.spot-card{font-size:clamp(1.4rem,3.5vw,2.4rem);padding:.5rem 1.4rem .5rem .6rem;box-shadow:0 10px 30px #00285a4d}.spot-card .card__initial{width:2.2em;height:2.2em;font-size:.7em}.stage__confetti{position:absolute;inset:0;z-index:5;width:100%;height:100%;pointer-events:none}.fleet{list-style:none;display:grid;gap:var(--space-4) var(--space-3);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));align-content:start;padding-top:var(--space-4)}.fleet:empty{display:none}.boat{--team: hsl(var(--hue) 70% 42%);--team-soft: hsl(var(--hue) 70% 92%);position:relative;display:grid;grid-template-rows:auto auto 1fr auto;background:#fff;border-radius:var(--radius) var(--radius) 1.2rem 1.2rem;box-shadow:0 6px 16px #00285a2e;color:var(--stage-text)}.boat__flag{position:absolute;left:1rem;top:-1.1rem;width:3px;height:1.4rem;background:#35507a;border-radius:2px}.boat__flag:after{content:"";position:absolute;left:3px;top:0;border-style:solid;border-width:.45rem 0 .45rem 1rem;border-color:transparent transparent transparent var(--team)}.boat__head{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) 0 var(--space-3)}.boat__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:1.75rem;padding:0 var(--space-3) var(--space-1);border-bottom:2px solid var(--team)}.boat__name{flex:1;min-width:6rem;font-size:var(--text-base);color:var(--team);overflow-wrap:anywhere}.boat__count{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.boat__crew{list-style:none;display:grid;gap:.3rem;padding:var(--space-2) var(--space-3)}.boat__member{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .5rem;transition:opacity .25s ease,transform .25s ease}.boat__member-name{flex:1 1 6rem;min-width:0;overflow-wrap:anywhere}.boat__member--leader .boat__member-name{font-weight:700}.stage--art .boat__member--leader .boat__initial{background:url(../img/game/harbor/captain-hat.webp) center / contain no-repeat;color:transparent;border-radius:0;width:1.7rem}.boat__badge{font-size:.7rem;font-weight:700;color:#fff;background:var(--team);padding:0 .45em;border-radius:999px;white-space:nowrap}.boat__label{font-size:.7rem;line-height:1.4;padding:0 .4em;border-radius:999px;background:var(--color-surface-2);color:var(--color-muted);white-space:nowrap}.boat__label+.boat__move{margin-left:0}.boat__score{display:inline-flex;align-items:center;gap:.15rem;font-variant-numeric:tabular-nums}.boat__score-btn{width:1.5rem;height:1.5rem;border:1px solid var(--color-border-strong);border-radius:50%;background:var(--color-bg);color:var(--color-text);font-size:.9rem;line-height:1;padding:0}.boat__score-btn:hover{background:var(--color-surface-2)}.boat__score-value{min-width:1.6rem;text-align:center;font-size:var(--text-base);color:var(--team)}.boat--top{box-shadow:0 0 0 3px #ffb84d,0 10px 24px #00285a40}.boat--top .boat__name:before{content:"\1f3c6  "}.stage__timer{display:inline-flex;align-items:center;gap:var(--space-1);position:relative}.stage__timer[data-phase]{display:none}.stage[data-state=done] .stage__timer,.stage[data-state=reveal] .stage__timer{display:inline-flex}.stage__timer-live{display:inline-flex;align-items:center;gap:var(--space-1)}.stage__timer-display{min-width:4.5rem;padding:.2rem .6rem;border-radius:var(--radius-sm);background:var(--stage-text);color:#fff;font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.stage__timer-display.is-paused{opacity:.6}.stage__timer-display.is-urgent{background:var(--color-danger);animation:urgent 1s steps(2) infinite}@keyframes urgent{50%{opacity:.55}}.stage.is-timeup .stage__timer-display{background:var(--color-danger)}.timer-menu{position:absolute;top:calc(100% + .4rem);left:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-sm);background:#fff;box-shadow:0 8px 24px #00285a40;min-width:18rem}.timer-menu .field__input--number{width:4.5rem}.stage.is-presenting .stage__timer-display{font-size:2.4rem;padding:.2rem 1rem}.stage.is-presenting .boat__score-value{font-size:1.6rem}.stage.is-presenting .boat__score-btn{width:2rem;height:2rem;font-size:1.2rem}.boat__lock,.boat__move{padding-inline:.3rem;color:var(--color-muted)}.boat__lock .btn__icon,.boat__move .btn__icon{width:1rem;height:1rem}.boat__lock[aria-pressed=true]{color:var(--team)}.boat--locked{outline:2px dashed var(--team);outline-offset:3px}.boat__move{margin-left:auto;opacity:0;transition:opacity .15s}.boat__member:hover .boat__move,.boat__member:focus-within .boat__move,.boat__move:focus-visible{opacity:1}@media(hover:none){.boat__move{opacity:1}}.boat__member[draggable=true]{cursor:grab}.boat__member.is-dragging{opacity:.4}.boat--dragover{box-shadow:0 0 0 3px var(--team),0 6px 16px #00285a2e}.move-menu{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-2);margin:.2rem 0 .3rem;border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:var(--text-sm)}.move-menu__label{color:var(--color-muted);margin-right:var(--space-1)}.boat__hull{height:.9rem;background:linear-gradient(var(--wood),var(--wood-dark));border-radius:0 0 1.2rem 1.2rem}.stage.is-ceremony .boat__member:not(.is-landed),.stage.is-reveal .boat__member:not(.is-landed){opacity:0;transform:translateY(6px)}.stage.is-arrived .boat{animation:boat-bob 3s ease-in-out 3}.stage.is-arrived .boat:nth-child(2n){animation-delay:-1.2s}@keyframes boat-bob{0%,to{translate:0 0}50%{translate:0 -4px}}html.is-presenting-page{overflow:hidden}.is-presenting-root .game__panel{display:none}.stage.is-presenting{position:fixed;inset:0;z-index:100;border-radius:0;min-height:100vh;font-size:1.15rem}.stage.is-presenting .fleet{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:var(--space-5);padding:var(--space-4)}.stage.is-presenting .boat__name{font-size:clamp(1.6rem,2.4vw,2.4rem)}.stage.is-presenting .boat__member{font-size:clamp(1.5rem,2.2vw,2.3rem)}.stage.is-presenting .stage__title{font-size:min(var(--title-size, clamp(2rem, 3.6vw, 3.4rem)),4.5rem)}.stage.is-presenting .fleet{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}.stage.is-presenting .boat__initial{width:2rem;height:2rem;font-size:1rem}.stage.is-presenting .boat__copy,.stage.is-presenting .stage__summary{display:none}.stage.is-presenting [data-action=present]{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.stage.is-presenting [data-action=present] .stage__btn-label--off,.stage:not(.is-presenting) [data-action=present] .stage__btn-label--on{display:none}.stage.is-presenting .spot-card{font-size:clamp(2rem,6vw,4.5rem)}@media(prefers-reduced-motion:reduce){.stage__cloud,.stage__waves,.stage__sun,.stage__birds,.stage__bird,.stage__sparkle,.stage__boat,.stage.is-arrived .boat{animation:none}.boat__member{transition:none}}@media print{.game__panel,.stage__scene,.stage__hud,.stage__pier,.stage__flight,.stage__spot,.stage__confetti,.stage__actions,.boat__copy,.boat__score-btn,.boat__lock,.boat__move,.move-menu{display:none!important}.stage{position:static;background:none;min-height:0;color:#000}.stage__body{padding-left:0!important}.fleet{grid-template-columns:repeat(2,1fr)}.boat{box-shadow:none;border:1px solid #999;break-inside:avoid}}@media(min-width:64em){.stage__hud,.stage__body,.stage__pier{padding-left:calc(var(--panel-w) + 2 * var(--space-4))}.stage.is-presenting .stage__hud,.stage.is-presenting .stage__body,.stage.is-presenting .stage__pier{padding-left:var(--space-4)}}@media(min-width:64em){.game>.stage{position:absolute;inset:0;border-radius:0;min-height:0}.game>.game__panel{display:flex;flex-direction:column;gap:var(--space-3)}.game>.game__panel>*{flex:none}}.stage{--horizon: 54%;--px: 0;--py: 0;background:none}@media(max-width:63.99em){.stage{--horizon: 46%}}.stage__sky,.stage__sea{position:absolute;left:0;right:0}.stage__sky{top:0;height:var(--horizon);background:linear-gradient(180deg,#bfe3ff,#e2f3ff 60%,#fff1d6);translate:calc(var(--px) * -4px) 0}.stage__sea{top:var(--horizon);bottom:0;background:linear-gradient(180deg,#5aa8ff 0%,var(--sea) 30%,var(--sea-deep) 100%);translate:calc(var(--px) * -2px) 0}.stage__sky{background:url(../img/game/harbor/sky.webp) center bottom / cover no-repeat,linear-gradient(180deg,#bfe3ff,#e2f3ff 60%,#fff1d6)}.stage__sea{background:url(../img/game/harbor/sea.webp) center top / cover no-repeat,linear-gradient(180deg,#5aa8ff 0%,var(--sea) 30%,var(--sea-deep) 100%)}.stage__sun{top:calc(var(--horizon) * .18);left:56%;translate:calc(var(--px) * -6px) calc(var(--py) * -3px)}.stage__cloud{background:none;border-radius:0;filter:drop-shadow(0 6px 8px rgba(20,60,120,.12));opacity:.95}.stage__cloud:before,.stage__cloud:after{display:none}.stage__cloud--1{left:8%;top:calc(var(--horizon) * .22);width:9rem;aspect-ratio:320 / 213;height:auto;background:url(../img/game/harbor/cloud-1.webp) center / contain no-repeat;translate:calc(var(--px) * -16px) calc(var(--py) * -6px)}.stage__cloud--2{left:44%;top:calc(var(--horizon) * .08);width:7rem;aspect-ratio:320 / 180;height:auto;background:url(../img/game/harbor/cloud-2.webp) center / contain no-repeat;translate:calc(var(--px) * -10px) calc(var(--py) * -4px);animation-duration:80s}.stage__cloud--3{left:76%;top:calc(var(--horizon) * .3);width:8rem;aspect-ratio:320 / 200;height:auto;background:url(../img/game/harbor/cloud-3.webp) center / contain no-repeat;translate:calc(var(--px) * -22px) calc(var(--py) * -8px);animation-duration:70s}.stage:not(.stage--art) .stage__cloud{background:#fff;border-radius:999px;height:2.6rem;aspect-ratio:auto}.stage:not(.stage--art) .stage__cloud:before,.stage:not(.stage--art) .stage__cloud:after{display:block}.stage__birds{top:calc(var(--horizon) * .35)}.stage__island{top:auto;bottom:calc(100% - var(--horizon) - 1.2rem);right:16%;width:clamp(10rem,15vw,15rem);height:auto;aspect-ratio:560 / 324;translate:calc(var(--px) * -8px) 0}.stage--art .stage__island{top:auto;right:16%;width:clamp(10rem,15vw,15rem);height:auto;aspect-ratio:560 / 324;bottom:calc(100% - var(--horizon) - 1.2rem);border-radius:0;box-shadow:none;background:url(../img/game/harbor/island.webp) center bottom / contain no-repeat}.stage--art .stage__island:before{display:none}.stage__waves--back{top:calc(var(--horizon) - .5rem)}.stage__waves{top:calc(var(--horizon) - .4rem)}.stage--art .stage__waves{height:2.2rem}.stage__cloud-shadow{position:absolute;top:calc(var(--horizon) + 12%);width:16rem;height:3rem;border-radius:50%;background:radial-gradient(ellipse,rgba(10,40,90,.18),transparent 70%);animation:shadow-drift 70s linear infinite;animation-play-state:paused}.stage__cloud-shadow--1{left:10%}.stage__cloud-shadow--2{left:60%;top:calc(var(--horizon) + 28%);width:22rem;animation-duration:90s;animation-delay:-30s}@keyframes shadow-drift{0%{translate:-10vw 0}to{translate:40vw 0}}.stage__light{position:absolute;left:0;right:0;top:var(--horizon);bottom:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.16) 48%,rgba(255,255,255,.22) 50%,rgba(255,255,255,.16) 52%,transparent 65%);background-size:220% 100%;mix-blend-mode:screen;animation:light-sweep 14s ease-in-out infinite alternate;animation-play-state:paused}@keyframes light-sweep{0%{background-position:0% 0}to{background-position:100% 0}}.stage__sparkle{top:calc(var(--horizon) + 8%);height:30%}.stage__fish{position:absolute;left:38%;top:calc(var(--horizon) + 14%);width:2.6rem;height:1.3rem;opacity:0;transform-origin:center;animation:fish-jump 14s ease-in-out infinite;animation-play-state:paused}@keyframes fish-jump{0%,88%,to{opacity:0;transform:translate(0) rotate(-30deg)}90%{opacity:1;transform:translate(.6rem,-2rem) rotate(-20deg)}93%{opacity:1;transform:translate(1.8rem,-3.2rem) rotate(10deg)}96%{opacity:1;transform:translate(3rem,-1.4rem) rotate(50deg)}98%{opacity:0;transform:translate(3.6rem,.4rem) rotate(70deg)}}.stage__boat{right:14%;width:clamp(7rem,11vw,11rem);aspect-ratio:560 / 286;height:auto;translate:calc(var(--px) * -12px) 0}.stage__ripple{position:absolute;right:12%;bottom:calc(clamp(3.5rem,7vh,5.25rem) + .2rem);width:clamp(9rem,14vw,14rem);height:1.6rem;border-radius:50%;border:2px solid rgba(255,255,255,.55);opacity:0;animation:ripple 4s ease-out infinite;animation-play-state:paused}.stage:not(.stage--art) .stage__ripple{display:none}@keyframes ripple{0%{transform:scale(.6);opacity:.8}70%{transform:scale(1.15);opacity:0}to{transform:scale(1.15);opacity:0}}.stage.is-sailing .stage__ripple,.stage.is-arrived .stage__ripple{display:none}.stage__dock .card{animation:card-pop .35s cubic-bezier(.2,.9,.3,1.3) backwards;animation-delay:calc(var(--i, 0) * 25ms)}@keyframes card-pop{0%{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:none}}.stage.is-live .stage__cloud-shadow,.stage.is-live .stage__light,.stage.is-live .stage__fish,.stage.is-live .stage__ripple{animation-play-state:running}@media(prefers-reduced-motion:reduce){.stage__cloud,.stage__waves,.stage__sun,.stage__birds,.stage__bird,.stage__sparkle,.stage__boat,.stage__cloud-shadow,.stage__light,.stage__fish,.stage__ripple,.stage__dock .card,.stage.is-arrived .boat{animation:none}.stage__fish{display:none}}.stage--art .stage__island:after,.stage--art .stage__boat:after{content:"";position:absolute;left:0;right:0;top:100%;height:60%;background:inherit;background-position:center top;transform:scaleY(-1);transform-origin:center top;opacity:.28;filter:blur(1.5px) saturate(.8);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,.9),transparent 90%);mask-image:linear-gradient(to top,rgba(0,0,0,.9),transparent 90%);pointer-events:none}.stage--art .stage__island:after{display:block;width:auto;height:45%;border-radius:0;transform:scaleY(-1) translateY(-6%)}.stage--art .stage__boat:after{opacity:.22}.stage__haze{position:absolute;left:0;right:0;top:calc(var(--horizon) - 7%);height:12%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.55) 55%,rgba(255,255,255,.35) 62%,transparent);pointer-events:none}.stage__sun:before{content:"";position:absolute;inset:-110%;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,244,200,.28) 0deg 6deg,transparent 6deg 22deg);-webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.9) 20%,transparent 70%);mask-image:radial-gradient(circle,rgba(0,0,0,.9) 20%,transparent 70%);animation:rays 70s linear infinite;animation-play-state:paused;mix-blend-mode:screen;z-index:-1}@keyframes rays{to{rotate:360deg}}.stage__sail{position:absolute;top:calc(var(--horizon) - 1.5rem);left:-3rem;width:2.4rem;height:1.8rem;opacity:.85;animation:sail-cross 150s linear infinite,sail-bob 3s ease-in-out infinite;animation-play-state:paused,paused}@keyframes sail-cross{0%{translate:-4vw 0}60%{translate:104vw 0}to{translate:104vw 0}}@keyframes sail-bob{0%,to{rotate:-2deg}50%{rotate:2deg}}.stage__stars{position:absolute;left:0;right:0;top:0;height:calc(var(--horizon) - 4%);opacity:0;background:radial-gradient(1.5px 1.5px at 12% 22%,#fff,transparent 60%),radial-gradient(1px 1px at 28% 40%,#fff,transparent 60%),radial-gradient(2px 2px at 41% 15%,#fff,transparent 60%),radial-gradient(1px 1px at 55% 33%,#fff,transparent 60%),radial-gradient(1.5px 1.5px at 67% 12%,#fff,transparent 60%),radial-gradient(1px 1px at 78% 45%,#fff,transparent 60%),radial-gradient(2px 2px at 86% 24%,#fff,transparent 60%),radial-gradient(1px 1px at 93% 52%,#fff,transparent 60%),radial-gradient(1.5px 1.5px at 20% 60%,#fff,transparent 60%),radial-gradient(1px 1px at 48% 58%,#fff,transparent 60%),radial-gradient(1px 1px at 72% 66%,#fff,transparent 60%),radial-gradient(1.5px 1.5px at 35% 78%,#fff,transparent 60%);transition:opacity 1.5s}.stage__moon{position:absolute;left:62%;top:calc(var(--horizon) * .16);width:4.2rem;height:4.2rem;border-radius:50%;background:#fff8e1;box-shadow:inset -1.1rem .4rem #17233a,0 0 40px 14px #fff8e159;opacity:0;transition:opacity 1.5s;translate:calc(var(--px) * -6px) calc(var(--py) * -3px)}.stage[data-time=dusk] .stage__sky:after,.stage[data-time=dusk] .stage__sea:after,.stage[data-time=night] .stage__sky:after,.stage[data-time=night] .stage__sea:after{content:"";position:absolute;inset:0;pointer-events:none}.stage[data-time=dusk] .stage__sky:after{background:linear-gradient(180deg,#785ac859,#ff965073 70%,#ffbe7899);mix-blend-mode:multiply}.stage[data-time=dusk] .stage__sea:after{background:linear-gradient(180deg,#ffaa5a59,#283c8c73);mix-blend-mode:multiply}.stage[data-time=dusk] .stage__sun{top:calc(var(--horizon) * .62);background:radial-gradient(circle,#fff1c2 0 45%,#ffb347 46% 60%,#ffb34700 61%);box-shadow:0 0 70px 30px #ffa05073}.stage[data-time=dusk] .stage__haze{background:linear-gradient(180deg,transparent,rgba(255,200,150,.55) 55%,rgba(255,200,150,.35) 62%,transparent)}.stage[data-time=night] .stage__sky:after{background:linear-gradient(180deg,#0b1533,#1a2b5c 60%,#3b4c86);mix-blend-mode:multiply;opacity:.92}.stage[data-time=night] .stage__sea:after{background:linear-gradient(180deg,#2c4a8c,#0d1f4d 60%,#081230);mix-blend-mode:multiply;opacity:.9}.stage[data-time=night] .stage__sun,.stage[data-time=night] .stage__birds,.stage[data-time=night] .stage__cloud-shadow{display:none}.stage[data-time=night] .stage__stars,.stage[data-time=night] .stage__moon{opacity:1}.stage[data-time=night] .stage__stars{animation:twinkle 4s ease-in-out infinite alternate;animation-play-state:paused}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}.stage[data-time=night] .stage__cloud{filter:brightness(.55) drop-shadow(0 6px 8px rgba(0,0,0,.2))}.stage[data-time=night] .stage__island,.stage[data-time=night] .stage__boat,.stage[data-time=night] .stage__pier{filter:brightness(.6) saturate(.85)}.stage[data-time=night] .stage__light{opacity:.5;background:linear-gradient(100deg,transparent 40%,rgba(255,248,225,.35) 50%,transparent 60%);background-size:220% 100%}.stage[data-time=night] .stage__haze{background:linear-gradient(180deg,transparent,rgba(120,150,220,.25) 55%,transparent)}.stage[data-time=night] .stage__empty,.stage[data-time=night] .stage__summary{background:#ffffffeb}.stage.is-live .stage__sun:before,.stage.is-live .stage__sail,.stage.is-live[data-time=night] .stage__stars{animation-play-state:running}@media(prefers-reduced-motion:reduce){.stage__sun:before,.stage__sail,.stage__stars{animation:none}}@media(max-width:63.99em){.stage__title{font-size:min(var(--title-size, 1.5rem),1.6rem)}.stage__hud{gap:.3rem;padding:var(--space-2)}.stage__hud .stage__btn{min-height:2.1rem;padding-inline:.55rem;font-size:.8rem}.stage__hud [data-action=present] .stage__btn-label,.stage__hud [data-action=timer-open] .stage__btn-label{display:none}.game__panel .tool__submit{position:static;margin:0;padding:0;border-top:0;background:none}}@media(hover:none){.stage__title-tools,.stage__title-grip{opacity:0}.stage__title-wrap.is-active .stage__title-tools,.stage__title-wrap:focus-within .stage__title-tools,.stage__title-wrap.is-active .stage__title-grip{opacity:1}}@media(max-width:63.99em){.game{display:flex;flex-direction:column}.game>.stage{order:-1;min-height:42dvh}.game>.stage:not([data-state=idle]){min-height:88dvh}.stage[data-state=idle] .stage__body{padding-bottom:6vh}.stage[data-state=idle] .stage__empty{font-size:.8rem;padding:var(--space-2) var(--space-3)}.stage[data-state=idle] .stage__pier{min-height:2.2rem}}.onboard{position:absolute;left:50%;bottom:var(--space-3);z-index:5;transform:translate(-50%);display:grid;gap:var(--space-2);width:min(24rem,calc(100% - 2 * var(--space-3)));padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:#fffffff0;box-shadow:0 8px 24px #001e502e;color:var(--stage-text);font-size:var(--text-sm)}@media(max-width:63.99em){.onboard{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:.8rem}.onboard__title{display:none}.onboard__list{padding-left:0;list-style:none}.onboard__list li:nth-child(n+2){display:none}.stage[data-state=idle] .stage__body{padding-bottom:5.5rem}.game>.stage[data-state=idle]{grid-template-rows:auto minmax(max-content,1fr) auto}}@media(min-width:64em){.onboard{left:auto;right:var(--space-4);transform:none}}.onboard__title{font-weight:700}.onboard__list{display:grid;gap:.25rem;padding-left:1.2em}.onboard__actions{display:flex;justify-content:flex-end}.stage:not([data-state=idle]) .onboard{display:none}.game.is-nolabels .boat__label,.stage.is-compact .balloon__envelope{display:none}.stage.is-compact .sky-fleet{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--space-3);padding-top:1rem}.stage.is-compact .picked__lantern{width:3rem!important}.stage.is-compact .picked[data-count="1"] .picked__name{font-size:clamp(1.8rem,4vw,3rem)}.stage.is-compact .picked:not([data-count="1"]) .picked__name{font-size:clamp(1rem,2vw,1.4rem)}.stage.is-compact .picked{gap:var(--space-3);padding-top:1rem;min-height:0}[data-action=compact][aria-pressed=true]{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.stage__reveal{display:none;align-items:center;flex-wrap:wrap;gap:var(--space-2);width:fit-content;max-width:100%;padding:var(--space-2);border-radius:var(--radius-sm);background:#ffffffd9}.stage[data-state=reveal] .stage__reveal{display:flex}.stage__reveal-next{min-height:2.6rem;padding-inline:1.2rem;font-size:1rem}.stage__reveal-hint{font-size:var(--text-sm);color:var(--color-muted)}.stage.is-presenting .stage__reveal-next{min-height:3.2rem;padding-inline:1.6rem;font-size:1.25rem}@media(min-width:64em){.game>.stage.is-presenting{position:fixed;inset:0}}.game__panel,.stage__body,.stage{overscroll-behavior:contain}.panel__links{display:grid;gap:var(--space-1);margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font-size:var(--text-sm);line-height:1.45}.panel__next{display:flex;flex-wrap:wrap;gap:0 .4em;align-items:baseline}.panel__next-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.panel__next a{font-weight:600;text-decoration:none}.panel__next a:hover{text-decoration:underline}.panel__more{color:var(--color-muted)}.panel__trust{margin-top:var(--space-2);font-size:var(--text-xs, .78rem);line-height:1.45;color:var(--color-muted)}.panel__trust a{white-space:nowrap}@media(min-width:64em){.panel__collapse{display:inline-flex}.game.is-panel-collapsed>.game__panel{display:none}.game.is-panel-collapsed .panel__expand{display:inline-flex;order:-1}.game.is-panel-collapsed .stage__hud,.game.is-panel-collapsed .stage__body,.game.is-panel-collapsed .stage__pier{padding-left:var(--space-4)}}.rounds-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);width:fit-content;max-width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:#ffffffd9;color:var(--color-text)}.rounds-bar[hidden]{display:none}.rounds-bar__info{font-size:var(--text-sm);font-weight:600}.stage.is-presenting .rounds-bar{font-size:1.1rem}@media(max-width:47.99em){.stage--art .stage__pier{background:url(../img/game/harbor/dock-foreground-m.webp) center top / cover no-repeat}}@media(max-width:47.99em){.stage__sky{background:url(../img/game/harbor/sky-m.webp) center bottom / cover no-repeat,linear-gradient(180deg,#bfe3ff,#e2f3ff 60%,#fff1d6)}}@media(max-width:47.99em){.stage__sea{background:url(../img/game/harbor/sea-m.webp) center top / cover no-repeat,linear-gradient(180deg,#5aa8ff 0%,var(--sea) 30%,var(--sea-deep) 100%)}}
