:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color-scheme:light;--ink:#3e493b;--paper:#f2eddf;--line:#c6bda7;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;color:var(--ink);background:#c6b192}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer;min-height:44px;border:0}button:disabled{cursor:default;opacity:.35}button:focus-visible,canvas:focus-visible,input:focus-visible{outline:2px solid #3e695a;outline-offset:3px}button[aria-pressed=true]{box-shadow:inset 0 -2px #426656}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}
#game{position:relative;width:100%;height:100svh;height:100dvh;min-height:300px;overflow:hidden;isolation:isolate}#scene{display:block;width:100%;height:100%;touch-action:none}#objects{position:absolute;inset:0;pointer-events:none}.scene-object{position:absolute;background:none;border:0;padding:0;pointer-events:auto;touch-action:none;color:transparent}.scene-object[aria-pressed=true]{box-shadow:none}.scene-object:focus-visible{outline:2px solid #466657;border-radius:8px;background:#faf6e518}
#hud{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;justify-content:space-between;pointer-events:none;z-index:3}.round-button{pointer-events:auto;width:44px;height:44px;display:grid;place-items:center;background:#f4eeda70;border:1px solid #faf4e754;border-radius:50%;color:#4c4b3a;backdrop-filter:blur(8px)}.round-button:hover{background:#f4eedaaf}
#whisper{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%,7px);margin:0;padding:7px 15px;border-radius:3px;max-width:calc(100vw - 32px);width:max-content;text-align:center;font-family:"Songti SC",STSong,serif;letter-spacing:1px;font-size:14px;background:#efe9d5dd;color:#3e493b;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:4}#whisper.on{opacity:1;transform:translate(-50%,0)}
dialog{border:1px solid #d4cbb5;border-radius:8px;background:var(--paper);color:var(--ink);width:min(580px,calc(100vw - 28px));max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);padding:22px;box-shadow:0 20px 90px #342d2140;overscroll-behavior:contain}dialog::backdrop{background:#302d235b;backdrop-filter:blur(6px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.dialog-heading h1,.dialog-heading h2{font-family:"Songti SC",STSong,serif;font-size:23px;font-weight:500;letter-spacing:2px;margin:0}.icon-button{flex:none;width:44px;height:44px;font-size:26px;background:transparent}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-grid button,.export-row button,.method-row button,.water-choice,#seal-style button{border:1px solid var(--line);background:transparent;padding:10px 12px;border-radius:3px}.menu-grid button{display:flex;justify-content:space-between;align-items:center}.menu-grid button span{color:#777459}h2{font-size:16px;font-weight:500}p{font-size:14px;line-height:1.65}.method-row,.export-row{display:flex;gap:8px;flex-wrap:wrap}.method-row button{flex:1;padding:10px 4px;font-size:14px}.export-row{margin-top:15px}.export-row button{flex:1 1 40%;font-size:14px}.small-dialog{width:min(340px,calc(100vw - 28px))}.tray-dialog{width:min(490px,calc(100vw - 28px))}.recipe-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.recipe-tray button{background:none;padding:0 0 10px;display:flex;flex-direction:column;align-items:center;gap:8px;border-radius:4px}.recipe-tray img{width:100%;aspect-ratio:1;object-fit:cover;mix-blend-mode:multiply}.water-choice{width:100%;margin-top:12px}.amount-row{display:flex;gap:12px}.amount-row button{flex:1;height:66px;background:#e6e1d1;display:grid;place-items:center;border-radius:3px}.amount-row i{display:block;background:#476c5d;border-radius:50%}label{display:block;font-size:14px;margin-top:14px;margin-bottom:8px}input[type=text],input:not([type]){width:100%;height:46px;border:1px solid #b7b29d;background:#fbf8ef;padding:9px 12px;font-size:16px;border-radius:3px}input[type=range]{accent-color:#4c6c59;width:100%;min-height:44px}#seal-style{display:flex;gap:12px;margin-top:15px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:15px}.form-actions button{padding:10px 20px;border-radius:3px;background:#e3ddca}.form-actions .ink-button{background:#425e4f;color:#faf6e9}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.gallery-item{min-width:0;position:relative}.gallery-item>button:first-child{width:100%;background:#e9e3d3;padding:8px;border-radius:3px;display:flex;align-items:center;flex-direction:column;gap:8px}.gallery-item img{width:100%;height:190px;object-fit:contain}.gallery-item span{font-size:14px;overflow-wrap:anywhere}.gallery-item small{font-size:12px;color:#646852}.gallery-actions{display:flex;justify-content:space-between}.gallery-actions button{font-size:14px;background:transparent;padding:8px}.gallery-item .empty-thumb{height:190px;display:grid;place-items:center;font:48px "Songti SC",serif;color:#919680}
.viewer-dialog{width:min(720px,calc(100vw - 20px));padding:16px}#viewer-scroll{height:55svh;overflow:auto;background:#e9e4d6;touch-action:pan-x pan-y pinch-zoom}#viewer{display:block;width:100%;height:auto}.viewer-controls{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:8px}.viewer-controls label{margin:0}.viewer-controls #art-title{grid-column:1/-1}#viewer-dialog .dialog-heading h2{font-size:20px}.gesture-help{padding-left:24px;display:grid;gap:18px}.gesture-help li b{display:block;font-family:"Songti SC",serif;font-size:21px;letter-spacing:4px;margin-bottom:8px}.gesture-help li span{font-size:14px;line-height:1.6}
#busy{position:fixed;inset:0;display:grid;place-items:end center;padding-bottom:max(24px,env(safe-area-inset-bottom));z-index:20;pointer-events:auto;background:#d8ccb216}#busy>div{display:grid;grid-template-columns:1fr 44px;align-items:center;gap:0 12px;padding:12px 10px 12px 20px;width:min(340px,calc(100% - 24px));background:#f1ecdcef;border:1px solid #c9c0aa;box-shadow:0 8px 30px #3a302225;border-radius:5px}#busy-label{font:15px "Songti SC",serif;letter-spacing:1px}progress{grid-column:1;height:3px;width:100%;accent-color:#476c5d}#cancel-task{grid-column:2;grid-row:1/3}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-height:480px){dialog{padding:14px;max-height:calc(100dvh - 16px)}.dialog-heading{margin-bottom:8px}.dialog-heading h1,.dialog-heading h2{font-size:20px}#viewer-scroll{height:40svh}.gallery-item img{height:120px}.gallery-item .empty-thumb{height:120px}.gesture-help{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}}
