/* Banco 0.3 — the phone is the primary layout. */
:root{--bg:#f7f8f2;--paper:#fffefa;--ink:#254d40;--muted:#758a7e;--line:#e0e8de;--green:#237764;--accent:#ee9c77;--gold:#d8a744;--surface:#e9efe1;--font:ui-rounded,"Avenir Next","Trebuchet MS",sans-serif;--serif:var(--font)}
body{font-family:var(--font)}h1,h2,h3{font-family:var(--font);font-weight:750;letter-spacing:-.8px}button{font-family:inherit}.header{height:68px;padding:0 16px;background:#fffef9f5;position:sticky;top:0;z-index:25;backdrop-filter:blur(14px)}.brand-logo{width:146px;height:42px}.header-right{gap:8px}.header-stars{display:flex;align-items:center;gap:5px;color:#c19336;font-size:12px}.coin-pill{background:#fbefca;border:1px solid #f0dfad;color:#a07c2c;height:37px;padding:0 7px 0 9px}.coin-pill b{font-size:12px}.coin-plus{width:21px;height:21px;background:#fff9e5;font-size:17px}.header .icon-btn{width:38px;height:44px}.app-body{display:block}.sidebar{display:none}main{padding:22px 16px 104px;max-width:760px}.eyebrow{color:#7b9384;font-weight:750;letter-spacing:1.4px;font-size:9px}.page-heading h1{font-size:25px;font-weight:780}.page-heading p{font-size:12px}.level-badge{transform:none;border-radius:13px;background:#e9f0e4}.level-badge b{font:750 25px var(--font)}.level-badge small{font-size:9px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;border-top:1px solid #e0e8de;background:#fffefaf5;backdrop-filter:blur(14px);padding:7px 9px calc(7px + env(safe-area-inset-bottom));z-index:30}.mobile-nav button{min-height:49px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:9px;font-weight:650;color:#8b9d90}.mobile-nav button.active{background:#e6f0df;color:#237764}.mobile-nav button svg{width:22px;height:22px}.primary{background:#237764;border-color:#237764;box-shadow:0 3px 0 #165441;border-radius:12px;font-weight:750;min-height:46px}.primary:hover{background:#1e6b59}.secondary{border-radius:12px;background:#edf3e5;border-color:#d6e5cc;font-weight:650}.text-btn{font-weight:650;font-size:11px;min-height:44px}.icon-btn:focus-visible,.path-node:focus-visible{outline-offset:6px}.page-heading{margin-bottom:18px}.game-status{border-radius:14px;background:#edf2e7;border-color:#e0e8d8}.status-objective b,.combo-meter b{font-weight:750}.game-card{border-radius:17px;border-color:#dce6d5;box-shadow:0 4px 0 #e2e9db}.project-card{background:#f0f3e9;border:1px solid #dce6d5;border-bottom-width:3px;border-radius:15px;padding-top:20px;min-height:166px}.project-card .object-art{height:85px;width:92px}.project-info strong{font:750 16px/1.15 var(--font);min-height:19px;display:grid;place-items:center;letter-spacing:-.4px}.project-info small{font-size:10px;max-width:none;color:#6c846c;line-height:1.25;margin-top:3px}.project-number{font-size:7px;letter-spacing:.2px;font-weight:700;left:8px;top:8px}.project-card.can-receive{background:#e4f2d9;border-color:#8fbc74;box-shadow:0 0 0 2px #a9cb8630}.project-card.assembled{background:#e4f1db;border-color:#b3cf9c}.project-card.project-locked{border-style:dashed;background:#eeefe8}.projects-heading .eyebrow{font-size:9px;letter-spacing:1px}.recipe{gap:4px}.recipe-piece{width:25px;height:25px;border-radius:7px}.recipe-piece.next{border-color:#ddb75d;background:#fff2c8}.recipe-piece.complete{color:#4b8554;background:#dceccc;border-color:#c3d8ac}.recipe-more{font-size:8px;color:#8a9b78;letter-spacing:-.4px}.object-art.preview{opacity:.5;filter:grayscale(.45)}.object-art.building{opacity:.85;filter:saturate(.9)}.projects-list.single .project-card{grid-template-columns:110px 1fr;text-align:left;gap:0 16px;min-height:140px;padding:17px 22px}.projects-list.single .object-art{width:110px;height:105px;grid-row:1/3}.projects-list.single .project-info{align-self:end}.projects-list.single .project-info strong{font:780 25px/1.15 var(--font);place-items:start}.projects-list.single .project-info small{font-size:12px}.projects-list.single .recipe{justify-content:flex-start;align-self:start;margin-top:10px}.projects-list.single .recipe-piece{width:31px;height:31px}.projects-panel{position:sticky;top:68px;z-index:12;background:var(--bg);padding:6px 0;margin:-6px 0;border-radius:0 0 12px 12px}.work-surface{background-color:var(--surface);border-color:#dce5d0;border-radius:11px;box-shadow:inset 0 -3px #dbe5ce}.part-tile{background:#fffaf0;border-color:#ccd9bc;border-bottom-width:2px;box-shadow:0 4px #bdcca9;border-radius:11px}.part-tile.covered{background:#e9eddf;box-shadow:0 3px #c7d3b9}.part-tile.selected{border-color:#6eaa6b;box-shadow:0 4px #6eaa6b;background:#fff5d7}.part-label{font-size:7px;font-weight:750;color:#7a8869;letter-spacing:.3px}.part-tile>img{width:64px;height:64px}.buffer-slot{border-radius:11px;border-color:#b0c798;min-width:45px}.extra-slot{min-width:44px;min-height:44px}.hint-btn{border-radius:10px;background:#e6f1d6;color:#537b43}.instruction{font-size:12px;color:#657e63}.recipe-hero{text-align:center;margin:6px 0 10px}.recipe-hero .object-art{width:145px;height:145px;object-fit:contain}.recipe-detail{list-style:none;padding:0;margin:0;display:grid;gap:7px}.recipe-detail li{display:flex;align-items:center;gap:11px;background:#f0f4e9;border:1px solid #e3eadb;border-radius:11px;padding:5px 12px;min-height:51px}.recipe-detail li>b{font-size:11px;color:#9ba98b;width:15px}.recipe-detail li>img{width:38px;height:38px;object-fit:contain}.recipe-detail li>span{font-size:12px;font-weight:600;flex:1}.recipe-detail .done{background:#e4f0db;color:#578251}.recipe-detail .done>b{color:#779d61}.game-footer{font-size:9px}.daily-teaser{background:#f7eeda;border-color:#ebdfc4;border-radius:15px}.daily-teaser strong{font:750 17px var(--font)}.daily-teaser small{font-size:10px}.daily-card{border-radius:20px;background:#e4efdb;border-color:#d0e0c2}.daily-card h2{font-weight:780;letter-spacing:-1.4px}.commission-card{border-radius:16px;background:#fffdf6}.commission-card h3{font-weight:750;font-size:21px}.commission-card .primary{font-size:10px}.section-title h2{font-weight:750;font-size:24px}.collection-room{background:#f0f0e3;border-color:#e0e4d3}.collection-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;border-bottom:0;box-shadow:none;padding:0}.collected-object{background:#f9f8ef;border:1px solid #dfe5d2;border-radius:17px;padding:14px 10px 8px;position:relative}.collected-object.undiscovered{opacity:1;filter:none;background:#eaeee2}.collected-object.undiscovered .object-art{filter:grayscale(.6);opacity:.35}.collected-object .object-art{height:125px;width:125px}.collected-object strong{font:750 16px/1.2 var(--font)}.collected-object small{font-size:10px;color:#80916e}.room-stats b{font-weight:750}.room-stamp{font:750 18px var(--font)}.shop-content h2{font-weight:750;font-size:23px}.shop-art{background:#e7f0de}.shop-explainer strong{font-weight:750;font-size:18px}dialog{border-radius:22px;background:#fffdf7;padding:22px;border-color:#dce7d4}dialog h2{font-weight:780;font-size:28px;letter-spacing:-1px}.win-stats b{font-weight:750}.modal-copy{font-size:12px}.help-steps h3{font-weight:750;font-size:19px}.help-steps p{font-size:12px}.settings-row strong{font-weight:750}.fine-print a{color:#4e7a61}.win-objects .object-art{max-width:145px}.win-stars .earned{color:#dfb143}.stars .filled{color:#d2a13b}.stars{font-size:12px}#toast{bottom:calc(78px + env(safe-area-inset-bottom));border-radius:13px}
/* Continuous trail. Every node is a real playable level. */
body[data-view=levels] main{max-width:620px;padding-top:24px}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 3px 23px}.journey-heading h1{font-size:29px;line-height:1.12;font-weight:800;letter-spacing:-1.5px;margin:9px 0 10px}.journey-heading h1>span{color:#e8a078}.journey-heading p{color:#819180;font-size:11px;line-height:1.5;max-width:220px}.journey-heading .eyebrow{font-size:8px;letter-spacing:1.1px}.journey-mascot{position:relative;min-width:100px;width:110px;text-align:center;margin-right:-2px}.journey-mascot:before{content:"";position:absolute;inset:6px 3px 12px;background:#eaf0db;border-radius:50%;z-index:-1}.journey-mascot img{width:110px;height:120px;object-fit:contain;transform:rotate(6deg)}.journey-mascot>span{font-size:7px;font-weight:700;color:#9aa885;display:block;transform:rotate(-4deg);margin-top:-6px}.continue-card{padding:18px;border-radius:18px;background:#267661;color:#fbf9e9;box-shadow:0 5px 0 #1b5e4d,0 8px 20px #276d4d0c}.continue-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;font-weight:700;letter-spacing:.7px}.continue-top>span{display:flex;align-items:center;gap:8px}.continue-top>b{font-size:11px;letter-spacing:0;color:#d3e2ba}.continue-card .progress-track{background:#195d4e;height:5px;margin-top:14px}.continue-card .progress-track>span{background:#c4df98}.continue-card h2{font-size:22px;color:#fffbea;letter-spacing:-.7px;line-height:1.2;margin:17px 0}.continue-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.continue-bottom>span{font-size:10px;color:#bfdbc5;line-height:1.5;max-width:165px}.continue-bottom>.primary{background:#f6cd76;border-color:#f6cd76;box-shadow:0 3px 0 #bd984a;color:#5f542b;min-height:43px;font-size:12px;padding:10px 17px;border-radius:11px;gap:8px;white-space:nowrap}.continue-bottom>.primary:hover{background:#ffe092}.path-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px 6px 0;margin-top:7px;margin-bottom:14px;color:#8b9a80;font-size:10px}.path-toolbar>span{display:flex;align-items:center;gap:5px}.path-toolbar>span>svg{color:#caa04b}.path-toolbar b{color:#7d8e69}.path-toolbar .text-btn{font-size:10px;color:#629277}.journey-map{position:relative;width:min(100%,340px);margin:0 auto;padding:0}.journey-line{position:absolute;top:0;left:0;width:100%;height:auto;overflow:visible;z-index:0;pointer-events:none}.journey-line path{fill:none;stroke:#dbe5d4;stroke-width:10;stroke-linecap:round;stroke-dasharray:1 19}.journey-steps{list-style:none;margin:0;padding:0;position:relative;z-index:1}.journey-step{height:116px;position:relative;scroll-margin-top:120px}.path-stop{position:absolute;left:calc(50% + var(--offset));top:21px;transform:translateX(-50%);width:70px;text-align:center}.path-node{position:relative;width:67px;height:67px;border-radius:50%;border:3px solid #dce5d3;background:#e9eee2;box-shadow:0 5px 0 #cdd9c0;display:grid;place-items:center;margin:auto;color:#acbca0;opacity:1!important;isolation:isolate}.path-node:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 8px 0 #165c4a}.path-node:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 #165c4a}.path-node.current{background:#2b846c;color:#faffea;border-color:#b7d78e;box-shadow:0 6px 0 #1b5e4b,0 0 0 6px #e3edcf}.path-node.finished{background:#85b681;color:#fffdf0;border-color:#bad4a1;box-shadow:0 5px 0 #61905f}.path-node.finished:hover{box-shadow:0 7px 0 #61905f}.node-number{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;min-width:22px;height:22px;border-radius:10px;background:#fafbef;border:1px solid #dbe5ce;color:#7f9870;font-size:9px;font-weight:800;padding:0 4px;letter-spacing:-.2px}.current .node-number{background:#ffdc89;color:#7d692f;border-color:#e7c375}.path-stop>.stars{margin-top:9px;display:flex;justify-content:center;gap:2px;font-size:11px;line-height:1}.path-callout{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);background:#f4cb77;color:#65532d;padding:5px 9px;border-radius:7px;font-size:7px;font-weight:800;letter-spacing:.6px;white-space:nowrap;box-shadow:0 2px 0 #dfbd70;animation:callout-bob 3s ease-in-out infinite}.path-callout:after{content:"";position:absolute;bottom:-4px;left:calc(50% - 4px);height:8px;width:8px;transform:rotate(45deg);background:#f4cb77;z-index:-1}.path-caption{position:absolute;top:54px;transform:translateY(-50%);width:126px;max-width:42%;color:#71886a}.journey-step[data-side=right] .path-caption{left:calc(50% + var(--offset) + 49px);text-align:left}.journey-step[data-side=left] .path-caption{right:calc(50% - var(--offset) + 49px);text-align:right}.path-caption small{display:block;font-size:7px;letter-spacing:.65px;font-weight:700;color:#a1b094;margin-bottom:5px}.path-caption strong{font-size:11px;font-weight:700;display:block;line-height:1.3}.is-locked .path-caption strong{color:#96a58b}.is-current .path-caption strong{color:#337e5f}.is-current .path-caption small{color:#7e9a60}.discovery-art{display:block;margin-top:-7px}.discovery-art img{width:66px;height:63px;object-fit:contain}.is-locked .discovery-art img{opacity:.6;filter:saturate(.6)}.is-discovery .path-caption small{margin-top:-2px;font-size:6px;letter-spacing:.5px}.is-discovery .path-caption strong{font-size:12px}.is-discovery.is-locked .path-node{background:#f3ecd9;border-color:#eae0c2;color:#c2b590;box-shadow:0 5px 0 #dfd4b6}.journey-finish{text-align:center;display:flex;align-items:center;flex-direction:column;gap:9px;background:#eaf0de;border:1px solid #dce8ca;border-radius:18px;padding:25px 16px;color:#87a263;margin-top:12px}.journey-finish strong{font-size:19px;font-weight:800;color:#618354}.journey-finish span{font-size:10px;color:#8b9e78}.next-discovery{margin:26px 0 0;padding:16px;border-radius:16px;background:#fff9e9;border:1px solid #ede4c9;display:flex;gap:17px;align-items:center}.next-discovery>span{width:70px;flex-shrink:0}.next-discovery img{width:70px;height:70px;object-fit:contain}.next-discovery small{font-size:8px;letter-spacing:1px;color:#b4a573;font-weight:700}.next-discovery strong{display:block;font-size:18px;margin:3px 0;color:#8e8057}.next-discovery p{font-size:11px;color:#a39874}@keyframes callout-bob{50%{transform:translate(-50%,-3px)}}
@media(max-width:380px){main{padding-inline:12px}.header{padding-inline:12px}.header-right{gap:4px}.brand-logo{width:130px}.header-stars{font-size:10px;gap:3px}.header-stars svg{width:17px}.journey-heading h1{font-size:27px}.journey-mascot{width:94px;min-width:94px}.journey-mascot img{width:94px;height:105px}.journey-heading p{font-size:10px}.journey-map{width:100%;max-width:340px}.path-caption{width:109px}.path-caption strong{font-size:10px}.path-stop{width:62px}.path-node{width:60px;height:60px}.journey-step[data-side=right] .path-caption{left:calc(50% + var(--offset) + 42px)}.journey-step[data-side=left] .path-caption{right:calc(50% - var(--offset) + 42px)}.continue-card h2{font-size:20px}.continue-bottom>span{font-size:9px;max-width:135px}.project-info strong{font-size:14px}.project-info small{font-size:9px}.project-number{font-size:6px}.recipe-piece{width:22px;height:22px}.recipe{gap:3px}.recipe-more{font-size:7px}.part-tile>img{width:54px;height:54px}.extra-slot{min-width:44px}.buffer-slots{gap:7px}.buffer-slot{width:48px}}
@media(min-width:541px){.header{padding-inline:26px}.brand-logo{width:157px}.header-stars{font-size:13px}.journey-heading h1{font-size:39px}.journey-heading p{font-size:13px;max-width:330px}.journey-heading .eyebrow{font-size:9px}.journey-mascot{width:150px;min-width:150px}.journey-mascot img{width:150px;height:150px}.journey-mascot>span{font-size:10px}.continue-card{padding:24px}.continue-card h2{font-size:27px}.continue-top{font-size:10px}.continue-bottom>span{font-size:12px;max-width:none}.continue-bottom>.primary{min-height:46px;font-size:13px}.path-toolbar{font-size:12px;margin-bottom:20px}.path-toolbar .text-btn{font-size:12px}.journey-map{width:340px}.path-caption strong{font-size:12px}.path-caption small{font-size:8px}.discovery-art img{width:75px;height:70px}.is-discovery .path-caption small{font-size:7px}.is-discovery .path-caption strong{font-size:14px}.projects-list.single .project-card{grid-template-columns:140px 1fr 160px;min-height:155px}.projects-list.single .object-art{width:140px;height:125px;grid-row:1}.projects-list.single .recipe{justify-content:center;align-self:center;margin:0}.projects-list.single .project-info{align-self:center}.project-info strong{font-size:20px}.project-card{min-height:180px}.project-card .object-art{width:110px;height:100px}.project-info small{font-size:11px}.collection-shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1000px){.app-shell{max-width:1340px}.header{height:80px;padding:0 35px}.header-right{gap:15px}.brand-logo{width:165px}.app-body{display:grid;grid-template-columns:200px minmax(0,1fr)}.sidebar{display:flex;border-right:1px solid var(--line);padding:35px 16px;position:sticky;top:80px;height:calc(100svh - 80px);align-self:start}.sidebar-title{display:block;font-size:8px}.sidebar-drawing{border:0;border-radius:20px;background:#edf1e3;transform:none}.sidebar-drawing>span{font:700 17px var(--font);color:#82966d}.nav-item{font-size:12px;font-weight:650}.nav-item.active{background:#e3efda;color:#237764}.mobile-nav{display:none}main{padding:32px 28px 40px;max-width:1000px}body[data-view=levels] main{padding:32px 55px 45px;max-width:700px}.journey-heading{margin-bottom:28px}.journey-heading h1{font-size:38px}.continue-card h2{font-size:26px}.projects-panel{top:80px}.project-card{display:flex;text-align:center;padding:20px 10px 14px}.project-card .object-art{height:105px;width:110px}.project-card .recipe{justify-content:center}.projects-list[style*="--objects:4"] .project-card{display:flex}.projects-list[style*="--objects:4"] .project-card .object-art{width:95px;height:100px}.projects-list.single .project-card{display:grid;grid-template-columns:155px 1fr 170px;gap:18px}.projects-list.single .object-art{width:150px}.projects-list.single .project-info strong{font-size:29px}.collection-shelf{grid-template-columns:repeat(4,minmax(0,1fr))}#toast{bottom:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:380px){.header-stars{display:none}}

/* Readable attempt score and short, locally played fal.ai sprite animations. */
.scoreboard{display:grid;grid-template-columns:1fr 1.8fr 1fr;align-items:center;gap:8px;padding:13px 12px;background:#fffdf5;border:1px solid #dce6d5;border-radius:16px;box-shadow:0 3px 0 #e7eddf;margin-bottom:12px;text-align:center}.move-counter,.error-counter{display:flex;flex-direction:column;gap:3px;align-items:center}.move-counter>span,.error-counter>span:first-child{font-size:8px;letter-spacing:1px;font-weight:750;color:#829477}.move-counter>strong,.error-counter>strong{font-size:27px;line-height:1.1;font-weight:800;letter-spacing:-1px;color:#33765c}.move-counter small,.error-counter small{font-size:12px;color:#9cab8c;letter-spacing:0;font-weight:600}.star-target{border-inline:1px solid #e9edde;display:flex;flex-direction:column;gap:4px;align-items:center}.star-target>span{display:flex;gap:3px;color:#dab04e}.star-target>b{font-size:10px;color:#6a805c}.star-target>small{font-size:8px;color:#96a189}.error-counter.has-errors>strong{color:#ce795c}.error-dots{display:flex;gap:3px;margin-top:1px}.error-dots i{width:6px;height:6px;background:#e2e9d8;border-radius:50%}.error-dots i.used{background:#df9174}.live-goal{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center;margin:15px 2px 22px;font-size:10px;color:#839577}.live-goal .progress-track{height:5px;margin:0;background:#e2e9d9}.live-goal .progress-track>span{background:#83b77c}.live-goal>b{grid-column:1/-1;font-size:10px;font-weight:600;color:#659062}.failed-banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px;margin:16px 0 22px;background:#fbebdf;border:1px solid #efd8c7;border-radius:14px}.failed-banner>span{display:flex;align-items:center;gap:9px;flex:1;min-width:160px;font-size:12px;color:#aa7255}.failed-banner .primary{font-size:12px}.failure-symbol{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:#f8ead8;color:#c6925f;margin:18px auto}.feedback-sprite{position:fixed;transform:translate(-50%,-50%);z-index:45;pointer-events:none;background-size:800% 100%;background-repeat:no-repeat;animation:fal-frames .8s steps(7) forwards;will-change:background-position}.fx-correct{background-image:url('./assets/fx/correct.webp')}.fx-error{background-image:url('./assets/fx/error.webp')}.fx-complete{background-image:url('./assets/fx/complete.webp')}.feedback-correct{animation:correct-pop .35s ease-out}.feedback-error{animation:error-nudge .4s ease-out}.feedback-complete{animation:complete-pop .6s ease-out}.reduce-motion .feedback-sprite{display:none}@keyframes fal-frames{from{background-position:0% 0}to{background-position:100% 0}}@keyframes correct-pop{50%{transform:scale(1.045)}}@keyframes error-nudge{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}@keyframes complete-pop{35%{transform:translateY(-7px) scale(1.04)}70%{transform:translateY(2px)}}@media(min-width:541px){.scoreboard{padding:15px 20px}.star-target>b{font-size:12px}.star-target>small{font-size:10px}.move-counter>strong,.error-counter>strong{font-size:32px}.live-goal{grid-template-columns:auto 1fr auto;font-size:11px}.live-goal>b{grid-column:auto}}@media(prefers-reduced-motion:reduce){.feedback-sprite{display:none}}

/* Section landmarks and final hard stages. */
.journey-section{margin-top:18px}.section-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 18px;margin-bottom:28px;background:#e5efdf;border:1px solid #d2e3c8;border-radius:18px}.section-banner h2{font:780 23px/1.2 var(--font);letter-spacing:-.6px;margin:6px 0}.section-banner p{font-size:11px;color:#78906c}.section-banner>.object-art{width:88px;height:94px;object-fit:contain;flex-shrink:0}.section-banner .object-art.preview{opacity:.7;filter:saturate(.65)}.section-challenge{display:flex;gap:4px;align-items:center;font-size:9px;color:#946381;margin-top:9px;flex-wrap:wrap}.section-locked .section-banner{background:#eef0e8;border-color:#dfe5d7}.hard-tag{display:inline-flex;align-items:center;gap:4px;color:#905476;background:#f2e5ed;border-radius:7px;font-size:9px;letter-spacing:.7px;font-weight:800;padding:5px 7px;white-space:nowrap}.path-caption .hard-tag{margin-bottom:6px;font-size:7px;padding:4px 6px}.path-caption .path-limits{font-size:8px;letter-spacing:0;line-height:1.4;color:#98768b;margin:5px 0 0}.hard-node{background:#ead8e5;border-color:#d6b6cf;color:#a57198;box-shadow:0 5px 0 #c5a2ba;border-radius:23px}.hard-node.current{background:#98527f;border-color:#e8b7d5;color:#fff4fa;box-shadow:0 6px 0 #6e3960,0 0 0 6px #f0dfe9}.hard-node.finished{background:#b17a9c;border-color:#dec1d5;box-shadow:0 5px 0 #875a78}.hard-status{display:flex;align-items:center;justify-content:space-between;gap:9px;background:#f5edf2;border:1px solid #e6d6e0;border-radius:13px;padding:10px 12px;margin:10px 0 14px;color:#8c5c7c;flex-wrap:wrap}.hard-status>span{display:flex;align-items:center;gap:7px;font-size:11px}.hard-status b{font-size:23px;font-variant-numeric:tabular-nums;letter-spacing:-.7px}.hard-status small{font-size:9px;max-width:100px}.hard-status .primary{min-height:40px;font-size:10px;padding:8px 11px}.hard-status.urgent{background:#ffede2;border-color:#e8af8a;color:#ae5637}.hard-status.urgent b{animation:timer-pulse 1s ease infinite}.hard-intro-art{text-align:center}.hard-intro-art .object-art{width:145px;height:145px;object-fit:contain}.hard-intro-limits{font-size:22px;color:#985a82;font-weight:750;margin:15px 0 12px}.error-dots .heart{width:14px;height:14px;background:none;color:#da8a88}.error-dots .heart.used{background:none;color:#d9dfcf}.error-dots>small{font-size:8px;color:#96a189}.error-counter:has(.heart) strong{color:#b6737c}@keyframes timer-pulse{50%{opacity:.65}}@media(max-width:380px){.section-banner{padding:16px 13px;gap:6px}.section-banner h2{font-size:21px}.section-banner>.object-art{width:70px;height:86px}.section-challenge{font-size:8px}.hard-status{padding:9px}.hard-status small{max-width:80px;font-size:8px}}@media(min-width:541px){.section-banner{padding:24px}.section-banner h2{font-size:28px}.section-banner>.object-art{width:115px;height:110px}.section-banner p{font-size:12px}.section-challenge{font-size:11px}.hard-status small{max-width:none;font-size:11px}}

/* Localized text and native language selection. */
.language-setting{display:flex;flex-direction:column;gap:9px;margin:16px 0 12px;font-weight:700}.language-setting select{width:100%;min-height:46px;border:1px solid #d4dfc9;border-radius:10px;background:#f3f6eb;color:#42694f;padding:10px;font:inherit}.project-info{min-width:0;max-width:100%}.project-info strong,.section-banner h2,.continue-card h2{overflow-wrap:anywhere}.part-label{right:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-tools{flex-wrap:wrap}.board-tools>button{flex:1;justify-content:center;min-width:65px}.hint-btn{margin-inline-start:auto}.hard-status small{overflow-wrap:anywhere}.header-right{margin-left:0;margin-inline-start:auto}.page-heading>div,.section-banner>div{min-width:0}.project-card.can-receive:after{content:'↓'}.journey-map{direction:ltr}html[dir=rtl] .path-caption{direction:rtl}html[dir=rtl] .project-number{left:auto;right:8px}html[dir=rtl] .done-badge{right:auto;left:8px}html[dir=rtl] .level-badge{direction:ltr}html[dir=rtl] .board-top>div{direction:ltr}html[dir=rtl] .header .brand-logo{direction:ltr}.hard-tag{text-transform:uppercase}.star-target b{max-width:100%;overflow-wrap:anywhere}.continue-bottom>span{overflow-wrap:anywhere}@media(max-width:540px){.board-tools>button{font-size:9px;gap:4px;padding-inline:2px}.project-info strong{font-size:14px}.project-info small{font-size:9px}.projects-list.single .project-info strong{font-size:23px}.page-heading h1{font-size:23px}.section-banner .eyebrow{letter-spacing:.7px}}
.commerce-card{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#e0ece2;border:1px solid #bdd3c3;border-radius:22px;padding:22px;margin:0 0 24px}.commerce-card h2{font-family:var(--serif);font-size:24px;margin:8px 0}.commerce-card p{font-size:14px;line-height:1.6;max-width:480px}.commerce-card>div:last-child{display:flex;flex-direction:column;gap:12px;flex-shrink:0}.commerce-busy #app,.commerce-busy #modal{pointer-events:none}.commerce-busy{cursor:progress}@media(max-width:600px){.commerce-card{align-items:stretch;flex-direction:column}}
.privacy-page{max-width:680px;margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 24px 80px;line-height:1.8}.privacy-page h1{margin-top:28px}.privacy-page h2{font-size:18px;margin-top:28px}.privacy-page p{margin:18px 0}.privacy-page a{color:var(--green)}
/* Fit long translations and native display cutouts without changing the puzzle grid. */
body{padding-top:env(safe-area-inset-top)}.header{top:env(safe-area-inset-top)}.projects-panel{top:calc(68px + env(safe-area-inset-top))}.mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav button{min-width:0;padding-inline:3px}.mobile-nav button span{max-width:100%;overflow-wrap:anywhere;hyphens:auto;line-height:1.15;text-align:center}.scoreboard>div{min-width:0}.game-footer{flex-wrap:wrap;gap:8px}.game-footer>span{min-width:0;overflow-wrap:anywhere}@media(max-width:380px){.brand-logo{width:112px}.header-right{gap:6px}.coin-plus{display:none}.header-stars{font-size:11px}}

/* Section palettes coordinate the landmarks, nodes and illustrated fal.ai worlds. */
.journey-section{--ribbon:#f4e5bd;--ribbon-edge:#e6ce91;--ribbon-track:#c5a35a;--section-paper:#fff3d4;--section-ink:#80602c;isolation:isolate;margin-top:24px}
.journey-section[data-section="2"]{--ribbon:#dcecf0;--ribbon-edge:#bcd9e2;--ribbon-track:#7cacbd;--section-paper:#edf7fa;--section-ink:#386e7f}
.journey-section[data-section="3"]{--ribbon:#f2dfd4;--ribbon-edge:#e2bca9;--ribbon-track:#c58a70;--section-paper:#fff0e6;--section-ink:#925938}
.journey-section[data-section="4"]{--ribbon:#deead4;--ribbon-edge:#c1d4ab;--ribbon-track:#8fa970;--section-paper:#eff6e6;--section-ink:#566f3d}
.journey-section[data-section="5"]{--ribbon:#f4dcdf;--ribbon-edge:#e5bcc1;--ribbon-track:#bc8290;--section-paper:#fcecef;--section-ink:#8b5263}
.journey-section[data-section="6"]{--ribbon:#e9e1f4;--ribbon-edge:#d0bfe8;--ribbon-track:#ac8bc8;--section-paper:#f3edf9;--section-ink:#74518e}
.journey-section[data-section="7"]{--ribbon:#f3e0ee;--ribbon-edge:#dfbed6;--ribbon-track:#bd8dad;--section-paper:#faedf5;--section-ink:#8c597d}
.journey-section[data-section="8"]{--ribbon:#eaddce;--ribbon-edge:#d3bba2;--ribbon-track:#b29371;--section-paper:#f4ebe0;--section-ink:#7c6247}
.journey-section[data-section="9"]{--ribbon:#dde4f4;--ribbon-edge:#bac9e7;--ribbon-track:#8ba3cd;--section-paper:#edf2fb;--section-ink:#516c99}
.journey-section[data-section="10"]{--ribbon:#d7e9e1;--ribbon-edge:#b4d0c3;--ribbon-track:#78a993;--section-paper:#e9f4ee;--section-ink:#426f5d}
.journey-line .ribbon-track{stroke:var(--section-ink);stroke-width:4;stroke-dasharray:1 15;opacity:.38}
.journey-section .section-banner{max-width:480px;margin:0 auto 30px;background:var(--section-paper);border-color:var(--ribbon-edge);box-shadow:0 3px 0 var(--ribbon-edge);position:relative;overflow:visible}
.journey-section .section-banner h2,.journey-section .section-banner .eyebrow{color:var(--section-ink)}
.journey-section .section-banner p{color:var(--section-ink);opacity:.86;line-height:1.5}
.journey-section .section-banner>.object-art{opacity:1;filter:drop-shadow(0 6px 4px #3c413514);transform:rotate(3deg);width:102px;height:112px}
.journey-section .path-node:disabled:not(.hard-node){background:var(--section-paper);border-color:var(--ribbon-edge);box-shadow:0 5px 0 var(--ribbon-edge);color:var(--section-ink)}
.journey-section .path-caption strong,.journey-section .path-caption small{color:var(--section-ink)}
.journey-section .path-caption small{opacity:.75}
.journey-section .is-locked .path-caption strong{opacity:.85}
.journey-section .path-caption{overflow-wrap:anywhere}
@media(max-width:380px){.journey-section .section-banner>.object-art{width:78px;height:94px}}
@media(min-width:541px){.journey-section .section-banner>.object-art{width:126px;height:130px}}

/* The illustrated island includes both the stops and their readable nameplates.
   Fixed row heights keep the SVG and touch targets aligned at every viewport. */
.journey-section .journey-map{--label-gap:48px;--landscape-inset:24px;width:100%;max-width:420px;padding:82px 0 100px;isolation:isolate}
.journey-landscape{position:absolute;inset:0;z-index:0;pointer-events:none;user-select:none}
.journey-landscape img{display:block;width:100%;height:100%;object-fit:fill}
.journey-map .journey-line{top:82px;height:1160px;z-index:1;overflow:hidden}
.journey-map .journey-steps{z-index:2}
.journey-section .path-caption{width:140px;max-width:none;padding:9px 10px;background:#fffdf5f2;border:1px solid #fffdf5;border-radius:12px;box-shadow:0 3px 9px #59472a12;line-height:1.35}
.journey-step[data-side=right] .path-caption{left:calc(50% + var(--offset) + var(--label-gap));width:min(140px,calc(50% - var(--offset) - var(--label-gap) - var(--landscape-inset)))}
.journey-step[data-side=left] .path-caption{right:calc(50% - var(--offset) + var(--label-gap));width:min(140px,calc(50% + var(--offset) - var(--label-gap) - var(--landscape-inset)))}
.journey-section .path-caption small{font-size:8px;letter-spacing:.35px;opacity:1;margin-bottom:4px}
.journey-section .path-caption strong{font-size:12px;line-height:1.3;opacity:1}
.journey-section .is-current .path-caption{background:#fff8dc;border-color:#edce8b;box-shadow:0 3px 10px #9b6e2520}
.journey-section .is-hard .path-caption{background:#fff5fbf5;border-color:#ead9e3}
.journey-section .path-caption .path-limits{font-size:8px;line-height:1.35;margin:5px 0 0}
.journey-section .path-caption .hard-tag{margin-bottom:5px;font-size:7px;letter-spacing:.4px}
@media(max-width:380px){.journey-section .journey-map{--label-gap:40px;--landscape-inset:18px}.journey-section .path-caption{padding:7px}.journey-section .path-caption strong{font-size:11px}.journey-section .path-caption small{font-size:8px}}

/* A visible language shortcut and a searchable, touch-friendly list of all locales. */
.language-button{display:flex;align-items:center;justify-content:center;gap:5px;min-width:52px;min-height:44px;padding:7px;border:1px solid #d4e1cd;border-radius:13px;background:#eef4e8;color:#386c53;font-size:11px;font-weight:800;flex-shrink:0}
.language-search-row{display:flex;gap:12px;align-items:center;margin:18px 0 12px}
.language-search-row input{min-width:0;flex:1;width:100%;min-height:46px;border:1px solid #d4dfc9;border-radius:12px;padding:10px 12px;background:#fffefa;color:#34583f;font:inherit;font-size:16px}
.language-search-row>span{font-size:11px;white-space:nowrap;color:#6b8064;font-variant-numeric:tabular-nums}
.language-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:4px 0}
.language-choice{display:flex;align-items:center;gap:8px;text-align:start;min-height:66px;min-width:0;padding:11px 12px;border:1px solid #dce5d4;border-radius:13px;background:#fffef8}
.language-choice>span{flex:1;min-width:0}.language-choice strong{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.language-choice small{display:block;font-size:11px;line-height:1.4;color:#71816b;margin-top:4px;overflow-wrap:anywhere}
.language-choice[aria-pressed=true]{background:#e5f1db;border-color:#80aa70;color:#2b6c4d;box-shadow:0 0 0 1px #80aa70}
.language-choice[hidden]{display:none}.language-auto{width:100%;margin-bottom:12px;background:#f1f5e9}
.language-search-row input:focus-visible,.language-setting select:focus-visible{outline:3px solid #b27c27;outline-offset:2px}
@media(max-width:540px){.header{gap:10px}.header-right{gap:6px}.header-stars{display:none}.brand-logo{width:118px}.coin-plus{display:none}.coin-pill{padding-inline:9px;gap:5px}.language-button{min-width:50px}}
@media(max-width:380px){.brand-logo{width:96px}.header-right{gap:4px}.language-button{min-width:48px;padding-inline:5px}.language-choices{gap:7px}.language-choice{padding:10px 9px}.language-choice strong{font-size:13px}}
