*{box-sizing:border-box}body{margin:0;background:#f5efdf;color:#203e47;font-family:Georgia,'Songti SC','SimSun',serif;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#96764c05 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,#96764c05 3px 4px)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid #23475444;background:#fff9ef;color:#234754;padding:12px 20px;border-radius:3px}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #c45b43;outline-offset:3px}.primary{background:#214b5a;color:#fff9ef;border:1px dashed #d8d8b8;outline:4px solid #214b5a;margin:6px}.red{color:#a34d39}header{max-width:1100px;margin:auto;display:flex;align-items:center;gap:12px;padding:22px 26px;border-bottom:1px solid #284c5425}header a{text-decoration:none;color:inherit;margin-right:auto;font-size:23px}small{font:10px Arial;letter-spacing:3px;display:block;margin-top:7px}main{max-width:1050px;margin:auto;padding:35px 24px}.eyebrow{font:11px Arial;letter-spacing:4px;color:#8c7961}h1{font-size:clamp(48px,8vw,82px);font-weight:400;letter-spacing:9px;margin:24px 0}h2{font-weight:400;font-size:32px}p{line-height:1.9;color:#667570}.hero{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;min-height:65vh}.quilt{transform:rotate(-7deg);display:grid;grid-template-columns:1fr 1fr;background:#234b5b;gap:10px;padding:24px;outline:1px dashed #f5efdf;outline-offset:-12px;box-shadow:12px 15px 0 #dcd3bd}.quilt img{width:100%;display:block}.actions{display:flex;gap:22px;align-items:center;margin-top:32px;flex-wrap:wrap}.foot{margin-top:50px;font-size:12px;border-top:1px solid #284c5425;padding-top:20px;color:#8c7961}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.map{max-width:420px;margin:auto;display:flex;flex-direction:column-reverse;gap:30px;padding:35px 0;background:linear-gradient(90deg,transparent 49.5%,#b4b29b 49.5% 50%,transparent 50%)}.level{position:relative;width:95px;height:95px;border-radius:50%;padding:0;align-self:center;border:7px solid #eee6d4;box-shadow:0 0 0 1px #b0ad96;background:#fdf9ef}.level:nth-child(3n+1){margin-right:180px}.level:nth-child(3n+2){margin-left:180px}.level img{width:100%;height:100%;border-radius:50%;object-fit:contain}.level span{position:absolute;bottom:-14px;left:23px;background:#234b5b;color:white;border-radius:20px;padding:3px 12px;font:13px Arial}.level.current{box-shadow:0 0 0 3px #b4533f}.collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:20px}.swatch{padding:12px;background:#fff9ef;border:1px solid #d5cbb8;box-shadow:4px 4px 0 #e7decb;text-align:center}.swatch img{width:100%;aspect-ratio:1;object-fit:contain}.swatch.locked img{filter:grayscale(1);opacity:.15}.swatch p{font-size:14px;margin:8px 0}.boardwrap{position:relative;max-width:540px;margin:20px auto;background:#ded6bf;padding:10px;border:1px dashed #8a957e}.board{display:grid;gap:6px}.tile{padding:0;aspect-ratio:1;border:0;background:#fff9ef;box-shadow:1px 3px 0 #c9bfa7;min-width:0}.tile img{width:100%;height:100%;object-fit:contain;pointer-events:none}.tile.selected{outline:3px solid #b65540;transform:translateY(-2px)}.tile.empty{visibility:hidden}svg.lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.toolbar{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.gamehead{max-width:540px;margin:auto}.progress{height:5px;background:#d9d2bd;margin:18px 0}.progress i{display:block;height:100%;background:#a55240;transition:width .3s}.notice{text-align:center;min-height:28px;font-size:14px;color:#9e523e}dialog{border:1px solid #c6b898;background:#fff9ef;color:#234754;padding:32px;max-width:440px;width:90%;text-align:center;box-shadow:0 20px 100px #071d3350}dialog::backdrop{background:#112f40b5}dialog img{width:230px;max-width:85%;aspect-ratio:1;object-fit:contain}dialog p{font-size:14px}#lang,#sound{padding:9px 12px;font:12px Arial}@media(max-width:650px){header{padding:16px}main{padding:25px 16px}.hero{grid-template-columns:1fr;gap:38px}.hero .quilt{max-width:290px;margin:8px auto 20px;grid-row:1}.hero h1{font-size:50px;margin:15px 0}.hero .intro{text-align:center}.actions{justify-content:center;margin-top:22px}.eyebrow{font-size:10px}.collection{grid-template-columns:repeat(3,1fr);gap:9px}.swatch{padding:7px}.swatch p{font-size:12px}.boardwrap{padding:7px}.board{gap:5px}.level{width:82px;height:82px}.level:nth-child(3n+1){margin-right:150px}.level:nth-child(3n+2){margin-left:150px}h2{font-size:26px}}
@font-face{font-family:TubuBrush;src:url('assets/calligraphy.ttf') format('truetype');font-display:swap}h1,h2,header a,.prop-button{font-family:TubuBrush,'STKaiti','KaiTi',serif}h1,h2{font-weight:700;text-shadow:0 2px 0 #fff7db,2px 4px 2px #5a321f40;color:#643e26}body{background-color:#e9d5ad;color:#513d2a;background-image:linear-gradient(#f7eddaea,#e6cfa9e8),url('assets/workshop.png');background-size:auto,cover;background-attachment:fixed}header{border-bottom:2px solid #aa83584a}.quilt{display:block;padding:0;background:none;outline:0;transform:rotate(-3deg);box-shadow:10px 12px 0 #78523035;border:9px solid #70472d;border-radius:12px;overflow:hidden}.quilt img{width:100%;display:block}.prop-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;padding:3px 7px;color:#633e24;font-size:21px;font-weight:bold;text-shadow:0 1px #fff1c8;min-height:58px;transition:transform .1s,filter .1s;box-shadow:none}.prop{display:inline-block;flex:none;width:58px;height:58px;background-image:url('assets/props.png');background-size:300% 200%;background-repeat:no-repeat;mix-blend-mode:multiply}.prop-0{background-position:0 0}.prop-1{background-position:50% 0}.prop-2{background-position:100% 0}.prop-3{background-position:0 100%}.prop-4{background-position:50% 100%}.prop-5{background-position:100% 100%}.prop-button.primary{background:transparent;outline:0;border:0;color:#a53d29}.prop-button:active,#sound:active,#lang:active{transform:translateY(5px) scale(.97);filter:brightness(.84)}#sound{padding:0;border:0;background:transparent;min-width:52px}#sound .prop{width:52px;height:52px}#sound.on{filter:drop-shadow(0 0 4px #bc8419)}#lang{font-family:TubuBrush,'KaiTi',serif;background:#efe0bc;border:3px ridge #94623b;color:#693f26;box-shadow:0 3px 0 #714c2c}.boardwrap{background:#eee1c4;border:12px ridge #8d5e37;border-radius:9px;padding:15px;box-shadow:0 7px 0 #674124,0 12px 18px #573a2840;outline:2px solid #c49b62;outline-offset:3px}.tile{border-radius:5px;box-shadow:0 3px 0 #ac9068,0 4px 4px #3f2b2030;transition:transform .1s}.tile:active{transform:translateY(3px)}.toolbar{gap:4px}.gamehead h2{font-size:35px}.progress{background:#b79b6a;border:2px solid #826039;height:10px;border-radius:7px}.progress i{background:#b15139;border-radius:7px}.level{border-color:#b89461;box-shadow:0 5px #785334}.level .sealed{filter:grayscale(1);opacity:.2}.level span{background:#83512e}.foot{color:#866844}.collection .swatch{background:#fff4d9;border:4px ridge #ba9868;border-radius:4px}.swatch:active{transform:translateY(3px)}dialog{border:9px ridge #9a6a40;border-radius:9px;background:#fff2d7}.eyebrow{color:#9a6d48}.notice{margin-top:27px}@media(max-width:650px){.prop-button{font-size:18px;padding:2px 3px}.prop{width:44px;height:44px}.boardwrap{padding:10px;border-width:9px}.gamehead h2{font-size:29px}.toolbar .prop-button{flex-direction:column;gap:0;font-size:16px;min-width:88px}.hero .quilt{max-width:330px}.hero h1{font-size:55px}.topline .prop-button{font-size:17px}.topline .prop{width:40px;height:40px}}
dialog.victory{max-width:500px;overflow:hidden;padding:26px 24px 22px;background:radial-gradient(ellipse at 50% 35%,#fff9df,#f6dfaa 80%);animation:celebrate-in .5s cubic-bezier(.2,1.4,.5,1)}.victory::backdrop{background:#1d302cce}.victory-content{position:relative;z-index:1}.victory-title{color:#a82f20;font-size:48px;margin:12px 0 20px;text-shadow:0 2px #fff4c5,2px 4px #b6885140}.reward-flower{position:relative;width:210px;height:210px;margin:0 auto 20px;animation:flower-open .9s cubic-bezier(.2,1.5,.5,1)}.reward-flower:before{content:'';position:absolute;inset:-18px;background:repeating-conic-gradient(from 10deg,#d8a4373d 0deg 10deg,transparent 10deg 25deg);border-radius:50%;animation:halo-turn 24s linear infinite}.reward-flower img{position:relative;width:100%;height:100%;border-radius:50%;border:5px solid #d3aa63;box-shadow:0 5px 15px #986a3d45;object-fit:contain;background:#fff9ef}.victory-seal{position:absolute;right:-16px;bottom:0;display:flex;align-items:center;justify-content:center;width:77px;height:77px;border:4px double #ac3426;border-radius:8px;background:#fff1cfeb;color:#ac3426;font:32px TubuBrush,'KaiTi',serif;transform:rotate(-13deg);animation:seal-stamp .45s .65s both}.victory h3{font:28px TubuBrush,'KaiTi',serif;margin:16px 0 3px;color:#704123}.victory p{margin:8px 0 18px}.victory-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.celebration{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.celebration i{position:absolute;left:var(--x);top:-25px;width:8px;height:15px;background:var(--color);border:1px solid #c29b5b60;animation:petal-fall 3s var(--delay) cubic-bezier(.12,.5,.7,1) both}.celebration i:nth-child(3n){border-radius:70% 0 70% 0}.celebration i:nth-child(4n){width:5px;height:9px}@keyframes celebrate-in{from{opacity:0;transform:scale(.8) translateY(25px)}to{opacity:1;transform:none}}@keyframes flower-open{from{opacity:0;transform:scale(.45) rotate(-18deg)}to{opacity:1;transform:none}}@keyframes seal-stamp{from{opacity:0;transform:scale(2.8) rotate(-25deg)}to{opacity:1;transform:scale(1) rotate(-13deg)}}@keyframes halo-turn{to{transform:rotate(360deg)}}@keyframes petal-fall{0%{opacity:0;transform:translateY(-20px) rotate(0)}10%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(var(--drift),620px) rotate(var(--spin))}}@media(max-width:600px){dialog.victory{padding:22px 15px}.victory-title{font-size:40px}.reward-flower{width:180px;height:180px}.victory-seal{width:63px;height:63px;font-size:27px}}@media(prefers-reduced-motion:reduce){.victory,.reward-flower,.victory-seal,.reward-flower:before,.celebration i{animation:none!important}.celebration{display:none}}
.celebration i{top:30%;width:var(--size);height:calc(var(--size)*1.6);animation:petal-scatter var(--duration) var(--delay) cubic-bezier(.2,.5,.65,1) both}.celebration i:nth-child(4n){width:var(--size);height:var(--size)}@keyframes petal-scatter{0%{opacity:0;transform:translate(0,0) rotate(0)}8%{opacity:1}32%{opacity:1;transform:translate(calc(var(--drift)*.55),var(--lift)) rotate(calc(var(--spin)*.35))}85%{opacity:1}100%{opacity:0;transform:translate(var(--drift),650px) rotate(var(--spin))}}.prop{mix-blend-mode:normal;background-image:url('assets/props-transparent.png')}.victory-actions{gap:6px}.victory-actions .primary{flex-basis:100%;font-size:27px}.victory-actions .primary .prop{width:65px;height:65px}
/* Open board: outside paths remain visible without crossing any visual frame. */
.boardwrap{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;border-radius:0;padding:18px 12px;overflow:visible}.boardwrap .lines{overflow:visible;z-index:3}.board{position:relative}.gamehead{margin-bottom:12px}
body:has(.gamehead){height:100dvh;overflow:hidden;overscroll-behavior:none}main:has(.gamehead){height:var(--play-height,calc(100dvh - 95px));padding:10px 16px 12px;display:flex;flex-direction:column;gap:6px;overflow:visible}.gamehead{width:100%;flex:none;margin:0 auto}.gamehead .progress{margin:6px 0}.gamehead h2{margin:2px!important}.boardwrap{flex:none;margin:auto!important;padding:12px!important;max-width:none;touch-action:manipulation}.board .tile{width:100%;height:100%;aspect-ratio:auto}.notice{flex:none;min-height:18px;line-height:18px;margin:0;font-size:12px}.toolbar{flex:none;flex-wrap:nowrap;align-items:center}.toolbar .prop-button{min-height:44px}.gamehead .topline{gap:6px}.gamehead .eyebrow{font-size:9px}.gamehead .prop-button{min-height:40px}dialog{max-height:calc(100dvh - 24px);overflow-y:auto}@media(max-width:650px){body:has(.gamehead) header{padding:8px 14px;min-height:58px}body:has(.gamehead) header a{font-size:21px}body:has(.gamehead) header small{font-size:8px;margin-top:3px}body:has(.gamehead) #sound .prop{width:38px;height:38px}.gamehead h2{font-size:25px}.gamehead .prop{width:32px;height:32px}.gamehead .prop-button{font-size:15px}.toolbar .prop{width:34px;height:34px}.toolbar .prop-button{font-size:14px;min-width:80px;min-height:50px}.gamehead #remaining{font-size:13px}main:has(.gamehead){padding:5px 10px max(8px,env(safe-area-inset-bottom));gap:3px}}@media(max-height:550px){body:has(.gamehead) header{padding:3px 12px;min-height:38px}body:has(.gamehead) header small{display:none}.gamehead .eyebrow{display:none}.gamehead h2{font-size:22px}.toolbar .prop-button{flex-direction:row;min-height:32px}.toolbar .prop{width:28px;height:28px}.notice{min-height:15px;line-height:15px}}
main:has(.gamehead){max-width:1160px}.gamehead{max-width:900px}.boardwrap{max-width:100%}.toolbar .prop-button{padding-left:12px;padding-right:12px}
#shuffle-button:disabled{opacity:.42;filter:grayscale(.65);cursor:default;transform:none}#shuffle-count{font-family:Georgia,serif;font-size:.78em;white-space:nowrap}

/* Small discoveries, woven into the existing textile journey. */
.theme-index{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.theme-index a{padding:10px 14px;border:1px solid #ac885c;color:#704123;text-decoration:none;background:#f9edd5;border-radius:4px}.theme-index b{margin-left:8px;font:12px Georgia}.theme-section{scroll-margin-top:18px;margin:38px 0}.theme-section h2{margin:10px 0}.theme-section .topline p{margin:0}.theme-progress{height:5px;background:#cab899;margin:14px 0 20px}.theme-progress i{display:block;height:100%;background:#a44c38}.theme-quilt{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:12px;background:#25495a;border:6px ridge #b79762;max-height:50dvh;overflow:auto}.theme-quilt img{width:100%;max-width:100%;aspect-ratio:1;display:block;background:#f8eedc}.next-preview{display:flex;align-items:center;gap:15px;text-align:left;border-top:1px dashed #b69463;border-bottom:1px dashed #b69463;padding:12px 0;margin:14px 0}.preview-window{width:64px;height:64px;flex:none;overflow:hidden;border-radius:50%;border:3px solid #b18a53;background:#f9efdb}.preview-window img{width:128px;max-width:none;height:128px;transform:translate(-18px,-14px)}.next-preview .eyebrow{letter-spacing:1px;font-size:10px}.next-preview strong{font-size:15px;font-weight:400}.next-preview p{font-size:12px;margin:5px 0 0}.combo-feedback{position:absolute;top:22%;left:50%;z-index:4;pointer-events:none;text-align:center;white-space:nowrap;color:#a33223;font:38px TubuBrush,'KaiTi',serif;text-shadow:0 2px #fff4d0,0 0 12px #fff1be;animation:combo-bloom 1.3s ease-out both}.combo-feedback small{font:12px TubuBrush,'KaiTi',serif;letter-spacing:2px;margin-top:0;color:#724221}@keyframes combo-bloom{0%{opacity:0;transform:translate(-50%,12px) scale(.7)}20%,65%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-25px)}}dialog.victory{overflow-y:auto}.victory .reward-flower{width:155px;height:155px;margin-bottom:12px}.victory-title{margin-bottom:14px}@media(max-width:650px){.theme-section .topline{align-items:flex-start}.theme-section .topline .prop-button{font-size:15px}.theme-section h2{font-size:25px}.theme-index{gap:6px}.theme-index a{font-size:13px;padding:8px}.next-preview{gap:10px}.victory .reward-flower{width:130px;height:130px}.victory-title{font-size:34px}}@media(prefers-reduced-motion:reduce){.combo-feedback{animation:none;transform:translateX(-50%)}}

.notice:has(.undo-deadlock){height:auto;min-height:40px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px}.undo-deadlock{font-family:TubuBrush,'KaiTi',serif;font-size:16px;padding:5px 10px;color:#a33223;border:1px solid #b68f61;background:#fff0cf;box-shadow:0 2px #aa8253}.undo-deadlock:active{transform:translateY(2px)}

header a.all-games{font-size:12px;margin:0;padding:5px 2px;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}@media(max-width:500px){header{gap:8px}header a.all-games{font-size:11px}}

.map{position:relative;isolation:isolate;width:100%;max-width:650px;gap:30px;padding:35px 0;min-height:500px;background:#eee2ca url('assets/seasons-shanshui.png') center/100% 100% no-repeat;box-shadow:0 0 0 1px #c9b490,0 12px 40px #775d3520;border-radius:160px 160px 18px 18px;overflow:hidden}.flower-vine{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;filter:drop-shadow(1px 2px 1px #5d583855)}.map .level{align-self:flex-start;margin-left:calc(var(--node-x) - 47.5px);flex-shrink:0;width:95px;height:95px;border:6px solid #eedebc;box-shadow:0 4px #8e7850,0 7px 12px #533e2e55;background:#fff5dd}.map .level.current{box-shadow:0 0 0 4px #ae6340,0 7px #8e7850}.map .level:disabled{opacity:.8;filter:saturate(.55)}.season-label{position:absolute;left:12px;z-index:2;padding:8px 12px;background:#fbf0dbe8;color:#785536;border:1px solid #bba078;border-radius:20px;font-size:16px;pointer-events:none}.map .level span{background:#faf0dbeF;color:#705234;border:1px solid #ad946b}.map .level:active{transform:translateY(3px)}@media(max-width:500px){.map{border-radius:90px 90px 12px 12px}.map .level{width:82px;height:82px;margin-left:calc(var(--node-x) - 41px)}.map{gap:43px}}

.map{background-image:linear-gradient(#f5ebd830,#f5ebd830),url('assets/seasons-shanshui.png');background-size:100% 100%,100% 100%}.flower-vine{opacity:.86}

@font-face{font-family:GardenSerif;src:url('assets/elegant-serif.otf')}body{background:#f7efdf;background-image:none}html[lang="en"] body,html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3,html[lang="en"] button,html[lang="en"] a,html[lang="en"] select,html[lang="en"] .prop-button,html[lang="en"] .hub-action{font-family:GardenSerif,Georgia,serif!important;font-weight:400!important;font-style:normal;text-shadow:none!important;letter-spacing:.01em}html[lang="en"] h1{line-height:1.08}html[lang="en"] .hero h1{font-size:clamp(46px,7vw,74px);letter-spacing:.015em}.season-art{position:absolute;left:0;right:0;height:28%;background-position:center;background-size:cover;pointer-events:none;z-index:-2;mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}.season-art.spring{bottom:0;background-image:url('assets/season-spring.png')}.season-art.summer{bottom:24%;background-image:url('assets/season-summer.png')}.season-art.autumn{bottom:48%;background-image:url('assets/season-autumn.png')}.season-art.winter{bottom:72%;background-image:url('assets/season-winter.png')}.map,.tree-path{background:#f7efdf!important;isolation:isolate}.tree-path:before,.flower-vine{display:none!important}.season-label{background:#fbf4e7ed}.level:disabled,.map-node:disabled{opacity:.78}#game-hub{background:#f7efdf!important}.hub-lang{position:absolute;right:20px;top:16px;border:1px solid #b29a75;border-radius:20px;background:#fff9ee;padding:7px 15px;font:14px GardenSerif,serif}.language-top{display:block;margin:0 0 5px auto;padding:5px 10px;border:1px solid #baa178;border-radius:15px;background:#fff6e5;font-size:12px}.map-header .language-top{position:absolute;left:12px;top:10px;margin:0}.music-active>.language-top{display:none}html[lang="en"] .map-node span{font-size:13px}html[lang="en"] .hub-card h2{font-size:30px}html[lang="en"] .map-node b{font-family:GardenSerif,serif}html[lang="en"] .prop-button{font-size:20px}@media(max-width:600px){html[lang="en"] .hub-card h2{font-size:23px}html[lang="en"] .hub-card p{font-size:12px}.hub-lang{top:12px;right:12px}}

html[lang='en'] body *{font-family:GardenSerif,Georgia,serif!important}html[lang='en'] .season-label{font-size:17px}html[lang='en'] .map-node span{font-size:14px;line-height:1.3}body{background-image:none!important}

:root{--paper:#f7efdf;--ink:#62442e;--accent:#934e36;--gold:#b29362}body{background:var(--paper)!important;color:var(--ink)}button,select{color:var(--ink)}.primary,.hub-action{background:var(--accent)!important;color:#fff4db!important;border-color:#79412e}.flower-poem{margin:14px auto 19px;text-align:center;border:0;padding:0;max-width:330px}.flower-poem p{font-family:'Songti SC',serif;font-size:18px;line-height:1.9;color:#684b32;margin:0}.flower-poem cite{display:block;font-size:11px;font-style:normal;color:#967a58;margin-top:8px;line-height:1.5}.map-node,.map .level{border:0!important;border-radius:0!important;background:transparent url('assets/level-scroll.png') center/100% 100% no-repeat!important;box-shadow:none!important;outline:0!important;filter:none!important;backdrop-filter:none!important}.map-node img,.map .level img{border-radius:0!important;background:none;object-fit:contain;mix-blend-mode:multiply}.map-node.current,.map .level.current{filter:drop-shadow(0 0 6px #a7613788)!important}.map-node:disabled,.map .level:disabled{opacity:.7}.map-node b{white-space:nowrap;color:#80533b;background:none;border:0;border-radius:0;font-size:12px;width:auto;height:auto;text-align:center}.map-node span{background:none;white-space:normal;line-height:1.3;color:#62442e;text-align:center}.music-fields select,#rhythm select{appearance:none;-webkit-appearance:none;background-color:#fff5de;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='m3 4 5 5 5-5' fill='none' stroke='%237a5435' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding:9px 38px 9px 12px;border:1px solid #b99a68;border-radius:8px;min-width:0}html[lang=en] .flower-poem p{font-size:16px;line-height:1.6}

header{color:var(--ink)}p{color:#7a6957}.gamehead .topline{gap:10px}.gamehead .eyebrow{display:none}.gamehead h2{font-size:24px!important}.toolbar{position:sticky;bottom:0;z-index:12;background:var(--paper);padding:10px 4px max(10px,env(safe-area-inset-bottom));display:flex;justify-content:space-around;gap:4px}.toolbar .prop-button{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;font-size:14px!important;white-space:nowrap}.toolbar .prop{width:31px;height:30px}.map{gap:18px!important;padding:35px 0}.map .level{width:112px!important;height:150px!important;margin-left:calc(var(--node-x) - 56px)!important;padding:22px 17px 35px;align-self:flex-start}.map .level img{width:100%;height:78px}.map .level span{position:absolute;bottom:25px!important;top:auto!important;left:0!important;right:0!important;transform:none!important;width:auto;background:none;border:0;border-radius:0;font-size:15px;padding:0;color:#80533b}#lang{background:#fdf4e0;border:1px solid #b79b72;border-radius:8px;color:var(--ink)}.gamehead .prop-button{color:var(--ink)}.gamehead .progress{background:#ddcba6}.gamehead .progress i{background:var(--accent)}

.map-screen,.map-header,.map-bottom,.tree-scroll{background:var(--paper)!important}.map-node b{font-family:'Songti SC',serif}.map-node span{font-family:Brush,'KaiTi',serif}@media(min-width:851px){.game footer button{font-size:14px}.game footer .prop{width:36px;height:34px}}

.map .level{margin-right:0!important}.gamehead .topline>.prop-button:first-child{display:none}.gamehead #remaining{display:none}.gamehead .topline{justify-content:center}dialog .flower-poem{margin-top:14px}

/* Old textile workshop frames the app; ivory keeps the play surface legible. */
body{background:linear-gradient(#f7efdf99,#f7efdf99),url('assets/workshop.webp') center/cover fixed!important}
main{background:#f7efdfe8;box-shadow:0 0 80px #49331e33}

@font-face{font-family:GardenScript;src:url('assets/garden-italic.otf');font-display:swap;font-style:italic}html[lang=en] .hub-inner>h1,html[lang=en] .hero h1,html[lang=en] #brand,html[lang=en] .hero .prop-button{font-family:GardenScript,Georgia,serif!important;font-style:italic!important;font-weight:400!important;letter-spacing:0!important}html[lang=en] .hero h1{font-size:clamp(38px,7vw,64px)!important;white-space:nowrap;line-height:1.2}html[lang=en] .hero .prop-button{font-size:22px!important;white-space:nowrap}html[lang=en] .hero .actions{gap:18px}html[lang=en] #brand{font-size:26px}html[lang=en] #brand small{font-family:GardenSerif,Georgia,serif!important;font-style:normal!important}@media(max-width:450px){html[lang=en] .hero .actions{gap:14px;flex-direction:column}html[lang=en] .hero .prop-button{font-size:21px!important}}

/* Keep the full board below the mobile status area, including when arriving from a scrolled map. */
body:has(.gamehead){position:relative;margin:0;height:100svh}body:has(.gamehead) header{padding: max(18px,env(safe-area-inset-top)) 20px 10px;min-height:72px}main:has(.gamehead){padding:14px 22px max(18px,env(safe-area-inset-bottom));max-width:1050px;overflow:visible}.toolbar{position:relative;bottom:auto;padding:8px 0;gap:6px;width:100%;min-width:0}.toolbar .prop-button{min-width:0!important;flex:1 1 0;padding:2px!important;white-space:nowrap}html[lang=en] .toolbar .prop-button{font-size:12px!important}html[lang=en] .gamehead h2{font-size:20px!important}html[lang=en] body:has(.gamehead) #brand{font-size:22px!important}html[lang=en] body:has(.gamehead) .all-games{font-size:12px!important}.boardwrap{max-width:100%}.gamehead .topline{justify-content:center}.notice{font-size:11px}
