:root{--ink:#f6eef1;--dim:#f6eef19e;--sakura:#f29ab8;--sakura2:#ffc9d9;--gold:#e9b93c;--vermilion:#d2382a;--glass:#0e0a1494;--line:#ffffff29;--serif:"Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", "Times New Roman", Georgia, serif;--sans:"Segoe UI", "Helvetica Neue", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#stage{background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#c{object-fit:contain;background:#000;width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui .panel,#ui button,#ui select,#ui input,#ui .click{pointer-events:auto}.hidden{display:none!important}.fade{transition:opacity .8s}.invisible{opacity:0;pointer-events:none!important}#letterbox .bar{z-index:5;background:#000;height:0;transition:height 1.2s cubic-bezier(.2,.7,.2,1);position:fixed;left:0;right:0}#letterbox .top{top:0}#letterbox .bottom{bottom:0}#letterbox.on .bar{height:7.2vh}.btn{font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff12;border-radius:999px;align-items:center;gap:10px;padding:14px 26px;transition:all .25s;display:inline-flex}.btn:hover{background:#f29ab838;border-color:#ffc9d999;transform:translateY(-1px);box-shadow:0 0 30px #f29ab84d}.btn.primary{background:linear-gradient(135deg,#e0422f,#b8241a);border-color:#ffaa8c80;box-shadow:0 6px 30px #d2382a73}.btn.primary:hover{background:linear-gradient(135deg,#f0523d,#c72d20);box-shadow:0 8px 40px #f0523d99}.btn.rec .dot{background:#ff3b30;border-radius:50%;width:10px;height:10px;box-shadow:0 0 10px #ff3b30}.btn.small{padding:9px 16px;font-size:11px}.btn[disabled]{opacity:.4;pointer-events:none}#loading{z-index:30;background:radial-gradient(at 50% 40%,#241634 0%,#0a0710 70%);flex-direction:column;justify-content:center;align-items:center;gap:22px;transition:opacity 1s;display:flex;position:fixed;inset:0}#loading .kanji{font:400 min(22vw, 220px)/1 var(--serif);color:#f29ab81a;letter-spacing:.1em;position:absolute}#loading h1{font:500 clamp(26px, 4vw, 46px)/1.1 var(--serif);letter-spacing:.4em;text-indent:.4em;z-index:1;margin:0}#loading .bar{z-index:1;background:#ffffff1f;border-radius:3px;width:min(460px,70vw);height:3px;overflow:hidden}#loading .bar i{background:linear-gradient(90deg, var(--sakura), var(--gold));width:0%;height:100%;box-shadow:0 0 12px var(--sakura);transition:width .2s;display:block}#loading .stage{font:400 14px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);z-index:1}#loading .tip{font:italic 400 15px var(--serif);color:#f6eef180;z-index:1;text-align:center;max-width:60ch;min-height:1.6em}#title{z-index:20;background:linear-gradient(#06030c00 38%,#06030c59 62%,#06030ce0 100%),linear-gradient(90deg,#06030c8c 0%,#06030c00 55%);flex-direction:column;justify-content:flex-end;padding:0 7vw 9vh;transition:opacity 1.2s;display:flex;position:fixed;inset:0}#title .jp{font:400 clamp(18px, 2.2vw, 28px)/1 var(--serif);letter-spacing:.6em;color:var(--sakura2);margin-bottom:16px}#title h1{font:500 clamp(44px, 8.4vw, 132px)/.95 var(--serif);letter-spacing:.14em;text-shadow:0 6px 60px #0009;margin:0}#title h1 em{color:var(--sakura);font-style:normal}#title .tag{font:italic 400 clamp(15px, 1.6vw, 22px)/1.5 var(--serif);color:#f6eef1db;text-shadow:0 2px 20px #000;max-width:54ch;margin:20px 0 34px}#title .row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}#title .opts{font:500 12px var(--sans);letter-spacing:.1em;color:var(--dim);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:18px;margin-top:26px;display:flex}#title select,#record-panel select{color:var(--ink);border:1px solid var(--line);font:500 12px var(--sans);background:#ffffff14;border-radius:8px;padding:7px 10px}#title select option,#record-panel select option{color:#111}#title .keys{text-align:right;font:400 12px/1.9 var(--sans);color:var(--dim);letter-spacing:.06em;position:absolute;bottom:9vh;right:4vw}#title .keys b{color:var(--ink);border:1px solid var(--line);border-radius:5px;margin:0 2px;padding:1px 7px;font-weight:600}#cine{z-index:10;position:fixed;inset:0}#cine .chapter{text-align:center;opacity:0;pointer-events:none;text-shadow:0 4px 40px #000000b3;transition:opacity 1.4s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#cine .chapter.on{opacity:1}#cine .chapter .num{font:500 13px var(--sans);letter-spacing:.5em;color:var(--sakura2);text-transform:uppercase;text-indent:.5em;margin-bottom:12px}#cine .chapter .name{font:500 clamp(38px, 6vw, 88px)/1 var(--serif);letter-spacing:.3em;text-indent:.3em}#cine .chapter .jp{font:400 clamp(18px, 2.4vw, 32px)/1 var(--serif);letter-spacing:.8em;color:var(--gold);text-indent:.8em;margin-top:16px}#cine .bottom{font:500 13px var(--sans);letter-spacing:.12em;opacity:0;align-items:center;gap:16px;transition:opacity .4s;display:flex;position:absolute;bottom:calc(7.2vh + 14px);left:4vw;right:4vw}#cine:hover .bottom,#cine.show .bottom{opacity:1}#cine .tc{font-variant-numeric:tabular-nums;text-shadow:0 1px 8px #000;min-width:12ch}#cine .scrub{cursor:pointer;pointer-events:auto;flex:1;align-items:center;height:26px;display:flex;position:relative}#cine .scrub .track{background:#ffffff38;border-radius:3px;width:100%;height:3px;position:relative}#cine .scrub .fill{background:linear-gradient(90deg, var(--sakura), var(--gold));border-radius:3px;width:0;position:absolute;top:0;bottom:0;left:0}#cine .scrub .seg{background:#ffffff73;width:1px;height:11px;position:absolute;top:-4px}#cine .scrub .knob{width:11px;height:11px;box-shadow:0 0 12px var(--sakura);background:#fff;border-radius:50%;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}#cine .cn{color:var(--dim);text-transform:uppercase;text-align:right;min-width:10ch}#explore{z-index:9;position:fixed;inset:0}#explore .hint{font:500 12px/1.9 var(--sans);letter-spacing:.08em;color:#ffffffc7;text-align:center;text-shadow:0 1px 10px #000;transition:opacity 1s;position:absolute;bottom:4vh;left:50%;transform:translate(-50%)}#explore .hint b{border:1px solid #ffffff59;border-radius:5px;margin:0 2px;padding:1px 7px;font-weight:600}#explore .place{font:500 clamp(22px, 3vw, 40px) var(--serif);letter-spacing:.3em;text-indent:.3em;text-shadow:0 3px 30px #000;opacity:0;text-align:center;transition:opacity 1.2s;position:absolute;top:7vh;left:50%;transform:translate(-50%)}#explore .place.on{opacity:1}#explore .place small{font:500 12px var(--sans);letter-spacing:.4em;color:var(--sakura2);text-transform:uppercase;margin-top:8px;display:block}#explore .crosshair{background:#ffffff8c;border-radius:50%;width:4px;height:4px;margin:-2px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px #000c}#explore .tools{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:18px;right:18px}#explore .lock{font:500 14px var(--sans);letter-spacing:.3em;text-transform:uppercase;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:16px 30px;animation:2.4s ease-in-out infinite pulse;position:absolute;top:52%;left:50%;transform:translate(-50%)}@keyframes pulse{0%,to{opacity:.75}50%{opacity:1}}#minimap{pointer-events:auto;cursor:pointer;background:#0b1420;border:2px solid #ffffff59;border-radius:50%;width:176px;height:176px;position:absolute;bottom:18px;left:18px;overflow:hidden;box-shadow:0 6px 30px #00000080}#minimap canvas{width:100%;height:100%;display:block}.panel{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:18px;padding:22px 26px}#places{z-index:25;width:290px;max-height:70vh;position:fixed;top:70px;right:18px;overflow:auto}#places h3{font:500 14px var(--serif);letter-spacing:.3em;text-transform:uppercase;color:var(--sakura2);margin:0 0 12px}#places .it{cursor:pointer;font:500 13px var(--sans);letter-spacing:.04em;border-radius:10px;justify-content:space-between;gap:8px;padding:9px 10px;display:flex}#places .it:hover{background:#f29ab82e}#places .it small{color:var(--dim);font-weight:400}#bigmap{z-index:24;justify-content:center;align-items:center;display:flex;position:fixed;inset:7vh 10vw}#bigmap canvas{cursor:crosshair;border-radius:16px;max-width:100%;max-height:100%;box-shadow:0 10px 80px #000}#record-panel{z-index:40;width:min(560px,92vw);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#record-panel h2{font:500 22px var(--serif);letter-spacing:.18em;margin:0 0 6px}#record-panel p{font:400 14px/1.6 var(--sans);color:var(--dim);margin:6px 0 14px}#record-panel .field{font:500 13px var(--sans);letter-spacing:.06em;justify-content:space-between;align-items:center;gap:14px;margin:12px 0;display:flex}#record-panel .prog{background:#ffffff1f;border-radius:6px;height:6px;margin:14px 0 8px;overflow:hidden}#record-panel .prog i{background:linear-gradient(90deg, var(--sakura), var(--gold));width:0;height:100%;display:block}#record-panel .stat{font:500 12px/1.7 var(--sans);color:var(--dim);letter-spacing:.06em;font-variant-numeric:tabular-nums}#record-panel .actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:18px;display:flex}#record-panel.rendering{width:min(560px,92vw);top:auto;bottom:26px;transform:translate(-50%)}#toast{z-index:50;font:500 13px var(--sans);letter-spacing:.12em;background:var(--glass);border:1px solid var(--line);opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;border-radius:999px;padding:12px 22px;transition:opacity .4s;position:fixed;bottom:12vh;left:50%;transform:translate(-50%)}#toast.on{opacity:1}
