html.flight-open{overflow:hidden}
#loveFlight[hidden]{display:none}
#loveFlight{position:fixed;inset:0;z-index:22000;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 10% 15%,#ffe3e8 0,transparent 55%),radial-gradient(ellipse at 90% 45%,#dfeeff 0,transparent 55%),#fffaf3;color:#53494d;font-family:inherit}
.lf-shell{max-width:520px;margin:auto;padding:max(20px,env(safe-area-inset-top)) 20px max(30px,env(safe-area-inset-bottom));box-sizing:border-box}
#loveFlight button,#loveFlight select,#loveFlight textarea{font:inherit;color:inherit;box-sizing:border-box}
#loveFlight button{border:0;cursor:pointer;transition:transform .2s;background:#ffffffa8;border-radius:18px;padding:12px 16px}
#loveFlight button:active{transform:scale(.95)}
#loveFlight button:disabled{opacity:.5;cursor:default}
#loveFlight header{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
#loveFlight header span{letter-spacing:1.5px;font-size:10px}
.lf-heading{text-align:center;margin:26px 0 0}.lf-heading small{letter-spacing:3px;color:#b5919f;font-size:10px}.lf-heading h1{font-size:27px;letter-spacing:-1px;margin:8px 0}.lf-heading p{font-size:12px;color:#9c8c93;margin:0}
.lf-stage{perspective:900px;padding:32px 0 26px;filter:drop-shadow(0 25px 16px #8c6d8c22)}
.lf-board{position:relative;aspect-ratio:1;transform:rotateX(23deg) rotateZ(-5deg);transform-style:preserve-3d;border-radius:30px;background:linear-gradient(135deg,#fffaf3,#f7e9e1);box-shadow:0 9px 0 #dfc7bc,0 12px 0 #cbb9b4,inset 0 3px 0 #fff;isolation:isolate}
.lf-tile{position:absolute;left:calc(var(--x)*12.5% + 1%);top:calc(var(--y)*12.5% + 1%);width:10.5%;height:10.5%;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:10px;box-shadow:0 4px 0 #ceb9c0;transform:translateZ(5px);font-size:17px;line-height:1}
.lf-tile small{font-size:7px;opacity:.6;margin-top:3px}.lf-tile.t0{background:#f3c9d7;color:#9b6075}.lf-tile.t1{background:#d3e5f8;color:#6485a7;box-shadow:0 4px 0 #b3c5dc}.lf-tile.t2{background:#fff0bd;color:#b08e47;box-shadow:0 4px 0 #dccb9b}.lf-tile.t3{background:#d9e9cf;color:#7a9667;box-shadow:0 4px 0 #becdb3}
.lf-center{position:absolute;inset:20%;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:translateZ(12px);gap:8px}.lf-center b{font-size:18px;color:#b08a9a;letter-spacing:2px}.lf-center small{font-size:9px;color:#aa9b98}.lf-cloud{font-size:38px;color:white;filter:drop-shadow(0 4px 0 #e5d8dc)}
.lf-token{position:absolute;left:calc(var(--x)*12.5% + 1%);top:calc(var(--y)*12.5% - 1%);width:9%;aspect-ratio:1;display:grid;place-items:center;border-radius:50% 50% 40% 40%;background:#ed9ebb;box-shadow:0 5px 0 #b5758d,0 9px 8px #584c4930;transform:translateZ(25px);transition:left .2s ease,top .2s ease;z-index:3;overflow:hidden;color:white}.lf-token img{width:100%;height:100%;object-fit:cover}.lf-token.token1{margin-left:4%;margin-top:4%;background:#9dbce2;box-shadow:0 5px 0 #718fae,0 9px 8px #584c4930}.lf-token.hop{animation:lf-hop .22s ease}
@keyframes lf-hop{50%{transform:translateZ(45px) translateY(-10px) scale(1.08)}}
.lf-dice{width:44px;height:44px;perspective:350px;margin-top:12px}.lf-cube{width:44px;height:44px;position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx,-15deg)) rotateY(var(--ry,-20deg));transition:transform .7s cubic-bezier(.2,.8,.2,1)}.lf-cube i{position:absolute;inset:0;display:grid;place-items:center;background:#fff9f3;border-radius:10px;box-shadow:inset 0 -3px 5px #e0cec5;font-style:normal;font-size:35px;line-height:1;color:#ba7c93;backface-visibility:hidden}.lf-cube .front{transform:translateZ(22px)}.lf-cube .back{transform:rotateY(180deg) translateZ(22px)}.lf-cube .right{transform:rotateY(90deg) translateZ(22px)}.lf-cube .left{transform:rotateY(-90deg) translateZ(22px)}.lf-cube .top{transform:rotateX(90deg) translateZ(22px)}.lf-cube .bottom{transform:rotateX(-90deg) translateZ(22px)}.lf-dice.rolling .lf-cube{animation:lf-roll .8s ease-in-out infinite}@keyframes lf-roll{to{transform:rotateX(705deg) rotateY(700deg)}}
.lf-score{display:flex;justify-content:space-around;gap:12px;font-size:12px;margin:12px 0 22px}.lf-score span{background:#ffffff80;border-radius:20px;padding:10px 16px}.lf-score b{margin-left:8px;color:#aa8999;font-size:11px}
.lf-event{background:#ffffffb8;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:28px;padding:24px;box-shadow:0 10px 40px #ad859712;animation:lf-appear .3s ease}.lf-event small{font-size:9px;letter-spacing:1.5px;color:#aa8c9c}.lf-event h2{font-size:19px;line-height:1.6;font-weight:600;margin:10px 0 18px}.lf-event p{font-size:13px;line-height:1.8}#loveFlight .lf-primary{width:100%;background:linear-gradient(130deg,#edc5d2,#e1d6ef);box-shadow:0 4px 0 #d5bdca;padding:16px;border-radius:22px;font-size:14px;font-weight:600}#loveFlight .lf-secondary{width:100%;margin-top:14px;background:#ffffff80}.lf-event-tools{display:flex;justify-content:space-between;margin-top:12px;font-size:12px}.lf-event textarea{width:100%;min-height:90px;border:0;border-radius:16px;padding:14px;background:#f8f2f5;resize:vertical;margin:0 0 16px;outline-offset:3px}.lf-history{margin-top:22px;font-size:12px;padding:12px}.lf-history p{line-height:1.8;white-space:pre-wrap;padding:12px;background:#ffffff77;border-radius:14px}.lf-note{font-size:12px;line-height:1.8;color:#96848d;white-space:pre-wrap;margin:18px 0}.lf-welcome{text-align:center;margin:50px 0 30px}.lf-welcome>span{font-size:70px;color:#d5a0b6;display:block;filter:drop-shadow(0 8px 0 #e8c8d2)}.lf-welcome h1{font-size:29px}.lf-welcome p{font-size:12px;color:#9d8994}#loveFlight label{display:block;font-size:12px;margin:22px 0}#loveFlight select{display:block;width:100%;border:0;border-radius:18px;padding:16px;background:#ffffffc0;margin-top:10px}.lf-entry{display:flex;align-items:center;gap:16px;width:100%;padding:19px;margin:0 0 18px;border:0;border-radius:24px;background:linear-gradient(120deg,#f9e6eccc,#e9f0ffcc);color:#62525f;text-align:left}.lf-entry>span:first-child{font-size:28px}.lf-entry div{flex:1}.lf-entry b{display:block;font-size:16px}.lf-entry small{display:block;margin-top:6px;font-size:11px;opacity:.65}
@keyframes lf-appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#loveFlight *,#loveFlight *:before{animation:none!important;transition:none!important}}
@media(max-width:350px){.lf-shell{padding-left:12px;padding-right:12px}.lf-center small{font-size:8px}.lf-center b{font-size:14px}.lf-tile{font-size:13px}}
.lf-view-tools{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0 0}#loveFlight .lf-view-tools button{padding:9px 14px;font-size:11px;background:#ffffff8c}.lf-stage{touch-action:none;cursor:grab;overflow:hidden;padding:45px 0 50px;isolation:isolate}.lf-stage:active{cursor:grabbing}.lf-board{will-change:transform;transform-origin:center;transition:none}.lf-token{height:11%;width:8%;overflow:visible;border-radius:45% 45% 22% 22%;background:linear-gradient(110deg,#ffdfed,#d58ca8);box-shadow:0 2px 0 #f9d2e0,0 7px 0 #bf7c98,0 12px 0 #ac6884,0 17px 9px #72596944;transform:translateZ(35px) translateX(var(--stack));display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;transition:left .23s ease,top .23s ease}.lf-token.token1{margin:0;background:linear-gradient(110deg,#e0f1ff,#8cadd5);box-shadow:0 2px 0 #c5dced,0 7px 0 #7c9fbe,0 12px 0 #658cac,0 17px 9px #72596944}.lf-plane{font-size:clamp(18px,5vw,27px);color:#fff;line-height:1;filter:drop-shadow(0 2px 1px #5c345a55);transform:rotate(-25deg) translateZ(10px)}.lf-token small{font-size:8px;line-height:1.4;font-weight:bold}.lf-token:before{content:'';position:absolute;inset:-2px 3px auto;height:6px;border-radius:50%;background:#ffffff70;transform:translateZ(5px)}.lf-center{pointer-events:none;inset:25%;gap:6px}.lf-center b{font-size:13px;letter-spacing:2px;transform:translateZ(20px)}.lf-center small{font-size:7px}.lf-runway{width:90px;height:38px;border-radius:50%;background:repeating-linear-gradient(90deg,#f0dce3 0 12px,#fff9 12px 16px);box-shadow:0 5px 0 #d7bbc6;transform:rotate(-12deg) translateZ(8px);display:grid;place-items:center}.lf-runway span{font-size:40px;color:#fff;text-shadow:0 3px 0 #bfa7b4;transform:rotate(-18deg) translateY(-10px)}.lf-center .lf-cloud{position:absolute;font-size:28px;color:#fff;z-index:-1}.cloud-one{left:-12px;top:12px;transform:translateZ(30px)}.cloud-two{right:-12px;top:40px;transform:translateZ(40px) scale(.7)}.lf-plane-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lf-rules{font-size:11px;color:#a18c98;padding:12px;line-height:1.9}.lf-rules summary{cursor:pointer}.lf-token.hop{animation:lf-tall-hop .24s ease}@keyframes lf-tall-hop{50%{transform:translateZ(55px) translateY(-13px) translateX(var(--stack)) scale(1.06)}}
/* Miniature board: preserve the depth of children instead of flattening the scene. */
.lf-stage{perspective:1100px;filter:none;isolation:auto;padding:48px 12px 58px;background:radial-gradient(ellipse at 50% 83%,#9b79982b 0,transparent 56%)}
.lf-board{isolation:auto;overflow:visible;transform-style:preserve-3d;background:linear-gradient(140deg,#fffdf7,#f5e8dc);box-shadow:0 2px 0 #fff,inset 0 0 0 7px #fff8; border-radius:26px}
.lf-board:after{content:'';position:absolute;inset:0;border-radius:26px;background:#c9b4a7;transform:translateZ(-16px);box-shadow:0 25px 30px #68506325;pointer-events:none}
.lf-board-edge{position:absolute;pointer-events:none;background:linear-gradient(#ecdbce,#cbb4a5);height:16px;backface-visibility:hidden}.edge-front{left:14px;right:14px;bottom:0;transform-origin:bottom;transform:rotateX(-90deg);border-radius:0 0 6px 6px}.edge-right{top:14px;bottom:14px;right:0;width:16px;height:auto;transform-origin:right;transform:rotateY(90deg);background:linear-gradient(90deg,#d6bdad,#eddbca)}
.lf-tile{transform:translateZ(5px);border-radius:9px;background-image:linear-gradient(135deg,#ffffff65,transparent 70%);box-shadow:0 2px 0 #ffffff80,0 5px 0 #c8adb9,0 7px 3px #9e82962b}.lf-tile small{font-size:7px}.lf-tile span{font-weight:600}.lf-center{transform-style:preserve-3d;transform:translateZ(5px);inset:28%;gap:5px}.lf-center b{font-size:10px;letter-spacing:2px}.lf-center small{font-size:6px}.lf-center .lf-dice{transform:translateZ(22px);margin-top:8px;width:36px;height:36px}.lf-center .lf-cube{width:36px;height:36px}.lf-cube i{font-size:29px;border-radius:7px}.lf-cube .front{transform:translateZ(18px)}.lf-cube .back{transform:rotateY(180deg) translateZ(18px)}.lf-cube .right{transform:rotateY(90deg) translateZ(18px)}.lf-cube .left{transform:rotateY(-90deg) translateZ(18px)}.lf-cube .top{transform:rotateX(90deg) translateZ(18px)}.lf-cube .bottom{transform:rotateX(-90deg) translateZ(18px)}
.lf-token,.lf-token.token1{--plane-top:#f7b9d1;--plane-side:#b86386;position:absolute;width:8%;height:11%;margin:0;background:none;box-shadow:none;border-radius:0;overflow:visible;transform:translateZ(8px) translateX(var(--stack));transform-style:preserve-3d;z-index:auto}.lf-token.token1{--plane-top:#b3d8f1;--plane-side:#628daf}.lf-token:before{display:none}
.lf-piece-shadow{position:absolute;inset:12% -12% -10%;border-radius:50%;background:#6d526634;filter:blur(4px);transform:translateZ(1px)}
.lf-piece-base{position:absolute;left:3%;right:3%;bottom:0;height:44%;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,#fff,var(--plane-top));box-shadow:0 2px 0 var(--plane-side),0 4px 0 var(--plane-side),0 6px 0 var(--plane-side),0 8px 0 var(--plane-side);transform:translateZ(10px)}
.lf-aircraft{position:absolute;inset:-12% -13% 12%;transform:translateZ(24px) rotateZ(-24deg);transform-style:preserve-3d}.aircraft-layer{position:absolute;inset:0;transform:translateZ(calc(var(--layer)*1.7px))}.aircraft-layer svg{width:100%;height:100%;overflow:visible;fill:var(--plane-side);stroke:none}.aircraft-layer:last-child svg{fill:var(--plane-top);filter:drop-shadow(-.4px -.6px 0 #fff)}.aircraft-layer .plane-cockpit{fill:#657e91}.aircraft-layer:not(:last-child) .plane-cockpit{display:none}.lf-piece-number{position:absolute;bottom:-4%;left:25%;font-size:8px;line-height:13px;width:13px;height:13px;border-radius:50%;text-align:center;background:#fff;color:var(--plane-side);font-weight:700;transform:translateZ(26px) rotateX(-30deg)}
.lf-terminal{position:relative;width:76px;height:34px;transform-style:preserve-3d;transform:translateZ(8px);margin-bottom:10px}.terminal-wall{position:absolute;inset:0;background:#e1c6d0;border-radius:12px;box-shadow:0 3px 0 #d3b2be,0 6px 0 #c6a1af,0 9px 0 #b98d9e;transform:translateZ(10px)}.terminal-window{position:absolute;left:8px;right:8px;bottom:-2px;height:11px;background:repeating-linear-gradient(90deg,#829dab 0 8px,#ecd9e0 8px 11px);transform:translateZ(16px) rotateX(-25deg)}.terminal-roof{position:absolute;inset:-4px -4px 6px;background:linear-gradient(130deg,#fffef9,#e8d8dd);border-radius:13px;transform:translateZ(24px);box-shadow:0 3px 0 #c8afb9}.lf-terminal>span{position:absolute;inset:0;font-size:8px;letter-spacing:1px;text-align:center;line-height:22px;color:#b28b9c;transform:translateZ(25px)}.lf-runway{height:14px;width:90px;border-radius:5px;background:#b8bbb9;box-shadow:0 2px 0 #a8a9a5;transform:translateZ(2px) rotate(-12deg);margin-bottom:6px}.lf-runway i{position:absolute;inset:6px 7px;background:repeating-linear-gradient(90deg,#fff 0 8px,transparent 8px 13px)}.lf-center .lf-cloud{filter:drop-shadow(0 4px 0 #e6d9dd);transform:translateZ(38px);font-size:22px}.cloud-one{left:-15px;top:0}.cloud-two{right:-15px;top:35px}
@keyframes lf-tall-hop{50%{transform:translateZ(40px) translateX(var(--stack)) scale(1.04)}}

/* Forty spaces: keep the board footprint, reduce individual pads. */
.lf-tile{width:7.5%;height:7.5%;border-radius:7px;font-size:12px}.lf-tile small{font-size:6px;margin-top:1px}.lf-token,.lf-token.token1{width:6.5%;height:9%}

/* Board-only play surface; panels scroll independently. */
#loveFlight.lf-playing{overflow:hidden;height:100dvh}
.lf-playing .lf-shell{height:100%;max-width:620px;display:flex;flex-direction:column;padding: max(12px,env(safe-area-inset-top)) 16px max(10px,env(safe-area-inset-bottom));overflow:hidden}
.lf-playing .lf-heading{margin:12px 0 0}.lf-playing .lf-heading h1{font-size:22px;margin:4px}.lf-playing .lf-view-tools{margin:4px 0}.lf-playing .lf-stage{flex:1;min-height:0;display:grid;place-items:center;padding:12px;overflow:hidden;touch-action:none}
.lf-playing .lf-board{width:min(100%,calc(100dvh - 310px));max-height:100%;flex-shrink:0}
.lf-playing .lf-score{margin:8px 0;font-size:11px}.lf-game-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.lf-game-footer span{color:#947b88}.lf-playing #lfStatus{margin:4px 0;font-size:11px;max-height:36px;overflow:auto}
#loveFlight .lf-center .lf-dice{pointer-events:auto;background:none;padding:0;border-radius:8px;cursor:pointer;overflow:visible;opacity:1;flex-shrink:0}#loveFlight .lf-dice:disabled{cursor:default;opacity:.6}#loveFlight .lf-dice:active{transform:translateZ(22px) scale(.94)}
.lf-sheet-backdrop{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#58455335;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.lf-sheet{position:relative;width:min(100%,440px);max-height:80dvh;overflow:auto;overscroll-behavior:contain;box-sizing:border-box;background:#fffaf7f5;border-radius:32px;padding:32px 24px;box-shadow:0 20px 70px #58455325;animation:lf-appear .25s ease}.lf-sheet h2{font-size:21px;line-height:1.6;margin:12px 20px 20px 0}.lf-sheet p{font-size:14px;line-height:1.8;white-space:pre-wrap}.lf-sheet small{color:#9c8491;font-size:11px}#loveFlight .lf-sheet-close{position:absolute;right:10px;top:10px;font-size:22px;padding:6px 13px;border-radius:50%}.lf-sheet textarea{width:100%;box-sizing:border-box;min-height:100px;border:0;border-radius:18px;padding:14px;background:#eee7ec;margin:0 0 18px;font:inherit}
.lf-record{padding:16px 0;border-bottom:1px solid #98828c18}.lf-record h3{font-size:15px;line-height:1.7;margin:8px 0}.lf-record p{margin:6px 0}#loveFlight .lf-record-link{display:flex;flex-direction:column;text-align:left;width:100%;gap:8px;margin:12px 0;background:#f0e9ec;border-radius:20px;padding:18px}.lf-record-link span{font-size:12px}.lf-answer-result{white-space:pre-wrap}
@media(max-height:560px){.lf-playing .lf-heading{display:none}.lf-playing .lf-board{width:min(100%,calc(100dvh - 180px))}.lf-playing .lf-score{margin:2px}.lf-playing .lf-view-tools button{padding:5px 12px}}
