@font-face{font-family:Flight;src:url('./assets/flight-regular.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Flight;src:url('./assets/flight-bold.ttf') format('truetype');font-display:swap;font-weight:600 900}
:root{--ink:#335463;--muted:#536f7e;--blue:#72b4dd;--blue-dark:#356d8f;--sky:#edf6fc;--paper:#fffdf8;--line:#d9e7ed;--pink:#e68ca8;--green:#70b79a;--yellow:#edc35c;--radius:16px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--sky);font-family:Flight,"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit;background:transparent}button:disabled{cursor:not-allowed;opacity:.46}button:not(:disabled),a,summary{transition:background .2s,color .2s,transform .3s var(--ease)}button:not(:disabled):active{transform:scale(.96)}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--blue-dark);outline-offset:4px}input{min-width:0;caret-color:var(--blue-dark);color:var(--ink);outline:0;font-variant-numeric:tabular-nums}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{appearance:none}::selection{background:#c5e4f5;color:#26495e}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#aac6d3;border-radius:4px}svg.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}h1{font-size:29px;letter-spacing:-.035em;line-height:1.4;text-wrap:balance}h2{font-size:17px;letter-spacing:-.02em}h3{font-size:14px}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.topbar{max-width:1140px;margin:auto;padding:14px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;background:#cce5f4;border-radius:15px;transform:rotate(-7deg)}.brand strong{display:block;font-size:20px;letter-spacing:.04em}.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:.14em;margin-top:2px}.top-actions{display:flex;align-items:center;gap:12px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 4px;font-size:12px;color:#557583}.text-button:hover{color:#254e64}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.icon-button:hover{background:#dcebf5}.icon-button[aria-pressed=false]{color:#536f7e}.invite-button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #a9cfe5;border-radius:10px;padding:9px 15px;font-size:12px;background:#f8fcff;color:#356d8f}.invite-button:hover{background:#deeffa}.workspace{max-width:1140px;margin:0 auto;padding:14px 36px 0;display:grid;grid-template-columns:minmax(0,1fr) 340px;column-gap:34px;row-gap:22px}.board-column{min-width:0}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:80px;margin-bottom:16px}.board-heading p{margin-top:8px;font-size:12px;color:var(--muted);letter-spacing:.025em}.room-tag{flex-shrink:0;display:flex;align-items:center;gap:7px;font-size:11px;padding:7px 11px;border:1px solid #cdddE6;border-radius:8px;background:#f6fbfe}.room-tag i{width:6px;height:6px;border-radius:100%;background:var(--green)}.board-shell{background:var(--paper);border-radius:22px;box-shadow:0 8px 32px #53768a0b;overflow:hidden}.board-top{padding:14px 23px 0;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.board-title{font-size:11px;color:#536f7e;display:flex;align-items:center;gap:6px}.board-title .icon{width:16px;height:16px}.compact{padding:3px}.board-wrap{position:relative;margin:-8px 8px 0;aspect-ratio:1;isolation:isolate}#board{display:block;width:100%;height:100%;overflow:visible;touch-action:manipulation}#effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.board-caption{position:absolute;bottom:2.5%;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;text-align:center;font-size:11px;background:#f2f7fae8;padding:5px 12px;border-radius:8px;pointer-events:none;color:#5c7c8c}.board-caption.active{color:#355b70;background:#e2f0fa}.board-key{display:flex;align-items:center;justify-content:center;gap:24px;padding:8px 15px 22px;font-size:11px;color:#536f7e}.board-key>span{display:flex;gap:6px;align-items:center;white-space:nowrap}.board-key .icon{width:15px;height:15px;color:var(--pink)}.key-dot{width:9px;height:9px;border-radius:100%;background:var(--pink)}.key-dash{width:17px;border-top:2px dashed var(--blue)}.flight-note{display:flex;align-items:center;gap:8px;color:#536f7e;font-size:11px;padding:15px 9px 0}.flight-note>.icon,.flight-note>[data-icon] .icon{width:16px;height:16px;color:#c08a9b}.note-cloud{margin-left:auto;color:#8eafc0}.note-cloud .icon{width:26px!important;height:26px!important}
.control-column{align-self:start;margin-top:16px;background:#ffffff;border-radius:var(--radius);padding:22px 24px 15px;box-shadow:0 5px 28px #486d7e08}.control-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:23px}.role-tag{font-size:11px;padding:4px 9px;border-radius:6px;background:#e9f3fa;color:#386c8d}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.section-heading>span{font-size:11px;color:#536f7e}.fleet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.plane-choice{padding:9px 2px 6px;position:relative;border-radius:12px;background:#f6f8f9;text-align:center;opacity:1}.plane-choice.active{opacity:1;background:var(--light)}.plane-choice:not(:disabled):hover{transform:translateY(-3px)}.plane-choice .plane-mini{display:block;margin:auto;width:39px;height:36px;fill:var(--color);stroke:var(--ink);stroke-width:1.4}.plane-choice span{display:block;font-size:11px;margin-top:4px;white-space:nowrap}.plane-choice.active:after{position:absolute;content:'';width:5px;height:5px;border-radius:50%;top:7px;right:7px;background:var(--color)}.plane-choice.ready{box-shadow:0 0 0 2px var(--color);animation:choice-breathe 1.5s ease-in-out infinite}.plane-choice.done{background:#eef6ef}.help{font-size:11px;color:#536f7e;margin-top:10px;min-height:16px}.dice-section{padding:6px 0 18px}.dice-sky{height:145px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.dice-sky:before{content:'';position:absolute;inset:12px 14px;background:#f1f8fc;border-radius:50% 50% 44% 44%}.dice{width:78px;height:78px;border-radius:19px;background:#fffdf8;transform:rotate(-12deg);box-shadow:0 6px 0 #d1e5f1,0 12px 20px #5e8eab19;position:relative;z-index:2;transition:transform .5s var(--ease)}.dice-face{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:9px;padding:17px;width:100%;height:100%}.pip{border-radius:50%;background:#467c9b;box-shadow:inset 0 -1px 0 #275f7e}.dice.rolling{animation:dice-tumble .9s var(--ease)}.dice.landed{animation:dice-land .6s var(--ease)}.sky-star{position:absolute;color:#e6bf60;z-index:1}.star-a{left:58px;top:36px;transform:rotate(15deg)}.star-b{right:46px;bottom:24px;color:#9bc2db;transform:scale(.7)}.dice-shadow{position:absolute;bottom:12px;left:calc(50% - 30px);width:60px;height:8px;background:#cfdfeb;border-radius:50%;filter:blur(3px)}.dice-result{text-align:center;font-size:12px;min-height:23px;color:#536f7e;margin:0 0 15px}.dice-result b{color:#416e88;font-size:16px;margin:0 3px}.primary-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;background:#417b9f;color:white;border-radius:11px;min-height:46px;padding:11px 16px;font-size:14px;font-weight:600;box-shadow:0 3px 0 #346787}.primary-button:hover:not(:disabled){background:#356e94}.primary-button:disabled{background:#9bbacc;box-shadow:0 2px 0 #8eafc2;opacity:.68}.primary-button .icon{width:18px;height:18px}.button-count{font-size:11px;margin-left:auto;padding:2px 7px;background:#ffffff25;border-radius:5px}.dice-footnote{text-align:center;font-size:11px;color:#536f7e;margin-top:12px}.red-section{padding:19px 0 18px;border-top:1px solid #edf1f3}.red-total b{color:#a64c6b}.red-entry{display:flex;align-items:center;gap:10px}.red-entry input{width:59px;text-align:center;font-weight:650;padding:9px 4px;background:#f7fafc;border:1px solid #dae5ed;border-radius:9px;font-size:18px;height:41px}.red-entry>span,.custom-row>span{font-size:11px;color:var(--muted)}.secondary-button{border:1px solid #c5dce9;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 13px;font-size:12px;min-height:39px;background:#f3f9fd;color:#3b6a87}.secondary-button:hover:not(:disabled){background:#dfedf8}.red-entry .secondary-button{flex:1;justify-content:space-between}.secondary-button .icon{width:16px;height:16px}.red-progress{display:flex;align-items:center;gap:9px;font-size:11px;color:#536f7e;margin-top:13px}.red-stamps{display:flex;gap:5px}.red-stamp{width:13px;height:13px;border-radius:4px;background:#f1eaf0;border:1px solid #e6d9e1}.red-stamp.filled{background:#eeb4c5;border-color:#e29ab0;animation:stamp-in .4s var(--ease)}.custom-section{border-top:1px solid #edf1f3;padding:13px 0 5px}.custom-section summary{display:flex;align-items:center;gap:7px;font-size:11px;color:#536f7e;list-style:none;cursor:pointer}.custom-section summary::-webkit-details-marker{display:none}.custom-section summary .icon{width:15px;height:15px}.chevron{margin-left:auto}.custom-section[open] .chevron{transform:rotate(180deg)}.custom-content{padding-top:12px}.custom-content p{font-size:11px;color:#536f7e;margin-bottom:8px}.custom-row{display:flex;gap:9px;align-items:center}.custom-row input{width:62px;border:1px solid #d8e5ed;background:#f8fbfd;border-radius:8px;text-align:center;padding:8px}.custom-row button{margin-left:auto}.control-bottom{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f3;padding:13px 0 9px}.control-bottom .text-button{font-size:11px}.control-bottom .icon{width:15px;height:15px}.presence{display:flex;align-items:center;gap:5px;padding-top:13px;font-size:11px;color:#536f7e;flex-wrap:wrap}.presence .icon{width:13px;height:13px}.connection-banner{font-size:11px;background:#fff0d6;padding:9px;margin-bottom:13px;border-radius:8px;color:#84652f}
.log-section{grid-column:1/-1;border-top:1px solid #d6e5ef;padding-top:21px}.log-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.log-heading h2{display:flex;align-items:center;gap:8px;font-size:14px}.log-heading .icon{width:18px;height:18px;color:#6b95ae}.log-heading>span{font-size:11px;color:#536f7e}.log{max-height:180px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.log-entry{display:flex;align-items:center;gap:9px;border-bottom:1px solid #e0eaf0;padding:9px 0;font-size:11px}.log-entry time{flex-shrink:0;color:#536f7e;font-size:11px;font-variant-numeric:tabular-nums}.log-entry .log-dot{width:5px;height:5px;border-radius:50%;background:#91b5cc;flex-shrink:0}.log-entry small{margin-left:auto;white-space:nowrap;color:#536f7e;font-size:11px}.log-empty{color:#536f7e;font-size:11px;padding:0 0 20px;grid-column:1/-1}footer{max-width:1140px;margin:auto;display:flex;justify-content:space-between;gap:15px;padding:28px 36px 24px;color:#536f7e;font-size:11px}footer>span:first-child{font-weight:600;letter-spacing:.08em}
dialog{border:0;border-radius:20px;background:var(--paper);color:var(--ink);padding:25px;width:min(460px,calc(100% - 32px));max-height:85dvh;box-shadow:0 16px 70px #28485930}dialog::backdrop{background:#2b506355;backdrop-filter:blur(5px)}dialog[open]{animation:dialog-in .3s var(--ease)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:15px}.dialog-heading h2{font-size:22px}.dialog-heading .icon-button{margin:-5px -5px 0 0}.dialog-description{font-size:13px;color:#536f7e;margin-bottom:24px;line-height:1.85}.dialog-actions{display:flex;gap:12px;justify-content:flex-end}.dialog-actions .primary-button{width:auto}.rules-list p{font-size:12px;line-height:1.8;margin-bottom:18px;color:#536f7e}.rules-list b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}.full{margin-top:24px}.invite-description{font-size:12px;color:#536f7e;margin-bottom:18px;line-height:1.8}.room-name-input{display:block;width:100%;background:white;border:1px solid #cee0eb;border-radius:9px;padding:11px 12px;margin:7px 0 15px}.invite-content-label{font-size:12px;font-weight:600}.join-section{border-top:1px solid #dae6ed;margin-top:24px;padding-top:20px}.join-row{display:flex;gap:10px;margin-top:10px}.join-row input{width:100%;flex:1;min-width:0;background:#fff;border:1px solid #cee0eb;border-radius:9px;padding:10px;text-transform:uppercase}.join-row .secondary-button{white-space:nowrap}.invite-row{display:flex;align-items:center;gap:12px;margin:11px 0;padding:11px 0;border-bottom:1px solid #e1eaf0}.invite-row .invite-role{flex:1}.invite-role b{display:block;font-size:13px}.invite-role small{font-size:11px;color:#536f7e}.room-code-box{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#e7f2fa;border-radius:12px;margin-bottom:20px}.room-code-box b{font-size:24px;letter-spacing:.12em;font-variant-numeric:tabular-nums}.room-code-box span{font-size:11px;color:#536f7e}.invite-warning{font-size:11px;color:#536f7e;margin-top:17px;line-height:1.8}.leave-button{display:block;margin:21px auto 0}.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:20;background:#335463;color:#fff;padding:12px 20px;border-radius:12px;font-size:12px;box-shadow:0 6px 25px #28485925;max-width:calc(100% - 32px);width:max-content;text-align:center;animation:toast-in .25s var(--ease)}
.track-cell{transition:fill .3s,opacity .3s}.lane-cell{stroke:#fffdf8;stroke-width:3}.board-airport{stroke-width:1.2}.airport-note{font-size:11px;fill:#536f7e;text-anchor:middle}.airport-art{opacity:.96}.airport-inactive .airport-art{opacity:.42}.flight-path{fill:none;stroke-width:2;stroke-dasharray:5 7;opacity:.45}.flight-path.active{opacity:1;stroke-width:3;animation:path-stream 1.4s linear infinite}.flight-label{font-size:11px;font-weight:600;text-anchor:middle}.flower-center{transform-origin:320px 320px;animation:flower-idle 7s ease-in-out infinite}.flower-center.finished{animation:flower-bloom 1s var(--ease)}.plane-piece{cursor:pointer;outline:0}.plane-piece .plane-body{transition:filter .3s}.plane-piece.ready .piece-ring{stroke-width:2;stroke-dasharray:4 4;animation:path-stream 3s linear infinite}.piece-ring{fill:white;stroke-width:1.2}.piece-active{filter:drop-shadow(0 3px 3px #33546322)}.finish-badge{font-size:11px;fill:white;text-anchor:middle;font-weight:700}.route-highlight{fill:#fff;opacity:.55;pointer-events:none}.board-airport.selected{stroke-width:2.5}.board-shell:fullscreen{border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--sky)}.board-shell:fullscreen .board-wrap{width:min(85vh,95vw);margin:0}.board-shell:fullscreen .board-top{width:min(85vh,95vw)}.board-shell:fullscreen .board-key{padding:10px}.no-motion *,.no-motion *:before,.no-motion *:after{animation:none!important;scroll-behavior:auto!important}
@keyframes dice-tumble{0%{transform:rotate(-12deg) translateY(0)}15%{transform:rotate(110deg) translate(8px,-19px) scale(.9)}34%{transform:rotate(230deg) translate(-5px,6px) scale(1.06)}52%{transform:rotate(400deg) translate(8px,-22px) scale(.9)}70%{transform:rotate(620deg) translate(-4px,-10px)}88%{transform:rotate(718deg) translateY(3px)}100%{transform:rotate(708deg)}}@keyframes dice-land{0%{transform:rotate(-12deg) scale(.92)}42%{transform:rotate(-5deg) scale(1.08)}100%{transform:rotate(-12deg)}}@keyframes choice-breathe{50%{box-shadow:0 0 0 3px var(--color)}}@keyframes stamp-in{from{transform:scale(.4)}to{transform:scale(1)}}@keyframes dialog-in{from{transform:translateY(12px) scale(.98)}to{transform:translateY(0) scale(1)}}@keyframes toast-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes path-stream{to{stroke-dashoffset:-24}}@keyframes flower-idle{50%{transform:rotate(8deg) scale(1.035)}}@keyframes flower-bloom{40%{transform:rotate(35deg) scale(1.5)}100%{transform:rotate(0deg) scale(1)}}
@media(min-width:1450px){.workspace{column-gap:46px}.board-heading{margin-bottom:20px}.control-column{margin-top:21px}}@media(max-width:1050px){.topbar{padding:14px 24px}.workspace{padding:12px 24px 0;grid-template-columns:minmax(0,1fr) 305px;gap:22px}.control-column{padding:20px}.board-heading{flex-wrap:wrap;gap:7px}h1{font-size:25px}.room-tag{padding:4px 8px;font-size:11px}.board-key{gap:13px;font-size:11px}.board-key .icon{width:13px;height:13px}.board-caption{font-size:11px}footer{padding:25px 24px}.board-top{padding:13px 17px 0}.flight-note{font-size:11px}}@media(max-width:760px){.topbar{padding:12px 18px;gap:8px}.brand{gap:9px}.brand-mark{width:37px;height:37px;border-radius:12px}.brand strong{font-size:17px}.brand small{font-size:11px}.top-actions{gap:3px}.top-actions>.text-button>span:last-child{display:none}.top-actions>.text-button{width:31px;padding:6px}.icon-button{width:30px;height:30px}.invite-button{font-size:11px;padding:7px 9px;gap:5px}.invite-button .icon{width:15px;height:15px}.top-actions #motion-button{display:none}.workspace{padding:9px 14px 0;grid-template-columns:1fr;gap:22px}.board-heading{min-height:59px;margin-bottom:12px;flex-wrap:nowrap}.board-heading p{font-size:11px;margin-top:4px}h1{font-size:23px}.room-tag{font-size:11px;padding:5px 7px}.board-shell{border-radius:18px}.board-top{padding:10px 16px 0}.board-title{font-size:11px}.board-wrap{margin:-6px 2px 0}.board-caption{font-size:11px;bottom:2.5%;padding:3px 8px}.board-key{font-size:11px;gap:15px;padding:8px 9px 15px}.flight-note{padding-top:11px;font-size:11px}.control-column{margin-top:0;padding:21px;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.control-title{grid-column:1/-1;padding-bottom:18px}.crew-section{grid-column:1/-1}.fleet{gap:9px}.plane-choice{padding:9px 2px 8px;display:flex;align-items:center;justify-content:center;gap:3px}.plane-choice .plane-mini{width:29px;height:28px;margin:0}.plane-choice span{font-size:11px;margin:0}.help{margin-top:9px;font-size:11px}.dice-section{grid-column:1/-1;border-bottom:1px solid #edf1f3;display:grid;grid-template-columns:112px 1fr;gap:0 16px;align-items:center;padding:11px 0 20px;margin-bottom:0}.dice-sky{height:116px;grid-row:1/4;grid-column:1}.dice-sky:before{inset:8px 0}.dice{height:67px;width:67px;border-radius:16px}.dice-face{padding:14px;gap:7px}.star-a{left:2px;top:12px;transform:scale(.75)}.star-b{right:0;bottom:17px}.dice-shadow{bottom:0}.dice-result{grid-column:2;font-size:11px;text-align:left;margin:0 0 8px;min-height:0;align-self:end}.primary-button{min-height:43px;font-size:13px}.dice-footnote{grid-column:2;text-align:left;margin-top:9px;font-size:11px;align-self:start}.red-section{grid-column:1/-1;border-top:0;padding:20px 0 18px}.red-entry input{width:76px}.red-entry button{max-width:none}.red-section .section-heading{margin-bottom:10px}.red-progress{font-size:11px}.custom-section{grid-column:1/-1;padding:15px 0 3px}.control-bottom{grid-column:1/-1;padding-top:10px}.presence,.connection-banner{grid-column:1/-1}.log-section{grid-column:1}.log{grid-template-columns:1fr;max-height:170px}.log-heading>span{font-size:11px}.log-entry{font-size:11px}footer{font-size:11px;padding:23px 18px}.toast{bottom:21px}dialog{padding:22px}.dialog-heading h2{font-size:21px}}
@media(max-width:370px){h1{font-size:20px}.brand small{display:none}.brand strong{font-size:15px}.invite-button{padding:7px}.topbar{padding-inline:12px}.workspace{padding-inline:10px}.board-key{gap:10px;font-size:11px}.control-column{padding:18px}.plane-choice{gap:0}.plane-choice .plane-mini{width:25px}.dice-section{grid-template-columns:100px 1fr;gap:0 10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
.plane-piece:focus-visible .piece-ring{stroke:var(--ink);stroke-width:3.5;stroke-dasharray:none;filter:drop-shadow(0 2px 3px #33546333)}

/* Club identity and live flight information. */
.site-header{background:#ffffffed;box-shadow:0 1px 0 #d9e7ed;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.brand-copy{display:flex;align-items:center;gap:10px;min-height:0}
.brand-divider{color:#9e6c83}
.brand strong{font-size:22px;letter-spacing:.06em}
.brand small{letter-spacing:.055em;font-size:11px}.brand-copy small{margin-top:0}
.brand-mark{background:var(--paper);color:#cc7d99;border:1px solid #e9c5d3;transform:none;overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.workspace{row-gap:22px}
.club-banner{min-height:207px;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 32px;background:#dceefa;border-radius:var(--radius);position:relative;overflow:hidden}
.banner-copy{position:relative;z-index:1;max-width:56%}
.banner-copy h1{font-size:48px;font-weight:900;line-height:1.25;letter-spacing:.03em;display:flex;align-items:center;gap:8px}
.banner-copy h1>span{color:var(--ink)}
.banner-copy h1 em{font-style:normal;color:var(--blue-dark)}
.banner-copy h1>i{color:#a64c6b;transform:rotate(12deg);margin-left:3px}
.banner-copy h1 .icon{width:33px;height:33px}
.banner-copy>p{font-size:12px;margin-top:10px;color:var(--ink);letter-spacing:.035em}
.banner-rules{display:flex;align-items:center;gap:20px;margin-top:16px;color:#3b6a87;font-size:11px}
.banner-link{display:inline-flex;align-items:center;gap:6px;color:#9d4264;text-underline-offset:4px}.banner-link:hover{text-decoration:underline}
.banner-rules .icon{width:15px;height:15px}
.banner-poster{display:block;position:absolute;inset:0 0 0 auto;width:40%;height:100%;line-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%);mask-image:linear-gradient(90deg,transparent,#000 24%)}
.banner-poster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}

.pilot-sprite{display:block;background-image:url('./assets/pilots.png');background-size:200% 200%;background-repeat:no-repeat;flex-shrink:0}
.yellow-pilot{background-position:0 0}.green-pilot{background-position:100% 0}.blue-pilot{background-position:0 100%}.pink-pilot{background-position:100% 100%}
.board-heading{min-height:52px;margin-bottom:12px}
.board-heading h2{font-size:20px;letter-spacing:.015em}
.board-heading p{font-size:11px;margin-top:4px}
.board-shell{border-radius:var(--radius);position:relative;box-shadow:0 9px 28px #53768a12}
.board-shell:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--pink) 0 25%,var(--blue) 25% 50%,var(--green) 50% 75%,var(--yellow) 75% 100%)}
.board-top{padding-top:17px;gap:8px}
.flight-stage{font-size:11px;margin-left:auto;margin-right:8px;padding:3px 9px;background:#e9f3fa;color:var(--blue-dark);border-radius:6px}
.flight-stage.stage-complete{background:#daf0e3;color:#396e58}
.board-key{gap:30px;padding:9px 16px 20px}
.board-key>span{gap:10px}
.board-key b,.board-key small{display:block;font-size:11px}
.board-key b{font-weight:650;color:var(--ink);margin-bottom:2px}
.board-key small{color:var(--muted)}
.board-key .key-dot{width:12px;height:12px}
.board-key .icon{width:20px;height:20px}
.board-key .key-dash{width:22px}
.control-column{margin-top:0;padding-top:0;overflow:hidden}
.control-title{padding:17px 24px;margin:0 -24px 17px;background:#dceefa}
.control-title h2{font-size:18px}
.role-tag{background:var(--paper);padding:4px 10px}
.turn-flow{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 0 22px;position:relative}
.turn-flow:before{content:'';position:absolute;left:13%;right:13%;height:1px;background:var(--line);top:15px}
.turn-flow li{display:flex;align-items:center;flex-direction:column;gap:6px;color:var(--muted);position:relative}
.turn-flow li>[data-icon]{width:30px;height:30px;border-radius:50%;background:#f6f9fb;border:1px solid var(--line)}
.turn-flow .icon{width:15px;height:15px}
.turn-flow small{font-size:11px;white-space:nowrap}
.turn-flow li.is-current{color:var(--blue-dark);font-weight:650}
.turn-flow li.is-current>[data-icon]{background:var(--blue-dark);color:#fff;border-color:var(--blue-dark)}
.turn-flow li.is-past>[data-icon]{background:#daf0e3;color:#396e58;border-color:#b9dcca}
.crew-section{padding-top:2px}
.dice-sky:before{background:#edf6fc}
.red-section{padding-bottom:20px}
.flight-progress-section{grid-column:1;margin-top:0}
.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.progress-heading h2{font-size:14px;display:flex;align-items:center;gap:7px}
.progress-heading .icon{width:17px;height:17px;color:var(--blue-dark)}
.progress-heading>span{font-size:11px;color:var(--muted)}
.fleet-progress{background:var(--paper);padding:4px 18px;border-radius:var(--radius)}
.progress-row{display:flex;align-items:center;gap:12px;padding:12px 0;min-width:0}
.progress-row+.progress-row{border-top:1px solid #edf1f3}
.progress-row>.pilot-sprite{width:51px;height:51px}
.progress-info{flex:1;min-width:0;padding-right:8px}
.progress-info>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.progress-info b{font-size:12px;font-weight:650;white-space:nowrap}
.progress-info>div>span{font-size:11px;color:var(--muted);text-align:right}
.progress-route{height:5px;background:var(--light);border-radius:5px;position:relative;margin:0 6px 3px 0}
.progress-route>i{display:block;width:100%;height:100%;border-radius:5px;background:var(--color);transform-origin:left;transition:transform .7s var(--ease)}
.progress-route>span{position:absolute;top:-7px;margin-left:-9px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:var(--blue-dark);background:var(--paper);transition:left .7s var(--ease)}
.progress-route .icon{width:16px;height:16px}
.progress-inactive>.pilot-sprite{opacity:.38}
.progress-inactive .progress-route>span{display:none}
.progress-inactive .progress-info b{font-weight:400;color:var(--muted)}
.progress-inactive .progress-route{background:#edf1f3}
.log-section{padding-top:18px}
footer>span{display:flex;align-items:center;gap:8px}
.footer-colors{display:block;width:32px;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--pink) 0 25%,var(--blue) 25% 50%,var(--green) 50% 75%,var(--yellow) 75% 100%)}
@media(max-width:1050px){.club-banner{min-height:170px;padding:23px 25px}.banner-copy h1{font-size:42px}.control-title{padding-inline:20px;margin-inline:-20px}.board-key{gap:16px}}
@media(max-width:760px){.brand-copy{display:block;min-height:0}.brand-copy small{margin-top:2px}.brand-divider{display:none}.brand strong{font-size:18px}.brand small{font-size:11px;letter-spacing:.025em}.club-banner{padding:22px 20px;min-height:164px;gap:18px;flex-direction:column;align-items:stretch}.banner-copy h1{font-size:35px;gap:3px;letter-spacing:.01em}.banner-copy h1 .icon{width:23px;height:23px}.banner-copy h1>i{margin-left:3px}.banner-copy>p{font-size:11px;max-width:230px;line-height:1.8;margin-top:8px}.banner-rules{gap:11px;margin-top:15px;flex-wrap:wrap}.banner-rules .icon{width:13px;height:13px}.banner-poster{position:static;inset:auto;width:100%;height:auto;-webkit-mask-image:none;mask-image:none}.banner-poster img{height:auto;object-fit:contain;border-radius:10px;box-shadow:0 6px 18px #52718d1a}.banner-copy{padding-right:0;max-width:none}.board-heading{min-height:48px;margin-bottom:11px}.board-heading h2{font-size:18px}.board-heading p{font-size:11px;max-width:220px}.board-top{padding-top:15px}.flight-stage{font-size:11px;padding:3px 6px;margin-right:0}.board-key{gap:17px;padding:10px 9px 16px}.board-key>span{gap:5px}.board-key .key-dot{width:9px;height:9px}.board-key .key-dash{width:13px}.board-key .icon{width:16px;height:16px}.board-key small{font-size:11px}.control-column{padding-top:0;gap:0 22px}.control-title{padding:17px 21px;margin:0 -21px 19px}.turn-flow{grid-column:1/-1;margin-bottom:20px}.crew-section{padding-top:0}.progress-heading{gap:7px}.progress-heading>span{font-size:11px}.fleet-progress{padding-inline:14px}.progress-row{gap:8px}.progress-row>.pilot-sprite{width:42px;height:42px}.progress-info>div:first-child{gap:6px}.progress-info>div>span{font-size:11px}.progress-info b{font-size:11px}.flight-note{padding-inline:2px}.log-heading>span{font-size:11px}footer{flex-wrap:wrap;gap:8px;padding-bottom:22px;font-size:11px}}
@media(max-width:370px){.brand strong{font-size:17px}.club-banner{padding:21px 17px}.banner-copy h1{font-size:32px}.banner-rules{gap:9px}.board-heading p{font-size:11px}.flight-stage{padding-inline:5px}.board-key{gap:12px}.board-key b,.board-key small{font-size:11px}.control-title{padding-inline:18px;margin-inline:-18px}.progress-heading>span{font-size:11px}}

/* Blue-white club surfaces, with flight colours reserved for the map and fleet. */
:root{
  --ink:#203e58;--muted:#50677c;--blue:#76b5e4;--blue-dark:#2365a2;
  --sky:#f3f7fc;--paper:#fff;--line:#dce7f1;
  --surface-soft:#f0f6fc;--surface-active:#e5f0fb;
  --glass-surface:#ffffffed;--glass-paper:#fffffff5;--glass-edge:#fff;
  --glass-blur:16px;--glass-shadow:0 10px 32px #264f7810,inset 0 1px 0 #fff;
  --vortex-base:#f4f9ff;--vortex-soft:#b6d9f5;--vortex-deep:#559bd5;
}
body{background:var(--vortex-base);isolation:isolate}
.vortex-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#fff 0,transparent 50%),radial-gradient(ellipse at 5% 72%,#d2e8fb,transparent 70%),var(--vortex-base)}
#vortex-background{display:block;width:100%;height:100%;pointer-events:none}
#vortex-background[hidden]{display:none}
#pointer-effects{position:fixed;inset:0;z-index:25;pointer-events:none;overflow:hidden;contain:strict}
#pointer-effects>i{position:absolute;display:block;pointer-events:none}
.cursor-spark{width:5px;height:5px;margin:-2.5px;border-radius:50%;background:var(--vortex-deep);box-shadow:0 0 7px #76b5e46b}
.cursor-star{width:10px;height:10px;margin:-5px;background:var(--vortex-deep);clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%)}
.cursor-ripple{width:64px;height:64px;margin:-32px;border:1.5px solid #559bd5aa;border-radius:50%;background:radial-gradient(circle,transparent 48%,#b6d9f52e 75%,transparent);box-shadow:0 0 12px #b6d9f52e}
.site-header{background:#ffffffed;box-shadow:0 1px 0 var(--line)}
.brand-divider{color:#a0b8cc}.brand-mark{border-color:#d6e5f3;background:#fff}
.top-actions{gap:12px}.top-actions>.text-button{min-height:44px}
.preferences{display:flex;gap:8px;padding-left:12px;border-left:1px solid var(--line)}
.preference-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;font-size:12px;background:#fff;color:var(--muted);white-space:nowrap}
.preference-button .icon{width:16px;height:16px}.toggle-value{font-size:11px;line-height:20px;min-width:22px;border-radius:5px;background:#eaf0f5;color:#536b7f;text-align:center}
.preference-button[aria-pressed=true]{border-color:#a6caeb;background:#f0f7ff;color:var(--blue-dark)}
.preference-button[aria-pressed=true] .toggle-value{background:var(--blue-dark);color:#fff}
.preference-button:hover{border-color:#7caed8;background:#eaf4ff}.invite-button{min-height:44px;background:#fff;border-color:#aacbe8}
.club-banner{background:linear-gradient(105deg,#fff,#eff7ff 65%,#e5f1fe);box-shadow:var(--glass-shadow);border:1px solid #fff;padding-block:22px}
.banner-copy h1{font-size:44px;font-weight:700;letter-spacing:.015em;gap:10px}.banner-copy h1 em{color:var(--blue-dark)}
.banner-copy>p{font-size:12px;letter-spacing:.01em;margin-top:9px;color:var(--muted)}
.banner-rules{margin-top:15px}.banner-link{min-height:36px;padding:0 12px;border:1px solid #aeccea;border-radius:8px;background:#ffffffa3;color:var(--blue-dark);gap:8px;font-size:12px}
.banner-link:hover{background:#fff;text-decoration:none;border-color:#6e9fc9}.banner-link .icon:last-child{margin-left:8px}
.banner-poster{padding:0;cursor:zoom-in}.banner-poster:not(:disabled):active{transform:none}
.banner-poster img,.poster-viewport img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.board-heading h2,.progress-heading h2,.log-heading h2{color:var(--ink)}
.board-shell{background:var(--glass-paper);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--glass-shadow)}
.board-shell:before{background:var(--blue-dark);height:3px;opacity:.65}
.board-key .icon{color:var(--blue-dark)}.key-dot{background:var(--blue)}
.flight-note{padding:16px 12px 0;font-size:12px;color:var(--muted)}
.flight-note>[data-icon] .icon{color:var(--blue-dark)}.note-cloud .icon{color:#97bbdb!important}
.control-column{background:var(--glass-surface);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);padding-bottom:18px}
.control-title{background:linear-gradient(120deg,#f3f8ff,#e8f2fc);border-bottom:1px solid var(--line);padding-block:18px;margin-bottom:20px}
.control-title h2{font-size:19px}.role-tag{background:#fff;color:var(--blue-dark);border:1px solid #c6dcf0;border-radius:7px}
.turn-flow li.is-past>[data-icon]{background:#edf5ff;color:var(--blue-dark);border-color:#b9d5ed}
.turn-flow small{font-size:11px}.section-heading h3{font-size:14px}.section-heading>span{font-size:12px}
.plane-choice{border:1px solid #e1e9f0;background:#f5f8fc;box-shadow:inset 0 1px 0 #fff}
.plane-choice.active{border-color:var(--color);background:linear-gradient(150deg,#ffffff80,transparent),var(--light)}
.help,.dice-footnote{font-size:12px;line-height:1.65}.dice-footnote{text-wrap:balance}.dice-section{padding-bottom:20px}
.dice-sky:before{background:radial-gradient(ellipse at 50% 25%,#fff,#e8f3ff);box-shadow:inset 0 1px 0 #fff}
.dice{background:linear-gradient(145deg,#fff,#fff 50%,#edf5fc);box-shadow:inset 0 0 0 1px #fff,0 5px 0 #d3e4f3,0 15px 22px #38638c24}
.star-a{color:#82b4dd}.dice-result{font-size:13px;color:var(--muted)}.dice-result b{color:var(--blue-dark);font-size:18px}
.primary-button:not(:disabled){background:linear-gradient(180deg,#3279b8,#2365a2);box-shadow:inset 0 1px 0 #ffffff35,0 4px 10px #2365a222}
.primary-button:hover:not(:disabled){background:linear-gradient(180deg,#286da9,#195a94)}
.primary-button:disabled{background:#dce7f0;color:#59758b;opacity:1;box-shadow:none}
.red-section{padding-top:20px;padding-bottom:20px;border-color:var(--line)}
.red-total{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--surface-soft);border-radius:6px;font-variant-numeric:tabular-nums}
.red-total b{color:var(--blue-dark);font-size:14px}.red-total>span{font-size:11px}
.red-entry{gap:9px}.red-entry input{width:64px;height:44px;border-color:#bfd5e8;background:#fff;font-size:20px;box-shadow:inset 0 2px 3px #294e7108}
.red-entry>span,.custom-row>span{font-size:12px}
.secondary-button{min-height:44px;background:#f5f9fe;border-color:#b9d2e7;color:var(--blue-dark);box-shadow:inset 0 1px 0 #fff;font-size:12px}
.secondary-button:hover:not(:disabled){background:#e6f1fc;border-color:#92b9db}
.red-entry .secondary-button{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff;padding-inline:14px;box-shadow:0 3px 8px #2365a217}
.red-entry .secondary-button:hover:not(:disabled){background:#195a94}
.red-progress{font-size:12px;gap:8px;margin-top:14px;line-height:1.6}.red-stamp{width:14px;height:14px;background:#edf4fa;border-color:#c5d7e7}.red-stamp.filled{background:#4389c4;border-color:#2d72ad}
.custom-section{padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.custom-section summary{min-height:50px;gap:10px;color:var(--ink)}
.custom-icon{width:34px;height:34px;border-radius:9px;background:var(--surface-soft);color:var(--blue-dark)}
.custom-section summary b{display:block;font-size:12px;font-weight:600}.custom-section summary small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.custom-section summary:hover{color:var(--blue-dark)}.custom-content{padding:0 0 16px}.custom-content p{font-size:12px;line-height:1.65;margin-bottom:10px}
.custom-row input{height:44px;width:64px;border-color:#bfd5e8;background:#fff;font-weight:600;font-size:18px}
.control-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 0;border:0}
.control-bottom .text-button{min-height:44px;border:1px solid #c0d4e6;border-radius:9px;padding:0 10px;font-size:12px;background:#fff;color:var(--blue-dark)}
.control-bottom .text-button:hover:not(:disabled){background:var(--surface-soft);border-color:#90b7d9}
.control-bottom .text-button:disabled{color:#6c8295;opacity:.6;background:#f6f9fc}
.presence{font-size:12px;line-height:1.65;background:var(--surface-soft);padding:10px 11px;border-radius:8px;gap:7px;flex-wrap:nowrap}
.presence .icon{width:16px;height:16px;color:var(--blue-dark)}
.progress-heading{align-items:center;margin-bottom:14px}.progress-heading h2,.log-heading h2{font-size:17px;gap:9px}
.progress-heading>span{font-size:12px;color:var(--blue-dark);padding:4px 9px;border:1px solid #ccdeef;background:#ffffffa3;border-radius:6px}
.fleet-progress{background:var(--glass-surface);box-shadow:var(--glass-shadow);padding:4px 20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.progress-row{padding:16px 0;gap:14px}.progress-row+.progress-row{border-color:var(--line)}
.progress-info>div:first-child{margin-bottom:13px}.progress-info b{font-size:13px}.progress-info>div>span{font-size:12px;color:var(--muted)}
.progress-route{height:6px;background:#edf3f9;border-radius:6px}.progress-route>i{background:var(--color)}
.progress-route>span{background:#fff;box-shadow:0 0 0 3px #fff;border-radius:50%;color:var(--blue-dark)}
.log-section{padding-top:23px;border-color:#cfdeed}.log-heading>span{font-size:12px}
.log-entry{font-size:12px;padding:12px 0;border-color:var(--line)}.log-empty{font-size:12px;line-height:1.7;color:var(--muted)}
footer{margin-top:24px;padding-top:22px;padding-bottom:24px;position:relative;align-items:center;color:var(--muted);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px}
footer:before{content:'';position:absolute;top:0;left:36px;right:36px;border-top:1px solid #cfdeed}
.footer-brand{display:flex;align-items:center;gap:10px}.footer-emblem{width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden;flex-shrink:0}
.footer-emblem img{display:block;width:100%;height:100%;object-fit:contain}.footer-brand b{display:block;font-size:12px;font-weight:600;color:var(--ink)}
.footer-brand b i{font-style:normal;color:var(--muted);padding-inline:3px}.footer-brand small{display:block;font-size:11px;letter-spacing:.1em;margin-top:3px}
.footer-disclaimer{font-size:12px;text-align:center}.footer-credit{font-size:11px;text-align:right;justify-self:end;line-height:1.7;text-wrap:balance}
dialog{background:#fffffff5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 80px #16395c35,inset 0 1px 0 #fff}
dialog::backdrop{background:#18395780;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.dialog-heading .icon-button{min-width:44px;height:44px}.poster-dialog{width:min(1200px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:20px;border-radius:18px;overflow:hidden}
.poster-dialog .dialog-heading{margin:0 0 16px;align-items:center}.poster-dialog h2{font-size:21px}
.poster-viewport{height:min(64dvh,640px);background:#edf3fa;border:1px solid #d6e3ef;border-radius:10px;overflow:auto;padding:16px;overscroll-behavior:contain;outline-offset:2px;display:flex;align-items:flex-start}
.poster-viewport img{display:block;max-width:none;flex-shrink:0;height:auto;margin:auto;box-shadow:0 8px 28px #203e5818}
.poster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;color:var(--muted)}
.poster-zoom{display:flex;align-items:center;gap:8px}.poster-zoom .icon-button{width:44px;height:44px;border:1px solid #c1d8eb;background:#fff;color:var(--blue-dark)}
.poster-zoom output{width:44px;text-align:center;font-variant-numeric:tabular-nums;color:var(--ink)}
.poster-zoom .secondary-button{margin-left:4px}
.no-motion *,.no-motion *:before,.no-motion *:after{transition:none!important}
@media(max-width:1050px){
  .top-actions{gap:8px}.top-actions>.text-button>span:last-child{display:none}.top-actions>.text-button{min-width:44px}.preferences{padding-left:8px}.brand-copy small,.brand-divider{display:none}
  .banner-copy h1{font-size:38px}.club-banner{padding-block:20px}.banner-rules{margin-top:12px}
  .red-progress{font-size:11px}.red-total{padding-inline:6px}.red-section .section-heading h3{font-size:13px}
  footer{gap:16px}footer:before{left:24px;right:24px}
}
@media(max-width:760px){
  .topbar{flex-wrap:wrap;gap:8px;padding:12px 18px}.brand{gap:9px;margin-right:auto}.brand strong{font-size:18px}.brand-copy small{display:block;font-size:11px}
  .top-actions{display:contents}.top-actions>.text-button{width:44px;height:44px;padding:0}.top-actions #motion-button{display:inline-flex}
  .preferences{order:4;flex-basis:100%;border-left:0;border-top:1px solid #e7eef6;padding:8px 0 0;justify-content:flex-end;gap:8px}
  .preference-button{min-height:44px;min-width:102px}.topbar>.brand{order:0}.top-actions>.text-button{order:1}.top-actions>.invite-button{order:2;padding-inline:10px;font-size:11px;gap:5px}
  .invite-button .icon{width:17px;height:17px}.club-banner{padding:22px 20px;gap:18px}.banner-copy h1{font-size:35px}.banner-copy>p{max-width:none;font-size:12px}
  .banner-rules{margin-top:14px}.banner-link{min-height:44px}.banner-poster{line-height:0}.banner-poster img{box-shadow:none;border-radius:8px}
  .flight-note{font-size:11px;padding-inline:4px}.control-column{padding-bottom:18px;gap:0 22px}.control-title{padding-block:17px;margin-bottom:20px}
  .red-section{padding-block:18px}.red-progress{font-size:12px}.red-section .section-heading h3{font-size:14px}
  .custom-section summary{min-height:50px}.custom-content{padding-bottom:16px}.control-bottom{padding-block:16px}.presence{grid-column:1/-1;padding:10px 12px}
  .progress-heading{flex-wrap:wrap;gap:8px}.progress-heading h2{font-size:16px}.progress-heading>span{font-size:11px;padding:3px 7px}
  .fleet-progress{padding-inline:16px}.progress-row{padding-block:15px;gap:10px}.progress-info b{font-size:12px}.progress-info>div>span{font-size:11px}
  .log-heading{gap:12px}.log-heading h2{font-size:16px}.log-heading>span{font-size:11px}.log-entry{font-size:11px}
  footer{gap:12px;margin-top:18px;grid-template-columns:1fr;text-align:center}.footer-brand{justify-self:center}.footer-credit{justify-self:center;text-align:center}.footer-brand small{font-size:11px}footer:before{left:18px;right:18px}
  .poster-dialog{width:calc(100% - 24px);padding:16px;max-height:calc(100dvh - 24px);border-radius:14px}
  .poster-viewport{height:55dvh;padding:16px}.poster-dialog .dialog-heading{margin-bottom:12px}.poster-dialog h2{font-size:19px}
  .poster-toolbar{justify-content:center;margin-top:12px}.poster-toolbar>span{display:none}.poster-zoom{gap:8px}.poster-zoom .secondary-button{padding-inline:12px;margin-left:0}
}
@media(max-width:370px){
  .topbar{padding-inline:12px;gap:6px}.brand strong{font-size:17px}.brand-copy small{display:none}.brand-mark{width:34px;height:34px}
  .top-actions>.invite-button{padding-inline:8px}.banner-copy h1{font-size:32px}.club-banner{padding-inline:17px}
  .progress-heading>span{font-size:11px}footer:before{left:16px;right:16px}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.control-column,.fleet-progress,.board-shell,dialog{background:#fff}}
@media(prefers-reduced-transparency:reduce){.control-column,.fleet-progress,.board-shell,dialog{background:#fff}.site-header{background:#fff}.control-column,.fleet-progress,.board-shell,dialog,dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}

/* A native SVG fallback keeps the plane available in dialogs and without JS. */
.room-tools{border-top:1px solid var(--line);padding-top:16px;margin-top:12px;grid-column:1/-1}
.room-tag[aria-disabled="true"]{pointer-events:none;opacity:.65}
.room-tools p{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 10px}
.room-tools>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}
.room-tools button{min-height:44px;font-size:12px}
#invite-dialog,#share-dialog,#archive-dialog,#invitation-dialog{width:min(500px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:26px;overscroll-behavior:contain}
#invite-dialog .dialog-heading h2,#share-dialog .dialog-heading h2,#archive-dialog .dialog-heading h2,#invitation-dialog .dialog-heading h2{font-size:23px}
.invite-row{gap:16px;padding:16px 0;align-items:center}
.invite-role{min-width:0}.invite-role b{font-size:15px}.invite-role small{font-size:12px;line-height:1.6;margin-top:5px}
.invite-row>button{flex-shrink:0;min-width:72px;min-height:44px;padding:10px 15px;font-size:13px}
.share-note{font-size:12px;color:var(--muted);line-height:1.8;margin:10px 0 16px}
.invite-content-label{display:block;font-size:12px;font-weight:600;margin:14px 0 8px}
.room-name-input{width:100%;min-height:46px;font-size:14px;margin-bottom:0}
select.room-name-input{appearance:auto;color:var(--ink);background:#f7fbff}
#create-room,#join-room{width:100%;margin-top:14px;min-height:46px}
.join-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.join-section h3{font-size:15px;margin:0}.join-section .share-note{margin:8px 0 12px}
.switch-room{margin-top:18px;border-radius:12px;background:var(--sky);padding:0 14px}
.switch-room>summary{min-height:48px;font-size:12px;padding:14px 0;cursor:pointer}
.switch-room .join-section{border-top:0;margin-top:0;padding:0 0 16px}
.share-link-field{display:block;width:100%;padding:12px 14px;border:1px solid #c5dced;border-radius:12px;background:#f5faff;color:var(--blue-dark);font:13px/1.7 system-ui,sans-serif;resize:none;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
.share-link-field:focus{outline:2px solid #7ab3e2;outline-offset:2px}
.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.share-actions>button{min-height:46px;justify-content:center;font-size:13px;padding:10px}
.dialog-status{font-size:12px;line-height:1.7;color:var(--blue-dark);min-height:21px;margin:12px 0;overflow-wrap:anywhere}
.dialog-status.status-error{color:#b34858}
.handover-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 14px;background:var(--sky);border-radius:10px;font-size:12px}
.handover-code b{font-family:ui-monospace,monospace;font-size:17px;letter-spacing:.05em;color:var(--blue-dark)}
.wechat-share-link{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border-radius:10px;background:var(--sky);font-size:12px;color:var(--blue-dark);text-decoration:none}
.recent-link{margin-top:15px;min-height:44px;justify-content:center}
.archive-card{padding:16px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#f7fbff}
.archive-card>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}
.archive-card h3{font-size:14px;margin:0}.archive-room-id{font-size:11px;color:var(--blue-dark)}
.archive-card p{font-size:12px;line-height:1.8;margin:8px 0 12px;color:var(--muted)}
.archive-card>button{min-height:44px;width:100%;justify-content:center;font-size:12px}
.archive-section-title{font-size:16px;margin:24px 0 8px}
.record-card{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:0 14px;background:#fff}
.record-card summary{font-size:12px;padding:14px 0;min-height:48px;cursor:pointer}.record-card summary b{color:var(--blue-dark);margin-left:10px}
.record-card p,.record-card ol{font-size:12px;line-height:1.8;color:var(--muted)}.record-card ol{padding-left:20px;max-height:220px;overflow:auto}.record-card li{margin:8px 0}
.invitation-brand{display:flex;align-items:center;gap:12px;font-size:14px;margin:0 0 20px}.invitation-brand img{border-radius:16px;border:1px solid var(--line)}
.wechat-guide{display:flex;gap:12px;border:1px solid #c9e1ef;background:var(--sky);border-radius:14px;padding:16px;margin-bottom:20px}
.wechat-guide>span{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:10px;background:#fff;color:var(--blue-dark)}
.wechat-guide b{font-size:14px}.wechat-guide p{font-size:12px;color:var(--muted);line-height:1.8;margin:6px 0 0}
#copy-invitation,#accept-invitation{justify-content:center;min-height:46px;margin-top:14px;width:100%}
.invitation-back{display:flex;justify-content:center;min-height:44px;margin:12px auto 0;text-decoration:none}
@media(max-width:520px){#invite-dialog,#share-dialog,#archive-dialog,#invitation-dialog{padding:20px}.handover-code b{font-size:15px}.share-actions{gap:8px}.invite-row{gap:12px}.invite-row>button{min-width:64px}.room-tools>div{gap:6px}.room-name-input,.share-link-field{font-size:16px}.share-link-field{min-height:106px}}
#airplane-cursor{position:fixed;left:0;top:0;width:40px;height:40px;z-index:40;pointer-events:none;will-change:transform}
#airplane-cursor img{position:relative;display:block;transform-origin:10px 6px;transition:transform .2s var(--ease),filter .2s}
#airplane-cursor:before{content:'';position:absolute;inset:-4px;border:1px dashed #76bee9;border-radius:50%;background:radial-gradient(circle,#dff3ff80,transparent 70%);opacity:0;transition:opacity .2s}
#airplane-cursor.is-hover:before{opacity:.85;animation:cursor-orbit 3s linear infinite}
#airplane-cursor.is-hover img{transform:rotate(8deg) scale(1.14);filter:drop-shadow(0 3px 4px #368ecb45)}
#airplane-cursor.is-pressed img{transform:rotate(-6deg) scale(.9)}
@keyframes cursor-orbit{to{transform:rotate(360deg)}}
@media(hover:hover) and (pointer:fine){
  body,body :is(button:not(:disabled),a,summary,[role="button"]:not([aria-disabled="true"])){cursor:url('./assets/airplane-cursor.svg') 10 6,auto}
  body.airplane-cursor-active,body.airplane-cursor-active :is(button:not(:disabled),a,summary,[role="button"]:not([aria-disabled="true"])){cursor:none}
  body.airplane-cursor-active dialog,body.airplane-cursor-active dialog :is(button:not(:disabled),a,summary,[role="button"]:not([aria-disabled="true"])){cursor:url('./assets/airplane-cursor.svg') 10 6,auto}
  body :is(input,textarea,[contenteditable="true"]){cursor:text}
  body :is(button:disabled,[aria-disabled="true"]){cursor:not-allowed}
}
@media(hover:none), (pointer:coarse){#airplane-cursor{display:none}}
.no-motion #airplane-cursor img,.no-motion #airplane-cursor:before{transition:none}
@media(prefers-reduced-motion:reduce){#airplane-cursor img,#airplane-cursor:before{transition:none;animation:none}}
