/* Scoped cinematic player. No web fonts, tracking pixels or third-party assets. */
.quest-player-root{min-width:0;--p-ink:#edf4ee;--p-muted:#b2c2bd;--p-accent:#dfbd7f;--p-panel:#102d2b;--p-line:rgba(224,237,224,.18);color:var(--p-ink)}
.player-shell{position:relative;isolation:isolate;min-height:min(880px,calc(100svh - 88px));overflow:hidden;background:#0c2324;border:1px solid var(--p-line);border-radius:24px;display:flex;flex-direction:column;padding:28px 36px 16px;box-sizing:border-box}
.player-backdrop,.player-vignette{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;pointer-events:none}
.player-backdrop{background-image:radial-gradient(ellipse at 70% 25%,#50604b,transparent 55%),linear-gradient(135deg,#153c3c,#152622 50%,#685139);transition:background-image .4s}
.player-vignette{z-index:-1;background:linear-gradient(180deg,rgba(5,21,22,.77),transparent 37%,rgba(5,21,22,.4) 60%,rgba(5,21,22,.85)),linear-gradient(90deg,rgba(5,21,22,.12),rgba(5,21,22,.23))}
.player-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:2}.player-brand{display:flex;flex-direction:column;gap:7px;min-width:0}.player-brand strong{font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;overflow-wrap:anywhere}.player-eyebrow{font-family:inherit;font-size:10px;letter-spacing:.18em;font-weight:700;line-height:1.6;color:var(--p-accent)}
.player-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.player-tool,.player-text-button{border:0;background:transparent;color:var(--p-ink);cursor:pointer;font:inherit;font-size:12px;line-height:1.4;padding:10px 12px;border-radius:8px}.player-tool:hover,.player-text-button:hover{background:rgba(255,255,255,.09)}.player-exit{border:1px solid var(--p-line);margin-left:8px}.player-text-button{color:var(--p-accent);padding-left:0;text-align:left}
.player-path{display:flex;justify-content:space-between;gap:16px;margin-top:24px;color:#d7e1d8;font-size:11px;letter-spacing:.07em}.player-location:before{content:'◈';margin-right:9px;color:var(--p-accent)}
.player-character{position:absolute;left:48%;bottom:15%;height:75%;width:42%;max-width:580px;pointer-events:none;filter:drop-shadow(0 12px 30px rgba(0,0,0,.27))}.player-sprite{width:100%;height:100%;object-fit:contain;object-position:center bottom}.player-atlas-sprite{width:auto;height:100%;aspect-ratio:470.25/836;margin:auto;background-size:400% 100%;background-repeat:no-repeat;clip-path:inset(0 3% 0 3%)}.player-monogram{width:210px;height:210px;margin:130px auto 0;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(222,189,127,.5);color:#e3c386;font:100px Georgia,serif;background:linear-gradient(135deg,rgba(73,100,79,.75),rgba(16,38,36,.92))}
.player-story-frame{margin-top:auto;padding-top:clamp(120px,22vh,235px);position:relative}.player-dialogue{position:relative;background:linear-gradient(130deg,rgba(15,45,43,.97),rgba(8,31,32,.97));border:1px solid rgba(225,197,145,.43);border-radius:16px;padding:27px 34px 23px;box-shadow:0 22px 65px rgba(0,0,0,.3);max-width:1020px;box-sizing:border-box}.player-speaker{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--p-accent);letter-spacing:.04em}.player-speaker strong{font-weight:600}.player-speaker small{color:var(--p-muted);font-size:10px;margin-left:auto}.player-speaker-dot{height:5px;width:5px;border-radius:50%;background:var(--p-accent);box-shadow:0 0 10px rgba(222,190,128,.4)}.player-dialogue-text{font-size:clamp(16px,1.55vw,21px);line-height:1.7;font-weight:400;max-width:870px;margin:16px 0 20px;white-space:pre-wrap;overflow-wrap:anywhere}.player-scene-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#9caeaa;display:block;margin:8px 0 14px}.player-dialogue-nav{display:flex;align-items:center;justify-content:flex-end;gap:16px}.player-dialogue-nav .player-text-button{margin-right:auto}
.player-button{font:inherit;font-size:13px;line-height:1.5;color:var(--p-ink);background:rgba(255,255,255,.04);border:1px solid var(--p-line);border-radius:9px;padding:12px 19px;cursor:pointer;min-height:44px;transition:background .15s,transform .15s}.player-button:hover{background:rgba(255,255,255,.1)}.player-button:active{transform:translateY(1px)}.player-button:disabled{opacity:.5;cursor:wait}.player-primary{background:var(--p-accent);color:#1d2a23;border-color:var(--p-accent);font-weight:700}.player-primary:hover{background:#efd2a0}.quest-player-root :focus-visible{outline:3px solid #f3d59c;outline-offset:4px}
.player-choices{display:grid;gap:8px;margin:18px 0 2px}.player-choice{display:flex;align-items:center;gap:15px;text-align:left;padding:14px 16px;background:rgba(2,14,14,.26)}.player-choice:hover{border-color:var(--p-accent);background:rgba(223,189,127,.08)}.player-choice-index{font-size:10px;letter-spacing:.08em;color:var(--p-accent)}.player-choice-arrow{margin-left:auto;color:var(--p-accent)}.player-save-state{font-size:10px;color:#b7c8bf;letter-spacing:.035em;text-align:right;margin-top:14px;z-index:1}.player-preview-note{z-index:2;margin-top:18px;padding:10px 14px;border:1px dashed #dbb672;border-radius:8px;font-size:11px;background:rgba(65,49,24,.86);color:#ffe3ad;line-height:1.6}
.player-error{z-index:3;position:relative;margin:16px 0;padding:14px 18px;background:#582e2d;border:1px solid #bf8b79;border-radius:12px;font-size:13px;line-height:1.6}.player-error p{margin:0 0 8px}.player-error .player-button{margin:4px 8px 0 0}.player-loading,.player-load-error{background:#102d2b;border:1px solid var(--p-line);padding:70px 30px;border-radius:20px;min-height:250px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:15px}.player-load-error h1{font:30px Georgia,serif}
.player-kind-task .player-backdrop{filter:blur(4px);opacity:.45}.player-desk{position:relative;z-index:1;margin:26px auto 0;width:min(940px,100%);max-height:calc(100svh - 225px);min-height:420px;overflow:auto;overscroll-behavior:contain;background:#f3f0e8;color:#203c36;border:1px solid rgba(255,255,255,.4);border-radius:15px;padding:34px 40px;box-sizing:border-box;scrollbar-color:#adb7ab #eceadf;box-shadow:0 30px 60px #0003}.player-desk .player-eyebrow{color:#856039}.player-task-heading h1{font:clamp(25px,3vw,37px)/1.18 Georgia,serif;margin:10px 0 18px;overflow-wrap:anywhere}.player-task-heading p{font-size:14px;line-height:1.8;white-space:pre-wrap}.player-task-prompt{color:#516258}.player-task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:11px;border-top:1px solid #d8d9ca;border-bottom:1px solid #d8d9ca;padding:9px 0;margin:22px 0}.player-task-meta .player-text-button{color:#655025;margin-left:auto}.player-task-item{border:0;border-bottom:1px solid #d6d9cc;padding:16px 0 30px;margin:15px 0;min-width:0}.player-task-item legend{font-size:14px;font-weight:700;line-height:1.7;float:left;width:100%;margin:0 0 14px;overflow-wrap:anywhere}.player-task-item legend+*{clear:both}.player-item-number{display:inline-flex;font-size:10px;align-items:center;justify-content:center;background:#dfe4d9;border-radius:6px;width:28px;height:28px;margin-right:12px;color:#536849}.player-excerpt{margin:0 0 18px;padding:15px 18px;background:#e8e8dc;border-left:2px solid #ae9060;color:#475b4d;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.player-answer-list{display:grid;gap:8px;clear:both}.player-answer{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#faf8f2;border:1px solid #d4dacd;border-radius:8px;font-size:13px;line-height:1.6;cursor:pointer;min-height:44px;box-sizing:border-box}.player-answer:hover{border-color:#8b9f84;background:#fffdf7}.player-answer:has(input:checked){border-color:#496c57;background:#e2e9dc}.player-answer input{width:16px;height:16px;flex:0 0 16px;margin:3px 0 0;accent-color:#275543}.player-answer-none{background:transparent;border-style:dashed;color:#687765}.player-number-label{display:flex;flex-direction:column;gap:8px;font-size:12px;max-width:280px;clear:both}.player-number-input{font:inherit;font-size:18px;background:#fffdf7;color:#254b3e;border:1px solid #aabb9f;border-radius:8px;padding:12px 15px;box-sizing:border-box;width:100%}.player-task-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0 4px}.player-task-footer p{font-size:11px;line-height:1.7;color:#677765;max-width:370px}.player-task-footer .player-button{color:#2c463a;border-color:#b8c4ad}.player-task-footer .player-primary{background:#234b3e;color:#fff8e8;border-color:#234b3e;white-space:nowrap}.player-task-footer .player-primary:hover{background:#376350}.player-form-error{color:#943c30;padding:12px;background:#f5ded3;font-size:13px;border-radius:7px}
.player-feedback-summary{display:flex;align-items:center;gap:24px;background:#dce9d9;padding:22px;border:1px solid #aec7a7;border-radius:11px;margin:18px 0 24px}.player-feedback-summary.is-review{background:#f0e4cd;border-color:#cfb78a}.player-feedback-score{font:42px Georgia,serif;color:#295040;flex-shrink:0}.player-feedback-summary h2{font:23px Georgia,serif;margin:0 0 8px}.player-feedback-summary p{font-size:11px;line-height:1.7;margin:0;color:#5c6c56}.player-check{padding:20px 0;border-bottom:1px solid #d9dcce}.player-check h3{font-size:13px;line-height:1.7;font-weight:700;margin:8px 0}.player-check p{font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0}.player-check-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#326644}.is-wrong .player-check-status{color:#8b5633}.player-check .player-correct-answer{font-weight:700}.player-explanation{background:#e5e8dc;padding:12px 15px;border-radius:7px;color:#4d644d}
.player-ending{position:relative;margin:auto;max-width:710px;padding:44px 42px;text-align:center;background:linear-gradient(135deg,rgba(19,51,46,.97),rgba(9,31,29,.98));border:1px solid #b89b63;border-radius:20px;box-shadow:0 30px 80px #0005}.player-ending-seal{font-size:42px;color:var(--p-accent);margin:13px auto}.player-ending h1{font:clamp(28px,4vw,44px)/1.2 Georgia,serif;margin:12px 0 22px}.player-ending-text{font-size:16px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.player-ending-stat{color:var(--p-accent);border-top:1px solid var(--p-line);border-bottom:1px solid var(--p-line);padding:16px;font-size:13px;margin:25px 0 15px}.player-ending-small{color:var(--p-muted);font-size:12px;line-height:1.7}.player-ending .player-button{margin:12px 8px}.player-ending>.player-text-button{display:block;text-align:center;margin:auto}
.player-modal{position:fixed;inset:0;max-width:min(850px,calc(100vw - 32px));width:850px;max-height:calc(100svh - 48px);background:#112e2b;color:var(--p-ink);border:1px solid #627862;border-radius:18px;padding:0;box-shadow:0 35px 100px #0008}.player-modal::backdrop{background:rgba(3,16,15,.72);backdrop-filter:blur(5px)}.player-modal-panel{padding:28px 32px}.player-modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.player-modal-head h2{font:28px Georgia,serif;margin:0}.player-modal-intro{font-size:13px;line-height:1.8;color:var(--p-muted)}.player-knowledge-entry{border-bottom:1px solid var(--p-line);padding:15px 0}.player-knowledge-entry summary{cursor:pointer;color:var(--p-accent);font-size:14px;line-height:1.6;padding:6px 0}.player-knowledge-text{font-size:13px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 0 10px;color:#e1e9dd}.player-character-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.player-character-card{border:1px solid var(--p-line);border-radius:12px;padding:20px;background:#ffffff05}.player-character-card h3{font:22px Georgia,serif;color:var(--p-accent);margin:0 0 12px}.player-character-card p{font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:1500px){.player-shell{min-height:880px}.player-story-frame{padding-top:260px}}
@media(max-width:800px){.player-shell{padding:22px 23px 14px;border-radius:18px;min-height:calc(100svh - 80px)}.player-topbar{align-items:flex-start;gap:14px}.player-brand strong{font-size:21px}.player-tools{max-width:220px}.player-tool{font-size:10px;padding:8px}.player-exit{margin-left:0}.player-story-frame{padding-top:200px}.player-character{left:32%;width:66%;bottom:23%;height:63%}.player-dialogue{padding:23px}.player-desk{padding:26px 25px;max-height:calc(100svh - 230px)}.player-task-footer{align-items:stretch;flex-direction:column}.player-task-footer p{margin-bottom:0}.player-ending{padding:32px 24px}.player-ending-text{font-size:14px}}
@media(max-width:500px){.player-shell{border-radius:15px;padding:18px 14px 12px;min-height:calc(100svh - 72px);margin:0}.player-topbar{flex-wrap:wrap}.player-brand{gap:4px}.player-brand strong{font-size:21px}.player-eyebrow{font-size:8px}.player-tools{max-width:none;gap:2px;width:100%;justify-content:flex-start}.player-exit{margin-left:auto}.player-path{margin-top:12px;font-size:9px}.player-character{width:86%;left:17%;height:60%;bottom:30%}.player-story-frame{padding-top:170px}.player-dialogue{padding:20px 17px 16px;border-radius:12px}.player-dialogue-text{font-size:15px;line-height:1.75;margin:14px 0}.player-dialogue-nav{gap:10px;align-items:stretch;flex-direction:column}.player-dialogue-nav .player-primary{margin-left:auto}.player-speaker{font-size:11px}.player-speaker small{font-size:9px}.player-choice{font-size:12px;gap:11px;padding:12px 11px}.player-save-state{font-size:8px}.player-desk{padding:24px 16px;margin-top:17px;max-height:none;min-height:0}.player-kind-task{overflow:visible}.player-task-heading h1{font-size:27px}.player-task-heading p{font-size:12px}.player-task-meta{gap:10px}.player-task-meta .player-text-button{margin-left:0;width:100%}.player-task-item legend{font-size:12px}.player-item-number{width:24px;height:24px;margin-right:8px}.player-excerpt{font-size:12px;padding:12px}.player-answer{font-size:12px;padding:11px}.player-feedback-summary{align-items:flex-start;gap:15px;padding:17px}.player-feedback-score{font-size:32px}.player-feedback-summary h2{font-size:20px}.player-feedback-summary p{font-size:10px}.player-ending{padding:28px 18px;margin-top:30px;margin-bottom:25px}.player-ending h1{font-size:29px}.player-ending .player-button{margin-left:0;margin-right:0;width:100%}.player-modal{max-width:calc(100vw - 20px);max-height:calc(100svh - 24px)}.player-modal-panel{padding:22px 18px}.player-modal-head h2{font-size:24px}.player-character-grid{grid-template-columns:1fr}.player-preview-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){.quest-player-root *{transition:none!important;scroll-behavior:auto!important}}
