*{box-sizing:border-box}body{margin:0;background:#102d34;color:#fff;font-family:Trebuchet MS,system-ui,sans-serif}header{max-width:1160px;margin:auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px}header b{font-size:26px;color:#70eada}header span{font-size:10px;letter-spacing:2px;color:white;margin-left:12px}header div{display:flex;gap:6px}button,select{font:inherit;border:0;border-radius:14px;padding:10px 16px;cursor:pointer;background:#edfdf9;color:#16373c;font-weight:bold}button:disabled{opacity:.55;cursor:wait}button:focus-visible,select:focus-visible{outline:3px solid #ffcb63;outline-offset:3px}button:hover:not(:disabled){filter:brightness(.94)}main{position:relative;max-width:1120px;margin:auto;border-radius:24px;overflow:hidden;box-shadow:0 18px 60px #0005;background:linear-gradient(#83d7d0,#d6faf0)}#game{display:block;width:100%;aspect-ratio:16/9;object-fit:contain}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 30%,#fffdf4fa,#cbf5effa);color:#153b42;text-align:center;padding:16px;overflow:auto;z-index:3}.hidden{display:none!important}.logo{width:110px;height:68px;object-fit:contain}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:bold;margin:7px}h1{font-size:clamp(24px,3vw,37px);margin:4px}p{margin:7px;font-size:14px}#characters{display:flex;gap:12px;margin:10px 0}.card{border:3px solid transparent;background:#fff9;padding:8px;width:125px;display:flex;flex-direction:column;align-items:center;gap:3px}.card.selected{border-color:var(--accent);background:white;box-shadow:0 5px 0 #163b4320}.card canvas{height:100px;width:90px;object-fit:contain}.card small{font-size:11px;font-weight:normal}.primary{background:#163b43;color:white;padding:13px 34px;font-size:18px;box-shadow:0 5px 0 #0a2229;margin:8px}.secondary{background:transparent;text-decoration:underline;font-size:12px;padding:8px}.options{display:flex;gap:12px;align-items:center;font-size:12px}.options select{padding:8px;max-width:250px}.hint{font-size:11px;line-height:1.7;color:#42696d}#loadStatus{font-size:11px;margin:0;min-height:13px}#portrait{width:220px;height:176px}#messageText{max-width:520px;line-height:1.5}#touch{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}#touch div{display:flex;gap:10px}#touch button{pointer-events:auto;width:62px;height:58px;font-size:25px;background:#143d46b8;color:white;border:2px solid #ffffff90;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#touch button.active{background:#fcbb54;color:#153b42;transform:translateY(2px)}footer{max-width:1120px;margin:16px auto;font-size:12px;color:#a8c8c9;padding:0 16px;display:flex;justify-content:space-between}.toast{position:absolute;top:100px;left:50%;transform:translateX(-50%);max-width:80%;width:max-content;padding:10px 20px;border-radius:30px;background:#153b43eb;color:white;font-size:13px;pointer-events:none;z-index:2;text-align:center}body[data-state="menu"] #touch,body[data-state="paused"] #touch,body[data-state="victory"] #touch,body[data-state="defeat"] #touch{visibility:hidden}
@media(max-width:650px){header{padding:8px}header span{display:none}header button{padding:8px;font-size:11px}main{border-radius:0}#game{height:calc(100svh - 58px);aspect-ratio:auto}footer{display:none}.overlay{padding:12px}.card{width:22vw;max-width:110px;padding:4px}.card canvas{height:84px;width:70px}.card strong{font-size:13px}.card small{font-size:10px}#characters{gap:4px}h1{font-size:24px}.logo{height:64px}.hint{max-width:340px}#touch button{width:56px;height:56px}.options{flex-wrap:wrap;justify-content:center}.options select{max-width:230px}.toast{top:70px;font-size:11px}}
@media(max-height:520px) and (orientation:landscape){header{padding:4px 12px}header b{font-size:20px}header button{padding:5px 10px;font-size:11px}main{border-radius:8px}#game{height:calc(100svh - 44px);width:100%;aspect-ratio:auto}footer,.logo,.eyebrow{display:none}.card canvas{height:58px;width:52px}.card{padding:3px;width:110px}#characters{margin:3px;gap:6px}h1{font-size:23px}p{margin:3px;font-size:12px}.hint{font-size:10px}.primary{padding:8px 25px;margin:5px}#portrait{width:130px;height:104px}#touch button{width:55px;height:48px}.overlay{padding:8px}#messageText{max-width:650px}#loadStatus{min-height:10px;font-size:10px}}

/* The logo and four names are exact viewport crops of the supplied poster. */
#menu{background:#37c8c6 url('assets/cartel-miau.jpg') center 60%/auto 400% no-repeat;justify-content:center}
#menu h1,.intro h1,#messageTitle{font-family:Impact,'Arial Black',sans-serif;font-weight:900;letter-spacing:.5px;color:#fffbe3;-webkit-text-stroke:1.3px #17525a;paint-order:stroke fill;text-shadow:2px 3px 0 #17525a}
#menu>p{color:#123f48}#menu .eyebrow{font-size:9px;background:#e6fff3bd;border-radius:20px;padding:5px 10px;letter-spacing:1.8px}
.brand-logo{width:220px;aspect-ratio:970/520;flex:none;background-image:url('assets/cartel-miau.jpg');background-size:211.134% 221.538%;background-position:51.02% 1.582%;transform:rotate(-3deg);margin-bottom:2px}
.card{width:152px;border-radius:20px;background:#edfff2dc;padding:8px 5px 6px;gap:5px;box-shadow:0 4px 0 #17616c36;transition:transform .16s}
.card.selected{transform:translateY(-4px);border-color:#17525a;box-shadow:0 5px 0 var(--accent);background:#fffdf2}.card canvas{width:100px;height:112px}.card small{font-size:11px;white-space:nowrap}
.nameplate{display:block;height:43px;max-width:130px;background-image:url('assets/cartel-miau.jpg');background-repeat:no-repeat;border-radius:6px}
.name-rayo{width:90px;background-size:682.667% 729.114%;background-position:23.799% 97.585%}
.name-raton{width:104px;background-size:595.349% 729.114%;background-position:44.366% 97.585%}
.name-lu{width:57px;background-size:1113.043% 720%;background-position:62.017% 97.177%}
.name-francis{width:88px;background-size:682.667% 706.748%;background-position:80.664% 97.573%}
#menu .hint{background:#e9fff2d9;border-radius:10px;padding:5px 12px;margin-top:8px}#menu #loadStatus{color:#16464f;font-weight:bold}#menu .options{background:#e4fff0d9;border-radius:14px;padding:3px 8px}
.intro{background:radial-gradient(ellipse,#f7f5dffa,#52d5ccf7);z-index:4}.intro h1{font-size:clamp(32px,5vw,58px);max-width:800px;animation:title-arrive .6s cubic-bezier(.2,1.6,.4,1) both}.intro .eyebrow{font-size:12px;letter-spacing:3px}.intro-paw{font-size:66px;color:#17525a;animation:spin-arrive .7s ease-out both}#introQuip{max-width:540px;font-size:18px;line-height:1.5;animation:title-arrive .7s .15s both}.intro .primary{margin-top:20px}body[data-state="intro"] #touch{visibility:hidden}
@keyframes title-arrive{from{opacity:0;transform:translateY(35px) scale(.8) rotate(-4deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(-1deg)}}
@keyframes spin-arrive{from{opacity:0;transform:scale(0) rotate(-160deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media(min-width:651px) and (min-height:521px){#game{min-height:650px;aspect-ratio:1120/650}}
@media(max-width:650px){.brand-logo{width:190px}#characters{width:100%;justify-content:center;gap:5px}.card{width:23%;max-width:140px}.card canvas{height:95px;width:80px}.card small{font-size:10px;white-space:normal;min-height:26px}.card small b{display:block}.nameplate{max-width:100%;height:35px}.name-rayo{width:67px}.name-raton{width:76px}.name-lu{width:40px}.name-francis{width:66px}#menu h1{font-size:27px}#menu .options{padding:4px}#introQuip{font-size:16px}}
@media(max-height:520px) and (orientation:landscape){#menu{justify-content:flex-start;padding:8px}.brand-logo{position:absolute;width:112px;left:12px;top:9px}.card{width:126px}.card canvas{height:62px;width:60px}.nameplate{height:27px}.name-rayo{width:52px}.name-raton{width:60px}.name-lu{width:31px}.name-francis{width:52px}.card small{font-size:9px}.card small b{display:inline}.intro-paw{font-size:38px}.intro h1{font-size:34px}.intro .eyebrow{display:block}#introQuip{font-size:15px}.intro .primary{margin-top:8px}#menu .hint{margin:3px;padding:2px 8px}#characters{margin:7px 0}.card.selected{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.intro h1,.intro-paw,#introQuip{animation:none}.card{transition:none}}
/* Cover and world map, with transparent brand artwork. */
.cover{background:radial-gradient(ellipse at 50% 40%,#e1f7e6,#78d8cd 65%,#36b9b9);padding:18px;overflow:auto;isolation:isolate}
.cover:before{content:'♪      ✦      ♫      ✧';position:absolute;inset:14% 3%;font-size:clamp(30px,5vw,65px);letter-spacing:3vw;line-height:4;color:#1e838e25;transform:rotate(-8deg);pointer-events:none;z-index:-1}
.presenter{font-size:12px;font-weight:900;letter-spacing:3px;margin:0 0 7px;color:#205860}.title-logo{width:min(48%,335px);height:auto;aspect-ratio:720/350;flex:none}.cover h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(23px,3vw,35px);color:#fff8db;-webkit-text-stroke:1px #17525a;paint-order:stroke fill;text-shadow:2px 2px #17525a;letter-spacing:.7px;margin:4px 0 2px}.cover-tagline{font-size:14px;color:#225e64;margin:5px}#coverCrew{width:min(90%,740px);height:auto;aspect-ratio:900/250;flex:none}.cover .primary{margin:8px 0}.cover .hint{color:#266970;font-size:10px;max-width:90%}
#menu.journey{background:#edfaee;justify-content:flex-start;padding:16px;overflow:hidden}.map-heading{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;gap:15px;margin:0 0 10px}.map-heading h1{font-size:30px;margin:0}.map-heading .eyebrow{margin:0 0 5px!important;padding:0!important;background:transparent!important;font-size:9px!important}.map-heading p{font-size:11px;margin:5px 0 0}.map-heading button{white-space:nowrap}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 246px;gap:14px;width:100%;min-height:0;flex:1}.map-scroll{overflow:auto;border-radius:22px;border:2px solid #afddc9;scroll-behavior:smooth;min-height:0;background:#c1e8d3;overscroll-behavior:contain}#mapWorld{position:relative;width:100%;min-height:0}#mapLandscape{position:absolute;inset:0;width:100%;height:100%}.map-node{position:absolute;transform:translate(-50%,-36%);width:20%;padding:0;background:none;border-radius:12px;display:flex;align-items:center;flex-direction:column;gap:2px;isolation:isolate}.map-node:hover:not(:disabled){filter:none}.node-medal{position:relative;display:block;background:#fff8e2;border:3px solid #599989;border-radius:50%;width:67px;height:58px;box-shadow:0 5px 0 #599989;transition:transform .15s}.node-medal canvas{width:66px;height:51px;position:absolute;left:-2px;bottom:1px;object-fit:contain}.node-medal b{position:absolute;bottom:-8px;right:-10px;border:2px solid #fff9df;background:#25747a;color:white;min-width:25px;border-radius:20px;padding:2px 4px;font-size:12px}.node-name{font-size:11px;line-height:1.2;color:#194c50;background:#fff9e8ee;padding:4px 7px;border-radius:9px;max-width:145px;box-shadow:0 2px 0 #316c6520;font-weight:900;margin-top:6px}.node-stars{font-size:9px;color:#3b7369;font-weight:bold;letter-spacing:1px;min-height:12px}.map-node.current .node-medal{border-color:#d59b33;box-shadow:0 5px 0 #d59b33,0 0 0 6px #fff2b966;transform:translateY(-4px)}.map-node.current .node-name{background:#ffedb0;color:#174f57}.map-node.completed .node-stars{color:#9c6e21}
.crew-panel{background:#d8f1e8;border:2px solid #bddfce;border-radius:22px;padding:10px;display:flex;flex-direction:column;align-items:center;overflow:auto}.crew-panel h2{font-size:16px;margin:0 0 4px}.crew-panel #characters{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px;margin:8px 0}.crew-panel .card{width:100%;padding:4px 2px;gap:1px;box-shadow:none;border-radius:15px}.crew-panel .card.selected{box-shadow:0 3px 0 var(--accent);transform:translateY(-1px)}.crew-panel .card canvas:not(.name-art){height:63px;width:67px}.crew-panel .card .name-art{background:none;height:28px;width:90px;max-width:100%;object-fit:contain;aspect-ratio:240/84}.crew-panel .card small{font-size:9px;white-space:normal;line-height:1.2}.crew-panel .card small b{display:block}.crew-panel .secondary{font-size:10px;padding:5px}.destination{padding:8px 5px;border-top:1px solid #9dcebd;margin-top:5px;width:100%}.destination .eyebrow{background:none!important;letter-spacing:1px!important;font-size:9px!important;padding:0!important;margin:0 0 5px!important}.destination h2{font-size:16px}.destination p{font-size:11px;line-height:1.3;margin:4px 0;color:#3b726f}.crew-panel .primary{font-size:16px;padding:11px 18px;width:100%;margin:3px 0}.crew-panel .hint{background:none!important;font-size:10px!important;line-height:1.4;padding:3px!important;margin:0!important}
body[data-state="cover"] #touch{visibility:hidden}body[data-state="cover"] #pause,body[data-state="menu"] #pause{visibility:hidden}body[data-state="cover"] #home{visibility:hidden}
@media(max-width:679px){#menu.journey{padding:9px}.map-heading{margin-bottom:7px;gap:4px}.map-heading h1{font-size:26px}.map-heading p{font-size:10px;max-width:270px}.map-heading button{font-size:10px;padding:3px}.map-layout{display:flex;flex-direction:column;gap:7px}.map-scroll{flex:1;min-height:160px}.map-node{width:36%}.node-medal{width:70px;height:57px}.node-name{font-size:12px;max-width:155px}.node-stars{font-size:10px}.crew-panel{flex:none;display:grid;grid-template-columns:1fr auto;gap:1px 5px;padding:7px;border-radius:15px;overflow:visible}.crew-panel>h2{font-size:12px;margin:0;text-align:left}.crew-panel #random{grid-column:2;grid-row:1;font-size:9px}.crew-panel #characters{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:5px 0}.crew-panel .card canvas:not(.name-art){height:43px;width:49px}.crew-panel .card .name-art{height:24px;width:70px}.crew-panel .card small{font-size:8px;min-height:0}.crew-panel .card{padding:2px}.destination{grid-column:1;grid-row:3;text-align:left;padding:3px 0;margin:0;border:0}.destination p:not(.eyebrow){display:none}.destination .eyebrow{font-size:8px!important;margin-bottom:2px!important}.destination h2{font-size:12px;max-width:190px;margin:0}.crew-panel .primary{grid-column:2;grid-row:3;font-size:12px;padding:10px;white-space:nowrap}.crew-panel .hint{display:none}.title-logo{width:70%;max-width:290px}#coverCrew{width:100%;margin:16px 0}.presenter{font-size:10px;letter-spacing:2px}.cover h1{font-size:28px}.cover-tagline{font-size:13px;max-width:300px}}
@media(max-height:520px) and (orientation:landscape){.cover{padding:8px;justify-content:center}.title-logo{width:180px;max-height:86px}.presenter{font-size:9px;letter-spacing:2px;margin:0}.cover h1{font-size:23px;margin:0}.cover-tagline{font-size:11px;margin:2px}#coverCrew{width:420px;max-height:115px;margin:0}.cover .primary{margin:3px 0;padding:8px 20px;font-size:15px}.cover .hint{display:none}.map-heading{margin-bottom:6px}.map-heading h1{font-size:24px}.map-heading .eyebrow{display:none}.map-heading p{margin:2px 0}.map-layout{grid-template-columns:minmax(0,1fr) 218px}.crew-panel>h2{font-size:13px}.crew-panel .card canvas:not(.name-art){height:36px;width:40px}.crew-panel .card .name-art{height:20px;width:66px}.crew-panel .card small{font-size:8px}.crew-panel #characters{margin:3px 0;gap:4px}.crew-panel .destination{padding:4px 1px;margin:0}.destination h2{font-size:12px}.destination p:not(.eyebrow){display:none}.crew-panel .primary{font-size:13px;padding:8px}.crew-panel .hint{display:none}.crew-panel .eyebrow{display:block}.node-name{font-size:11px}}
@media(max-height:520px) and (orientation:landscape){.crew-panel{padding:6px}.crew-panel .card{padding:2px 1px}.crew-panel .card canvas:not(.name-art){height:26px;width:31px}.crew-panel .card .name-art{height:18px;width:64px}.crew-panel .card small{font-size:7.5px;line-height:1.1}.crew-panel #random{font-size:8px;padding:2px}.crew-panel #characters{gap:3px;margin:3px 0}.crew-panel .primary{font-size:12px;padding:8px;margin:2px 0}.crew-panel .destination .eyebrow{font-size:8px!important;margin-bottom:1px!important}.crew-panel .destination h2{font-size:11px}}

/* Three difficulty settings, fifth touch control, and the friendship finale. */
#difficulty{border:0;border-top:1px solid #9dcebd;margin:4px 0 8px;padding:6px 0 0;width:100%;display:grid;gap:5px;text-align:left}#difficulty legend{font-size:11px;font-weight:bold;padding:0 5px}#difficulty button{padding:7px 9px;border:2px solid transparent;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:4px;background:#f8fff6;font-size:12px}#difficulty small{font-size:9px;font-weight:normal}#difficulty button.selected{border-color:#247e7b;background:#ffefb4;box-shadow:0 2px 0 #247e7b}
.party{background:radial-gradient(ellipse at 50% 30%,#fff9da,#c4f2e3 65%,#73d2c5)}.party h1{font-family:Impact,'Arial Black',sans-serif;color:#fffbe3;-webkit-text-stroke:1px #17525a;paint-order:stroke fill;text-shadow:2px 2px #17525a}.party>p{margin:5px}#partyCrew{width:min(100%,900px);height:auto;max-height:70%;object-fit:contain;aspect-ratio:1000/550;flex:0 1 auto;min-height:0}.party .primary{flex:none}body[data-state="party"] #touch,body[data-state="flag"] #touch,body[data-state="party"] #pause,body[data-state="flag"] #pause,body[data-state="victory"] #pause{visibility:hidden}
@media(max-width:679px){#difficulty{grid-column:1/-1;grid-row:3;grid-template-columns:repeat(3,1fr);gap:4px;margin:3px 0 5px;padding:4px 0 0}#difficulty legend{font-size:10px}#difficulty button{display:flex;flex-direction:column;padding:5px 2px;font-size:11px;gap:1px}#difficulty small{font-size:9px}.crew-panel .destination,.crew-panel #start{grid-row:4}#touch{left:9px;right:9px}#touch div{gap:5px}#touch button{width:52px;height:54px}.party h1{font-size:26px}.party>p{font-size:12px}}
@media(max-height:520px) and (orientation:landscape){#difficulty{gap:3px;margin:3px 0;padding-top:3px}#difficulty button{font-size:10px;padding:4px 6px}#difficulty small{font-size:8px}#difficulty legend{font-size:9px}.party h1{font-size:24px}.party .eyebrow{display:none}#partyCrew{max-height:65%}.party .primary{font-size:13px;padding:7px 15px}.crew-panel{overflow:auto}}
@media(min-width:680px) and (min-height:521px){.crew-panel .card canvas:not(.name-art){height:44px;width:54px}.crew-panel .card .name-art{height:22px}.crew-panel .card small{font-size:8px}.crew-panel .destination{padding:6px 2px}.crew-panel .destination p{font-size:10px}#difficulty button{padding:6px 8px}}
@media(max-height:520px) and (orientation:landscape) and (min-width:680px){.map-layout{grid-template-columns:minmax(0,1fr) 310px}.crew-panel #characters{grid-template-columns:repeat(4,1fr);width:100%;gap:3px}.crew-panel .card canvas:not(.name-art){height:34px;width:38px}.crew-panel .card .name-art{height:21px;width:62px}#difficulty{grid-template-columns:repeat(3,1fr)}#difficulty button{flex-direction:column;padding:5px 1px;gap:1px;font-size:10px}#difficulty small{font-size:8px}.crew-panel .destination{padding:3px}.crew-panel>h2{font-size:12px}.crew-panel .primary{padding:8px}}
@media(max-height:520px) and (orientation:landscape) and (min-width:680px){.map-node .node-medal{width:51px;height:44px}.map-node .node-medal canvas{width:50px;height:39px}.map-node .node-name{font-size:9px;padding:3px 4px;margin-top:5px;max-width:100px}.map-node .node-stars{font-size:8px}}

/* Story and arcade stay distinct until the player leaves from the crew panel. */
.mode-menu{background:radial-gradient(ellipse at 50% 30%,#fff9df,#8eddd1)}.mode-menu .title-logo{width:200px;max-height:110px}.mode-menu h1{font-family:Impact,'Arial Black',sans-serif;color:#fff9df;-webkit-text-stroke:1px #17525a;paint-order:stroke fill;text-shadow:2px 2px #17525a}.mode-options{display:flex;gap:18px;margin:22px 0}.mode-card{width:270px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:3px solid #277d7b;background:#fffbea;box-shadow:0 7px 0 #277d7b}.mode-card:nth-child(2){background:#e6e2ff}.mode-card>span{font-size:30px;color:#327b83}.mode-card strong{font-size:23px}.mode-card small{font-weight:normal;font-size:13px;line-height:1.5}.mode-badge{background:#216e73;color:#fff6d8;padding:8px 12px;border-radius:20px;font-size:10px;white-space:nowrap;letter-spacing:1px}.map-node:disabled{opacity:.52;cursor:default}.map-node:disabled .node-medal{filter:saturate(.45)}.crew-panel .exit-mode{color:#315e64;text-decoration:underline;flex-shrink:0;font-size:10px;padding:6px;margin:1px 0}.crew-panel .hint{display:none}
body[data-state="modes"] #touch,body[data-state="modes"] #pause,body[data-state="modes"] #home{visibility:hidden}
@media(max-width:679px){.mode-options{flex-direction:column;gap:14px;margin:14px 0}.mode-card{width:min(300px,85vw);min-height:150px;gap:7px}.mode-card strong{font-size:21px}.mode-card>span{font-size:24px}.mode-menu .title-logo{width:180px;max-height:90px}.mode-badge{font-size:8px;padding:6px 8px}.crew-panel .exit-mode{grid-column:1/-1;grid-row:5;padding:4px;font-size:10px}}
@media(max-height:520px) and (orientation:landscape){.mode-menu .title-logo{width:130px;max-height:65px}.mode-menu .eyebrow{display:none}.mode-options{flex-direction:row;gap:14px;margin:8px 0}.mode-card{min-height:140px;width:245px;padding:12px;gap:6px}.mode-card strong{font-size:20px}.mode-card small{font-size:12px}.mode-card>span{font-size:22px}.crew-panel .exit-mode{padding:3px;font-size:9px}.mode-badge{font-size:8px;padding:6px}}
@media(min-width:680px) and (min-height:521px){.crew-panel #characters{margin:4px 0}.crew-panel .card canvas:not(.name-art){height:38px}.crew-panel .card .name-art{height:20px}}
@media(max-height:520px) and (orientation:landscape) and (min-width:680px){.crew-panel .card canvas:not(.name-art){height:29px}.crew-panel .destination{padding:0}.crew-panel #difficulty button{padding:4px 1px}.crew-panel .exit-mode{font-size:9px;padding:3px}}

/* Touch play owns gestures; menus retain normal scrolling and pinch zoom. */
html{overscroll-behavior:none}body{overscroll-behavior:none}main,header{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button{touch-action:manipulation}canvas{-webkit-user-drag:none}
body[data-state="playing"],body[data-state="flag"],body[data-state="victory"]{touch-action:none;overflow:hidden}
body[data-state="playing"] main,body[data-state="flag"] main,body[data-state="victory"] main{touch-action:none}
header{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
#touch{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}
.install-game{background:#fff7da;border:2px solid #287779;font-size:12px;margin:8px 0 2px;padding:9px 17px;flex-shrink:0}.offline-status{font-size:10px;line-height:1.4;min-height:14px;max-width:90%;color:#24565c;margin:3px 0}
#installDialog{width:min(440px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:22px;border:3px solid #277d7b;border-radius:23px;background:#fffbea;color:#194b52;box-shadow:0 18px 70px #102d3466}#installDialog::backdrop{background:#102d34bb}#installDialog p{margin:12px 0;font-size:13px;line-height:1.55}.install-heading{display:flex;gap:12px;align-items:center}.install-heading h2{font-size:22px;margin:0}.install-heading img{border-radius:13px;flex:none}#installInstructions{background:#ddf4ec;padding:2px 14px;border-radius:14px;margin:12px 0}#installInstructions b{color:#17464b}#installDialog .offline-detail{font-weight:bold}#installDialog .install-tip{font-size:11px;color:#446c70}#installDialog form{text-align:right}#installDialog .primary{font-size:14px;margin:3px 0;padding:11px 20px}
@media(max-height:520px) and (orientation:landscape){.cover #coverCrew{width:340px;max-height:88px}.cover .title-logo{width:145px;max-height:70px}.cover .install-game{padding:6px 14px;margin:4px 0 0;font-size:11px}.cover .offline-status{font-size:9px;margin:2px 0}.cover #loadStatus{font-size:9px}.cover h1{font-size:21px}}
@media(display-mode:standalone) and (orientation:portrait){#game{height:calc(100svh - 58px - env(safe-area-inset-top))}}
@media(display-mode:standalone) and (orientation:landscape){#game{height:calc(100svh - 44px - env(safe-area-inset-top))}}
