@font-face{font-family:Kaveh;src:url(assets/fonts/kaveh.woff2)}@font-face{font-family:Haitham;src:url(assets/fonts/haitham.woff2)}@font-face{font-family:Narrator;src:url(assets/fonts/narrator.woff2)}@font-face{font-family:Tighnari;src:url(assets/fonts/tighnari.woff2)}
:root{color-scheme:dark;--gold:#c9ac71;--cream:#f4e5c7;--ink:#12261f;--bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#111c18}body{font-family:Haitham,'Microsoft YaHei',sans-serif;color:var(--cream)}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline:2px solid #f8d591;outline-offset:4px}button:disabled{opacity:.42;cursor:default}button:not(:disabled):active{transform:translateY(1px)}
.storycut{position:fixed;inset:0;isolation:isolate;overflow:hidden;background:#14261f;touch-action:pan-y}.backdrop{position:absolute;inset:-2%;background-position:50% 45%;background-size:cover;filter:brightness(.77) saturate(.9);transform:scale(1.02);transition:filter 1s,background-position 1.8s;will-change:transform}.backdrop.cut-in{animation:landscape-in 1.4s ease both}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#07100e82,transparent 27%,transparent 55%,#08130f77 85%,#08130fd9),radial-gradient(ellipse at 50% 39%,transparent 35%,#07110f77);z-index:2}.actors{position:absolute;inset:0;pointer-events:none;z-index:1}.actor{position:absolute;bottom:17%;height:65%;background-repeat:no-repeat;background-size:200% 200%;filter:brightness(.85) saturate(.94);transition:filter .4s,opacity .4s;animation:actor-enter .65s ease both}.actor-h{aspect-ratio:2/3}.actor-k{aspect-ratio:1223/1286}.actor-c{aspect-ratio:1114/1404;background-size:contain;background-position:bottom center!important}.actor-d{aspect-ratio:2/3;background-size:contain;background-position:bottom center!important;height:54%}.actor-t{aspect-ratio:2/3;background-size:contain;background-position:bottom center!important}.actor.solo{left:50%;transform:translateX(-50%)}.actor.left{right:45%}.actor.right{left:45%}.actor.listening{filter:brightness(.61) saturate(.75)}.actor.speaking{filter:brightness(.90) saturate(.95)}.actor:after{content:'';position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#0e211bb3)}
.interface{position:absolute;inset:0;z-index:4;pointer-events:none}.interface button,.interaction,.choice-panel,.demo-end{pointer-events:auto}.chrome{position:absolute;top:calc(21px + env(safe-area-inset-top));left:22px;right:20px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.chapter-mark{max-width:65%;text-shadow:0 2px 10px #07130d}.chapter-mark small{font-size:10px;letter-spacing:2px;color:#ddc89f}.chapter-mark h2{font:400 23px Kaveh,serif;letter-spacing:2px;margin:9px 0 6px}.chapter-mark p{font-size:11px;margin:0;opacity:.75;letter-spacing:1px}.chrome nav{display:flex;gap:7px}.icon-btn{border:1px solid #b5a17763;background:#10251fbf;backdrop-filter:blur(8px);border-radius:50%;width:43px;height:43px;font-size:11px;padding:0}.status-bars{position:absolute;left:24px;bottom:calc(17px + var(--bottom));width:167px;font-size:10px;color:#d2c4a7}.status-bars>div{display:flex;gap:8px;align-items:center;height:18px}.status-bars i{display:block;height:3px;width:95px;background:#d4c59827}.status-bars b{display:block;height:100%;background:#bda26d;transition:width .7s}.status-bars strong{font-weight:400;min-width:20px}.status-bars span{letter-spacing:2px}
.dialogue{--speaker:#9d967e;position:absolute;left:5%;right:5%;bottom:calc(72px + var(--bottom));padding:22px 22px 45px;min-height:173px;border:1px solid #b7a47a80;border-top:2px solid var(--speaker);border-radius:3px;background:linear-gradient(115deg,#252d25ee,#111e1bf5);box-shadow:0 12px 45px #07120d88;backdrop-filter:blur(14px);pointer-events:auto;animation:dialogue-in .4s ease both}.speaker-k{--speaker:#cc8d7c;background:linear-gradient(115deg,#452e2ef2,#211f1cf5);font-family:Kaveh,serif}.speaker-h{--speaker:#78b9a2;background:linear-gradient(115deg,#183e35ef,#132522f5);font-family:Haitham,sans-serif}.speaker-t{--speaker:#a8b48a;background:linear-gradient(115deg,#3a4934f2,#1a271df5);font-family:Tighnari,serif}.speaker-c{--speaker:#c7b578;background:linear-gradient(115deg,#39382cf2,#1d2623f5)}.speaker-d{--speaker:#d2a294;background:linear-gradient(115deg,#493136f2,#262020f5)}.speaker-n{text-align:center;font-family:Narrator,serif}.speaker-name{font-size:18px;color:var(--speaker);margin-bottom:13px;letter-spacing:2px}.speaker-name small{font:10px Haitham,sans-serif;letter-spacing:1px;opacity:.8;margin-left:13px;color:#e0d3b7}.speaker-n .speaker-name{font-size:10px;letter-spacing:5px;opacity:.65}.line{position:relative;font-size:18px;line-height:1.82;white-space:pre-wrap;overflow-wrap:anywhere;min-height:34px}.reserved{visibility:hidden;display:block}.visible{position:absolute;inset:0}.next-btn{position:absolute;bottom:9px;right:19px;background:transparent;border:0;font-size:11px;min-width:78px;min-height:35px;letter-spacing:2px;color:#d9cba9}.next-btn span{font-size:25px;vertical-align:-2px;margin-left:10px}.settlement{font:10px Haitham,sans-serif;color:#d9c695;margin-top:13px;letter-spacing:1px}.result-box{min-height:205px}.cg-mode .actors{opacity:0}.cg-mode .backdrop{background-position:center 35%;filter:brightness(.85)}.flashback .backdrop{filter:brightness(.68) saturate(.68) sepia(.15)}.close-shot .backdrop{background-position:41% 52%;filter:brightness(.69) blur(1px)}
.interaction{position:absolute;inset:16% 4% 9%;display:flex;flex-direction:column;align-items:center;animation:investigation-in .6s ease both;text-align:center;background:radial-gradient(ellipse at 50% 46%,#15251be6,#10251be8 60%,#0a1915b8);border:1px solid #baa37066;border-radius:4px;padding:20px 12px 12px;overflow:auto}.interaction-heading{width:100%;max-width:600px}.interaction-heading small{font-size:9px;letter-spacing:4px;color:#bca577}.interaction-heading h3{font:400 25px Kaveh,serif;letter-spacing:3px;margin:10px 0 12px}.interaction-heading p{font:12px/1.8 Haitham,sans-serif;margin:0 9px;color:#d7d6be}.game-board{position:relative;width:100%;max-width:700px;margin:auto 0}.game-svg{display:block;width:100%;max-height:38vh;overflow:visible;filter:drop-shadow(0 15px 16px #0005)}.game-svg text{font-family:Kaveh,serif}.object-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0 0}.object-button{min-height:44px;padding:11px 14px;border:1px solid #a98d5d82;background:#30473ac9;border-radius:3px;font-size:12px;letter-spacing:1px}.object-button.selected{border-color:#f3d28f;background:#7d6842}.gold{border:1px solid #ebd8b0;background:linear-gradient(115deg,#b69b64,#dec691);color:#23382a;border-radius:3px;padding:12px 22px;min-height:45px;font-size:13px}.game-feedback{font:12px/1.75 Haitham,sans-serif;min-height:39px;max-width:600px;margin:10px 5px 3px;color:#e5d6af}.game-help{display:flex;justify-content:center;gap:12px;margin-top:auto}.quiet-btn{min-height:40px;padding:8px 16px;border:0;background:none;color:#c9c3a9;font-size:11px;letter-spacing:1px}.archive-controls>div{display:flex;justify-content:center;gap:6px;margin-top:8px}.archive-controls .object-button{font-size:10px;padding:9px 7px;min-width:28%}.sequence{font-size:11px;letter-spacing:1px;margin-top:14px;color:#d7c79b}.mirror-wrap{position:relative}.mirror-face{position:absolute;inset:9% 33% 18%;background:url(assets/images/haitham-expression.png) 0 0/200% 200%;filter:brightness(.7) saturate(.6);opacity:.9;clip-path:ellipse(46% 48% at 50% 50%)}.mirror-target{position:absolute;left:34%;width:32%;top:57%;min-height:46px;border:1px solid #e0c68a;background:#182e25df;border-radius:3px;font-size:12px}.choice-panel{position:absolute;left:7%;right:7%;bottom:calc(80px + var(--bottom));padding:23px 18px;background:#152a22ed;border:1px solid #b6a07191;backdrop-filter:blur(13px);animation:dialogue-in .4s ease both}.choice-panel>small{font-size:11px;color:#ceb993}.choice-panel h3{font:23px Kaveh,serif;margin:12px 0 18px}.choice{display:block;text-align:left;width:100%;min-height:57px;padding:14px 15px;margin-top:9px;border:1px solid #a48c5b70;background:#304837b0;font:15px/1.6 Kaveh,serif}.choice small{display:block;font:10px/1.6 Haitham,sans-serif;opacity:.8;margin-top:6px}.choice-risk{color:#edb6a0}
.micro-board .game-svg{max-height:35vh}.micro-title{font:26px Kaveh,serif;letter-spacing:3px}.micro-action{display:block;position:absolute;inset:15% 20% 10%;width:60%;border:0;background:transparent;color:transparent}.micro-board .object-controls{margin-top:10px}.tap-ring{position:absolute;left:calc(50% - 21px);top:45%;width:42px;height:42px;border:1px solid #ecd6a3;border-radius:50%;box-shadow:0 0 0 10px #e7d4a015;animation:tap-pulse 2.4s ease-in-out infinite;pointer-events:none}.micro-wrap{position:relative}.micro-wrap::after{content:'';position:absolute;inset:6% 15% 10%;background:linear-gradient(115deg,transparent 35%,#f6e1af19 48%,transparent 58%);pointer-events:none;animation:object-shine 4s ease-in-out infinite}.reaction-flare{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#c8ac6d40,transparent 58%);animation:reaction-glow .9s ease both}.reaction-flare:after{content:'';position:absolute;left:25%;right:25%;top:32%;height:1px;background:#f1d59f;box-shadow:0 0 18px #edc885;animation:gold-line .85s ease both}
.modal{position:absolute;inset:0;z-index:20;background:#11261ff7;backdrop-filter:blur(15px);overflow:auto;touch-action:pan-y}.modal-content{max-width:760px;margin:0 auto;padding:32px 25px 60px}.modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.modal h2{font:30px Kaveh,serif;letter-spacing:3px}.modal h3{font:20px Kaveh,serif;color:#d7c28e;margin-top:30px}.modal p{font-size:14px;line-height:1.9;color:#d9d5bf}.menu-entry{display:block;border:0;border-bottom:1px solid #b8a67940;background:transparent;width:100%;min-height:60px;text-align:left;font-size:16px}.history{padding:13px 0;border-bottom:1px solid #b8a67929;background:none}.history small{font-size:10px;color:#c5af7f}.history p{margin:8px 0}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cg-card{position:relative;padding:0;background:#213c2e;border:1px solid #bda36a66;aspect-ratio:2/3;overflow:hidden}.cg-card img{width:100%;height:100%;object-fit:cover}.cg-card span{position:absolute;bottom:0;left:0;right:0;padding:22px 5px 10px;background:linear-gradient(transparent,#0a1d15f5);font-size:10px}.full-cg{display:block;width:100%;max-height:80vh;object-fit:contain}.demo-end{position:absolute;left:8%;right:8%;top:20%;text-align:center;padding:30px 18px;background:#12271fe8;border:1px solid #ad915f88;backdrop-filter:blur(15px)}.demo-end>small{font-size:10px;letter-spacing:3px;color:#d3bd8b}.demo-end h1{font:34px/1.6 Kaveh,serif;font-weight:400;letter-spacing:4px}.demo-end p{font:16px/1.9 Narrator,serif}.demo-end button{display:block;margin:12px auto}.scope-note{font:11px/1.8 Haitham,sans-serif!important;color:#a9b5a1!important}.evidence{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px 0}.evidence span{font-size:10px;border:1px solid #ad94595e;padding:8px;color:#d8c08a}.scene-loading{position:absolute;inset:0;z-index:40;background:#152d23;display:flex;justify-content:center;align-items:center;font:24px Kaveh,serif;letter-spacing:4px}
.motes{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.motes i{position:absolute;left:calc(var(--i)*8.1%);top:calc(20% + var(--i)*3.4%);width:2px;height:2px;border-radius:50%;background:#f1d8a7;opacity:0;animation:mote 13s linear infinite;animation-delay:calc(var(--i)*-1.3s)}.cover-copy{position:absolute;top:12%;left:5%;right:5%;text-align:center;color:#f6e8cb;text-shadow:0 2px 14px #07170e;pointer-events:none}.cover-copy small{font-size:10px;letter-spacing:2px}.cover-copy h1{font:45px/1.5 Kaveh,serif;font-weight:400;letter-spacing:7px;margin:15px 0}.cover-copy p{font:13px Kaveh,serif;letter-spacing:2px}[data-storycut-cover] [data-fw-game-cover-action]{padding:13px 30px;min-height:50px;border:1px solid #e8cea1;border-radius:3px;color:#203829;background:linear-gradient(115deg,#bc9e66,#e2ca95);font:18px Kaveh,serif;letter-spacing:4px}
.shot-ots .backdrop{filter:brightness(.8)}.shot-ots .actors{opacity:0}.shot-macro .backdrop{filter:brightness(.60) blur(1.6px);background-position:44% 54%}.shot-macro .actors{opacity:0}.shot-close .actor.speaking{height:82%;bottom:9%}.shot-close .actor.listening{opacity:.1}.shot-close .backdrop{filter:brightness(.64) blur(1.1px)}.shot-wide .actor{height:57%;bottom:22%}.shot-iris .vignette{background:radial-gradient(ellipse at 50% 37%,transparent 15%,#07110f9c 44%,#07110ff5 76%)}.shot-iris .backdrop{filter:brightness(.74)}.shot-tilt .backdrop{transform:rotate(-2deg) scale(1.1)}.shot-strip .actors:after{content:'';position:absolute;inset:16% 0 48%;border-top:1px solid #d9c39377;border-bottom:1px solid #d9c39377;background:linear-gradient(transparent,#070f0b44);pointer-events:none}.shot-reveal .backdrop{background-position:61% 40%}.shot-reveal .actors{animation:slow-reveal 2s ease both}.shot-iris .backdrop{background-position:center 42%}
@keyframes landscape-in{from{opacity:.15;transform:scale(1.065)}to{opacity:1;transform:scale(1.02)}}@keyframes actor-enter{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes dialogue-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@keyframes investigation-in{from{opacity:0;scale:.98}to{opacity:1;scale:1}}@keyframes mote{0%{opacity:0;translate:0 20px}25%{opacity:.35}80%{opacity:.2}100%{opacity:0;translate:18px -150px}}@keyframes tap-pulse{0%,100%{scale:.9;opacity:.6}50%{scale:1.14;opacity:1}}@keyframes object-shine{0%,45%,100%{opacity:0;translate:-20px 0}65%{opacity:1;translate:20px 0}}@keyframes reaction-glow{0%{opacity:0}35%{opacity:1}100%{opacity:0}}@keyframes gold-line{from{scale:0 1;opacity:0}45%{scale:1 1;opacity:1}to{scale:1.5 1;opacity:0}}@keyframes slow-reveal{from{opacity:0;translate:8px 0}to{opacity:1;translate:0 0}}
@media(min-aspect-ratio:1/1){.chrome{left:5%;right:5%;top:5%}.chapter-mark h2{font-size:28px}.dialogue{left:24%;right:24%;bottom:10%;padding:25px 30px 48px;min-height:190px}.actor{height:76%;bottom:13%}.actor.left{right:51%}.actor.right{left:51%}.actor-d{height:65%}.interaction{inset:13% 25% 9%;padding:20px 25px}.game-svg{max-height:39vh}.game-board{max-width:630px}.choice-panel{left:29%;right:29%;bottom:14%}.status-bars{left:5%;bottom:5%;width:180px}.demo-end{left:30%;right:30%;top:20%}.chapter-mark{max-width:70%}.shot-close .actor.speaking{height:100%;bottom:0}}
@media(max-height:700px) and (max-aspect-ratio:1/1){.chrome{top:15px}.chapter-mark h2{font-size:20px}.interaction{inset:16% 3% 9%;padding-top:12px}.interaction-heading h3{font-size:22px;margin:6px}.interaction-heading p{font-size:11px}.game-svg{max-height:30vh}.line{font-size:16px}.dialogue{padding:18px 18px 40px}.game-feedback{font-size:11px;min-height:28px}.object-button{padding:9px;min-height:40px}.demo-end{top:18%;padding:20px 12px}.demo-end h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.backdrop{transition:filter 1s,background-position 1.8s,transform 1s linear}.object-activated .micro-wrap{animation:object-response .65s ease both}.object-activated .tap-ring{opacity:0;animation:none}.object-activated .micro-wrap:after{opacity:1;animation:reaction-glow .65s ease both}@keyframes object-response{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-13px) scale(1.035) rotate(-1deg)}100%{transform:translateY(7px) scale(.98);opacity:.25}}
.line{font-size:clamp(18px,4.3vw,30px)}.speaker-name{font-size:clamp(18px,4vw,27px)}.speaker-name small{font-size:clamp(10px,2vw,14px)}.chapter-mark h2{font-size:clamp(23px,5vw,34px)}.chapter-mark small,.chapter-mark p{font-size:clamp(10px,2vw,14px)}.interaction-heading p{font-size:clamp(12px,2.5vw,17px)}.game-feedback{font-size:clamp(12px,2.4vw,16px)}.object-button{font-size:clamp(12px,2.5vw,17px)}.interaction-heading h3{font-size:clamp(25px,5vw,35px)}.choice{font-size:clamp(15px,3.5vw,25px)}.choice-panel h3{font-size:clamp(23px,4vw,30px)}.status-bars{font-size:clamp(10px,2vw,14px);width:clamp(167px,30vw,220px)}.status-bars i{width:clamp(95px,17vw,125px)}.dialogue{padding-top:clamp(22px,4vw,30px);padding-bottom:clamp(45px,7vw,57px)}.input-glint{position:absolute;z-index:15;width:26px;height:26px;margin:-13px;border:1px solid #f1d7a0;border-radius:50%;pointer-events:none;animation:input-glint .55s ease-out both}@keyframes input-glint{from{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(2.2)}}@media(min-aspect-ratio:1/1){.line{font-size:22px}.speaker-name{font-size:21px}.object-button{font-size:14px}.interaction-heading p,.game-feedback{font-size:14px}}
.actor.left{left:25%;right:auto;transform:translateX(-50%)}.actor.right{left:75%;right:auto;transform:translateX(-50%)}.actor-k{height:51%}.actor-k.solo{height:63%}.shot-close .actor.speaking{left:50%;right:auto;transform:translateX(-50%)}.shot-close .actor-k.speaking{height:68%}.backdrop.cut-in{animation:fade-background .8s ease both}@keyframes fade-background{from{opacity:.15}to{opacity:1}}
.backdrop.camera-moving{animation:camera-drift 9s cubic-bezier(.2,.55,.4,1) both}@keyframes camera-drift{from{transform:scale(1.02);opacity:.4}10%{opacity:1}to{transform:translateX(var(--camera-end-x,.7%)) scale(1.047);opacity:1}}
@media(min-aspect-ratio:1/1){.storycut.shot-ots .backdrop,.storycut.cg-mode .backdrop{background-position:center 24%}}
.actor{animation-duration:.24s}
