:root{color:#f4e6e4;font-synthesis:none;background:#203847;font-family:Inter,PingFang SC,Hiragino Sans GB,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas{touch-action:none;outline:none;width:100vw;height:100vh;display:block}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline-offset:5px;outline:2px solid #e4b667}.hud{pointer-events:none;background:linear-gradient(#1e203b33,#0000 22% 77%,#142e4040);position:fixed;inset:0}.brand{align-items:center;gap:14px;display:flex;position:absolute;top:33px;left:40px}.brand-mark{border:1px solid #edd4c599;border-radius:70% 0;width:28px;height:37px;position:relative;transform:rotate(-25deg)}.brand-mark:after{content:"";border-left:1px solid #edd4c5;border-radius:50%;position:absolute;inset:6px;transform:rotate(25deg)}.brand strong{letter-spacing:.34em;font-size:14px;font-weight:500}.brand small{letter-spacing:.35em;opacity:.65;margin-top:7px;font-size:10px;display:block}.area{text-align:right;position:absolute;top:35px;right:40px}.area b{letter-spacing:.23em;font-size:11px;font-weight:400}.area span{opacity:.65;margin-top:9px;font-size:11px;display:block}.intro{pointer-events:auto;max-width:520px;transition:opacity .6s,transform .6s;position:absolute;bottom:15vh;left:7vw}.eyebrow{letter-spacing:.4em;color:#f2d9bb;align-items:center;gap:15px;font-size:11px;display:flex}.eyebrow:before{content:"";background:#e4b667;width:33px;height:1px}.intro h1{letter-spacing:.11em;text-shadow:0 2px 30px #20384744;margin:25px 0 20px;font-family:Songti SC,serif;font-size:62px;font-weight:400;line-height:1.25}.intro p{letter-spacing:.13em;opacity:.84;margin-bottom:30px;font-size:13px;line-height:2.1}.begin{color:#314750;letter-spacing:.2em;background:#ecddc1;border:0;border-radius:2px;align-items:center;gap:40px;padding:15px 27px;font-size:12px;display:flex;box-shadow:0 5px 35px #20384720}.begin:hover{background:#f7eace}.begin i{font-size:18px;font-style:normal}.intro footer{opacity:.65;letter-spacing:.12em;margin-top:17px;font-size:10px}.intro.hidden{opacity:0;pointer-events:none;transform:translateY(15px)}.speed{opacity:0;transition:opacity .5s;position:absolute;bottom:66px;left:40px}.speed.visible{opacity:1}.speed .number{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:36px;font-weight:300}.speed .unit{letter-spacing:.13em;opacity:.65;margin-left:8px;font-size:9px}.speed .mode{letter-spacing:.2em;opacity:.7;margin-top:6px;font-size:9px}.speedbar{background:#efe3dc33;width:110px;height:2px;margin-top:12px}.speedbar i{background:#e4b667;width:0;height:2px;transition:width .1s;display:block}.controls{letter-spacing:.05em;opacity:.72;gap:23px;font-size:10px;display:flex;position:absolute;bottom:25px;left:40px;right:40px}.controls span:last-child{margin-left:auto}kbd{font:inherit;border:1px solid #f2e2df66;border-radius:3px;margin-right:6px;padding:2px 5px}.prompt{letter-spacing:.12em;background:#20384766;border:1px solid #efd8b080;border-radius:2px;padding:14px 22px;font-size:13px;display:none;position:absolute;bottom:21%;left:50%;transform:translate(-50%)}.prompt.visible{display:block}.toast{text-align:center;letter-spacing:.25em;opacity:0;text-shadow:0 2px 20px #203847;font-family:Songti SC,serif;font-size:24px;transition:opacity .5s;position:absolute;top:18%;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.toast small{letter-spacing:.12em;opacity:.7;margin-top:12px;font:10px PingFang SC,sans-serif;display:block}.pause{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:4;background:#203847a6;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.pause.visible{display:flex}.pause section{text-align:center;width:340px}.pause h2{letter-spacing:.2em;font:400 35px Songti SC,serif}.pause p{opacity:.7;font-size:12px;line-height:2}.pause button{color:#203847;background:#eedac4;border:0;width:100%;margin:12px 0;padding:14px;display:block}.pause button.secondary{color:#f4e6e4;background:0 0;border:1px solid #f4e6e433}#debug{white-space:pre;pointer-events:none;background:#132e3bdd;max-width:400px;padding:14px;font:11px/1.6 monospace;display:none;position:fixed;top:105px;left:35px}#debug.visible{display:block}.loading{z-index:6;text-align:center;background:#203847;place-content:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.loading p{letter-spacing:.25em;font:28px Songti SC,serif}.loading span{letter-spacing:.15em;opacity:.6;font-size:11px}.loading.finished{opacity:0;pointer-events:none}.loading .line{background:#e4b667;width:90px;height:1px;margin:20px auto;animation:1.3s infinite pulse}@keyframes pulse{50%{opacity:.2;transform:scaleX(.5)}}@media (width<=800px){.brand{top:22px;left:22px}.area{top:25px;right:22px}.intro{left:8vw}.intro h1{font-size:44px}.controls{gap:12px;font-size:9px;left:22px;right:22px}.controls span:nth-child(4){display:none}.speed{left:22px}}.lighting-tools{z-index:5;pointer-events:auto;color:#f8ece8;position:fixed;top:84px;right:32px}.lighting-toggle{letter-spacing:.12em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#382f4ddd;border:1px solid #eedac477;border-radius:4px;padding:9px 14px;font-size:11px}.lighting-toggle:hover{background:#51415eea}.lighting-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#29263bef;border:1px solid #eedac455;border-radius:6px;width:290px;margin-top:9px;padding:15px 16px 13px;box-shadow:0 12px 38px #17132666}.lighting-panel[hidden]{display:none}.lighting-panel header{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.lighting-panel header strong{letter-spacing:.13em;font-size:12px;font-weight:500}.lighting-reset{color:#e9c6b5;text-underline-offset:3px;background:0 0;border:0;font-size:10px;text-decoration:underline}.lighting-panel small{color:#e7d9ddaa;margin-top:10px;font-size:9px;line-height:1.6;display:block}.light-row{letter-spacing:.04em;grid-template-columns:74px 1fr 36px;align-items:center;gap:9px;margin:10px 0;font-size:10px;display:grid}.light-row input{accent-color:#e3a9b5;width:100%;height:3px}.light-row output{text-align:right;color:#f1d7c8;font:10px ui-monospace,monospace}@media (width<=800px){.lighting-tools{top:75px;right:18px}.lighting-panel{width:min(290px,100vw - 36px)}}
