@font-face{font-family:Happy;src:url('assets/fonts/ZCOOLKuaiLe-Regular.ttf') format('truetype');font-display:swap}
:root{--ink:#643714;--line:#a56b31;--paper:#fff7e5;--cream:#f8ead2;--gold:#ffc74a;--mint:#89c8b3;--muted:#a08262;--outline:2px solid var(--line)}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Happy,'Microsoft YaHei',sans-serif;background:#e8bb7f url('assets/kitchen.png') center center/cover fixed}button,input{font:inherit}button{cursor:pointer;color:var(--ink);border:var(--outline);background:var(--paper);border-radius:14px;min-height:44px;padding:9px 17px;box-shadow:0 3px 0 #9b622b52,inset 0 2px 0 #fff9;transition:transform .15s,background .15s,box-shadow .15s}button:hover:not(:disabled){transform:translateY(-2px);background:#fff2cb}button:active:not(:disabled){transform:translateY(2px);box-shadow:none}button:focus-visible,canvas:focus-visible,input:focus-visible{outline:3px solid #229cc5;outline-offset:3px}button:disabled{cursor:default;opacity:.42;box-shadow:none}h1,h2,h3,p{margin:0}h1{font-size:33px;font-weight:normal;letter-spacing:2px}h2{font-size:26px;font-weight:normal}h3{font-size:22px;font-weight:normal}b{font-weight:normal}.app{max-width:1800px;margin:auto;padding:20px 24px 0;min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px;background:#fff2d8f5;border:3px solid #895126;border-radius:25px;padding:9px 25px 10px 14px;box-shadow:0 5px 0 #78401945;transform:rotate(-1deg)}.chef{font-size:50px;color:#fff;-webkit-text-stroke:2px #885a34;text-shadow:2px 4px #d89e71}.brand div>span{font:12px 'Microsoft YaHei',sans-serif;display:block;letter-spacing:1px;margin-top:5px}.top-actions{display:flex;align-items:center;gap:10px}.top-actions>span{background:#fff7e5e8;border-radius:30px;padding:10px 15px;font:12px 'Microsoft YaHei',sans-serif}.round{border-radius:50%;width:46px;font-size:24px;padding:0}.gold{background:linear-gradient(#ffe183,#ffc244);border:2px solid #925120;box-shadow:0 4px 0 #b86d27,inset 0 2px 0 #fff5c7;font-size:20px}.gold:hover:not(:disabled){background:#ffda70}.mint{background:#aadbc4}.main-nav{display:flex;justify-content:center;gap:8px;margin:22px auto 15px}.main-nav button{font-size:21px;min-width:135px;padding:12px 22px;background:#fff1d5ef}.main-nav button.active{background:#ffc84d;transform:translateY(-2px);box-shadow:0 4px #ab6b2a}.main-nav b{display:inline-block;font-size:14px;border-radius:20px;background:#d5b78350;padding:2px 7px;margin-left:3px}.page{display:none}.page.active{display:block}#workshop.active{display:grid;grid-template-columns:246px minmax(380px,1fr) 310px;gap:17px;min-height:660px}.panel{background:#fff8e9f7;border:var(--outline);border-radius:24px;box-shadow:0 5px 0 #89512644,inset 0 2px 0 #fff;padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:5px;margin-bottom:10px}.pill{font-size:13px;padding:5px 9px;border-radius:12px;background:#f1ddba;white-space:nowrap}.tiny-intro{color:var(--muted);font:12px/1.7 'Microsoft YaHei',sans-serif}.structure{display:flex;flex-direction:column;max-height:715px}.structure-bottom{margin-top:auto;border-top:1px dashed #dcbf8f;padding-top:12px}.structure-bottom p{font:13px/1.8 'Microsoft YaHei',sans-serif;margin-bottom:12px}.structure-bottom button{width:100%}.soft{background:#f7e8cb;border-color:#cfad77;box-shadow:0 3px #d9bf94;font-size:16px}#layer-list{display:flex;flex-direction:column-reverse;gap:6px;margin:16px 0;overflow:auto;min-height:160px;max-height:400px}.layer-row{display:flex;gap:9px;align-items:center;padding:7px 8px;background:#fbedd5;border:1px solid #ead4b0;border-radius:13px;min-height:49px}.layer-row .icon{width:42px;height:36px}.layer-row .num{font-size:12px;min-width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#f4d69f}.layer-row b{font-size:16px}.layer-row small{font:10px 'Microsoft YaHei',sans-serif;display:block;color:var(--muted);margin-top:2px}.layer-empty{border:2px dashed #dec49a;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:210px;border-radius:17px;gap:14px;color:#b39671;font-size:17px}.layer-empty span{font-size:40px}.worktable{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center}.stage-heading{align-self:stretch;display:flex;justify-content:center;align-items:center;gap:10px;min-height:45px}.ribbon{background:#fff3d7ed;padding:9px 18px;border:1px solid #cfa56d;border-radius:30px;font-size:17px}.small-tag{background:#e9fff3df;color:#437459;padding:7px 11px;border-radius:20px;font:11px 'Microsoft YaHei',sans-serif}.canvas-wrap{position:relative;width:100%;flex:1;min-height:400px;display:grid;place-items:center}#cake-canvas{display:block;width:100%;height:auto;max-height:540px;aspect-ratio:760/640;object-fit:contain;touch-action:none;outline:none}#empty-hint{position:absolute;top:22%;left:0;right:0;text-align:center;pointer-events:none}#empty-hint b{display:block;font-size:24px;text-shadow:0 2px 2px #fff6db,2px 0 1px #fff}#empty-hint span{display:inline-block;font:13px 'Microsoft YaHei',sans-serif;margin-top:14px;padding:7px 12px;background:#fff3dddb;border-radius:20px}.toolbox{display:flex;align-items:center;justify-content:center;background:#fff6e6f5;border:var(--outline);border-radius:19px;padding:7px 9px;gap:2px;width:100%;box-shadow:0 4px #89512644}.toolbox button{border:1px solid transparent;box-shadow:none;background:transparent;padding:5px 5px;font-size:12px;min-width:46px;flex:1;white-space:nowrap;border-radius:11px}.toolbox button span{display:block;font:27px/1.2 Happy,sans-serif;margin-bottom:5px}.toolbox button.active{background:#c6e9ef;border-color:#72b9c4}.toolbox i{height:37px;border-left:1px solid #ddbf90;margin:0 2px}.interaction-tip{text-align:center;min-height:38px;padding:12px 3px 0;font:12px/1.6 'Microsoft YaHei',sans-serif;text-shadow:0 1px 2px #fff6e3}.ingredients{padding:17px 16px;display:flex;flex-direction:column;max-height:715px}.text-button{padding:5px 0;min-height:30px;border:0;box-shadow:none;background:none;font-size:13px;text-decoration:underline}.material-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border-bottom:1px solid #e2c59c;padding:8px 0 13px}.material-tabs button{padding:9px 2px;font-size:16px;min-height:40px;border:1px solid transparent;box-shadow:none;background:#f6e6c9;border-radius:12px}.material-tabs button.active{background:#ffca54;border-color:#eda339}#material-content{padding-top:15px;overflow:auto;flex:1}.material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.material-card{position:relative;border:1px solid #e7cd9e;border-radius:15px;background:#f9edd8;padding:8px 5px 11px;min-height:132px;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:7px}.material-card.selected{background:#fff0c0;border:2px solid #e8a52f;padding:7px 4px 10px}.material-card .icon{width:91px;height:74px}.material-card b{font-size:15px}.stock{position:absolute;top:6px;right:7px;background:#fff9ebd9;border-radius:12px;padding:2px 6px;font:11px/1.5 'Microsoft YaHei',sans-serif;color:#87694b}.material-instruction{font:12px/1.8 'Microsoft YaHei',sans-serif;color:#937858;padding:2px 0 13px}.cart-note{font:11px/1.6 'Microsoft YaHei',sans-serif;color:#a18460;border-top:1px dashed #ddc39b;margin-top:15px;padding-top:13px;text-align:center}.cream-colors{display:flex;gap:11px;padding:16px 0;justify-content:center}.cream-colors button{border:2px solid #c29c73;min-height:32px;width:34px;height:34px;padding:0;border-radius:50%;box-shadow:inset 0 2px 1px #fff8}.cream-colors button.selected{outline:3px solid #eab94c;outline-offset:3px}.wide{width:100%;margin:9px 0}.subhead{font-size:18px;margin:15px 0 8px}.icon{display:block;object-fit:contain}.raw-icon{display:flex;align-items:center;justify-content:center;font-size:36px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff4dff2;border:var(--outline);border-radius:22px;padding:22px 28px;margin-bottom:18px}.section-title h2{font-size:32px}.section-title p{font:13px/1.7 'Microsoft YaHei',sans-serif;margin-top:9px;color:#96724e}.kitchen-layout{display:grid;grid-template-columns:240px 1fr;gap:20px}.kitchen-layout aside h3{margin-bottom:16px}#raw-mini{display:grid;grid-template-columns:1fr 1fr;gap:9px}.raw-item{display:flex;align-items:center;flex-direction:column;gap:5px;background:#f4e5cb;border:1px solid #e2c8a0;border-radius:12px;padding:9px 4px}.raw-item .icon{height:47px;width:60px}.raw-item b{font-size:16px}.raw-item small{font:12px 'Microsoft YaHei',sans-serif}.filter-row{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.filter-row button{border:1px solid #dfbb82;box-shadow:none;background:#f8e6c5;font-size:18px}.filter-row button.active{background:#ffcc54;border-color:#d99d36}#recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.recipe-card{border:1px solid #e0c39b;background:#f9edd9;border-radius:18px;padding:20px 17px;display:flex;flex-direction:column;align-items:center}.recipe-card>.icon{width:150px;height:115px}.recipe-card h3{font-size:24px;margin:10px 0}.recipe-card>small{color:#9a7b57;font:12px 'Microsoft YaHei',sans-serif}.cost-list{width:100%;margin:18px 0;font:13px/1.9 'Microsoft YaHei',sans-serif}.cost-list div{display:flex;justify-content:space-between;border-bottom:1px dashed #e1cba6}.cost-list .low{color:#bf4836}.recipe-card button{width:100%;margin-top:auto}.kitchen-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;border-top:1px dashed #d4b88e;padding-top:18px;font:13px 'Microsoft YaHei',sans-serif}#pantry-content>h3{margin:14px 0}.pantry-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:26px}.pantry-item{background:#f6e8ce;border:1px solid #e2c9a2;border-radius:15px;display:flex;flex-direction:column;align-items:center;padding:12px 6px;gap:7px}.pantry-item .icon{height:65px;width:90px}.pantry-item b{font-size:16px}.pantry-item small{color:#977653;font:12px 'Microsoft YaHei',sans-serif}#gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-card{border:var(--outline);border-radius:22px;background:#fff3dd;padding:12px 15px 20px;box-shadow:0 4px #975b3144;cursor:pointer}.gallery-card canvas{width:100%;aspect-ratio:760/560;object-fit:cover;display:block}.gallery-card h3{text-align:center;font-size:24px}.gallery-card p{font:12px 'Microsoft YaHei',sans-serif;color:#a5825f;text-align:center;margin:9px 0}.empty-gallery{grid-column:1/-1;text-align:center;padding:75px 30px;background:#fff5e4ed;border:var(--outline);border-radius:24px}.empty-gallery h3{font-size:30px;margin-bottom:17px}.empty-gallery p{font:14px 'Microsoft YaHei',sans-serif;margin-bottom:24px}footer{display:flex;justify-content:space-between;color:#79512c;font:11px 'Microsoft YaHei',sans-serif;padding:18px 5px 12px;text-shadow:0 1px #fff9}#toast{position:fixed;left:50%;bottom:38px;transform:translate(-50%,20px);background:#653e25f5;border:2px solid #ffe4b3;color:#fff3d9;box-shadow:0 5px 18px #56351c44;border-radius:18px;padding:15px 25px;z-index:50;opacity:0;pointer-events:none;transition:.2s;font:14px/1.5 'Microsoft YaHei',sans-serif;max-width:90vw;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{background:#fff5e2;color:var(--ink);border:3px solid #9d6835;border-radius:26px;padding:34px;max-width:min(94vw,620px);max-height:90vh;overflow:auto;box-shadow:0 12px 0 #5f371542}dialog::backdrop{background:#50322277;backdrop-filter:blur(4px)}.modal-close{position:absolute;right:12px;top:12px;border:0;box-shadow:none;background:none;font-size:30px;padding:0 10px}.modal-title{text-align:center;font-size:31px;margin:4px 20px 15px}.modal-copy{font:14px/1.9 'Microsoft YaHei',sans-serif;color:#8d6d4e}.modal-actions{display:flex;justify-content:center;gap:12px;margin-top:22px}.modal-canvas{width:100%;max-height:330px;object-fit:contain;display:block;background:#f5e7ce;border-radius:20px;margin:15px 0}.name-label{display:block;margin:15px 0 10px;font-size:18px}input[type=text]{width:100%;padding:13px 16px;border:2px solid #d2ad79;border-radius:12px;background:#fffaf0;color:var(--ink);font-size:22px}.help-steps{display:grid;gap:17px;margin-top:25px}.help-steps b{font:20px Happy,sans-serif;display:block;margin-bottom:5px}.help-steps p{font:13px/1.8 'Microsoft YaHei',sans-serif;color:#927454}.shortcut-note{font:11px/1.7 'Microsoft YaHei',sans-serif;margin:20px 0;color:#a4825c}.celebrate{position:fixed;inset:0;pointer-events:none;z-index:30;overflow:hidden}.confetto{position:absolute;top:-30px;width:10px;height:16px;animation:fall 1.8s ease-in forwards}@keyframes fall{to{transform:translateY(100vh) rotate(540deg);opacity:.2}}@media(min-width:1550px){#workshop.active{grid-template-columns:280px minmax(450px,1fr) 350px}#cake-canvas{max-height:600px}.material-card{min-height:145px}.material-card .icon{height:85px;width:110px}.ingredients,.structure{max-height:780px}}@media(max-width:1160px){.app{padding:14px 13px 0}#workshop.active{grid-template-columns:200px minmax(300px,1fr) 250px;gap:10px}.panel{padding:14px}h2{font-size:22px}.material-card .icon{width:80px;height:62px}.toolbox{flex-wrap:wrap}.toolbox button{min-width:43px}.small-tag{display:none}.material-tabs button{font-size:14px}.brand h1{font-size:29px}#recipe-grid{gap:10px}.recipe-card{padding:15px 10px}.recipe-card h3{font-size:21px}}@media(max-width:900px){.brand{padding:8px 16px}.brand div>span,.top-actions>span{display:none}.brand h1{font-size:25px}.chef{font-size:33px}.top-actions .gold{font-size:16px;padding:9px 12px}.main-nav{gap:6px;margin-top:18px}.main-nav button{font-size:18px;min-width:0;padding:10px 18px}#workshop.active{grid-template-columns:minmax(330px,1fr) 255px}.structure{display:none}.canvas-wrap{min-height:360px}#workshop.active{min-height:610px}.kitchen-layout{grid-template-columns:180px 1fr}#recipe-grid{grid-template-columns:repeat(2,1fr)}#gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app{padding:10px 10px 0}header{gap:8px}.brand{padding:7px 12px;gap:4px}.brand h1{font-size:22px;letter-spacing:0}.chef{font-size:28px}.round{width:34px;min-height:34px;font-size:21px}.top-actions{gap:6px}.top-actions .gold{font-size:14px;padding:8px}.top-actions .gold span{display:none}.main-nav{gap:5px;margin:16px 0 12px}.main-nav button{font-size:16px;flex:1;padding:9px 5px}.main-nav b{font-size:11px;padding:2px 5px}#workshop.active{display:flex;flex-direction:column;gap:10px}.stage-heading{min-height:33px}.ribbon{font-size:15px;padding:7px 14px}.canvas-wrap{height:330px;min-height:330px;flex:none}#cake-canvas{height:330px;width:100%;object-fit:contain}.worktable{height:auto}.toolbox{padding:4px;gap:0;flex-wrap:nowrap}.toolbox button{font-size:10px;min-width:0;padding:4px 1px}.toolbox button span{font-size:22px}.toolbox i{margin:0 1px}.interaction-tip{padding-top:8px;min-height:30px;font-size:11px}#empty-hint b{font-size:20px}#empty-hint span{font-size:11px}.ingredients{max-height:none;padding:14px}.material-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.material-card{min-height:110px;padding:7px 3px}.material-card .icon{height:58px;width:75px}.material-card b{font-size:13px}.cart-note{margin-top:10px;padding-top:9px}.material-instruction{padding-bottom:10px}.material-tabs{padding:4px 0 8px}.material-tabs button{font-size:17px}#material-content{padding-top:10px}.section-title{padding:16px;align-items:flex-start}.section-title h2{font-size:26px}.section-title p{font-size:11px}.section-title button{font-size:14px;max-width:130px;flex-shrink:0}.kitchen-layout{display:flex;flex-direction:column;gap:12px}#raw-mini{grid-template-columns:repeat(5,1fr);gap:5px}.raw-item{padding:6px 2px}.raw-item .icon{height:32px;width:40px;font-size:25px}.raw-item b{font-size:12px}.raw-item small{font-size:10px}.filter-row{gap:5px;margin-bottom:13px}.filter-row button{font-size:14px;padding:7px 10px;min-height:35px}#recipe-grid{gap:9px}.recipe-card>.icon{width:110px;height:80px}.recipe-card h3{font-size:20px}.recipe-card button{font-size:17px}.cost-list{font-size:11px;margin:12px 0}.kitchen-foot{font-size:11px}.pantry-group{grid-template-columns:repeat(3,1fr);gap:8px}.pantry-item .icon{height:53px;width:70px}.pantry-item b{font-size:13px}#gallery-grid{gap:12px}.gallery-card{padding:9px}.gallery-card h3{font-size:19px}.gallery-card p{font-size:10px}footer{font-size:9px;padding-top:12px}footer span:last-child{display:none}dialog{padding:25px 20px}.modal-title{font-size:25px}.modal-actions button{font-size:17px}}

.chef{width:54px;height:54px;object-fit:contain}.toolbox button span img{height:28px;width:30px;object-fit:contain}.sugar-pearls{color:#f7d77b;text-shadow:1px 1px 0 #ad7a29,-1px -1px 0 #ad7a29,8px 5px 0 #ffe7a4,-8px 7px 0 #e8c980}@media(max-width:760px){.chef{width:33px;height:33px}.toolbox button span img{height:24px;width:26px}}
.download-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink);border-radius:14px;padding:12px 18px;font-size:20px}
.selection-controls{width:100%;margin-top:10px;padding:11px 14px;border:1px solid #cba476;border-radius:16px;background:#fff5e8ed;font:12px 'Microsoft YaHei',sans-serif}.selection-controls[hidden]{display:none}.selection-controls>span{display:block;color:#93704f;margin-bottom:7px}.selection-controls label,.brush-size{display:flex;align-items:center;gap:10px;margin:7px 0}.selection-controls output{min-width:40px;text-align:right}input[type=range]{accent-color:#aa7042;min-width:0;flex:1;cursor:pointer;height:20px}.cream-stock{display:flex;align-items:center;gap:8px;background:#f4e7cd;border-radius:12px;padding:4px 10px;font-size:16px}.cream-stock .icon{height:42px;width:42px}.cream-stock b{color:#ab672e;margin-left:8px}.color-label{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:17px}.color-label span{font:10px 'Microsoft YaHei',sans-serif;color:#9c7b5e}input[type=color]{width:38px;height:32px;padding:2px;border:1px solid #bd976a;border-radius:7px;background:#fff5e2;cursor:pointer}.color-presets{display:flex;justify-content:space-between;gap:5px;padding:12px 1px}.color-presets button{padding:0;border:1px solid #b38a62;border-radius:50%;height:25px;width:25px;min-height:25px;box-shadow:inset 0 2px 2px #fff7}.color-presets button.selected{outline:2px solid #bf7c2e;outline-offset:2px}.nozzle-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nozzle-grid button{font-size:13px;display:flex;flex-direction:column;align-items:center;padding:8px 5px;gap:6px;border:1px solid #dfbd91;box-shadow:none;background:#f7e8cf}.nozzle-grid button.active,.surface-modes button.active{background:#d7ead8;border-color:#8eae8a}.nozzle-sample{display:block;width:55px;height:12px;background:var(--cream-color);border:1px solid #b28c6b;border-radius:8px;box-shadow:inset 0 3px 1px #ffffff80,0 2px 2px #70452b20}.nozzle-sample.star{background:repeating-linear-gradient(0deg,var(--cream-color) 0 2px,#ffffffaa 3px,var(--cream-color) 4px)}.nozzle-sample.ribbon{height:15px;border-radius:3px;background:repeating-linear-gradient(70deg,var(--cream-color) 0 5px,#ffffff99 6px,var(--cream-color) 8px)}.nozzle-sample.pearl{border:0;box-shadow:none;background:radial-gradient(circle at 6px 6px,#fff9 1px,var(--cream-color) 3px,#aa805d 5px,transparent 6px) 0 0/12px 12px}.nozzle-sample.rose{height:17px;border:0;box-shadow:none;background:repeating-radial-gradient(circle at 8px 8px,var(--cream-color) 0 2px,#fff8 3px,var(--cream-color) 4px,#b59271 5px,var(--cream-color) 6px,transparent 8px) 0 0/17px 17px}.brush-size{font-size:15px;margin:16px 0}.brush-size output{min-width:22px}.surface-modes{display:flex;gap:5px;margin:10px 0 13px}.surface-modes button{flex:1;min-height:32px;padding:6px 3px;font-size:12px;border:1px solid #cfb28d;box-shadow:none;border-radius:9px}.cream-actions{display:flex;gap:7px}.cream-actions button{flex:1;padding:10px 4px;font-size:15px}.smoothing #cake-canvas{cursor:none}.smoothing button{pointer-events:none}.ingredients{max-height:800px}@media(max-width:760px){.nozzle-grid{grid-template-columns:repeat(5,1fr)}.nozzle-grid button{font-size:11px}.nozzle-sample{width:40px}.selection-controls{margin-top:7px}.color-presets{justify-content:flex-start;gap:13px}.ingredients{max-height:none}}

.decor-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0 0 12px}.decor-tabs button{font-size:12px;min-height:32px;padding:6px 3px;border:1px solid #d1b48c;box-shadow:none;background:#f8ead1;border-radius:9px}.decor-tabs button.active{background:#d8eaf2;border-color:#8bb9cc}

/* The stage and property slot never change size when selection changes. */
.worktable{align-self:start}.canvas-wrap{flex:none;height:460px;min-height:460px}#cake-canvas{height:460px;max-height:none}.selection-controls{height:155px;flex-shrink:0;overflow:hidden}.selection-controls>span{height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-controls{display:flex;gap:5px}.order-controls button{flex:1;min-height:29px;padding:4px 2px;font:11px 'Microsoft YaHei',sans-serif;white-space:nowrap;box-shadow:none;border:1px solid #cfb28d}.selection-controls:not(.has-selection) label,.selection-controls:not(.has-selection) .order-controls{opacity:.45}.interaction-tip{height:48px;overflow:hidden}html{overflow-y:scroll;overflow-anchor:none}
@media(max-width:760px){.canvas-wrap{height:330px;min-height:330px}#cake-canvas{height:330px}.selection-controls{height:149px}}

.nozzle-preview{width:50px;height:39px;object-fit:contain}.nozzle-grid button{min-height:68px}.nozzle-grid .nozzle-sample.round{margin:13px 0 14px}.cut-intro{text-align:center}#cut-canvas{width:100%;display:block;touch-action:none;border-radius:18px;margin:10px 0;background:#fff4df}.cut-position{display:flex;align-items:center;gap:10px;font:13px 'Microsoft YaHei',sans-serif}.cut-position output{min-width:75px;text-align:right}.cut-ingredients{min-height:55px;padding:12px;background:#f3e3c6;border-radius:12px;font:12px/1.7 'Microsoft YaHei',sans-serif;margin-top:12px}.cut-ingredients b{display:block;color:#80502f}dialog:has(#cut-canvas){width:900px;max-width:96vw}.nozzle-sample.leaf{background:#bed38e}@media(max-width:760px){.nozzle-grid{grid-template-columns:repeat(3,1fr)}dialog:has(#cut-canvas){padding:24px 12px}.modal-actions{flex-wrap:wrap}.cut-position{font-size:11px}}
#cut-canvas{max-height:min(48vh,400px);object-fit:contain}dialog:has(#cut-canvas) .modal-actions{margin-top:12px}dialog:has(#cut-canvas) .shortcut-note{margin:10px 0 0}
.worktable{width:100%}

.shape-choices{display:flex;gap:8px}.shape-choices button{flex:1;min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border:2px solid #ddbd91;background:#fff5df;box-shadow:none}.shape-choices button span{font-family:serif;font-size:25px;color:#c58e64}.shape-choices .active{background:#f7dfac;border-color:#9e713e}.shape-choices button:disabled{opacity:.65}.shape-choices .active:disabled{opacity:1}.shape-note{font:11px/1.6 'Microsoft YaHei',sans-serif;color:#8b7158;margin:8px 0 12px}.flavor-tabs{flex-wrap:wrap;margin-bottom:12px}.cream-stock span b{display:block;font-size:14px}.material-card b{font-size:14px}.material-card .icon{width:78px;height:64px;object-fit:contain}

.shape-choices button{min-width:0;padding:8px 3px;font-size:14px}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-card{min-width:0}#material-content{overflow-x:hidden}.flavor-tabs{display:flex}.flavor-tabs button{flex:1 1 30%;padding:6px 4px}@media(max-width:760px){.material-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.sound-panel{position:relative;z-index:15}.sound-panel summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;background:#fff7e5;border:2px solid #a56b31;border-radius:50%;cursor:pointer;font-size:23px;box-shadow:0 3px #9b622b35}.sound-panel summary::-webkit-details-marker{display:none}.sound-panel summary:focus-visible{outline:3px solid #229cc5;outline-offset:3px}.sound-settings{position:absolute;right:0;top:49px;width:290px;max-width:calc(100vw - 24px);padding:17px;background:#fff5df;border:2px solid #a56b31;border-radius:18px;box-shadow:0 9px 22px #6b3d3040;display:flex;flex-direction:column;gap:10px}.sound-settings h3{font-size:22px}.sound-settings p,.sound-settings small{font:11px/1.7 'Microsoft YaHei',sans-serif;color:#967456}.sound-settings button{min-height:34px;font-size:15px;padding:6px 8px}.sound-settings label{display:flex;align-items:center;gap:8px;font:12px 'Microsoft YaHei',sans-serif}.sound-settings input{width:100%;min-width:0;accent-color:#b47b46;flex:1}.sound-settings output{width:34px;text-align:right}.sound-settings .audio-status{border:0;box-shadow:none;font:11px 'Microsoft YaHei',sans-serif;background:transparent;padding:3px}#sound-level{width:100%;height:7px}@media(max-width:760px){.sound-panel summary{width:33px;height:34px;font-size:21px}.sound-settings{position:fixed;right:12px;top:64px}}
/* The work area reserves its controls; camera changes never move the canvas. */
.view-controls{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:9px 10px;background:#fff6e4e8;border:1px solid #d8bd93;border-radius:16px;margin:4px 0 10px;min-height:76px}.view-controls button{font-size:13px;padding:7px 9px}.view-controls label{display:flex;align-items:center;gap:5px;font-size:12px}.view-controls input{width:90px;accent-color:#ab704b}.view-controls select{max-width:150px}.view-controls button[aria-pressed=true],.size-choices button[aria-pressed=true],.cream-forms button[aria-pressed=true]{background:#c2e1db;box-shadow:inset 0 0 0 2px #7baaa4}.view-controls output{min-width:37px}select,textarea{font:inherit;color:#754c33;background:#fff9ec;border:1px solid #cdb08a;border-radius:9px;padding:8px}.size-choices,.cream-forms{display:flex;gap:8px;margin:10px 0}.size-choices button,.cream-forms button{flex:1;padding:10px 4px}.worktable.expanded{position:fixed;inset:12px;z-index:30;background:#fff4de url('assets/kitchen.png') center/cover;padding:18px 24px;overflow:auto;border-radius:24px;box-shadow:0 0 0 30px #503725a6}.worktable.expanded .canvas-wrap{height:calc(100vh - 285px);min-height:300px}.worktable.expanded .selection-controls{display:none}.worktable.expanded .stage-heading{display:none}.rating{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;color:#956237;padding:14px}.rating-stars{font-size:32px;letter-spacing:5px;color:#d49a36}.rating strong{font:52px Happy,sans-serif;line-height:1.1;color:#a5633e}.rating strong small{font-size:20px}.finish-layout{display:grid;grid-template-columns:1.3fr 1fr;align-items:center}.finish-layout .modal-canvas{max-height:300px;width:100%;object-fit:contain}.gallery-score{color:#b37b2b;font-size:15px;padding:3px}.card-editor{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(230px,1fr);gap:22px;align-items:start}.card-editor canvas{width:100%;height:auto;border-radius:12px;box-shadow:0 5px 16px #67431c25}.card-controls{display:grid;gap:10px}.card-controls label{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:10px;font-size:14px}.card-controls input:not([type=checkbox]):not([type=range]):not([type=color]),.card-controls textarea,.card-controls select{width:100%;min-width:0;padding:9px;border:1px solid #ccb08a;border-radius:8px;background:#fffaf1;font:inherit;color:#754c33}.card-controls textarea{resize:vertical;min-height:86px}.card-controls input[type=range]{width:100%;accent-color:#b17b54}.card-controls input[type=color]{height:30px;width:100%;border:0}.card-controls .check-row{display:flex;gap:9px}.card-export{display:block;width:min(100%,450px);margin:auto;border-radius:12px}#modal:has(.card-editor){width:min(1000px,95vw)}
@media(max-width:700px){.card-editor{grid-template-columns:1fr}.card-editor canvas{max-height:420px;width:auto;max-width:100%;margin:auto}.finish-layout{grid-template-columns:1fr}.rating strong{font-size:40px}.view-controls{gap:4px}.view-controls input{width:68px}.worktable.expanded{inset:4px;padding:10px}}
.pour-panel{margin:18px 0;padding:13px;background:#f1f3dc;border:1px solid #c9d5ae;border-radius:14px}.pour-panel p{font:12px/1.8 'Microsoft YaHei',sans-serif;color:#7c7757;margin:6px 0}.pour-panel label{display:flex;gap:8px;align-items:center;font-size:13px;margin:10px 0}.pour-panel select,.pour-panel input{min-width:0;flex:1}.pour-panel output{font:11px/1.7 'Microsoft YaHei',sans-serif;color:#758360;display:block;margin-top:8px}.pour-panel button.active{box-shadow:inset 0 0 0 2px #648c7b}.pour-panel #pour-rate-value{min-width:35px;margin:0}
/* A fixed header/control footprint keeps the cake still during editing. */
header{display:grid;grid-template-columns:246px minmax(380px,1fr) 310px;gap:17px;margin-bottom:16px;min-height:85px}
.brand{padding:8px 12px;gap:7px}.brand h1{font-size:29px}.brand span{font-size:10px}.brand .chef{width:44px;height:52px}
.main-nav{margin:0;gap:5px;width:100%}.main-nav button{min-width:0;flex:1;font-size:17px;padding:10px 5px;white-space:nowrap}.main-nav b{font-size:11px;padding:2px 5px;margin-left:1px}
.top-actions{justify-content:flex-end;flex-wrap:wrap;gap:9px;position:relative}.top-actions>span{position:absolute;right:0;top:100%;padding:4px 9px;font-size:10px;margin-top:3px;white-space:nowrap}
.stage-heading{min-height:34px}.ribbon{font-size:14px;padding:6px 12px}.small-tag{display:none}.view-controls{min-height:72px;margin:4px 0 5px;padding:6px;gap:5px}
.canvas-wrap{height:360px;min-height:360px;flex:0 0 360px}#cake-canvas{height:360px;width:100%}
.material-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.material-tabs button{font-size:14px}.surface-modes{flex-wrap:wrap}.surface-modes button{flex:1 1 40%}
.plate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.plate-grid button{padding:9px;box-shadow:none;border:2px solid #ddc7a1;min-width:0}.plate-grid img{width:100%;height:108px;object-fit:contain;display:block}.plate-grid b{font-size:14px}.plate-grid button[aria-pressed=true]{border-color:#a4754d;background:#ffedbf}.plate-grid~button{margin-top:10px}
button.layer-row{width:100%;box-shadow:none;text-align:left;min-width:0;padding:7px 5px;gap:6px}button.layer-row.selected{background:#fff0bf;border:2px solid #b47b40}.layer-row b{font-size:14px}.layer-row .num{min-width:18px}.layer-row .icon{width:34px}.layer-actions{border-top:1px dashed #d1b48d;padding-top:10px}.layer-actions p{font:11px/1.7 'Microsoft YaHei',sans-serif;min-height:38px;margin:0 0 7px}.layer-actions button{width:100%}
.rename-cake{display:flex;gap:9px;align-items:center;justify-content:center;margin:12px 0}.rename-cake label{font-size:14px}.rename-cake input{min-width:0;max-width:260px;flex:1;font:inherit;background:#fffaf0;border:1px solid #c8a87b;border-radius:9px;padding:9px;color:#805331}
@media(max-width:1100px){header{grid-template-columns:200px minmax(330px,1fr) 245px;gap:10px}.brand span{display:none}.brand h1{font-size:25px}.main-nav button{font-size:15px}.top-actions{gap:6px}#save-btn{font-size:17px}}
@media(max-width:900px){header{grid-template-columns:1fr 1fr;gap:14px}.main-nav{grid-row:2;grid-column:1/-1}.top-actions{grid-row:1;grid-column:2}.brand{justify-self:start}.canvas-wrap{height:340px;min-height:340px;flex-basis:340px}#cake-canvas{height:340px}.rename-cake{flex-wrap:wrap}.worktable.expanded .canvas-wrap{flex-basis:auto}}
.worktable.expanded #cake-canvas{height:100%}
.view-controls{width:100%;height:94px;min-height:94px;flex:0 0 94px}.view-controls select{width:150px}.stage-heading{height:34px;flex:0 0 34px}
@media(max-width:760px){.view-controls{height:auto;min-height:94px;flex-basis:auto}.stage-heading{height:auto;flex-basis:auto}}
@media(min-width:901px){.selection-controls{height:110px;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;padding:9px 12px;align-content:start}.selection-controls>span,.selection-controls .order-controls{grid-column:1/-1}.selection-controls>span{margin-bottom:3px}.selection-controls label{margin:4px 0;min-width:0;gap:5px}.selection-controls input{min-width:0;width:100%}.selection-controls .order-controls button{min-height:29px;padding:4px 7px;font-size:11px}.selection-controls .order-controls{margin-top:3px}}

/* Camera world moves together; the editing controls stay at hand. */
body{isolation:isolate;background-color:#e8bb7f;background-image:none}
#scene-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;background:#e8bb7f url('assets/kitchen.png') center/cover;transform-origin:0 0;will-change:transform}
.view-controls{margin-top:0}.stage-heading{margin-bottom:4px}
#cake-canvas{object-fit:fill;aspect-ratio:auto;max-height:none}
.toolbox button span{height:38px;margin-bottom:3px;display:flex;justify-content:center;align-items:center}
.toolbox button span img{width:39px;height:39px;object-fit:contain}
.worktable.expanded{background:#fff4de55;backdrop-filter:none}
@media(max-width:760px){.toolbox button span{height:30px}.toolbox button span img{width:30px;height:30px}}
