:root{color:#fff8ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#111322;font-family:Songti SC,Noto Serif SC,Georgia,serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;position:fixed;inset:0}canvas{cursor:crosshair;width:100%;height:100%;display:block}.scene-editing .game-overlay,.scene-editing .start-card,.scene-editing .archive-panel,.scene-editing .debug-panel{display:none!important}.scene-editing canvas{cursor:default}.scene-editing body{background:#0d1012;position:relative;overflow:auto}.scene-editing #app{grid-template-columns:minmax(210px,min(56.25vh - 14px,100vw - 286px)) minmax(250px,326px);justify-content:center;align-items:center;gap:12px;min-width:484px;min-height:100%;padding:12px;display:grid;overflow:auto}.editor-preview-shell{aspect-ratio:9/16;background:#111322;border:1px solid #d7dee142;width:100%;max-height:calc(100vh - 24px);position:relative;overflow:hidden;box-shadow:0 16px 46px #0000004d}.editor-preview-shell canvas{width:100%;height:100%}.scene-editing .scene-editor{align-self:center;width:100%;max-height:calc(100vh - 24px);position:relative;inset:auto}.scene-editor{z-index:30;color:#f2f3ef;-webkit-backdrop-filter:none;backdrop-filter:none;letter-spacing:0;background:#121619eb;border:1px solid #d7dee152;border-radius:6px;flex-direction:column;width:min(326px,100vw - 28px);max-height:calc(100vh - 28px);font-family:ui-sans-serif,system-ui,-apple-system,PingFang SC,sans-serif;display:flex;position:fixed;top:14px;right:14px;overflow:hidden;box-shadow:0 16px 46px #00000057}.scene-editor button,.scene-editor input,.scene-editor select{font:inherit;letter-spacing:0}.scene-editor button{color:#edf0ea;cursor:pointer;background:#f1f4ef12;border:1px solid #dee6e633;border-radius:4px;min-height:38px}.scene-editor button:hover,.scene-editor button.active{color:#effff6;background:#aed4c430;border-color:#cce5db9e}.scene-editor__header{border-bottom:1px solid #dee6e629;justify-content:space-between;align-items:center;min-height:56px;padding:10px 12px;display:flex}.scene-editor__header strong,.scene-editor__header span{display:block}.scene-editor__header strong{font-size:15px}.scene-editor__header span{color:#e5eae799;margin-top:3px;font-size:11px}.scene-editor .editor-icon-button{width:38px;min-width:38px;padding:0;font-size:21px}.scene-editor__scenes{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 10px 0;display:grid}.scene-editor__body{gap:9px;min-height:0;padding:10px;display:grid;overflow:auto}.editor-field{color:#e5eae7b3;gap:5px;font-size:11px;display:grid}.editor-field select,.editor-axis-row input{color:#f4f5f1;background:#0003;border:1px solid #dee6e633;border-radius:4px;outline:none;min-width:0;min-height:38px}.editor-field select{width:100%;padding:0 9px}.editor-selection{color:#f6f8f4db;text-overflow:ellipsis;white-space:nowrap;background:#a9d4c014;border-left:2px solid #a9d4c0;min-height:34px;padding:8px 9px;font-size:11px;overflow:hidden}.editor-segments{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.editor-axis-grid{gap:5px;display:grid}.editor-axis-title{color:#e5eae7a6;font-size:11px}.editor-axis-row{grid-template-columns:20px 38px minmax(0,1fr) 38px;align-items:center;gap:5px;display:grid}.editor-axis-row b{text-align:center;font-size:11px}.editor-axis-row button{min-height:36px;padding:0;font-size:17px}.editor-axis-row input{text-align:center;width:100%;min-height:36px;padding:0 8px}.editor-check{color:#edf0eac7;align-items:center;gap:7px;font-size:12px;display:none}.scene-editor.scale-mode .editor-check{display:flex}.editor-check input{accent-color:#9dcbb7;width:18px;height:18px}.editor-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.editor-actions button{padding:0 6px;font-size:11px}.editor-status{color:#bde2d1d1;text-align:center;min-height:16px;font-size:11px}.editor-status.error{color:#ffc5ce}.editor-finish{margin:0 10px 10px;background:#9bcdb633!important;border-color:#b1dec97a!important}.scene-editor.collapsed{width:190px}.scene-editor.collapsed .scene-editor__scenes,.scene-editor.collapsed .scene-editor__body,.scene-editor.collapsed .editor-finish{display:none}.visual-compare .game-overlay,.visual-compare .start-card,.visual-compare .archive-panel,.visual-compare .debug-panel{display:none!important}.visual-compare-reference{z-index:20;object-fit:fill;opacity:.5;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.game-overlay{pointer-events:none;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));transition:opacity .48s;position:fixed;inset:0}.intro-active .game-overlay{opacity:0}.scene-title{top:max(18px, env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));text-shadow:0 0 18px #a7b2ffbd;position:absolute}.scene-title strong{font-size:clamp(20px,3.4vw,36px);font-weight:650;display:block}.progress-runes{right:max(18px, env(safe-area-inset-right));top:max(18px, env(safe-area-inset-top));text-align:center;background:#0c0e1cd1;border:1px solid #e7dcff57;min-width:52px;padding:8px 12px;position:absolute}.objective-panel{left:max(18px, env(safe-area-inset-left));bottom:max(18px, env(safe-area-inset-bottom));color:#fffaffbd;background:#0c0e1cd1;border:1px solid #e2d9ff3d;gap:7px;width:min(280px,100vw - 36px);padding:12px 14px;font-size:13px;line-height:1.35;display:grid;position:absolute}.objective-panel span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.objective-current{color:#fffafff5;border-bottom:1px solid #e2d9ff33;gap:3px;margin-bottom:3px;padding-bottom:8px;font-size:13px;font-weight:600;display:grid}.objective-current small{color:#f7d8ffad;letter-spacing:.12em;font-size:10px;font-weight:500}.objective-panel .done{color:#f7d8ff;text-shadow:0 0 14px #f7d8ff9e}.gesture-hint{z-index:4;color:#fffaffeb;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:0;text-align:center;background:#0b0e1da8;border:1px solid #f7d8ff57;max-width:min(300px,100vw - 36px);padding:8px 11px;font-size:13px;line-height:1.4;transition:opacity .14s,transform .14s;position:fixed;top:50%;left:50%;transform:translate(-50%,-100%)}.gesture-hint.visible{opacity:1;transform:translate(-50%,-118%)}.gesture-hint.success{color:#dfffee;border-color:#b4f4dd8f}.gesture-hint.error{color:#ffd7e3;border-color:#ffc6d68a}.hold-ring{--hold:0deg;z-index:4;background:conic-gradient(#f7d8ff var(--hold), #ffffff29 0);opacity:0;pointer-events:none;border-radius:50%;width:52px;height:52px;transition:opacity .12s;position:fixed;transform:translate(-50%,-50%)}.hold-ring:after{content:"";border-radius:inherit;background:#0c0e1cbd;position:absolute;inset:5px;box-shadow:inset 0 0 18px #8fa0ff59}.hold-ring.visible{opacity:.92}.toast{left:50%;bottom:max(32px, calc(env(safe-area-inset-bottom) + 22px));color:#fffaffeb;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:0;text-align:center;background:#0f1121e0;border:1px solid #eadcff4d;max-width:min(680px,100vw - 36px);padding:12px 18px;line-height:1.55;transition:all .22s;position:absolute;transform:translate(-50%)translateY(20px)}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.start-card,.archive-panel{z-index:5;-webkit-backdrop-filter:none;backdrop-filter:none;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.start-card{-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate;background:#070a0e47;padding:0;transition:background-color .9s;display:block;overflow:hidden}.start-card:before,.start-card:after{content:"";z-index:-1;background:#0a0d12e3;width:calc(50% + 1px);transition:transform .96s cubic-bezier(.72,0,.2,1);position:absolute;top:0;bottom:0}.start-card:before{left:0}.start-card:after{right:0}.start-card.is-leaving{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0}.start-card.is-leaving:before{transform:translate(-102%)}.start-card.is-leaving:after{transform:translate(102%)}.start-atmosphere{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.start-atmosphere:after{content:"";opacity:.18;mix-blend-mode:normal;background-image:url(/assets/generated/scene03_v4/s03_mat_upper_plaster_v1.png);background-size:420px 420px;position:absolute;inset:0}.start-aperture{background:#d9e2d08f;width:1px;animation:2.6s ease-in-out infinite alternate start-aperture;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 26px #abc9c475,0 0 80px #d2aa843d}.start-scanline{background:#cedadd1f;height:1px;animation:7s linear infinite start-scan;position:absolute;left:0;right:0}.start-topline{z-index:2;top:max(24px, env(safe-area-inset-top));left:max(24px, env(safe-area-inset-left));right:max(24px, env(safe-area-inset-right));color:#dae2dea3;letter-spacing:0;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;animation:.9s .12s both start-copy-in;display:flex;position:absolute}.archive-panel{-webkit-backdrop-filter:none;backdrop-filter:none;background:#090b10e0;place-items:start center;overflow-y:auto}.start-content,.archive-paper{width:min(860px,100vw - 48px)}.start-content{z-index:2;left:max(38px, env(safe-area-inset-left));bottom:max(16vh, calc(env(safe-area-inset-bottom) + 100px));color:#f1f0e8;justify-items:start;width:min(720px,100vw - 76px);display:grid;position:absolute}.start-index{color:#c4cfc4b8;margin-bottom:18px;font-size:13px;animation:.82s .26s both start-copy-in}.start-card h1{text-shadow:0 4px 30px #000000b8;overflow-wrap:anywhere;word-break:normal;width:100%;max-width:calc(100vw - 76px);margin:0;font-size:68px;font-weight:560;line-height:1.06}.start-card h1 span{animation:.88s cubic-bezier(.2,.74,.2,1) both start-title-in;display:block}.start-card h1 span:last-child{animation-delay:.11s}.start-card p{color:#e2e5dbb8;margin:22px 0 28px;font-size:15px;line-height:1.7;animation:.8s .52s both start-copy-in}.start-button{color:#171b1c;background:#d6d6c2f0;border-color:#ebe8d29e;animation:.8s .68s both start-copy-in;box-shadow:0 14px 44px #0000004d,inset 0 0 0 1px #ffffff3d}.start-button:disabled{cursor:default;opacity:.72}.start-footnote{z-index:2;right:max(24px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));color:#d9ddd57a;font-size:10px;animation:.9s .82s both start-copy-in;position:absolute}.start-card.is-leaving .start-content,.start-card.is-leaving .start-topline,.start-card.is-leaving .start-footnote,.start-card.is-leaving .start-atmosphere{opacity:0;transition:opacity .28s}@keyframes start-title-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes start-copy-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes start-aperture{0%{opacity:.35}to{opacity:.92}}@keyframes start-scan{0%{transform:translateY(-5vh)}to{transform:translateY(110vh)}}@keyframes start-grain{0%{transform:translate(-2%,-2%)}25%{transform:translate(3%,-1%)}50%{transform:translate(-1%,3%)}75%{transform:translate(2%,1%)}to{transform:translate(-2%,-2%)}}.primary-button{pointer-events:auto;color:#111322;font:inherit;background:linear-gradient(135deg,#f7c1dbeb,#8fa0ffe0);border:1px solid #fff4ff85;border-radius:8px;min-width:112px;min-height:44px;padding:12px 24px;font-weight:700;box-shadow:0 16px 48px #5b62ad57}.archive-paper{color:#252722;background:url(/assets/generated/scene04_v1/s04_ui_archive_card_blank.webp) 50%/100% 100% no-repeat;border:0;width:min(560px,100vw - 48px);margin:auto;padding:42px 46px 38px;animation:.52s cubic-bezier(.2,.72,.22,1) both archive-paper-in;position:relative;box-shadow:0 26px 90px #00000075}@keyframes archive-paper-in{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.archive-header{border-bottom:1px solid #30373361;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:13px;display:flex}.archive-kicker,.archive-number,.archive-section-label{display:block}.archive-kicker{color:#4b6965;font-size:12px;font-weight:760}.archive-number{color:#262a2694;margin-top:5px;font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.archive-status{color:#425f5b;border:1px solid #4b69658f;border-radius:2px;flex:none;padding:5px 7px;font-size:10px}.archive-identity{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:18px;padding:20px 0 15px;display:grid}.archive-mark{aspect-ratio:1;color:#42635e;border:2px solid #4b6965b8;border-radius:50%;place-items:center;width:72px;font-size:18px;font-weight:760;display:grid;transform:rotate(-5deg);box-shadow:inset 0 0 0 5px #4b696517}.archive-section-label{color:#876151;font-size:10px;font-weight:760}.archive-paper h2{color:#1f2521;margin:4px 0 7px;font-size:36px;font-weight:720;line-height:1.08}.archive-summary{color:#252722b8;margin:0;font-size:13px;line-height:1.65}.archive-tags{flex-wrap:wrap;gap:6px;padding-bottom:17px;display:flex}.archive-tags span{color:#252722b3;border:1px solid #4d544b57;border-radius:2px;padding:4px 7px;font-size:10px}.archive-section{border-top:1px solid #30373347;padding:15px 0}.archive-section-title{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.archive-section-title span,.archive-note>span{color:#3f5d58;font-size:11px;font-weight:760}.archive-section-title em{color:#2527227a;font-size:9px;font-style:normal}.archive-metrics{border-top:1px solid #363a3433;border-bottom:1px solid #363a3433;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.archive-metrics dl{text-align:center;border-right:1px solid #363a3433;min-width:0;margin:0;padding:10px 8px 9px}.archive-metrics dl:last-child{border-right:0}.archive-metrics dt{color:#2f3833;font:700 16px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace}.archive-metrics dd{color:#2527228f;margin:5px 0 0;font-size:9px}.archive-route{gap:9px;display:grid}.archive-route-row{grid-template-columns:22px minmax(0,1fr) 60px;align-items:center;gap:8px;display:grid}.archive-route-index,.archive-route-row time{color:#2527227a;font:9px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.archive-route-row time{text-align:right}.archive-route-copy{min-width:0}.archive-route-copy strong{color:#252722c2;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:620;display:block;overflow:hidden}.archive-route-copy i{background:#3a413a24;height:2px;margin-top:5px;display:block;position:relative;overflow:hidden}.archive-route-copy i:after{content:"";width:var(--route);background:#65817b;position:absolute;inset:0 auto 0 0}.archive-note{border-top:1px solid #30373347;border-left:2px solid #87615194;padding:14px 0 15px 13px}.archive-note p{color:#252722ad;margin:6px 0 0;font-size:11px;line-height:1.65}.archive-footer{border-top:1px solid #30373347;justify-content:space-between;align-items:center;gap:20px;padding-top:16px;display:flex}.archive-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.archive-paper [data-restart]{color:#536d68;background:0 0}.archive-share-hint{color:#596d63;text-align:center;margin:14px 0 0;font-size:11px;line-height:1.7}.archive-paper.archive-paper-image{background:#eae6d7;padding:16px}.archive-paper-image .archive-share-hint{color:#263e34;background:#d6dfcf;border:1px solid #9cae98;margin:0 0 14px;padding:12px;font-size:15px;font-weight:700}.archive-paper-image .archive-footer{margin-top:16px}.archive-share-dialog{color:#344b40;overscroll-behavior:contain;touch-action:auto;background:#f0ecdf;border:1px solid #a6ae9c;border-radius:8px;width:min(560px,100vw - 24px);max-height:calc(100dvh - 32px);padding:18px;overflow-y:auto}.archive-share-dialog::backdrop{background:#080e12dc}.archive-share-dialog header{justify-content:space-between;align-items:center;gap:16px;display:flex}.archive-share-dialog h3{margin:0;font-size:20px}.share-instructions{font-size:13px;line-height:1.8}.archive-share-image{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;width:100%;height:auto;display:block}.archive-share-dialog [hidden]{display:none}.share-image-actions{justify-content:center;gap:12px;margin-top:16px;display:flex}.archive-share-dialog button,.archive-share-dialog a{color:#fff9eb;min-height:44px;font:inherit;cursor:pointer;background:#536d68;border:1px solid #536d68;border-radius:3px;justify-content:center;align-items:center;padding:8px 16px;font-size:14px;text-decoration:none;display:inline-flex}.archive-share-dialog [data-close]{color:#536d68;background:0 0}.archive-share-dialog [data-status]:empty{display:none}.archive-seal{color:#704138b8;display:grid;transform:rotate(-3deg)}.archive-seal span{font-size:15px;font-weight:760}.archive-seal small{letter-spacing:0;margin-top:2px;font:7px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.archive-paper .primary-button{color:#f3f0e7;min-width:104px;box-shadow:none;background:#536d68;border-color:#536d68;border-radius:3px;margin:0;padding:9px 16px;font-size:12px}.debug-panel{z-index:10;color:#bfffe6;white-space:pre-wrap;background:#05080fd1;border:1px solid #bfffe63d;width:min(420px,100vw - 20px);max-height:54vh;margin:0;padding:12px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;bottom:10px;right:10px;overflow:auto}@media (width<=680px){.scene-title strong{max-width:72vw}.toast{font-size:14px}.objective-panel{width:min(230px,100vw - 36px);font-size:12px}.objective-current{grid-column:1/-1;font-size:12px}}@media (orientation:portrait) and (width<=680px){.scene-editor__header{min-height:48px;padding:7px 9px}.scene-editor__body{gap:7px 9px;padding:8px 9px}.editor-axis-row{grid-template-columns:18px 40px minmax(0,1fr) 40px}.editor-finish{min-height:40px;margin:0 9px 9px}.game-overlay{padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.scene-title{top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left))}.scene-title strong{max-width:68vw;font-size:18px}.progress-runes{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));min-width:44px;padding:6px 9px;font-size:12px}.objective-panel{left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 9px;width:auto;padding:9px 10px;font-size:11px}.toast{bottom:max(84px, calc(env(safe-area-inset-bottom) + 76px));max-width:calc(100vw - 28px);padding:9px 12px;font-size:12px}.start-card,.archive-panel{padding:20px 18px}.start-card{padding:0}.archive-panel{padding:12px}.start-content,.archive-paper{width:min(100%,100vw - 36px)}.start-content{left:max(24px, env(safe-area-inset-left));right:max(24px, env(safe-area-inset-right));bottom:max(17vh, calc(env(safe-area-inset-bottom) + 92px));width:auto}.start-topline{top:max(20px, env(safe-area-inset-top));left:max(20px, env(safe-area-inset-left));right:max(20px, env(safe-area-inset-right))}.start-card h1{max-width:100%;font-size:46px}.start-card p{max-width:270px;margin:18px 0 24px;font-size:13px}.start-footnote{right:auto;left:max(20px, env(safe-area-inset-left));bottom:max(20px, env(safe-area-inset-bottom))}.archive-paper{width:min(100%,430px);padding:32px 28px 27px}.archive-header{gap:10px;padding-bottom:10px}.archive-kicker{font-size:10px}.archive-number,.archive-status{font-size:8px}.archive-identity{grid-template-columns:62px minmax(0,1fr);gap:13px;padding:15px 0 12px}.archive-mark{width:58px;font-size:14px}.archive-paper h2{font-size:28px}.archive-summary{font-size:11px;line-height:1.55}.archive-tags{padding-bottom:12px}.archive-tags span{padding:3px 6px;font-size:8px}.archive-section{padding:12px 0}.archive-section-title{margin-bottom:9px}.archive-metrics dl{padding:8px 4px 7px}.archive-metrics dt{font-size:13px}.archive-metrics dd{font-size:8px}.archive-route{gap:7px}.archive-route-row{grid-template-columns:18px minmax(0,1fr) 52px;gap:6px}.archive-note{padding:11px 0 12px 10px}.archive-note p{font-size:10px;line-height:1.55}.archive-footer{padding-top:13px}.archive-paper .primary-button{min-width:96px;min-height:40px;padding:8px 13px;font-size:11px}}@media (prefers-reduced-motion:reduce){.start-card *,.start-card:before,.start-card:after{animation-duration:1ms!important;animation-iteration-count:1!important}}
