:root{color-scheme:dark;font-family:'PingFang TC','Noto Sans TC',sans-serif;color:#f5eddb;background:#131919}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:#141b19ab;border:1px solid #e4caa449;border-radius:3px;padding:11px 16px;font-size:14px;backdrop-filter:blur(12px)}button:hover{border-color:#e4caa4}button:focus-visible,a:focus-visible{outline:2px solid #f3cf8c;outline-offset:4px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}#world{width:100vw;height:100dvh;display:block;touch-action:none}header{position:fixed;inset:25px 30px auto;display:flex;justify-content:space-between;pointer-events:none;gap:20px}.brand{display:flex;flex-direction:column;gap:8px;text-shadow:0 2px 8px #000}.brand small{font:11px Georgia;letter-spacing:.2em}.brand span{font:26px 'Songti TC',serif;letter-spacing:.22em}nav{display:flex;gap:8px;align-items:start;pointer-events:auto}aside{position:fixed;top:112px;left:30px;max-width:280px;text-shadow:0 2px 10px #0009;pointer-events:none}aside small{letter-spacing:.16em;color:#ecd5ae;font-size:11px}aside p{font-size:15px;line-height:1.9;margin-top:10px}#crosshair{position:fixed;left:50%;top:50%;font-size:26px;transform:translate(-50%,-50%);color:#eee8cbaa;pointer-events:none}footer{position:fixed;left:30px;right:30px;bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;text-shadow:0 1px 5px #000}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);width:max-content;max-width:80vw;text-align:center;font-size:15px;line-height:1.9;padding:16px 24px;background:#141b19c9;border-top:1px solid #d8b88480;opacity:0;pointer-events:none;transition:opacity .5s}#toast.show{opacity:1}#interact{position:fixed;left:50%;bottom:155px;transform:translateX(-50%);background:#ecdec2;color:#25291f;border:0;border-radius:30px;padding:13px 24px}#modal{position:fixed;inset:0;background:#0c15135c;backdrop-filter:blur(4px);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:24px}#modal section{width:min(480px,100%);min-width:0;max-height:88dvh;overflow-y:auto;text-align:center;border:1px solid #b79e705c;background:#141c19eb;padding:44px 40px;box-shadow:0 20px 120px #0008}#modal section>small{font-size:11px;letter-spacing:.18em;color:#c7ae81}h1{font:32px 'Songti TC',serif;font-weight:400;line-height:1.5;margin:22px 0}#modal-text{font-size:16px;line-height:2;color:#d4d5c6;white-space:pre-line}#begin{display:block;width:100%;background:#dfc697;color:#1d281f;margin:28px 0 12px;padding:15px}#restart{display:block;width:100%;margin:8px 0 18px}#gallery{color:#dbccb2;text-decoration:none;display:block;font-size:14px;margin:20px 0}.footnote{display:block;line-height:1.8!important;font-size:12px!important;letter-spacing:0!important}#failure{position:fixed;inset:0;background:#17221d;padding:20vh 10vw;text-align:center}#touch-controls{display:none;position:fixed;bottom:70px;left:20px;grid-template-columns:repeat(3,46px);gap:5px;touch-action:none}#touch-controls button{padding:12px}#touch-controls button:first-child{grid-column:2}#touch-controls button:nth-child(2){grid-column:1}@media(pointer:coarse){#touch-controls{display:grid}#controls{display:none}}@media(max-width:600px){header{inset:20px 18px auto}.brand span{font-size:22px}nav{gap:4px}nav button{font-size:12px;padding:10px}aside{left:18px;top:104px;max-width:210px}aside p{font-size:14px}footer{left:18px;right:18px;justify-content:flex-end}#controls{display:none}#modal section{padding:28px 22px}h1{font-size:28px}#toast{bottom:170px;max-width:88vw;font-size:14px}#interact{bottom:110px;left:auto;right:18px;transform:none;font-size:13px}}

/* Quiet backing keeps room copy legible against the ivory vault. */
@media(max-width:600px){
 header{display:grid!important;grid-template-columns:1fr;gap:8px!important}
 .brand{flex-direction:row;align-items:center;justify-content:space-between}
 .brand span{white-space:nowrap;font-size:22px!important;letter-spacing:.08em}
 nav{justify-content:flex-end}nav button{min-width:44px;font-size:13px!important}
 aside{top:124px!important;left:18px;max-width:calc(100% - 36px)!important;padding:8px 12px!important}
 aside small{display:none}aside p{margin:0;font-size:14px;line-height:1.6}
 #toast{bottom:210px!important}#touch-controls{bottom:90px}
}
@media(max-height:500px) and (min-width:601px){header{inset:12px 20px auto}aside{top:75px;max-width:230px;padding:8px 12px}aside small{display:none}aside p{font-size:13px;line-height:1.5;margin:0}#modal section{padding:20px;max-height:94dvh}h1{font-size:25px;margin:10px 0}}
@media(min-width:601px){#interact{bottom:32px}}
footer{pointer-events:none}footer button{pointer-events:auto}
aside{padding:12px 16px;border-left:1px solid #d8bb8270;background:linear-gradient(110deg,#111b18d9,#111b1880 78%,#111b1800);border-radius:2px}aside p{margin-bottom:0}#toast{white-space:pre-line}#interact:active{background:#cdb88f}button:active{translate:0 1px}@media(prefers-reduced-motion:reduce){#toast{transition:none}button:active{translate:none}}@media(max-width:600px){aside{padding:10px 12px;max-width:222px}header{gap:10px}.brand small{font-size:10px}nav button{min-height:44px}}
