@import url('https://fonts.googleapis.com/css2?family=Alegreya:wght@400;500;600;700&family=Alegreya+SC:wght@400;500;700&family=Inter:wght@400;500;600;700&display=swap');
:root{--ink:#192d2b;--deep:#102220;--paper:#eee3c8;--muted:#bbbea9;--gold:#dfb879;--line:#ffffff25;--serif:'Alegreya',Georgia,serif;--caps:'Alegreya SC',Georgia,serif;--sans:Inter,Arial,sans-serif;color-scheme:dark;font-family:var(--sans);color:var(--paper);background:var(--deep);font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;color:inherit}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:var(--gold)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h1{font-size:clamp(3.5rem,7.2vw,7.5rem);line-height:.95;letter-spacing:-.045em}h2{font-size:clamp(2rem,3vw,3.2rem);line-height:1.1}h3{font-size:1.5rem}p{line-height:1.65}small{font-size:.8rem}.eyebrow{text-transform:uppercase;font-size:.73rem;letter-spacing:.18em;font-weight:600;color:var(--gold);line-height:1.6}.muted{color:var(--muted)}.topbar{height:76px;padding:0 3.4%;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);background:var(--ink);position:relative;z-index:10}.brand{font-family:var(--caps);font-size:1.6rem;letter-spacing:.13em;color:var(--paper);background:none;padding:8px 0}.brand span{color:var(--gold);margin-right:13px}.separator{width:1px;height:27px;background:var(--line)}.subtitle{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}.tools{margin-left:auto;display:flex;gap:7px;align-items:center}.text-btn{background:transparent;padding:10px 13px;font-size:.85rem;border:1px solid transparent}.text-btn:hover{border-color:var(--line);background:#ffffff08}.primary,.secondary{padding:15px 23px;display:inline-flex;gap:18px;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;min-height:48px}.primary{background:var(--gold);color:var(--deep)}.primary:hover{background:#f0cf97}.secondary{background:transparent;border:1px solid var(--line)}.secondary:hover{background:#ffffff0b}.btnrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.home{position:relative;min-height:calc(100svh - 76px);overflow:hidden;background:var(--ink)}.home-art{position:absolute;inset:0 0 0 25%;background:url('/art/athens.webp') center/cover;animation:arrive 1s ease-out}.home-shade{position:absolute;inset:0;background:linear-gradient(90deg,#102220 0%,#102220fa 23%,#102220bf 43%,#10222018 76%),linear-gradient(0deg,#102220 0%,transparent 40%)}.home-copy{position:relative;z-index:2;padding:8vh 6% 8vh;max-width:690px}.home-copy h1{margin:23px 0;color:#f4e7c9}.home-copy h1 em{font-weight:400;color:var(--gold)}.lede{font-family:var(--serif);font-size:1.3rem;line-height:1.5;max-width:410px;color:#e5e2d1}.home-desc{font-size:.86rem;max-width:360px;color:#c4c8b6;line-height:1.7;margin-bottom:26px}.home-meta{display:flex;gap:23px;font-size:.73rem;color:var(--muted);margin-top:30px;text-transform:uppercase;letter-spacing:.09em}.home-stamp{position:absolute;right:4%;top:5%;width:94px;height:94px;border:1px solid #f0ddae80;border-radius:50%;display:grid;place-content:center;text-align:center;font-family:var(--caps);font-size:1.15rem;background:#18282142;transform:rotate(9deg);color:#f1dbab}.home-stamp small{font-size:.62rem;letter-spacing:.1em}.chapter-strip{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);margin:0 5% 32px;border-top:1px solid #e1be793d}.chapter-strip div{padding:20px;border-right:1px solid var(--line);font-family:var(--serif);font-size:1.1rem}.chapter-strip span{font:.66rem var(--sans);color:var(--gold);display:block;margin-bottom:8px;letter-spacing:.13em}.journeybar{display:flex;justify-content:center;gap:32px;padding:13px 20px;background:#122522;border-bottom:1px solid var(--line);font-size:.73rem;letter-spacing:.07em;text-transform:uppercase}.journeybar span{color:#8e9b8d}.journeybar .current{color:var(--gold)}.scene{height:clamp(280px,43vh,530px);position:relative;overflow:hidden;background:#9f865c;isolation:isolate}.scene-bg{position:absolute;inset:-2%;background:url('/art/athens.webp') center 55%/cover;transform:translateX(var(--pan,0px)) scale(1.04);transition:transform .3s ease-out;z-index:-2}.scene.theatre .scene-bg{background-image:url('/art/theatre.webp');background-position:center 60%}.scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0f252a7d,transparent 32%,#1b292020);z-index:1}.scene-label{position:absolute;left:3.5%;top:23px;background:#142521dd;border:1px solid #d3b97b77;padding:11px 18px;z-index:3}.scene-label span{font-size:.7rem}.scene-label strong{font:1.35rem var(--serif);display:block;margin-top:2px}.sprite{position:absolute;height:89%;width:25%;bottom:1%;background:url('/art/cast.webp') 0 100%/500% 100% no-repeat;filter:drop-shadow(5px 12px 5px #0006);z-index:2;pointer-events:none}.sprite.player{left:31%;height:66%;width:17%;transition:transform .7s}.sprite.partner{left:58%;height:81%;width:20%}.scene.map .sprite.player{left:3%;height:56%;width:14%;transition:left 1s}.hotspot{position:absolute;top:56%;z-index:4;padding:11px 14px;background:#f0e4c9;color:#203331;border:1px solid #af8552;box-shadow:0 5px 18px #0005;font-size:.78rem;transform:translateX(-50%);min-height:44px;max-width:170px}.hotspot:hover{background:white;translate:0 -4px}.hotspot.done{background:#24463e;color:#f4e6c8}.hotspot b{display:block;font-family:var(--serif);font-size:1.1rem}.workspace{max-width:1180px;padding:30px 30px 55px;margin:auto}.maphead{display:flex;justify-content:space-between;align-items:end;gap:30px}.maphead h2{margin:7px 0 12px}.maphead p{font-size:.9rem;margin-bottom:0;max-width:600px}.progressline{height:3px;background:#ffffff15;margin-top:24px}.progressline i{display:block;height:100%;background:var(--gold)}.dialogue{max-width:1040px;margin:auto;padding:28px 36px 34px;display:grid;grid-template-columns:160px 1fr;gap:34px}.speaker{border-right:1px solid var(--line);padding-right:25px}.speaker h3{color:var(--gold);font-size:1.8rem;margin:7px 0}.speaker small{color:var(--muted);line-height:1.6;display:block}.dialogue-text{font:1.45rem/1.55 var(--serif);color:#f4e9ce;margin-bottom:20px;max-width:740px}.step{font:.7rem var(--sans);text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:15px}.choices{display:grid;gap:9px;margin:20px 0}.choice{text-align:left;display:flex;align-items:center;gap:14px;background:#ffffff04;border:1px solid #d4c49b40;padding:15px 18px;line-height:1.5;font-size:.96rem;width:100%;min-height:55px}.choice:hover{border-color:var(--gold);background:#dfb87910}.choice .letter{font-size:.7rem;color:var(--gold);width:22px;flex:none}.choice.selected{background:#dfb87920;border-color:var(--gold)}.choice.correct{border-color:#89c7ae;background:#89c7ae18}.feedback{border-left:3px solid var(--gold);padding:13px 20px;background:#dfb8790c;line-height:1.6;margin:18px 0}.feedback.error{border-color:#e29b79}.feedback strong{display:block;margin-bottom:4px}.reflection{width:100%;min-height:100px;background:#102321;color:var(--paper);border:1px solid #d4c49b60;padding:14px;resize:vertical;line-height:1.6}.fieldlabel{display:block;margin-bottom:10px;font-size:.85rem;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 320px;gap:40px}.panel{padding:26px;background:#ffffff04;border:1px solid var(--line)}.panel h3{color:var(--gold)}.panel p{font-size:.9rem}.evidence{padding:15px 0;border-bottom:1px solid var(--line)}.evidence h3{font-size:1.2rem;margin:0 0 7px}.evidence p{font-size:.9rem;margin-bottom:0}.tiny{font-size:.75rem;color:var(--muted)}.builder{display:grid;grid-template-columns:280px 1fr;min-height:calc(100svh - 117px)}.builder-side{background:#20352f;padding:32px 25px;border-right:1px solid var(--line)}.builder-side h3{font-size:2rem;margin-top:10px}.builder-art{height:240px;position:relative;overflow:hidden;margin-bottom:25px;background:url('/art/theatre.webp') center/cover}.builder-art .sprite{width:74%;height:96%;left:10%}.builder-list{display:grid;gap:2px}.builder-list button{text-align:left;padding:9px 10px;background:none;font-size:.8rem;color:var(--muted)}.builder-list .active{color:var(--gold);background:#ffffff08;border-left:2px solid var(--gold)}.builder-main{padding:45px 6%;max-width:970px}.builder-main h2{margin:12px 0}.input{background:#122623;border:1px solid #d4c49b60;padding:13px;color:var(--paper);width:100%;margin-bottom:20px}.role-grid{display:grid;gap:10px}.role-grid .choice{display:block}.role-grid strong{display:block;color:var(--gold);font-family:var(--serif);font-size:1.35rem;margin-bottom:6px}.role-grid small{color:var(--muted)}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.review-item{padding:14px;background:#ffffff04;border:1px solid var(--line)}.review-item small{color:var(--gold);display:block;margin-bottom:6px}.review-item p{font-size:.85rem;margin:0}.performance .scene{height:51vh}.performance .dialogue{grid-template-columns:190px 1fr}.direction{font:italic 1.05rem var(--serif);color:var(--muted);margin:0 0 12px}.result-hero{display:grid;grid-template-columns:1fr 250px;gap:40px;border-bottom:1px solid var(--line);padding:12px 0 30px;margin-bottom:30px}.score-orbit{width:190px;height:190px;display:grid;place-content:center;border:2px solid var(--gold);border-radius:50%;text-align:center;box-shadow:inset 0 0 0 8px var(--ink),inset 0 0 0 9px #dfb87955;justify-self:center}.score-orbit strong{font:4.5rem/1 var(--serif);color:var(--gold)}.score-orbit span{font-size:.7rem;letter-spacing:.15em;margin-top:9px}.meter-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;margin:25px 0}.meter{height:8px;background:#ffffff15;margin:10px 0}.meter i{display:block;height:100%;background:var(--gold);animation:grow 1.2s ease-out}.meter-row label{font-size:.8rem}.rubric{border-bottom:1px solid var(--line);padding:20px 0}.rubric-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.rubric h3{font-size:1.4rem;margin-bottom:8px}.rubric p{font-size:.9rem;margin-bottom:6px;line-height:1.6}.rubric .repair{color:#e8b392}.modal-backdrop{position:fixed;inset:0;background:#0009;z-index:99;display:flex;justify-content:flex-end}.modal{background:var(--paper);color:var(--ink);width:min(610px,100%);height:100%;overflow:auto;padding:28px 36px;box-shadow:-10px 0 60px #0005}.modal .eyebrow{color:#8f4f35}.modal h2{font-size:2.6rem}.close{float:right;background:var(--ink);color:var(--paper);padding:10px 16px}.modal .evidence{border-color:#20352f30}.modal a{color:#7d3d24}.modal .primary{background:var(--ink);color:var(--paper)}.modal .muted,.modal .tiny{color:#57645d}.modal label{display:block;font-size:.9rem;margin:18px 0}.modal input[type=range]{width:100%}.checkline{display:flex!important;align-items:center;gap:12px}.modal .input{background:#fffc;color:var(--ink)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);padding:13px 22px;z-index:200;box-shadow:0 5px 30px #0005;max-width:90vw;font-size:.9rem}.save-indicator{font-size:.66rem;color:#b7c5a6}.practice{background:#ddae7012;border:1px solid #dfb87944;padding:20px;margin:20px 0}.practice h3{margin-bottom:8px}.intro-note{max-width:420px;font-size:.72rem;line-height:1.6;color:#a4b4a5;margin-top:22px}.time-pill{font-size:.7rem;color:var(--gold);border:1px solid #dfb87955;padding:6px 10px}.reportnote{padding:15px;border:1px solid var(--line);font-size:.85rem;line-height:1.6;margin:20px 0}.margin-top{margin-top:24px}@keyframes arrive{from{transform:scale(1.025);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes grow{from{width:0}}@media(max-width:850px){.topbar{height:65px;gap:15px}.subtitle,.separator,.save-indicator{display:none}.brand{font-size:1.2rem}.text-btn{padding:8px;font-size:.78rem}.home-art{left:0}.home-shade{background:linear-gradient(90deg,#102220f5,#1022208f),linear-gradient(0deg,#102220,transparent)}.home-copy{padding:8vh 7% 7vh}.home-copy h1{font-size:4.8rem}.home-stamp{display:none}.chapter-strip{grid-template-columns:1fr 1fr}.chapter-strip div{font-size:.95rem;padding:15px}.journeybar{gap:16px;font-size:.64rem;padding:12px 5px}.dialogue{grid-template-columns:110px 1fr;gap:20px;padding:25px}.dialogue-text{font-size:1.3rem}.speaker{padding-right:12px}.speaker h3{font-size:1.45rem}.scene{height:320px}.scene-label{top:14px}.hotspot{font-size:.65rem;padding:8px;max-width:115px}.hotspot b{font-size:.88rem}.split{grid-template-columns:1fr}.builder{grid-template-columns:200px 1fr}.builder-side{padding:22px 14px}.builder-main{padding:30px 25px}.builder-art{height:200px}.review-grid{grid-template-columns:1fr}.performance .dialogue{grid-template-columns:130px 1fr}.result-hero{grid-template-columns:1fr 180px}.score-orbit{width:160px;height:160px}.maphead{align-items:start;flex-direction:column;gap:20px}}@media(max-width:560px){.brand{font-size:1rem;letter-spacing:.06em}.brand span{margin-right:5px}.tools{gap:0}.home-copy h1{font-size:4rem}.home-copy .lede{font-size:1.2rem}.home-meta{gap:15px;font-size:.65rem}.home-copy{padding-top:50px}.dialogue{display:block;padding:22px}.speaker{border:0;display:flex;align-items:baseline;gap:10px;padding:0;margin-bottom:10px}.speaker h3{margin:0}.speaker .eyebrow,.speaker small{display:none}.scene{height:280px}.scene-label strong{font-size:1rem}.scene-label{padding:8px 12px}.hotspot{max-width:94px;min-height:42px}.hotspot b{font-size:.8rem}.scene.map{height:350px}.scene.map .sprite.player{width:24%;height:43%}.sprite.player{width:30%;height:62%;left:14%}.sprite.partner{left:54%;width:34%;height:75%}.builder{display:block}.builder-side{padding:17px 22px}.builder-art,.builder-list,.builder-side .tiny{display:none}.builder-side h3{margin:4px 0;font-size:1.5rem}.builder-main{padding:27px 22px}.workspace{padding:25px 22px 45px}.result-hero{display:flex;flex-direction:column-reverse;gap:23px}.score-orbit{align-self:center}.meter-row{gap:13px}.meter-row label{font-size:.73rem}.journeybar{gap:9px;font-size:.58rem}.modal{padding:24px}.performance .scene{height:310px}.choice{padding:13px}.primary,.secondary{padding:13px 17px;font-size:.84rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}body.reduced *{animation:none!important;transition:none!important}body.large{font-size:19px}@media print{.topbar,.journeybar,.scene,.btnrow,button{display:none!important}body{background:white;color:black}.workspace{max-width:none;padding:0}.muted,.tiny,.eyebrow,.rubric .repair{color:#333}.rubric,.result-hero{break-inside:avoid}}

.sprite{width:auto!important;overflow:hidden;}
/* Touch and accessibility refinements for tablets and phones. */
.topbar{height:auto;min-height:76px;padding-block:12px;flex-wrap:wrap;gap:14px}
.text-btn,.builder-list button,.close,.brand,.hotspot{min-height:44px}
[tabindex="-1"]:focus{outline:none}
.builder-main,.builder-side,.dialogue>div,.split>*,.result-hero>*{min-width:0}
textarea,input,select{font-size:1rem}
@media(max-width:560px){.topbar{min-height:65px;padding-block:8px;gap:8px}.tools{flex:1;justify-content:space-between}.text-btn{padding-inline:7px}.home-copy{padding-bottom:35px}.scene-label{max-width:93%}.scene-label .eyebrow{font-size:.6rem}.dialogue,.workspace,.builder-main{padding-bottom:max(30px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:no-preference){.scene .sprite{animation:character-enter .5s ease-out}@keyframes character-enter{from{opacity:0;translate:12px 0}to{opacity:1;translate:0 0}}}
