@font-face{font-family:'Carlito Rocket';src:url('../assets/fonts/Carlito-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Carlito Rocket';src:url('../assets/fonts/Carlito-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Nunito Rocket';src:url('../assets/fonts/Nunito-Variable.ttf') format('truetype');font-style:normal;font-weight:200 1000;font-display:swap}
:root{--rp-petrol:#123d49;--rp-deep:#082f3b;--rp-cream:#f3dfba;--rp-coral:#d98450;--rp-gold:#d4a35c;--rp-mint:#8fe8cb;--rp-ink:#19323a;font-family:'Carlito Rocket','Trebuchet MS',sans-serif}
[hidden]{display:none!important}
.journey-map{position:absolute;inset:0;z-index:20;overflow:hidden;color:var(--rp-cream);font-family:'Carlito Rocket','Trebuchet MS',sans-serif;background:#1f5c59}
#game[data-pattern-lab] .journey-map{display:none!important}
#game .journey-map__header{position:absolute;inset:max(8px,var(--safe-top,env(safe-area-inset-top))) 10px auto;display:grid;height:auto;pointer-events:auto;text-shadow:none}
#game .journey-map__header>*{position:static;pointer-events:auto;transform:none}
#game .journey-map__header .journey-logo-crop{position:relative}
.journey-map__art{position:absolute;inset:0;background:url('../assets/journey/planet-one-gardens.webp') center/cover no-repeat;transform:scale(1.015);pointer-events:none}
.journey-map__shade{position:absolute;inset:0;background:linear-gradient(180deg,#062f3dcd 0,#08343a33 16%,transparent 30% 70%,#092f3b55 82%,#082c38e8 100%);pointer-events:none}
.journey-map__header{position:absolute;z-index:5;inset:max(8px,var(--safe-top,env(safe-area-inset-top))) 10px auto;height:auto;display:grid;grid-template-columns:minmax(122px,1fr) auto 44px;align-items:center;gap:9px;padding:9px 10px 10px;border:1px solid #ffe8b580;border-radius:22px;background:linear-gradient(180deg,#173f49f2,#0b323deb);box-shadow:0 6px 20px #08253080,inset 0 1px #fff8db36,inset 0 -2px #061d2766;pointer-events:auto;text-shadow:none}
.journey-logo-crop{position:relative;width:min(100%,164px);aspect-ratio:5.35;overflow:hidden;filter:drop-shadow(0 2px 0 #d4a35c55)}
.journey-logo-crop img{position:absolute;left:0;top:0;width:218%;height:auto;max-width:none}.journey-logo-crop canvas{display:block;width:100%;height:auto}
.journey-map__header p{margin:0;text-align:right;line-height:1.05;white-space:nowrap}.journey-map__header strong{display:block;font-size:clamp(12px,3.4vw,15px);font-weight:700;color:#fff5d9}.journey-map__header span{display:block;margin-top:5px;font-size:clamp(10px,2.8vw,12px);color:#a9ead7}
.journey-icon-button{display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:9px;border:1px solid #f8d7a8;border-radius:50%;color:#fff0d0;background:radial-gradient(circle at 34% 23%,#406c70,#123d49 70%);box-shadow:0 3px 0 #734b2b,inset 0 0 0 2px #0d3038}.journey-icon-button svg{width:100%;height:100%;fill:currentColor}
.journey-route{position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 2px 1px #4b3926aa)}
.journey-route__glow{fill:none;stroke:#a7ffe2;stroke-width:5.2;stroke-linecap:round;filter:url(#routeGlow);opacity:.58}
.journey-route__line{fill:none;stroke:#ffecc5;stroke-width:1.45;stroke-linecap:round;stroke-dasharray:.5 4;opacity:.95}
.journey-stations{position:absolute;z-index:2;inset:0;pointer-events:auto}
.journey-station{--station-x:50%;--station-y:50%;position:absolute;left:var(--station-x);top:var(--station-y);width:62px;height:62px;min-height:62px;padding:0;transform:translate(-50%,-50%);border:0;border-radius:50%;background:none;color:#15343d;pointer-events:auto;isolation:isolate}
.journey-station:active{transform:translate(-50%,-50%) scale(.97)}
.journey-station:nth-child(1){--station-x:44%;--station-y:87%}.journey-station:nth-child(2){--station-x:57%;--station-y:79.5%}.journey-station:nth-child(3){--station-x:52%;--station-y:73%}.journey-station:nth-child(4){--station-x:43%;--station-y:66%}.journey-station:nth-child(5){--station-x:49%;--station-y:59%}.journey-station:nth-child(6){--station-x:56%;--station-y:51.5%}.journey-station:nth-child(7){--station-x:49%;--station-y:43.5%}.journey-station:nth-child(8){--station-x:43%;--station-y:35.5%}.journey-station:nth-child(9){--station-x:52%;--station-y:27%}.journey-station:nth-child(10){--station-x:49%;--station-y:15.5%}
.journey-station__rim{display:grid;place-items:center;width:50px;height:50px;margin:auto;border:3px solid #f7dfac;border-radius:50%;background:radial-gradient(circle at 36% 27%,#fff3c9 0 8%,#dca15b 10% 31%,#9e572d 67%,#69331e 100%);box-shadow:0 4px 0 #6d3c25,0 6px 13px #0b3c3777,inset 0 0 0 3px #6d3424,inset 0 0 0 5px #ffc57e;transition:transform .16s ease,filter .16s ease}
.journey-station__rim>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:16px;font-weight:700;background:linear-gradient(#f8e5bd,#eec88e);box-shadow:inset 0 2px #fff9dd,inset 0 -2px #ae6a3e}
.journey-station:not(:disabled):hover .journey-station__rim,.journey-station:focus-visible .journey-station__rim{transform:translateY(-3px) scale(1.06);filter:brightness(1.08)}
.journey-station:focus-visible{outline:3px solid #eafff8;outline-offset:4px}
.journey-station small{position:absolute;left:50%;top:45px;translate:-50% 0;min-width:49px;padding:2px 6px;border-radius:10px;color:#ffdf82;font-size:9px;letter-spacing:1px;background:#103b45e8;box-shadow:0 2px 5px #082c33}
.journey-station b{position:absolute;z-index:-1;top:7px;left:48px;width:max-content;max-width:128px;padding:6px 9px 6px 18px;border:1px solid #ffe7b8a6;border-radius:0 13px 13px 0;color:#fff5d9;background:#103c46ed;box-shadow:0 3px 8px #082e36b5;font-size:11px;line-height:1.05;text-align:left}
.journey-station:nth-child(even) b{right:48px;left:auto;padding:6px 18px 6px 9px;border-radius:13px 0 0 13px;text-align:right}
.journey-station--done .journey-station__rim{border-color:#dfffea;background:radial-gradient(circle at 36% 27%,#effff7 0 8%,#78dcbc 10% 35%,#238c7d 70%,#145d5b);box-shadow:0 4px 0 #275945,0 6px 13px #0b3c3777,inset 0 0 0 3px #27594b,inset 0 0 0 5px #b4f8dc}
.journey-station--active .journey-station__rim,.journey-station--open .journey-station__rim{animation:station-breathe 2.3s ease-in-out infinite}
.journey-station--locked{filter:saturate(.08);opacity:.84}.journey-station--locked:before{content:'';position:absolute;z-index:3;right:3px;top:3px;width:14px;height:12px;border:2px solid #645d55;border-radius:4px;background:#d9ccba;box-shadow:0 1px 2px #18383b80}.journey-station--locked:after{content:'';position:absolute;z-index:2;right:6px;top:-1px;width:8px;height:10px;border:2px solid #645d55;border-bottom:0;border-radius:7px 7px 0 0}
.journey-map__actions{position:absolute;z-index:4;left:12px;right:12px;bottom:max(10px,var(--safe-bottom,env(safe-area-inset-bottom)));display:flex;align-items:center;justify-content:center;gap:8px;padding:9px;border:1px solid #f3ddb087;border-radius:22px;background:#0a333dcc;box-shadow:0 6px 20px #061f2780,inset 0 1px #fff8db2b;backdrop-filter:blur(8px)}
.journey-map__actions button{margin:0;flex:1}
.journey-primary,.journey-secondary{min-height:48px;border-radius:17px;padding:9px 16px;font-weight:700;letter-spacing:.01em}
.journey-primary{border:1px solid #dfffee;color:#123b43;background:linear-gradient(180deg,#c9ffec,#8fe8cb 49%,#60cbb2 50%,#67d2b8);box-shadow:0 4px 0 #347b6f,inset 0 2px #f2fff8}
.journey-secondary{border:1px solid #efd4a7;color:#fff2d2;background:linear-gradient(180deg,#355a61,#153d48 56%,#0e303b);box-shadow:0 3px 0 #71492e,inset 0 1px #ffffff38}
.journey-primary:active,.journey-secondary:active{transform:translateY(3px);box-shadow:0 1px 0 #347b6f}
.journey-dialog{width:min(90vw,390px);max-height:92dvh;padding:0;border:0;background:transparent;overflow:auto;scrollbar-width:none;color:var(--rp-ink);font-family:'Carlito Rocket','Trebuchet MS',sans-serif}.journey-dialog::-webkit-scrollbar{display:none}
.journey-dialog::backdrop{background:#082e3bd6;backdrop-filter:blur(7px)}
.journey-panel{position:relative;margin:10px;padding:27px 22px 22px;border:3px solid #efd3a1;border-radius:31px;background:linear-gradient(145deg,#fff4d9,#ebd3a9);box-shadow:0 9px 0 #7f4b2e,0 24px 80px #031b26a8,inset 0 0 0 2px #9e673d,inset 0 0 0 5px #fff8e8;text-align:center}
.journey-panel:before,.journey-panel:after{content:'';position:absolute;top:18px;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffe79e,#9b542c 70%);box-shadow:0 1px 1px #60341f}.journey-panel:before{left:18px}.journey-panel:after{right:18px}
.journey-panel .journey-panel__close{position:absolute;z-index:2;right:-8px;top:-10px;width:42px;height:42px;min-height:42px;margin:0;padding:0;border:2px solid #ffe1a6;border-radius:50%;color:#fff8e0;background:linear-gradient(#f5a56d,#d66f48);box-shadow:0 3px 0 #85462e;font-size:28px;line-height:1}
.journey-panel h1,.journey-panel h2{margin:4px 0 2px;color:#193942;font-size:clamp(25px,7vw,33px);line-height:1.02}.journey-panel>p{color:#6e553f}.journey-panel__subtitle{margin:5px 0 17px!important;color:#8a5c3d!important;font-size:16px;font-weight:700}
.journey-panel__inset{margin:16px 0;padding:17px;border:1px solid #c58d5c;border-radius:19px;background:#f8e6c4;box-shadow:inset 0 2px 5px #8f5b3330}.journey-panel__inset p{margin:0 0 8px;line-height:1.38;color:#334d4e}.journey-panel__inset small{display:block;color:#795f48;font-weight:700}
.journey-panel button{width:100%;margin-top:9px}
.journey-result-mark{min-height:42px;margin:0 0 5px;color:#d09840;font-size:clamp(32px,10vw,48px);font-weight:700;line-height:1;text-shadow:0 2px #8d5832,0 0 15px #ffd56f80;letter-spacing:2px}
.laundry-goal{display:inline-grid;place-items:center;width:74px;height:58px;overflow:hidden;border:3px solid #f6dba5;border-radius:18px;background:linear-gradient(#c6f7df,#6fd3b6);box-shadow:0 3px 0 #8d5935,inset 0 0 0 2px #fff7db}.laundry-goal canvas{display:block;width:68px;height:52px;object-fit:contain}
.journey-settings-group{margin:12px 0;padding:2px 14px;border:1px solid #c59261;border-radius:18px;background:#f8e6c4}.journey-settings-group label{color:#30494b;font-size:14px;font-weight:700}.journey-settings-group label+label{border-top:1px solid #b9855940}
.range-row{display:block!important;text-align:left}.range-row span{display:flex;justify-content:space-between;margin-bottom:8px}.range-row output{color:#5a756f;font-variant-numeric:tabular-nums}.range-row input{width:100%;height:24px;accent-color:#2c9e88}
#settings .journey-panel>button{min-height:48px;border:1px solid #efd4a7;border-radius:17px;color:#fff2d2;background:linear-gradient(180deg,#355a61,#153d48 56%,#0e303b);box-shadow:0 3px 0 #71492e,inset 0 1px #ffffff38;font-family:'Nunito Rocket','Carlito Rocket',sans-serif;font-weight:800}#settings .journey-panel>#resume{border-color:#dfffee;color:#123b43;background:linear-gradient(180deg,#c9ffec,#8fe8cb 49%,#60cbb2 50%,#67d2b8);box-shadow:0 4px 0 #347b6f,inset 0 2px #f2fff8}#settings .journey-panel>#journey-home{border-color:#ffe0a8;color:#fff5d9;background:linear-gradient(#eca06a,#d27049 55%,#b55238);box-shadow:0 3px 0 #80482f,inset 0 1px #fff6d8}
#settings details{margin-top:13px;border:1px solid #b47c515c;border-radius:15px;color:#6c523f;background:#f1d7ad80}#settings summary{padding:13px;cursor:pointer;font-family:'Nunito Rocket','Carlito Rocket',sans-serif;font-weight:800}#settings details button,#settings .import{border:1px solid #b7835d;border-radius:13px;color:#25464a;background:#fae8c7;box-shadow:0 2px 0 #a56a43}#settings .quiet{color:#725c48}
#settings input[type=checkbox]{appearance:none;position:relative;width:46px;height:27px;flex:0 0 46px;border:2px solid #9e704e;border-radius:15px;background:#c7b69c;box-shadow:inset 0 2px 3px #68472d55;cursor:pointer;transition:background .16s}#settings input[type=checkbox]:before{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff4d6;box-shadow:0 2px 3px #553a2c88;transition:translate .16s}#settings input[type=checkbox]:checked{background:#58cbb0;border-color:#247a70}#settings input[type=checkbox]:checked:before{translate:19px 0}
#journey-problem .journey-result-mark{display:grid;place-items:center;width:48px;min-height:48px;margin:0 auto 9px;border-radius:50%;color:#fff4d7;background:#d77a4e;text-shadow:none}
.journey-map__header strong,.journey-station,.journey-map__actions button,.journey-panel h1,.journey-panel h2,.journey-panel button,.journey-shots{font-family:'Nunito Rocket','Carlito Rocket',sans-serif;font-weight:800}
.journey-shots{position:absolute;z-index:4;top:max(10px,var(--safe-top,env(safe-area-inset-top)));left:max(10px,var(--safe-left,env(safe-area-inset-left)));min-width:64px;padding:5px 10px 4px;border:1px solid #f1d09f;border-radius:15px;color:#fff3d4;background:#103945e8;box-shadow:0 3px 0 #6e482f,inset 0 1px #ffffff35;text-align:center;pointer-events:none}.journey-shots strong{display:block;font-size:20px;line-height:.88}.journey-shots span{font-size:8px}
@keyframes station-breathe{0%,100%{filter:drop-shadow(0 0 2px #b8ffe5)}50%{filter:drop-shadow(0 0 10px #b8ffe5)}}
@media(max-width:355px){.journey-map__header{grid-template-columns:1fr auto}.journey-map__header p{display:none}.journey-station b{max-width:110px;font-size:10px}.journey-map__actions{padding:7px}.journey-map__actions button{padding-inline:9px;font-size:13px}}
@media(min-aspect-ratio:3/4){.journey-map{left:50%;right:auto;width:min(100vw,60dvh);translate:-50% 0}}
@media(prefers-reduced-motion:reduce){.journey-station__rim{animation:none!important}.journey-map__art{transform:none}}
