:root{--pine:#163e36;--green:#237553;--lime:#bbdb78;--gold:#ffce61;--cream:#fffbe9;--ink:#23453d;--shadow:0 10px 32px #092c3930;--font:'Nunito',sans-serif;--display:'Baloo 2',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--font);font-size:16px;background:#287971;min-height:100vh}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #ef9e3a;outline-offset:4px}button:disabled{cursor:default;opacity:.5}button{color:inherit} .world{position:fixed;inset:0;background:linear-gradient(155deg,#346e66,#80bdb1 45%,#346958);background-size:cover;background-position:center;z-index:-3}.world.art-ready{background-image:url('assets/grove.png')}.vignette{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#102e4180,transparent 24%,#123d2730 80%,#082922b0)}#app{max-width:1600px;margin:auto;padding:24px 42px 12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{border:0;background:none;text-align:left;color:#fff9de;padding:0;text-shadow:0 3px 0 #15473770}.brand-small{font-size:10px;font-weight:900;letter-spacing:2.3px;display:block;margin-left:5px}.brand-name{font-family:var(--display);font-size:47px;letter-spacing:-2.5px;font-weight:800;line-height:1}.brand-name span{color:#ffdc75}.brand-name i{font-style:normal;font-size:24px;vertical-align:top;display:inline-block;transform:rotate(10deg);margin:4px 0 0 8px;color:#ffdc75}.top-actions{display:flex;align-items:center;gap:12px}.score-pill{height:47px;border:1px solid #fff5;background:#153e36cf;box-shadow:0 4px 10px #13382b35;border-radius:30px;display:flex;align-items:center;padding:0 20px;gap:10px;color:#fffce9}.score-pill strong{font-size:17px}.star-icon{color:#ffce61;font-size:24px}.leaf-icon{color:#b7d787;font-size:26px}.divider{height:22px;width:1px;background:#ffffff36;margin:0 7px}.round-button{width:45px;height:45px;border-radius:50%;border:1px solid #ffffff85;background:#fffbe9ed;font-size:23px;font-weight:900;box-shadow:0 4px 0 #133c3930;transition:transform .15s}.round-button:hover{transform:translateY(-2px)}.tabs{display:flex;justify-content:center;gap:5px;margin:12px auto 20px;background:#133f37d9;padding:5px;border:1px solid #fff4;border-radius:30px;width:fit-content;box-shadow:var(--shadow)}.tab{border:0;border-radius:25px;background:transparent;color:#e9f2dd;padding:10px 23px;font-size:14px;font-weight:800;display:flex;align-items:center;gap:8px}.tab.active{background:#fff8db;color:#244c3e;box-shadow:0 3px 8px #1036283d}.tab>span:first-child{font-size:19px;line-height:1}.tab-count{background:#dbe7bd;border-radius:9px;min-width:20px;padding:1px 5px;font-size:12px;color:#345a43}.adventure-layout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:24px;align-items:start}.mission-panel{margin-top:45px}.mission-card{border-radius:22px;background:#fffbeef7;padding:24px 22px;box-shadow:0 7px 0 #153c3b23,0 14px 35px #194c4630;position:relative;border:1px solid #ffffffe6}.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.8px;color:#5f8368;margin:0 0 7px}.mission-card h1{font-family:var(--display);font-size:32px;line-height:1.05;margin:0 0 12px;letter-spacing:-.5px}.mission-card p:not(.eyebrow){font-size:14px;line-height:1.65;color:#607568;margin:0}.mission-rule{border-top:1px dashed #b9c8ac;margin-top:18px;padding-top:14px;display:flex;align-items:center;gap:10px}.mission-rule span:first-child{font-family:var(--display);font-size:29px;font-weight:800;color:#367c5a;line-height:1}.mission-rule div{font-size:12px;font-weight:800;color:#647b65;line-height:1.5}.mission-rule strong{display:block;font-size:14px;color:#345a44}.chapter-dots{display:flex;gap:7px;margin-top:17px}.chapter-dots button{width:28px;height:28px;border:0;border-radius:50%;background:#e4e8d6;font-size:12px;font-weight:900}.chapter-dots button.current{background:#317650;color:white;box-shadow:0 0 0 3px #d6e8b7}.chapter-dots button.done{background:#cfe4a5}.guide{position:relative;margin-top:35px;min-height:170px}.guide-bubble{margin:0 0 0 67px;border-radius:18px 18px 18px 3px;padding:13px 14px;background:#f9ffecd9;box-shadow:var(--shadow);font-size:13px;line-height:1.5;font-weight:700;position:relative;z-index:1}.guide .creature{width:130px;height:130px;margin-top:-15px;margin-left:-7px;animation:bob 4s ease-in-out infinite}.guide-name{position:absolute;left:97px;top:104px;color:#fff8da;font-size:13px;text-shadow:0 2px 4px #224934;font-weight:900}.game-area{min-width:0}.level-heading{display:flex;align-items:center;justify-content:space-between;color:#fffbe8;margin-bottom:12px;padding:0 8px;text-shadow:0 2px 8px #15483d}.level-heading h2{font-family:var(--display);font-size:23px;margin:0;font-weight:700;display:flex;align-items:center;gap:10px}.level-heading .region-index{font-family:var(--font);font-size:11px;letter-spacing:1.5px;font-weight:900;opacity:.9}.level-heading .stars{color:#ffdc76;letter-spacing:4px;font-size:19px}.workshop{background:#e6eed3e8;border:6px solid #fff7df;border-bottom:9px solid #d6bd86;border-radius:28px;box-shadow:0 12px 0 #25504355,0 22px 50px #123d3650;padding:17px 18px 15px;position:relative}.workshop-top{display:flex;justify-content:space-between;align-items:center;margin:0 3px 12px}.workshop-top span{color:#6e8668;font-size:11px;letter-spacing:1.6px;font-weight:900}.tool-actions{display:flex;gap:6px}.small-button{background:#faffec;border:1px solid #c5d3b6;padding:5px 10px;border-radius:8px;font-weight:800;font-size:12px;display:inline-flex;gap:6px;align-items:center}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr)) 88px;grid-template-rows:repeat(5,66px);gap:7px;position:relative;isolation:isolate}.cell{position:relative;min-width:0;border:1px solid #b7cba945;background:#b3cea465;border-radius:13px;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s,box-shadow .2s;padding:0;outline-offset:0!important}.cell.empty{background:#cae0b665;border:1px solid #bfd2aa}.cell.placeable{background:#f9fbe778;border:2px dashed #95b773;box-shadow:inset 0 0 15px #f5ffc267}.cell.placeable:hover{background:#fffdd7;transform:translateY(-2px);box-shadow:0 3px 0 #bdd396}.cell.selected-cell{border-color:#f3b641;background:#fff2ab}.cell.fixed{cursor:default}.cell.active-step{background:#fff3ad;box-shadow:0 0 0 3px #ffd258,0 0 24px #ffd65999;transform:translateY(-2px)}.cell .placeholder{color:#8aa177;font-size:22px;font-weight:600}.pipe-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible;pointer-events:none}.tile-label{position:relative;border-radius:11px;min-width:39px;padding:2px 6px;line-height:1.3;font-family:var(--display);font-size:20px;font-weight:800;background:#fff7da;border:2px solid #9cab6e;box-shadow:0 3px 0 #879763;color:#4b633b;z-index:2}.source{background:#f6c965!important;border:3px solid #ffedab!important;box-shadow:0 4px 0 #b79c4f}.source-display{display:flex;align-items:center;gap:3px;font-family:var(--display);font-size:24px;font-weight:800;color:#795130}.berry-icon{color:#e37873;font-size:25px;text-shadow:1px 2px 0 #a74d6130}.source small{position:absolute;bottom:3px;font-size:8px;letter-spacing:1px;font-weight:900;color:#8b6839}.target{grid-column:8;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate}.target .creature{position:absolute;width:84px;height:84px;bottom:8px;filter:drop-shadow(0 5px 2px #607c5725)}.target-meter{position:absolute;bottom:-3px;border-radius:14px;background:#fffbea;border:2px solid white;padding:2px 10px;box-shadow:0 3px 0 #71845440;z-index:3;white-space:nowrap;font-size:13px;font-weight:900}.target-meter.good{background:#c4e89c;color:#2a6e43}.target-meter.wrong{background:#ffdab5;color:#915530}.target .goal-name{position:absolute;right:1px;top:-8px;font-size:10px;font-weight:900;color:#4b714e}.board-note{font-size:12px;text-align:center;color:#708366;margin:12px 0 0;font-weight:700;min-height:17px}.workbench{display:flex;align-items:center;justify-content:space-between;gap:13px;margin-top:20px;background:#fffaeaeF;border:1px solid #ffffffe0;border-radius:23px;padding:13px 15px;box-shadow:0 7px 0 #193f3930,0 10px 30px #173d3830}.parts{display:flex;gap:8px;min-width:0}.part{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:71px;height:72px;flex-shrink:0;border:2px solid #e1e5cb;border-bottom:4px solid #cdd6b7;border-radius:14px;background:#f5f7e7;transition:transform .15s,background .15s}.part:hover{transform:translateY(-3px);background:#fff5ce}.part.chosen{border-color:#e3ae43;background:#ffe59d;box-shadow:0 0 0 3px #ffdc7e33}.part-mark{font-size:26px;line-height:1;font-family:var(--display);font-weight:800}.part-name{font-size:10px;font-weight:900;white-space:nowrap}.part-key{position:absolute;top:3px;right:5px;font-size:9px;color:#899174}.run-button{background:#347957;color:white;border:2px solid #3e9266;border-bottom:5px solid #20553f;border-radius:16px;padding:14px 24px;font-family:var(--display);font-weight:800;font-size:24px;white-space:nowrap;box-shadow:0 4px 12px #22614025;transition:transform .15s,filter .15s}.run-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.run-button:active{transform:translateY(2px)}.run-button small{display:block;font-family:var(--font);font-size:9px;letter-spacing:1px;margin-top:-3px;opacity:.7}.bench-caption{font-size:12px;color:#fffee8;display:flex;justify-content:space-between;margin:12px 6px 0;text-shadow:0 1px 5px #163d34}.game-footer{display:flex;justify-content:space-between;color:#f8ffe0a8;font-size:10px;font-weight:700;letter-spacing:.3px;margin-top:26px}.game-footer span span{color:#ffd277;margin-left:6px}.creature{display:block;background-repeat:no-repeat;background-size:300% 200%;background-image:url('assets/creatures.png');flex-shrink:0}.c0{background-position:0 0}.c1{background-position:50% 0}.c2{background-position:100% 0}.c3{background-position:0 100%}.c4{background-position:50% 100%}.c5{background-position:100% 100%}.packet{position:absolute;pointer-events:none;inset:50% auto auto 50%;z-index:8;transform:translate(-50%,-50%);background:#e77c7e;border:3px solid #ffdbb3;color:white;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:17px;font-weight:900;box-shadow:0 4px 10px #5c233c40;animation:pop .25s ease-out}.mote{position:fixed;width:4px;height:4px;background:#fffab0;border-radius:50%;pointer-events:none;box-shadow:0 0 12px #fff3a1;animation:drift 12s ease-in-out infinite;z-index:-1}.modal{border:0;border-radius:28px;padding:32px;background:#fffbed;color:var(--ink);width:min(520px,calc(100vw - 32px));box-shadow:0 24px 100px #07342a70;text-align:center;overflow:visible}.modal::backdrop{background:#102f3a80;backdrop-filter:blur(8px)}.modal h2{font-family:var(--display);font-size:36px;line-height:1.1;margin:12px 0}.modal p{font-size:15px;color:#66806c;line-height:1.6;margin:12px 0 20px}.modal .creature{width:155px;height:155px;margin:-10px auto -2px;animation:bob 3s ease-in-out infinite}.modal .eyebrow{font-size:11px;color:#4c845d}.modal .close-modal{position:absolute;right:14px;top:11px;border:0;background:transparent;font-size:26px;color:#879782}.modal .run-button{width:100%;font-size:23px}.modal .secondary{border:0;background:transparent;padding:14px;font-weight:800;font-size:13px}.reward-stars{font-size:40px;color:#eabc52;letter-spacing:10px}.math-proof{background:#edf1da;border:1px solid #dbe5c9;padding:14px;border-radius:15px;margin:15px 0;color:#3c744f;font-family:var(--display);font-size:22px;font-weight:700}.tip-list{display:grid;gap:12px;margin:22px 0;text-align:left}.tip-item{display:flex;gap:13px;align-items:center;font-size:14px;line-height:1.5}.tip-item>b{background:#e9eecf;padding:7px 12px;border-radius:11px;font-size:19px}.collection-view{max-width:1050px;margin:30px auto}.view-title{text-align:center;color:#fffbe9;text-shadow:0 3px 10px #124a37}.view-title h1{font-family:var(--display);font-size:42px;line-height:1.1;margin:0}.view-title p{font-size:14px;font-weight:700;margin:10px 0 25px}.creature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.creature-card{background:#fff9eaeF;border:3px solid #fff9e4;border-bottom:6px solid #d3bd8f;border-radius:22px;padding:17px;text-align:center;position:relative;box-shadow:var(--shadow);transition:transform .2s}.creature-card:hover{transform:translateY(-5px)}.creature-card .creature{width:155px;height:155px;margin:0 auto}.creature-card h2{font-family:var(--display);font-size:25px;margin:0;line-height:1.2}.creature-card p{font-size:12px;line-height:1.5;margin:7px 0;color:#698270}.creature-card .badge{position:absolute;left:12px;top:12px;border-radius:8px;padding:4px 7px;font-size:9px;font-weight:900;background:#dbeabd;color:#4d7450;letter-spacing:1px}.creature-card.locked .creature{filter:brightness(.3) opacity(.3)}.creature-card.locked{background:#e3ecdfdd;border-color:#e1e8d6}.creature-card.locked .badge{background:#cbd4c4}.view-actions{display:flex;justify-content:center;gap:12px;margin:24px 0}.journal-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}.journal-card{background:#fffbeded;border-radius:22px;padding:24px;box-shadow:var(--shadow)}.journal-card h2{font-family:var(--display);font-size:26px;margin:0 0 8px}.journal-card p{font-size:14px;line-height:1.6;color:#6c806d}.skill-track{height:8px;background:#dce4c8;border-radius:8px;margin:15px 0 8px;overflow:hidden}.skill-track i{display:block;height:100%;background:#70a765;border-radius:8px}.skill-caption{font-size:12px;font-weight:800;color:#72916d}.confetti{position:fixed;width:9px;height:13px;z-index:100;pointer-events:none;top:-20px;animation:fall 2.5s ease-in forwards}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#163e36;color:#fff9dd;border:1px solid #fff4;border-radius:14px;padding:13px 23px;font-size:14px;font-weight:800;z-index:200;transition:.2s;box-shadow:var(--shadow);max-width:90vw;text-align:center}#toast.visible{transform:translate(-50%,0);opacity:1}@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes pop{from{scale:.3}to{scale:1}}@keyframes drift{0%,100%{transform:translateY(0);opacity:.2}50%{transform:translate(25px,-45px);opacity:.9}}@keyframes fall{to{transform:translateY(110vh) rotate(800deg)}}@media(min-width:1400px){#app{padding-top:32px}.tabs{margin-top:20px;margin-bottom:32px}.board{grid-template-rows:repeat(5,79px)}.mission-panel{margin-top:51px}.adventure-layout{grid-template-columns:270px minmax(0,1fr);gap:35px}.guide .creature{width:150px;height:150px}.mission-card{padding:28px}.part{width:86px;height:80px}.game-footer{margin-top:40px}}@media(max-width:1100px){#app{padding:20px 24px 12px}.adventure-layout{grid-template-columns:210px minmax(0,1fr);gap:16px}.mission-card{padding:19px}.mission-card h1{font-size:28px}.board{gap:5px;grid-template-rows:repeat(5,58px);grid-template-columns:repeat(7,minmax(0,1fr)) 66px}.target .creature{width:72px;height:72px}.workshop{padding:13px}.part{width:58px;height:66px}.part-mark{font-size:24px}.part-name{font-size:9px}.run-button{padding:12px 19px}.workbench{gap:8px;padding:10px}.parts{gap:5px}.brand-name{font-size:42px}.tile-label{font-size:17px;min-width:32px}}@media(max-width:820px){#app{padding:15px 15px 12px}.brand-name{font-size:37px}.brand-small{font-size:8px;letter-spacing:1.5px}.top-actions{gap:7px}.score-pill{padding:0 12px;height:40px;gap:6px}.score-pill strong{font-size:14px}.round-button{width:39px;height:39px}.divider{margin:0 3px}.tabs{margin:22px auto 20px}.tab{padding:10px 15px}.adventure-layout{display:flex;flex-direction:column;gap:13px}.mission-panel{margin:0;width:100%}.mission-card{padding:15px 18px;display:grid;grid-template-columns:1fr 130px;column-gap:14px}.mission-card .eyebrow{font-size:10px;grid-column:1}.mission-card h1{font-size:26px;grid-column:1;margin:0 0 6px}.mission-card p:not(.eyebrow){grid-column:1;font-size:13px;line-height:1.5}.mission-rule{grid-column:2;grid-row:1/4;margin:0;border-top:0;border-left:1px dashed #bccbab;padding:0 0 0 17px;align-self:center}.chapter-dots{display:none}.guide{display:none}.game-area{width:100%}.level-heading h2{font-size:21px}.board{grid-template-rows:repeat(5,65px);grid-template-columns:repeat(7,minmax(0,1fr)) 70px}.workbench{margin-top:16px}.part{width:70px;height:68px}.workshop{border-width:4px;border-bottom-width:7px}.game-footer{font-size:9px}.collection-view{margin:25px auto}.creature-grid{gap:10px}.creature-card{padding:14px 9px}.creature-card .creature{width:130px;height:130px}.journal-card{padding:20px}}@media(max-width:520px){.top-actions{gap:5px}.score-pill{padding:0 9px}.score-pill .divider,.score-pill .leaf-icon,.score-pill #creatureCount{display:none}.brand-name{font-size:32px}.brand-name i{font-size:17px;margin-left:5px}.brand-small{font-size:7px;letter-spacing:1.1px}.round-button{width:35px;height:35px;font-size:20px}.tabs{width:100%;justify-content:space-between;gap:0;margin:18px auto}.tab{font-size:12px;padding:10px 12px;gap:5px}.tab-count{display:none}.tab>span:first-child{font-size:16px}.mission-card{grid-template-columns:1fr 103px;padding:14px}.mission-card h1{font-size:23px}.mission-card .eyebrow{font-size:9px}.mission-card p:not(.eyebrow){font-size:12px}.mission-rule{padding-left:12px;gap:7px}.mission-rule span:first-child{font-size:24px}.mission-rule strong{font-size:12px}.mission-rule div{font-size:10px}.level-heading .region-index{font-size:9px}.level-heading h2{font-size:19px;gap:8px}.level-heading .stars{font-size:15px;letter-spacing:2px}.workshop{padding:10px 7px;border-radius:21px}.workshop-top{margin-bottom:12px}.workshop-top>span{font-size:9px;letter-spacing:1px}.small-button{font-size:10px;padding:5px 6px}.board{gap:3px;grid-template-rows:repeat(5,46px);grid-template-columns:repeat(7,minmax(0,1fr)) 51px}.cell{border-radius:8px}.tile-label{font-size:13px;padding:1px 3px;min-width:24px;border-radius:7px;border-width:1px}.target .creature{width:59px;height:59px;bottom:4px}.target-meter{font-size:10px;padding:1px 6px;bottom:-3px}.target .goal-name{font-size:8px;top:-10px;right:3px}.source-display{font-size:19px;gap:0}.berry-icon{font-size:14px}.source small{font-size:6px;letter-spacing:0}.source{border-width:2px!important}.board-note{font-size:10px;margin-top:13px}.workbench{padding:8px;border-radius:19px;gap:8px;align-items:stretch}.parts{gap:4px;flex:1}.part{flex:1;width:auto;min-width:0;height:58px;border-radius:10px}.part-mark{font-size:20px}.part-name{font-size:8px}.part-key{display:none}.run-button{font-size:20px;padding:9px 14px;border-radius:12px}.run-button small{font-size:7px;letter-spacing:.5px}.bench-caption{font-size:10px;gap:10px;margin:11px 2px 0}.bench-caption span:last-child{display:none}.game-footer span:first-child{display:none}.game-footer{justify-content:center;margin-top:22px;font-size:10px}.creature-grid{grid-template-columns:1fr 1fr;gap:10px}.creature-card .creature{width:140px;height:140px}.creature-card h2{font-size:24px}.creature-card p{font-size:11px}.view-title h1{font-size:35px}.view-title p{font-size:13px}.journal-list{grid-template-columns:1fr}.modal{padding:25px}.modal h2{font-size:31px}.packet{width:29px;height:29px;font-size:12px;border-width:2px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Keep the little labels clear of the creatures and berry count. */
.source small{left:0;right:0;text-align:center;white-space:nowrap;font-size:7px;bottom:4px}.target .goal-name{top:auto;bottom:-17px;right:auto;font-size:9px;letter-spacing:.2px}.guide-name{position:relative;display:block;left:auto;top:auto;margin:-57px 0 0 103px;font-size:11px;line-height:1.5;max-width:135px}.workshop-top{margin-bottom:15px}.board-note{margin-top:18px}.modal{max-height:calc(100dvh - 32px);overflow:auto}.tile-value{position:absolute;top:3px;left:5px;font-size:9px;color:#71905d}
@media(max-width:520px){.source small{font-size:5px;bottom:2px}.source-display{padding-bottom:3px}.target .goal-name{font-size:8px;bottom:-14px}.board-note{margin-top:18px}.mission-card p:not(.eyebrow){font-size:13px}.small-button{min-height:30px}.tip-item{font-size:14px}.modal .creature{height:110px;width:110px}.modal h2{font-size:29px}.tip-list{gap:9px;margin:16px 0}.modal p{margin:8px 0 12px}}
/* Readable labels at every size. */
.brand-small{font-size:12px;letter-spacing:1.5px}.eyebrow,.level-heading .region-index,.workshop-top>span,.game-footer,.part-key,.bench-caption,.guide-name,.target .goal-name,.creature-card .badge,.skill-caption{font-size:12px}.guide-bubble,.mission-card p:not(.eyebrow),.board-note,.small-button,.creature-card p{font-size:14px}.part-name{font-size:12px}.source small{display:none}.run-button small{font-size:10px}.chapter-dots{gap:5px}.chapter-dots button{width:25px;height:25px;flex-shrink:0}.target .goal-name{bottom:-20px}.board-note{margin-top:23px}.guide-name{font-size:12px}.creature-card .badge{font-size:10px}.source-display{font-size:25px}.part-name{line-height:1.1}.part{gap:6px}.part-key{font-size:10px}.bench-caption{gap:20px}.bench-caption span:last-child{white-space:nowrap}.guide-name{max-width:120px}.workshop-top>span{letter-spacing:1px}
@media(max-width:1100px){.brand-small{font-size:10px}.part-name{font-size:11px}.part-key{display:none}.bench-caption span:last-child{display:none}.game-footer{font-size:11px}.guide-name{margin-left:88px}.chapter-dots button{width:24px;height:24px}.chapter-dots{gap:4px}.creature-card .badge{font-size:10px}}
@media(max-width:820px){.mission-card p:not(.eyebrow){font-size:14px}.eyebrow{font-size:12px}.mission-rule div{font-size:12px}.mission-rule strong{font-size:14px}.workshop-top>span{font-size:12px}.part-name{font-size:12px}.game-footer{font-size:12px}.level-heading .region-index{font-size:12px}.brand-small{font-size:9px}}
@media(max-width:520px){.brand-small{display:none}.mission-card .eyebrow{font-size:11px}.mission-rule strong{font-size:12px}.mission-rule div{font-size:11px}.mission-card p:not(.eyebrow){font-size:14px}.level-heading .region-index{font-size:10px;letter-spacing:1px}.workshop-top>span{font-size:10px}.small-button{font-size:12px}.part-name{font-size:11px}.source-display{font-size:20px}.target .goal-name{font-size:10px;bottom:-17px}.board-note{font-size:12px}.target-meter{font-size:12px;padding:1px 5px}.run-button small{display:none}.run-button{align-self:stretch;display:flex;align-items:center;gap:5px}.run-button span{font-size:12px!important}.modal .run-button{justify-content:center}.creature-card p{font-size:13px}.game-footer{font-size:12px}.mission-card{grid-template-columns:1fr 106px}.mission-rule{gap:6px}.workshop-top{margin-left:2px;margin-right:2px}.tool-actions{gap:3px}.small-button{padding:4px 6px}.parts{gap:3px}.part-mark{font-size:23px}.creature-card .badge{font-size:10px}.bench-caption{font-size:12px}.source{overflow:hidden}.view-actions{flex-wrap:wrap}}
/* Smooth, unified dragging for fingers, pens, and mouse pointers. */
.part,.cell.placeable{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
.part,.cell.placeable:not(:has(.placeholder)){cursor:grab}
.dragging-part,.dragging-part *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
.drag-origin{opacity:.4;transform:none!important}
.drag-piece{position:fixed;top:0;left:0;z-index:1000;pointer-events:none;border:3px solid #ffeaa6;border-bottom-width:5px;border-radius:15px;background:#e5edc5;box-shadow:0 14px 30px #123c4055,0 3px 0 #244f3533;display:flex;align-items:center;justify-content:center;will-change:transform;contain:layout style;overflow:hidden}
.drag-piece.can-drop{border-color:#fff4b8;box-shadow:0 14px 30px #123c4040,0 0 0 3px #ffd36770}
.accepting-part .placeable{background:#fffbd891;border:2px dashed #d1b15b;transition:background .1s,box-shadow .1s}
.accepting-part .placeable:hover{transform:none}
.cell.drop-ready{background:#fff0a0!important;border:2px solid #e4af31!important;box-shadow:0 0 0 4px #ffda6c70,0 5px 12px #9a7e4930!important;transform:none!important}
.cell.drop-ready>:not(.drop-preview){opacity:.15}
.drop-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.75;overflow:hidden;border-radius:10px}
.cell.just-placed{animation:part-land .2s cubic-bezier(.2,.8,.3,1)}
@keyframes part-land{0%{transform:scale(.9);box-shadow:0 0 0 5px #ffd46780}60%{transform:scale(1.04)}100%{transform:scale(1);box-shadow:0 0 0 0 #ffd46700}}
@media(prefers-reduced-motion:reduce){.cell.just-placed{animation:none}.drag-piece{will-change:auto}}
/* Pip offers a clue first, then one optional, undoable move. */
.small-button.hint-button{background:#ffe49a;border-color:#d6ad50;color:#59491d;font-size:14px;min-height:38px;padding:7px 12px;box-shadow:0 2px 0 #d6ad5060}
.hint-panel{margin:16px 0 0;padding:17px 18px;border:2px solid #e6c372;border-radius:17px;background:#fff9dc;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left}
.hint-panel[hidden]{display:none}.hint-copy{min-width:0}.hint-copy strong{display:block;font-family:var(--display);font-size:21px;line-height:1.2;color:#375c3c}.hint-copy p{font-size:16px;line-height:1.5;margin:7px 0 0;color:#50674a}.hint-eyebrow{display:block;font-size:12px;font-weight:900;letter-spacing:1px;margin-bottom:5px;color:#887038}.hint-part{display:inline-block;font-size:16px;font-weight:900;color:#3c623a;margin-top:10px;padding:5px 10px;background:#e5edc6;border-radius:8px}.hint-actions{display:flex;flex-direction:column;align-items:center;gap:7px;flex-shrink:0}.hint-action{border:1px solid #347957;border-bottom:3px solid #235e40;background:#347957;color:#fffef0;border-radius:10px;padding:10px 15px;font-weight:800;font-size:14px;min-height:44px}.hint-dismiss{border:0;background:transparent;color:#58734f;padding:8px;font-size:14px;font-weight:700;min-height:38px}.cell.selected-cell{outline:3px solid #d99529;outline-offset:3px!important;background:#fff0ab;border-color:#e2b552}.hint-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff6c8d9;border-radius:10px;pointer-events:none;z-index:3}.hint-preview .pipe-svg{opacity:.7}.cell.selected-cell:has(.hint-preview)>:not(.hint-preview){opacity:.15}
@media(max-width:820px){.hint-panel{gap:12px;padding:14px}.hint-copy strong{font-size:20px}}
@media(max-width:520px){.workshop-top{flex-wrap:wrap;gap:10px}.tool-actions{margin-left:auto}.small-button.hint-button{font-size:13px;padding:6px 9px}.hint-panel{flex-direction:column;align-items:stretch}.hint-actions{flex-direction:row;flex-wrap:wrap}.hint-copy p{font-size:16px}}
