@font-face{font-family:Soulside Betrayed;src:url(./soulside-betrayed-UP735TDC.otf) format("opentype");font-display:swap}:root{color-scheme:dark;background:#102337}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:system-ui,sans-serif}html.scroll-path-active{overflow-x:hidden;overflow-y:auto}body.scroll-path-active{height:auto;overflow:visible}body.scroll-path-active .app-shell{position:sticky;top:0;z-index:1}.scroll-track{height:0;pointer-events:none}body.scroll-path-active .viewport canvas{touch-action:pan-y}.app-shell{display:flex;width:100%;height:100dvh;min-height:0;background:#102337}.scene-region{position:relative;display:flex;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:#102337}.viewport{position:relative;flex:1 1 auto;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#102337}.viewport:focus-visible{outline:2px solid #c8fff1;outline-offset:-2px}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.reference{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .12s linear}.scene-blur{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;backdrop-filter:blur(var(--scene-blur-radius, 18px));-webkit-backdrop-filter:blur(var(--scene-blur-radius, 18px));will-change:opacity}.ink-reveal{position:absolute;z-index:4;top:0;left:0;width:100%;pointer-events:none;filter:none;transition:opacity .16s ease-out;will-change:opacity}.ink-reveal.is-fog{filter:blur(1.5px)}.end-choices{position:absolute;z-index:5;right:0;top:clamp(20px,5vh,52px);left:0;display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,1.5vw,18px);padding:12px 22px 18px;opacity:var(--choice-reveal, 0);transform:translateY(var(--choice-translate, 28px));pointer-events:none;transition:opacity .1s linear,transform .1s linear}.end-choices.is-interactive{pointer-events:auto}.end-choice{flex:0 1 224px;min-width:0;overflow:hidden;border:1px solid rgba(224,245,250,.36);border-radius:30px;color:#f2f6f3;background:linear-gradient(150deg,#aed7e836,#2b4a5f3d 56%,#132c405e);box-shadow:inset 0 1px #ffffff47,0 18px 48px #000a1b59;backdrop-filter:blur(var(--choice-glass-blur, 24px)) saturate(135%);-webkit-backdrop-filter:blur(var(--choice-glass-blur, 24px)) saturate(135%);transition:border-color .42s ease,background .42s ease,box-shadow .42s ease,transform .42s cubic-bezier(.2,.75,.2,1)}.end-choice:hover,.end-choice:focus-within{border-color:#e6fbffbd}.end-choice.is-active{transform:translateY(18px);border-color:#dafbffe6;background:linear-gradient(150deg,#b2e1f24d,#33586d4d 60%,#17334575);box-shadow:inset 0 1px #ffffff59,0 22px 58px #000a1b80,0 0 26px #8fdaf826}.end-choice-trigger{display:flex;flex-direction:column;align-items:center;width:100%;min-height:148px;padding:19px 18px 17px;border:0;color:inherit;background:transparent;cursor:pointer;text-align:center}.end-choice-trigger:focus-visible{outline:none}.end-choice:has(.end-choice-trigger:focus-visible){outline:2px solid #e8fbff;outline-offset:3px}.end-choice-select:focus-visible{outline:2px solid #e8fbff;outline-offset:-4px}.end-choice-marker{color:#e2f8facc;font:400 11px/1 Georgia,serif;letter-spacing:.2em}.end-choice-title{margin-top:13px;font:400 clamp(29px,2.45vw,36px)/.96 "Soulside Betrayed",Georgia,serif;text-shadow:0 2px 12px rgba(0,13,27,.65);white-space:nowrap}.end-choice-line{margin-top:12px;color:#d4e5e6;font:400 12px/1.25 Georgia,Times New Roman,serif;letter-spacing:.01em;text-shadow:0 1px 9px rgba(0,13,27,.8)}.end-choice-detail{max-height:0;opacity:0;overflow:hidden;transform:translateY(-9px);transition:max-height .45s cubic-bezier(.2,.75,.2,1),opacity .26s ease,transform .42s ease}.end-choice.is-active .end-choice-detail{max-height:170px;opacity:1;transform:translateY(0)}.end-choice-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 14px;padding:15px 0 14px;border-top:1px solid rgba(220,245,249,.27)}.end-choice-feature{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;color:#d9edec;font:500 10px/1 system-ui,sans-serif;letter-spacing:.06em}.end-choice-feature+.end-choice-feature{border-left:1px solid rgba(220,245,249,.14)}.end-choice-feature svg{width:21px;height:21px;color:#d0f7f4}.end-choice-select{display:block;width:calc(100% - 28px);height:34px;margin:0 14px 14px;border:1px solid rgba(224,251,255,.7);border-radius:18px;color:#062633;background:#c9edf0;font:700 10px/1 system-ui,sans-serif;letter-spacing:.18em;cursor:pointer;transition:background .2s ease,box-shadow .2s ease}.end-choice-select:hover,.end-choice.is-confirmed .end-choice-select{background:#e9fdff;box-shadow:0 0 20px #d3faff66}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.capture-form{position:absolute;z-index:2;min-width:0;--form-accent: #c8fff1;--form-fill: #0b2830;--form-font-size: 13px;--form-font-family: system-ui, Arial, sans-serif;filter:drop-shadow(0 4px 12px rgba(0,8,13,.7))}.capture-form[hidden]{display:none}.capture-row{display:flex;width:100%;height:100%;padding:4px;border:1px solid color-mix(in srgb,var(--form-accent) 75%,transparent);border-radius:5px;background:color-mix(in srgb,var(--form-fill) 93%,transparent);box-shadow:inset 0 0 0 1px #000e1273}.capture-row:focus-within{border-color:var(--form-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--form-accent) 25%,transparent),0 0 24px #9af4e733}.capture-row input{flex:1 1 auto;min-width:0;padding:0 10px;border:0;outline:0;border-radius:2px;color:#f1fbf8;background:transparent;font:400 var(--form-font-size)/1.2 var(--form-font-family);letter-spacing:.01em}.capture-row input::placeholder{color:#a5c3c2;opacity:1}.capture-row button{flex:0 0 auto;max-width:48%;min-width:65px;padding:0 12px;border:0;border-radius:2px;color:#09252c;background:var(--form-accent);font:700 var(--form-font-size)/1.1 var(--form-font-family);letter-spacing:.055em;cursor:pointer}.capture-row button:hover{filter:brightness(1.08)}.capture-row button:focus-visible{outline:2px solid #fff;outline-offset:2px}.capture-feedback{position:absolute;top:100%;left:0;max-width:100%;margin:5px 0 0;padding:0 2px;color:#c8fff1;font:11px/1.3 system-ui,sans-serif;text-shadow:0 1px 4px #03161b,0 1px 8px #03161b}.capture-feedback[data-state=error]{color:#ffb6a6}#controls.sh-panel{position:relative;inset:auto;flex:0 0 320px;width:320px;max-width:none;height:100%;border-left:1px solid rgba(165,222,235,.16);background:#071b22;-webkit-backdrop-filter:none;backdrop-filter:none}#controls.sh-panel.collapsed{flex-basis:0;width:0;border-left:0}.panel-intro,.panel-status{padding:12px 16px;color:#9bb4b9;line-height:1.45;font-size:12px}.panel-intro{border-bottom:1px solid rgba(165,222,235,.12)}.panel-intro strong{display:block;color:#e3f4f3;font-size:14px;margin-bottom:4px}.panel-status{border-top:1px solid rgba(165,222,235,.12)}.panel-status[data-state=error]{color:#ffb6a6}.panel-status[data-state=ready]{color:#9dd9d5}.camera-path-note,.camera-path-pose{margin:0;padding:8px 12px;color:#9bb4b9;font:11px/1.45 system-ui,sans-serif}.camera-path-pose{padding-top:3px;padding-bottom:3px;font-variant-numeric:tabular-nums}.camera-path-pose[data-set=true]{color:#b7e2db}.scene-text-control,.scene-text-control .sh-label{display:block}.scene-text-control input,.scene-text-control textarea{display:block;width:100%;margin-top:7px;padding:9px 10px;border:1px solid rgba(165,222,235,.22);border-radius:4px;outline:none;color:#e8f5f1;background:#0c252d;font:12px/1.45 system-ui,sans-serif;letter-spacing:.02em;-webkit-user-select:text;user-select:text}.scene-text-control textarea{min-height:56px;resize:vertical}.scene-text-control input:focus,.scene-text-control textarea:focus{border-color:#b6eee1}@media(max-width:700px){.app-shell{flex-direction:column}#controls.sh-panel{flex:0 0 42dvh;width:100%;height:42dvh;border-left:0;border-top:1px solid rgba(165,222,235,.16)}#controls.sh-panel.collapsed{flex-basis:0;width:100%;height:0;border-top:0}.end-choices{justify-content:flex-start;gap:10px;top:7px;padding:12px 18px 20px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;scroll-snap-type:x proximity}.end-choices::-webkit-scrollbar{display:none}.end-choice{flex:0 0 210px;scroll-snap-align:center}.end-choice-trigger{min-height:132px;padding-top:16px}}@media(prefers-reduced-motion:reduce){.ink-reveal{transition:none}.end-choice,.end-choice-detail,.end-choice-select{transition-duration:.01ms}}
