:root{color-scheme:dark;--paper:#f7efdd;--ink:#503d2b;--faded:#89745c;font-family:"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:#271c16;color:#fff5dc}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f8d68e;outline-offset:5px}body:has(dialog[open]){overflow:hidden}.home{position:fixed;top:22px;left:24px;z-index:5;color:#fff4dc;text-decoration:none;font-size:13px;letter-spacing:2px;padding:10px 15px;border:1px solid #e8bc6d50;border-radius:30px;background:#261a12a8;backdrop-filter:blur(8px)}main{min-height:100svh;display:grid;align-content:center}.scene{position:relative;width:100%;max-width:1920px;margin:auto;aspect-ratio:1672/941;container-type:inline-size}.room,.room img{position:absolute;inset:0;width:100%;height:100%;display:block}.board{position:absolute;left:42.3%;top:14.4%;width:40.8%;height:39.8%;display:flex;align-items:center;justify-content:center;gap:4%;padding:2%}.board-message{font-family:serif;font-size:clamp(13px,1.2cqw,23px);letter-spacing:3px;line-height:2;color:#56371c;text-align:center}.memory{background:#f9f0df;color:#654c36;flex:1;min-width:0;border:0;padding:6px 6px 12px;box-shadow:2px 6px 10px #32180666;transform:rotate(-6deg);transition:transform .25s,box-shadow .25s;position:relative}.memory:nth-child(2){transform:rotate(4deg) translateY(10%)}.memory:nth-child(3){transform:rotate(-3deg)}.memory::before{content:"";position:absolute;top:-8px;left:33%;width:34%;height:17px;background:#ddbf83b3;transform:rotate(-5deg)}.memory:hover{transform:translateY(-5px) rotate(0deg);box-shadow:3px 12px 22px #32180688}.memory img{display:block;width:100%;aspect-ratio:1/1.12;object-fit:cover;background:#d3c4a9}.memory time{display:block;font:clamp(9px,1cqw,15px) ui-monospace,monospace;margin-top:9px}.nameplate{position:absolute;left:22%;top:76%;width:22%;text-align:center;padding:1.4% 1%;background:linear-gradient(125deg,#5d3521,#352217);border:1px solid #c2945b;box-shadow:0 6px 0 #24140e,4px 15px 16px #21120d66;transform:rotate(-3deg)}.open-mark{font-size:clamp(8px,.7cqw,13px);color:#d7b981;letter-spacing:3px}.nameplate h1{font:500 clamp(18px,2.4cqw,42px)/1.4 "Songti SC","Noto Serif CJK SC",serif;letter-spacing:.18em;margin:5px 0}.nameplate p{font-size:clamp(8px,.8cqw,14px);color:#e0c4a1;margin:0}.menu-book{position:absolute;left:59%;top:76%;width:20%;height:18%;transform:rotate(5deg);padding:7px 10px;background:linear-gradient(100deg,#284537,#1c3428);color:#e6d2a7;border:1px solid #777049;border-left:7px solid #192b22;box-shadow:1px 3px 0 #eadfc3,3px 5px 0 #a18b68,5px 13px 15px #26180e80;transition:transform .25s}.menu-book:hover{transform:rotate(1deg) translateY(-4px)}.book-border{border:1px solid #c5aa6d80;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px}.book-small{font:clamp(6px,.6cqw,12px) Georgia,serif;letter-spacing:2px}.book-border strong{font:500 clamp(14px,1.8cqw,32px) "Songti SC",serif}.book-rule{width:24px;border-top:1px solid #b5a076}.book-border #menu-count{font-size:clamp(7px,.7cqw,13px)}.book-action{font-size:clamp(7px,.65cqw,12px);letter-spacing:2px;margin-top:4px}.scene-caption{position:absolute;bottom:1%;width:100%;text-align:center;color:#f8dba499;font-size:clamp(9px,.75cqw,14px);letter-spacing:4px;pointer-events:none}.paper-dialog{color-scheme:light;color:var(--ink);background:var(--paper);border:0;padding:0;max-height:88svh;width:min(92vw,680px);box-shadow:0 25px 100px #0007;border-radius:2px}.paper-content{padding:40px clamp(22px,5vw,48px);position:relative}dialog::backdrop{background:#130e0ad9;backdrop-filter:blur(5px)}dialog button:focus-visible{outline-color:#8d4e26}.close{position:absolute;right:12px;top:9px;border:0;background:none;color:var(--ink);font-size:30px;width:40px;height:40px}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:2px;text-align:center;color:var(--faded)}h2{font:500 32px "Songti SC",serif;letter-spacing:8px;text-align:center;margin:18px 0}.muted{color:var(--faded);font-size:13px;text-align:center;line-height:1.8}#archive{margin-top:30px}.month-heading{font:14px ui-monospace,monospace;color:var(--faded);border-bottom:1px solid #b8a17b80;padding-bottom:12px;margin:25px 0 8px}.archive-row{width:100%;display:flex;align-items:center;gap:16px;border:0;border-bottom:1px dashed #b8a17b60;background:none;color:var(--ink);padding:14px 0;text-align:left}.archive-row:hover{background:#d6b88722}.archive-row img{width:64px;height:64px;object-fit:cover}.archive-row .row-copy{flex:1}.archive-row time{font:16px ui-monospace,monospace}.archive-row small{display:block;color:var(--faded);margin-top:7px}.receipt-dialog{width:min(92vw,550px);border-bottom:6px dotted #b4a083}.receipt-meta{display:flex;justify-content:space-between;border-block:1px dashed #9d886a;padding:16px 0;margin:24px 0;font:13px ui-monospace,monospace}#meal-title{font:500 22px "Songti SC",serif}#meal-note{font-size:14px;line-height:1.9;white-space:pre-wrap}#receipt-photos{display:grid;gap:18px}.dish{border:0;background:transparent;padding:0;color:var(--faded);text-align:left}.dish img{width:100%;max-height:420px;object-fit:contain;display:block;background:#e9dfcc}.dish span{display:block;font:11px ui-monospace,monospace;margin-top:7px}.receipt-footer{text-align:center;margin-top:30px;padding-top:24px;border-top:1px dashed #9d886a;font-family:serif;font-size:16px}.receipt-footer span{display:block;font:9px ui-monospace,monospace;letter-spacing:2px;margin:10px 0 20px}.barcode{display:block;margin:auto;width:150px;height:28px;background:repeating-linear-gradient(90deg,#574632 0 2px,transparent 2px 4px,#574632 4px 5px,transparent 5px 8px,#574632 8px 12px,transparent 12px 15px)}#viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;padding:55px 55px 25px;background:#100d0a;color:#f6e8d0}#viewer[open]{display:flex;align-items:center;justify-content:center}#viewer figure{margin:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}#full-photo{width:100%;height:calc(100% - 35px);object-fit:contain}#photo-caption{font:12px ui-monospace,monospace;letter-spacing:2px}.viewer-close,.prev,.next{position:absolute;border:0;background:#ffffff14;color:#fff4dd;border-radius:50%;width:42px;height:42px;font-size:30px;z-index:2}.viewer-close{right:15px;top:12px}.prev{left:8px;top:48%}.next{right:8px;top:48%}.no-script{text-align:center;padding:20px}.image-failed{object-fit:contain!important;font-size:12px;color:#6e5741}
@media(max-width:600px){.home{top:12px;left:12px;font-size:11px;padding:8px 12px}.scene{aspect-ratio:941/1672;max-width:600px}.board{left:16.5%;top:22.5%;width:65%;height:30.5%;flex-direction:column;gap:6%;padding:3% 6%}.memory{flex:none;width:78%;height:26%;padding:4px;display:flex;align-items:center;gap:8px;transform:rotate(-5deg)}.memory:nth-child(2){transform:rotate(4deg);align-self:flex-end}.memory:nth-child(3){transform:rotate(-3deg)}.memory img{height:100%;width:56%;aspect-ratio:auto}.memory time{font-size:2.4cqw;margin-top:0;writing-mode:horizontal-tb}.memory::before{width:25%;left:35%;height:12px;top:-6px}.board-message{font-size:3.4cqw}.nameplate{left:24%;top:77%;width:43%;padding:2%}.nameplate h1{font-size:5.5cqw}.open-mark{font-size:1.9cqw}.nameplate p{font-size:2.1cqw}.menu-book{left:36%;top:86%;width:40%;height:9.5%;padding:5px}.book-border{gap:3px}.book-small{font-size:1.4cqw}.book-border strong{font-size:4cqw}.book-border #menu-count{font-size:1.8cqw}.book-action{font-size:1.7cqw;margin-top:0}.scene-caption{font-size:2cqw;letter-spacing:2px;bottom:.2%}#viewer{padding:55px 12px 25px}.prev,.next{top:auto;bottom:15px}.paper-content{padding-top:42px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
@media(max-width:600px){.nameplate{top:76%;height:8.2%;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:1%}.open-mark{display:block;line-height:1.2;letter-spacing:2px}.nameplate h1{margin:1px 0;line-height:1.25}.nameplate p{line-height:1.3}.book-border{gap:2px;line-height:1.2}.book-action{margin-top:0}.book-rule{width:18px}}
.dish-entry .dish{width:100%}.dish-name{font:500 20px "Songti SC",serif;margin:14px 0 6px}.dish-location{font-size:12px;color:var(--faded);margin:6px 0}.dish-note{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 4px}.dish-name,.dish-location{overflow-wrap:anywhere}#photo-caption{max-width:100%;text-align:center;overflow-wrap:anywhere;line-height:1.5}#full-photo{min-height:0;flex:1}
.dish-list{list-style:none;padding:0;margin:16px 0 8px}.dish-list li{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:6px 0;border-bottom:1px dotted #b8a17b60}.dish-list .dish-name{font-size:18px;margin:0}.dish-price{font:13px ui-monospace,monospace;white-space:nowrap;color:var(--faded)}
.dish-list .dish-item-note{display:block;border:0;padding:3px 0 12px;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--faded)}
/* An object on the counter, with a real draw-and-reveal interaction. */
.fortune-jar{position:absolute;left:47%;top:74%;width:9%;height:21%;padding:0;border:0;background:none;color:#f7db9e;isolation:isolate;transition:transform .25s}.fortune-jar:not(:disabled):hover{transform:rotate(-5deg) translateY(-4px)}.fortune-jar:disabled{opacity:.55;cursor:default}.sticks{position:absolute;left:12%;top:0;width:76%;height:55%;display:flex;justify-content:center;gap:6%}.sticks i{width:12%;height:100%;background:linear-gradient(90deg,#9d6a35,#f0d39b 50%,#c19356);border:1px solid #73431d;transform:rotate(-17deg);transform-origin:bottom}.sticks i:nth-child(2){transform:rotate(-8deg);height:92%}.sticks i:nth-child(3){transform:rotate(3deg)}.sticks i:nth-child(4){transform:rotate(12deg);height:90%}.sticks i:nth-child(5){transform:rotate(21deg)}.jar-body{position:absolute;top:33%;left:7%;width:86%;height:55%;border-radius:15% 15% 25% 25%;border-top:4px solid #c69a60;background:linear-gradient(90deg,#46251a,#8c4e2c 40%,#6a3820 80%,#382116);box-shadow:4px 8px 10px #20120d80,inset 0 -5px #27181155;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8%;border-inline:1px solid #af7940}.jar-body strong{border:1px solid #c39554;padding:9% 5%;font:500 1.1cqw "Songti SC",serif;background:#6e201d;color:#efd09d}.jar-body small{font-size:.65cqw;letter-spacing:1px}.jar-hint{position:absolute;bottom:0;left:0;width:100%;font-size:.65cqw;letter-spacing:1px;color:#ffe4b9}.board-controls{position:absolute;top:58%;left:53%;width:20%;display:flex;justify-content:center;align-items:center;gap:12px;color:#e6c796}.board-controls[hidden]{display:none}.board-controls button{border:1px solid #bc8c5270;color:#f6debb;background:#392619c9;border-radius:50%;width:36px;height:36px;font-size:24px}.board-controls span{font:12px ui-monospace,monospace}.fortune-dialog{width:min(92vw,500px)}.fortune-dialog h2{font-size:27px;letter-spacing:3px}.fortune-actions{display:flex;gap:12px;margin-top:24px}.fortune-actions button{border:1px solid #ab8d60;background:#2d4738;color:#f8ecd7;padding:12px 16px;flex:1;border-radius:3px;font-size:13px}.fortune-actions button:first-child{background:transparent;color:var(--ink)}.fortune-actions button:disabled{opacity:.5;cursor:wait}#fortune-result>img{width:100%;height:260px;object-fit:contain;background:#e8decc;display:block}#fortune-result{animation:reveal-food .4s ease-out}.fortune-dish{font:500 26px "Songti SC",serif;text-align:center;margin:20px 0 10px;overflow-wrap:anywhere}.fortune-note{white-space:pre-wrap;line-height:1.8;font-size:14px;text-align:center;overflow-wrap:anywhere}.fortune-footnote{font-size:11px;margin-top:20px}.drawing #draw-status{min-height:220px;display:grid;place-items:center}.drawing #draw-status::before{content:'签';display:block;font:40px "Songti SC",serif;color:#ad783a;animation:shake-sign .3s ease-in-out infinite alternate}@keyframes shake-sign{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@keyframes reveal-food{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:600px){.fortune-jar{left:17%;top:84.5%;width:17%;height:11%}.jar-body strong{font-size:2.4cqw}.jar-body small{font-size:1.5cqw;letter-spacing:0}.jar-hint{font-size:1.8cqw}.menu-book{left:43%;width:36%}.board-controls{top:56%;left:28%;width:44%;gap:12px}.board-controls button{width:32px;height:32px}.board-controls span{font-size:11px}.fortune-dialog .paper-content{padding:36px 22px 24px}.fortune-dialog h2{font-size:24px}.fortune-actions{gap:8px}.fortune-actions button{padding:12px 8px}#fortune-result>img{height:230px}}
@media(prefers-reduced-motion:reduce){#fortune-result,.drawing #draw-status::before{animation:none}.fortune-jar{transition:none}}

[hidden]{display:none!important}
.board-message p{margin:0 0 10px}.board-retry{border:1px solid #6c4b2c;background:#f5e7ca;color:#56371c;padding:7px 14px;border-radius:3px;font-size:12px}#photo-error{text-align:center;line-height:2}#photo-error button{margin:10px;border:1px solid #d6b887;background:transparent;color:inherit;border-radius:5px;padding:8px 14px;font:inherit}

.food-fallback{max-width:900px;margin:0 auto;padding:20px 24px 60px;background:var(--paper);color:var(--ink);color-scheme:light}.food-fallback article{border-top:1px dashed #9d886a;padding:20px 0}.food-fallback h2{font-size:24px;letter-spacing:2px}.food-fallback p{white-space:pre-wrap;line-height:1.8}.food-fallback article>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}.food-fallback a{color:inherit;text-decoration:none;font-size:13px;line-height:1.8}.food-fallback img{display:block;width:100%;height:220px;object-fit:cover;margin-bottom:10px}
