:root{--bg:#171c19;--ink:#f0dfac;--muted:#959b86;--amber:#e7bf65;--metal:#565d43;--line:#383e33;--paper:#e9dfbc;font-family:"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 48% 28%,#353a263d,transparent 56%),var(--bg);font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #f1c878;outline-offset:5px}button:disabled{cursor:wait}a{color:inherit;text-decoration:none}.grain{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar{max-width:1440px;margin:auto;padding:24px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #b9bf8e18}.brand{display:flex;align-items:center;gap:12px;font-size:15px;letter-spacing:2px;font-weight:600}.brand-icon{font-size:35px;color:var(--amber);line-height:1}.brand small{display:block;font:8px monospace;letter-spacing:2.4px;color:var(--muted);margin-top:7px}nav{display:flex;gap:26px;align-items:center}nav button{background:none;border:0;color:#b7bcaa;font-size:12px;padding:8px 0}nav button:hover{color:var(--ink)}nav button>span{margin-left:5px;color:var(--amber);font-family:monospace}#sound>span{margin:0 4px 0 0;font-size:18px}main{max-width:1280px;margin:auto;padding:0 40px}.intro{text-align:center;padding:30px 0 27px}.eyebrow{font-size:10px;letter-spacing:2px;color:#c1c6a6}.eyebrow i,.machine-bottom i,.terminal-top i{display:inline-block;width:5px;height:5px;border-radius:100%;background:#c9db8a;box-shadow:0 0 7px #bdcf7477;margin-right:7px}.intro p{font-family:"Songti SC","SimSun",serif;font-size:16px;letter-spacing:2px;color:#c1c1ac;margin:13px 0 0}.scene{display:grid;grid-template-columns:1fr 560px 1fr;gap:40px;align-items:start}.side-note{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:32px 0 56px;min-width:0}.vertical-note{writing-mode:vertical-rl;letter-spacing:7px;font:12px/2 "Songti SC","SimSun",serif;color:#7e8974;max-height:190px}.note-bottom{padding-bottom:12px}.little-star{color:#969d70;font-size:28px}.side-note h1{font:27px/1.8 "Songti SC","SimSun",serif;letter-spacing:2px;font-weight:400;margin:20px 0 14px}.side-note p{font-size:11px;color:var(--muted);line-height:2.3;letter-spacing:1px}.note-rule{width:25px;height:1px;background:#75806388;margin:25px 0}.mono{font:9px/2 monospace;color:#78836f;letter-spacing:1px}.machine{position:relative;padding:17px 20px 12px;border:1px solid #7c805c;border-radius:19px 19px 11px 11px;background:linear-gradient(100deg,#555e44,#697050 48%,#50583e);box-shadow:inset 0 1px 1px #b6bd86, inset -5px 0 3px #30382488,10px 10px 0 #0b100f55,0 24px 65px #0009;isolation:isolate}.machine:after{content:"";position:absolute;inset:6px;border:1px solid #323a2670;border-radius:12px;pointer-events:none;z-index:-1}.screw{position:absolute;width:5px;height:5px;border-radius:50%;background:#303622;box-shadow:0 1px 1px #b1b78c77}.screw:after{content:"";height:1px;background:#8d916b;position:absolute;width:3px;left:1px;top:2px;transform:rotate(-35deg)}.s1{top:9px;left:10px}.s2{top:9px;right:10px}.s3{bottom:9px;left:10px}.s4{bottom:9px;right:10px}.machine-sign{background:#efdfaa;color:#40462d;border-radius:5px;border:4px solid #363f2b;box-shadow:0 0 23px #ffe59a1c,inset 0 0 17px #d2b36b;position:relative;text-align:center;padding:12px 10px 9px}.machine-sign>div{display:flex;align-items:center;justify-content:center;gap:23px}.machine-sign h2{font:700 29px/1.25 "Songti SC","SimSun",serif;letter-spacing:4px;margin:0;cursor:default}.sign-moon{font-size:40px;line-height:1}.sign-star{font-size:23px}.machine-sign p{font-size:9px;letter-spacing:5px;margin:6px 0 0;color:#6f704d}.machine-inner{margin-top:14px}.display-glass{border:7px solid #323c2c;border-radius:6px;background:radial-gradient(ellipse at top,#73755a50,transparent),#202920;box-shadow:inset 0 4px 13px #0009,0 1px 0 #8b9370;position:relative;overflow:hidden}.glass-label{display:flex;justify-content:space-between;font:8px/1.3 monospace;color:#a9ae8d;padding:11px 13px 3px;letter-spacing:1px}.goods{display:grid;grid-template-columns:repeat(3,1fr);padding:0 13px 7px;gap:0 12px}.sample{position:relative;text-align:center;border-bottom:6px solid #646b4c;padding-top:8px;box-shadow:0 5px 4px -3px #000;margin-bottom:9px}.sample:after{content:"";position:absolute;bottom:-5px;left:0;right:0;border-top:1px solid #96967666}.sample svg{height:72px;width:86px;display:block;margin:0 auto 3px;filter:drop-shadow(0 5px 4px #0007)}.sample-name{display:block;font-size:10px;letter-spacing:1px;color:#dbd5af;margin-bottom:9px}.sample-code{display:block;font:8px monospace;color:#b6b58e;position:absolute;right:4px;bottom:-5px;padding:2px 5px;background:#535b40;border:1px solid #7c815b;z-index:1}.glass-reflection{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#fff3ba06 30.5%,#fff3ba06 41%,transparent 41.5%,transparent 80%,#fff3ba05 80.5%)}.control-row{display:grid;grid-template-columns:1fr 1.08fr;gap:20px;margin:15px 2px 13px;align-items:stretch}.terminal{border:4px solid #36412d;box-shadow:0 1px 0 #8b9368,inset 0 1px 8px #000a;background:#1c291e;padding:9px 12px;border-radius:4px;color:#bfc797;min-height:109px}.terminal-top{font-size:8px;letter-spacing:1px;color:#99ad78}.terminal-top i{width:4px;height:4px;background:#9cae69}.terminal p{font:13px/1.8 "PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:2px;margin:8px 0 0}.terminal strong{font-weight:400;color:#d1df9c}.cursor{animation:blink 1.5s steps(1) infinite;margin-left:3px}.coin-panel{position:relative;text-align:center;padding-top:0}.coin-slot{height:7px;width:61px;background:#111a13;border:2px solid #7a8360;border-radius:3px;box-shadow:0 1px #a7aa7a;display:inline-block;margin-right:8px;vertical-align:middle}.coin-panel>span{font-size:8px;letter-spacing:.5px;color:#ddd9a6}.vend-button{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#edd38d,#c6a653);border:1px solid #f4df9d;border-bottom:4px solid #937633;box-shadow:0 3px 0 #323c25,0 4px 8px #0005;color:#343b28;border-radius:5px;font-size:17px;font-weight:700;letter-spacing:3px;width:100%;padding:13px 17px 11px;margin:10px 0 7px;transition:transform .15s,filter .15s}.vend-button:hover{filter:brightness(1.1)}.vend-button:active{transform:translateY(3px);box-shadow:0 1px 0 #323c25}.vend-button:disabled{filter:brightness(.8)}.vend-button>span:last-child{font-size:22px;font-weight:400;letter-spacing:0}.coin-panel small{font-size:8px;color:#c2c59c;letter-spacing:1px}.outlet-heading{display:flex;justify-content:space-between;align-items:center;color:#d7d5ac;font-size:9px;letter-spacing:1px;padding:0 5px 7px}.outlet-heading>span:last-child{font:8px monospace;color:#b0b88d}.outlet{position:relative;background:#101913;border:7px solid #34402d;border-bottom-width:9px;border-radius:5px;min-height:128px;box-shadow:inset 0 12px 17px #000b,0 1px #93986c;overflow:hidden;padding:16px 14px 10px}.outlet-flap{height:17px;position:absolute;top:0;left:0;right:0;background:linear-gradient(#283423,#1b261c);border-bottom:1px solid #4a563f;z-index:2;box-shadow:0 5px 9px #0005;transform-origin:top;transition:transform .3s}.item-card{display:flex;align-items:center;gap:12px;color:#ddd8b3;min-height:80px}.item-art{flex:0 0 78px;transform:rotate(-5deg)}.item-art svg{width:78px;height:78px}.item-copy{min-width:0}.item-copy>span{color:#92a17b;font:8px monospace;letter-spacing:1.5px}.item-copy h3{font-family:"Songti SC","SimSun",serif;font-size:19px;letter-spacing:2px;font-weight:400;margin:6px 0}.item-copy p{font-size:10px;line-height:1.9;color:#aeb59a;margin:0;letter-spacing:.3px}.item-card.empty .item-art{opacity:.55}.item-card.empty h3{color:#b8bea3}.machine-bottom{display:flex;justify-content:space-between;font-size:8px;color:#c1c69e;letter-spacing:.5px;padding:12px 4px 0}.machine-bottom i{width:4px;height:4px;margin-right:5px}.feet{height:14px;position:absolute;bottom:-14px;left:27px;right:27px;border-left:25px solid #333c2d;border-right:25px solid #333c2d;z-index:-2}.receipt-area{padding-top:69px;min-width:0;max-width:228px;justify-self:end;width:100%}.receipt-slot{background:#0e1511;border:4px solid #323a2c;border-radius:5px;height:13px;margin:0 -7px -3px;box-shadow:0 1px #4a513f}.receipt{position:relative;background:var(--paper);color:#484834;padding:19px 19px 17px;transform:rotate(2deg);transform-origin:top;box-shadow:2px 8px 15px #0003;font-family:"Songti SC","SimSun",serif;clip-path:polygon(0 0,100% 0,100% 98%,97% 100%,94% 98%,91% 100%,88% 98%,85% 100%,82% 98%,79% 100%,76% 98%,73% 100%,70% 98%,67% 100%,64% 98%,61% 100%,58% 98%,55% 100%,52% 98%,49% 100%,46% 98%,43% 100%,40% 98%,37% 100%,34% 98%,31% 100%,28% 98%,25% 100%,22% 98%,19% 100%,16% 98%,13% 100%,10% 98%,7% 100%,4% 98%,0 100%)}.receipt-star{font-size:24px;text-align:center;margin-bottom:7px}.receipt h2{text-align:center;font-size:17px;letter-spacing:3px;font-weight:400;margin:0 0 8px}.receipt-english{text-align:center;font:7px monospace;letter-spacing:1px;margin:0}.dashed{border-top:1px dashed #8b8c6b;margin:15px 0}.receipt-row{display:flex;justify-content:space-between;gap:5px;font-size:9px;margin-top:9px;line-height:1.5}.receipt-row>span:last-child{font-family:monospace;text-align:right}.receipt-label{font-size:9px;color:#77775b;margin:0 0 10px}.receipt h3{font-size:16px;font-weight:400;letter-spacing:1px;margin:0 0 9px}.receipt-comment{font-size:10px;line-height:1.8;color:#77775b;min-height:35px;margin:0}.receipt-total{align-items:center;margin-top:18px;font-size:12px}.receipt-total strong{font:17px monospace}.receipt-thanks{text-align:center;line-height:1.9;font-size:12px;letter-spacing:2px}.barcode{height:26px;width:125px;margin:15px auto 7px;background:repeating-linear-gradient(90deg,#4f5039 0 1px,transparent 1px 3px,#4f5039 3px 5px,transparent 5px 7px,#4f5039 7px 8px,transparent 8px 12px,#4f5039 12px 15px,transparent 15px 17px);opacity:.8}.receipt-fine{text-align:center;font-size:8px;color:#808066;margin:9px -6px 13px}.receipt button{display:block;width:100%;background:transparent;color:#686b4b;font-size:9px;border:0;border-top:1px dashed #a0a07e;padding:13px 0 8px;letter-spacing:1px}.receipt button:hover{color:#262d1c}.receipt button:disabled{cursor:default;opacity:.5}.visit-count{text-align:center;margin-top:40px;color:#8d977f;display:flex;flex-direction:column;gap:8px;font-size:10px;letter-spacing:2px}.visit-count strong{color:#cbd0b3;font:32px monospace;letter-spacing:6px;margin-left:6px}footer{display:flex;justify-content:space-between;align-items:center;margin:42px 0 0;padding:22px 0 25px;border-top:1px solid #a1ad771c;color:#707e6a;font-size:9px;letter-spacing:1px}.footer-moon{font-size:20px;color:#a3ae83}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,15px);padding:13px 22px;border:1px solid #747e58;background:#283222;color:#dedcba;z-index:100;box-shadow:0 8px 30px #0005;opacity:0;transition:.3s;pointer-events:none;text-align:center;font-size:12px;max-width:90vw;width:max-content;line-height:1.7}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:#232d22;border:1px solid #707a51;color:var(--ink);border-radius:8px;width:min(760px,92vw);padding:28px;max-height:85dvh;box-shadow:0 24px 90px #0009}dialog::backdrop{background:#080e0bc9;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font:25px "Songti SC","SimSun",serif;letter-spacing:3px;margin:10px 0}.close{border:0;background:none;font-size:30px;color:#bcc6a0;padding:4px 10px}.dialog-sub,.dialog-bottom{font-size:11px;color:#9fac8e;line-height:1.8}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0}.collected{padding:13px 8px;text-align:center;background:#19231b;border:1px solid #45513b;border-radius:3px}.collected svg{width:68px;height:68px}.collected h3{font-size:11px;font-weight:400;line-height:1.6;margin:6px 0;color:#dad6b0}.collected p{font-size:8px;color:#93a17f;margin:0;line-height:1.7}.collected.unknown{opacity:.5;display:flex;min-height:135px;align-items:center;justify-content:center;flex-direction:column}.unknown span{font-size:32px;color:#6e7e61}.dialog-bottom{text-align:center}.dispensing .outlet-flap{transform:rotateX(65deg)}.dispensing .machine-sign{animation:flicker .8s ease}.arrive{animation:drop .6s cubic-bezier(.2,.8,.4,1)}.print{animation:print .5s ease}.moth{position:absolute;top:-14px;left:45%;font-size:26px;animation:moth 3s ease-in-out infinite;color:#dfd6a7;pointer-events:none}.machine.shiver{animation:shiver .4s}.moon-mode{--bg:#141b27}.moon-mode .machine-sign{background:#d6e1d8;box-shadow:0 0 30px #c3eaff33}.moon-mode .sign-moon{color:#557c83}@keyframes blink{50%{opacity:0}}@keyframes drop{0%{transform:translateY(-90px) rotate(-10deg);opacity:0}60%{transform:translateY(6px) rotate(2deg)}100%{transform:translateY(0);opacity:1}}@keyframes print{0%{transform:translateY(-9px) rotate(2deg);opacity:.6}100%{transform:translateY(0) rotate(2deg);opacity:1}}@keyframes flicker{30%,60%{filter:brightness(.7)}45%,80%{filter:brightness(1.2)}}@keyframes shiver{20%,60%{transform:translateX(-2px)}40%,80%{transform:translateX(2px)}}@keyframes moth{50%{transform:translate(40px,-13px) rotate(25deg)}}
@media(min-width:1400px){.intro{padding-top:37px;padding-bottom:33px}.scene{gap:55px}main{max-width:1340px}.receipt-area{max-width:228px}}
@media(max-width:1100px){.scene{grid-template-columns:1fr 530px 210px;gap:24px}.side-note h1{font-size:21px}.side-note p{font-size:10px}.machine-sign h2{font-size:27px}.machine-sign>div{gap:18px}main{padding:0 28px}.receipt{padding:18px 15px}.topbar{padding:20px 28px}}
@media(max-width:920px){.scene{grid-template-columns:520px 210px;justify-content:center;gap:28px}.side-note{display:none}.intro{padding:27px 0}.machine-sign h2{font-size:27px}.receipt-area{padding-top:69px}main{padding:0 22px}}
@media(max-width:780px){.topbar{padding:19px 22px}.brand{font-size:12px;letter-spacing:1px;gap:8px}.brand small{font-size:6px;letter-spacing:1.6px}.brand-icon{font-size:30px}nav{gap:17px}nav button{font-size:10px}nav #sound{font-size:0}#sound>span{font-size:20px}main{padding:0 18px}.scene{display:flex;flex-direction:column;align-items:center;gap:40px}.machine{width:min(100%,540px)}.receipt-area{width:250px;max-width:250px;padding-top:0}.intro p{font-size:13px;line-height:1.9;letter-spacing:1px}.intro{padding:27px 0}.eyebrow{font-size:9px}.visit-count{margin-top:28px}footer{flex-wrap:wrap;gap:15px;justify-content:center;text-align:center;margin-top:30px;padding:23px 0}footer>span:nth-child(2){width:100%;order:3}.footer-moon{font-size:16px}.receipt{padding:22px}.collection-grid{grid-template-columns:repeat(3,1fr)}dialog{padding:21px}.receipt-comment{min-height:0}}
@media(max-width:460px){.machine{padding:14px 12px 11px;border-radius:14px}.machine-sign{padding:12px 4px 10px}.machine-sign>div{gap:11px}.machine-sign h2{font-size:23px;letter-spacing:2px}.sign-moon{font-size:32px}.sign-star{font-size:19px}.machine-sign p{font-size:8px;letter-spacing:3px}.machine-inner{margin-top:11px}.display-glass{border-width:5px}.goods{gap:0 6px;padding:0 7px 4px}.sample svg{width:70px;height:64px}.sample-name{font-size:9px;letter-spacing:0;margin-bottom:8px}.glass-label{font-size:7px;letter-spacing:.4px;padding:10px 9px 2px}.control-row{gap:11px;margin:12px 0}.terminal{padding:8px;border-width:3px;min-height:104px}.terminal p{font-size:11px;letter-spacing:1px}.terminal-top{font-size:7px;letter-spacing:.5px}.vend-button{font-size:15px;letter-spacing:1px;padding:12px 10px 10px;margin-top:10px}.coin-slot{width:40px;margin-right:3px}.coin-panel>span{font-size:7px}.coin-panel small{font-size:7px}.outlet{border-width:5px;padding:16px 10px 10px}.outlet-heading{font-size:8px;letter-spacing:0}.item-art{flex-basis:62px}.item-art svg{width:62px;height:68px}.item-copy h3{font-size:17px;letter-spacing:1px}.item-copy p{font-size:9px}.item-card{gap:9px}.machine-bottom{font-size:7px;padding-left:1px;padding-right:1px;letter-spacing:0}.intro p span{display:block}.topbar{padding:17px 18px}nav{gap:14px}#pocket span{margin-left:3px}.collection-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
