:root{--night:#22281f;--panel:#30372c;--cream:#e2dfca;--paper:#cfcbb5;--leaf:#87764f;--moss:#768261;--soil:#493c2e;--rust:#a77750;--line:rgba(226,223,202,.22)}
*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--night);color:var(--cream);font-family:"Courier New",monospace;touch-action:manipulation}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 15%,#394034 0,transparent 36%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.035) 3px 4px),var(--night)}
button,a{font:inherit}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 16px;font-size:9px;letter-spacing:.12em}.topbar a{color:inherit;text-decoration:none}.day-readout{text-align:center;display:flex;gap:8px;align-items:center}.day-readout i{display:grid;grid-template-columns:repeat(7,4px);gap:3px}.day-readout i b{height:4px;border:1px solid var(--moss)}.day-readout i b.on{background:var(--cream);border-color:var(--cream)}
.icon-button,.text-button,.text-link{border:0;background:none;color:var(--cream);font-size:8px;letter-spacing:.1em;padding:10px;text-decoration:underline;text-underline-offset:3px}.icon-button{opacity:.72;text-decoration:none;padding:8px 0}
#game{width:min(100%,470px);min-height:100vh;margin:auto;border-inline:1px solid rgba(255,255,255,.04);background:rgba(24,29,23,.24)}
.title-card,.end-card{min-height:calc(100vh - 58px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 24px}.title-card>p:first-child,.end-card>p:first-child{font-size:8px;letter-spacing:.18em;color:#9ca28e}.title-card h1{font:400 clamp(48px,15vw,70px)/1 Georgia,serif;letter-spacing:.09em;margin:25px 0 8px}.title-card .zh{font-size:10px;letter-spacing:.24em;color:#a8aa9a}.intro-copy{font-family:system-ui,sans-serif;font-size:12px;line-height:2;margin:52px 0 28px;color:#bdbdac}.primary{border:1px solid #9da28e;background:#d6d2bc;color:#282d25;padding:13px 24px;font-size:10px;letter-spacing:.15em;box-shadow:4px 4px 0 #11160f;cursor:pointer}.text-button{margin-top:17px}
.play-view{padding:14px 14px 38px}.box-frame{position:relative;border:8px solid #737763;border-radius:5px;background:#171a15;padding:5px;box-shadow:0 9px 25px rgba(0,0,0,.42),inset 0 0 0 2px #34382f;transition:transform 1.2s,filter 1.2s;image-rendering:pixelated}.box-frame.close{transform:scale(1.045) translateY(7px);filter:saturate(.75) contrast(1.08)}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;cursor:crosshair}.glass-shine{position:absolute;inset:13px;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.11),transparent 19%,transparent 72%,rgba(255,255,255,.035));mix-blend-mode:screen}.tap-hint{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);margin:0;background:rgba(24,27,21,.74);padding:5px 8px;font-size:7px;letter-spacing:.08em;white-space:nowrap;opacity:.8;transition:opacity .5s}.tap-hint.gone{opacity:0}
.record{border:1px solid var(--line);border-top:0;padding:13px 14px 15px;background:rgba(255,255,255,.025)}.record-head{font-size:7px;letter-spacing:.15em;display:flex;justify-content:space-between;color:#8f9681}.record p{min-height:56px;margin:12px 0 0;font-family:system-ui,sans-serif;font-size:13px;line-height:1.75;color:#dedbc8}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.action{min-height:49px;border:1px solid #666d5b;background:#343b30;color:#d8d5c2;padding:9px 8px;font-size:10px;line-height:1.35;cursor:pointer;box-shadow:2px 2px 0 #151912}.action:hover,.action:focus-visible{background:#46503e;outline:1px solid #b8b9a5}.action:disabled{opacity:.35;cursor:default}.next-button{width:100%;margin-top:10px;border:0;border-bottom:1px solid #7b806e;background:transparent;color:#d8d5c2;padding:14px;font-size:9px;letter-spacing:.08em;cursor:pointer}
#flash{position:fixed;inset:0;background:#f5f0d9;opacity:0;pointer-events:none;z-index:5}.end-card{opacity:0;animation:appear 2s 2.2s forwards}.end-window{border:7px solid #777b68;background:#eee9d4;width:min(320px,100%);margin:30px 0;box-shadow:0 0 60px rgba(245,240,217,.26)}.last-line{font-family:system-ui,sans-serif;font-size:14px;letter-spacing:.06em;margin:4px 0 44px}.end-actions{display:flex;flex-direction:column;gap:12px;align-items:center}
@keyframes appear{to{opacity:1}}@media(min-width:700px){body{padding:20px 0}#game{min-height:calc(100vh - 40px);box-shadow:0 0 60px rgba(0,0,0,.3)}.title-card,.end-card{min-height:calc(100vh - 98px)}}@media(max-width:360px){.play-view{padding-inline:8px}.record p{font-size:12px}.box-frame{border-width:6px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
