:root{color-scheme:dark;--ink:#f7e9cb;--muted:#c0c5b3;--gold:#f2c785;--gold2:#b88b50;--dark:#111c1a;--panel:#20302a;--green:#a5cb9b;--red:#e18d75;--border:#73846c}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0e1615;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}body{padding:18px;display:flex;align-items:flex-start;justify-content:center}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f6d28b;outline-offset:3px}button:disabled{opacity:.46;cursor:default}.game{width:min(1290px,100%);background:var(--dark);border:1px solid #667765;border-radius:17px;box-shadow:0 28px 110px #0008;overflow:hidden}.header{min-height:76px;background:#152620;border-bottom:1px solid #526950;display:flex;align-items:center;gap:22px;padding:12px 24px;position:relative;z-index:50}.brand{display:flex;align-items:center;gap:12px;min-width:232px}.brand .emblem{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;font-size:27px;color:#ffdaa0;border:2px solid #c49d65;background:#40523c;box-shadow:0 0 12px #cda16644}.brand strong{font:900 22px Georgia,serif;letter-spacing:.05em;color:#f5d49b}.brand strong span{font:700 10px system-ui;color:#cad2b9;vertical-align:top}.brand small{font:800 9px system-ui;letter-spacing:.21em;color:#b3bea6;display:block}.header-center{flex:1;text-align:center}.header-center>span{font-size:10px;font-weight:900;letter-spacing:.17em;color:#dcc9a4}.chapters{display:flex;justify-content:center;gap:5px;margin-top:8px}.dot{height:5px;width:23px;border-radius:10px;background:#526354}.dot.current{background:var(--gold);box-shadow:0 0 10px #f2c78555}.dot.done{background:#a4c696}.header-actions{display:flex;gap:6px}.head-btn{background:#283b30;border:1px solid #60735f;border-radius:8px;color:#e9e8d7;padding:9px 11px;white-space:nowrap;font-size:12px}.head-btn:hover{background:#435b46}.footer{display:flex;justify-content:space-between;gap:6px;padding:12px 22px;background:#13221c;color:#a7b8a1;font-size:10px;letter-spacing:.1em;border-top:1px solid #536a55}.flicker{font-style:normal;color:#d3aa67;animation:glow 2.5s ease-in-out infinite alternate}@keyframes glow{to{opacity:.4;filter:brightness(1.8)}}
/* Typography and main panels */
.screen{animation:entry .35s both}@keyframes entry{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif}h1{font-size:clamp(44px,5.7vw,82px);line-height:1;margin-bottom:18px;letter-spacing:-.02em}h1 em{font-weight:400;color:var(--gold)}h2{font-size:clamp(26px,3.5vw,43px);line-height:1.12;margin-bottom:15px}h3{font-size:24px;margin-bottom:12px}p{color:#d7d8c9;line-height:1.7}.micro{font:900 11px system-ui;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:30px;background:#384939;color:#d6e4ce;border:1px solid #74876c;font:700 11px system-ui;padding:6px 10px}.badge.orange{background:#634633;color:#f7d6ad;border-color:#be8e5c}.badge.red{color:#ffd3c7;background:#5c3834;border-color:#b47768}.btn{background:linear-gradient(135deg,#f5d499,#d8aa69);border:1px solid #f0d09c;border-radius:8px;color:#1d281e;padding:13px 20px;min-height:45px;font-weight:900;letter-spacing:.03em;box-shadow:inset 0 1px #ffefcb70,0 4px 12px #0004}.btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn.secondary{background:#344c3a;border:1px solid #91a088;color:var(--ink);box-shadow:none}.btn.ghost{background:transparent;color:var(--ink);border:1px solid #7c8a77;box-shadow:none}.btn.sm{padding:9px 12px;font-size:12px;min-height:35px}.buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.panel{background:#24362d;border:1px solid #647b63;border-radius:11px;padding:18px}.info{background:#364735;border-left:4px solid #edbf76;padding:15px 17px;border-radius:0 8px 8px 0;color:#f5e0b8;line-height:1.6;margin:14px 0}.info.warn{border-color:#e29374;background:#553a32}.notice{font-size:12px;color:#c2cbbd}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:27px;align-items:center;padding:28px;min-height:540px}.split.reverse{grid-template-columns:.9fr 1.1fr}.copy{min-width:0}.copy>p{max-width:600px}.wide{padding:22px 27px}.floating-card{background:#23352ccf;border:1px solid #7c896d;border-radius:11px;padding:17px;backdrop-filter:blur(9px)}
/* Illustrated scenes */
.scene{position:relative;overflow:hidden;border:1px solid #8f926d;border-radius:12px;min-height:330px;isolation:isolate;background:#2a3c33}.scene.large{min-height:440px}.scene.full{min-height:515px}.scene-bg{position:absolute;inset:-2%;width:104%;height:104%;background-size:cover;background-position:center;animation:pan 22s ease-in-out infinite alternate;z-index:-2}@keyframes pan{to{transform:scale(1.08) translateX(-1.2%)}}.scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0b1715e0,transparent 37%,#08121a22 72%,#080d1244);z-index:0}.scene-tint{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 77% 18%,#f6c77f21,transparent 39%);mix-blend-mode:screen;z-index:-1}.scene-caption{position:absolute;bottom:18px;left:21px;z-index:3;text-shadow:0 2px 12px #000;font:700 25px Georgia,serif}.scene-caption small{font:800 10px system-ui;display:block;color:#e6cfa7;letter-spacing:.16em;margin-top:6px}.dust{position:absolute;z-index:1;width:5px;height:5px;border-radius:50%;background:#ffe4a0;box-shadow:0 0 9px #ffd38c;opacity:0;animation:dust 7s linear infinite;left:var(--x);top:var(--y);pointer-events:none}@keyframes dust{0%{transform:translate(0,35px);opacity:0}22%{opacity:.45}88%{opacity:.5}100%{transform:translate(27px,-70px);opacity:0}}.vignette{position:absolute;inset:0;z-index:2;box-shadow:inset 0 0 90px #0008;pointer-events:none}.scene .hero-puppet{position:absolute;bottom:9%;left:10%;z-index:3;width:27%;height:67%;filter:drop-shadow(0 13px 10px #0009)}.scene .hero-puppet.guard{left:auto;right:10%;transform:scaleX(-1);filter:drop-shadow(0 13px 10px #0009)}.hero-puppet{animation:idle 2.6s ease-in-out infinite alternate;transform-origin:center bottom}@keyframes idle{to{translate:0 -6px}}.hero-puppet svg{width:100%;height:100%;overflow:visible}.hero-puppet .sword-arm{transform-origin:77px 137px;transform-box:view-box;animation:sword-idle 1.9s ease-in-out infinite alternate}@keyframes sword-idle{to{transform:rotate(-4deg)}}.hero-puppet .shield-arm{transform-origin:148px 152px;transform-box:view-box}.hero-puppet.attack .sword-arm{animation:attack .55s ease forwards}@keyframes attack{30%{transform:rotate(-37deg)}80%{transform:rotate(40deg)}to{transform:rotate(0)}}.hero-puppet.defend .shield-arm{animation:defend .6s ease}@keyframes defend{45%{transform:translate(-25px,-17px) rotate(-15deg)}}.hero-puppet.stagger{animation:stagger .65s ease}@keyframes stagger{35%{transform:translateX(-26px) rotate(-8deg)}70%{transform:translateX(8px)}}.impact{position:absolute;z-index:9;top:35%;left:48%;font-size:60px;pointer-events:none;animation:impact .75s both}@keyframes impact{from{opacity:0;transform:scale(.2)}45%{opacity:1;transform:scale(1.7) rotate(-10deg)}to{opacity:0;transform:scale(2.6)}}.shake{animation:shake .35s linear}@keyframes shake{0%,100%{translate:0}25%{translate:9px}50%{translate:-8px}75%{translate:4px}}.scene-prop{position:absolute;z-index:2;filter:drop-shadow(0 8px 10px #0007);animation:idle 2.6s ease-in-out infinite alternate;font-size:clamp(48px,9vw,104px)}.chapter-segment{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.under-scene{margin-top:15px}.scene-controls{margin-top:15px}.ribbon{position:absolute;top:16px;left:16px;z-index:6;font:900 10px system-ui;letter-spacing:.13em;background:#1a2a23d8;border:1px solid #8e9568;color:#edd9ac;border-radius:7px;padding:9px 12px}
/* Main menu */
.menu-art{min-height:500px;border-radius:11px;overflow:hidden;position:relative}.menu-art .scene-bg{animation:pan 20s ease-in-out infinite alternate}.menu-portrait{position:absolute;bottom:5%;left:12%;height:65%;width:40%;background:url('assets/hero0.webp') center 36%/cover;border-radius:100px 100px 26px 26px;mask-image:linear-gradient(to bottom,#000 80%,transparent);filter:drop-shadow(0 20px 10px #0008);opacity:.95}.menu-heading{letter-spacing:.01em}.menu-heading span{display:block;font-size:14px;color:#c4cea8;letter-spacing:.2em;font-family:system-ui;margin-bottom:9px}.menu-caption{font-size:16px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.mode-card{background:#26372d;color:var(--ink);padding:14px;border:1px solid #677b67;border-radius:9px;text-align:left;line-height:1.4}.mode-card.selected{border-color:#f5ce8a;background:#514634}.mode-card strong{display:block}.mode-card small{display:block;color:#c7d1c0;font-size:11px;margin-top:4px}.menu-cta{display:flex;gap:10px;flex-wrap:wrap}
/* Character creator */
.creator{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;padding:23px;align-items:start}.creator-preview{display:grid;gap:11px}.creator-stage{height:440px;border-radius:12px;background:radial-gradient(circle at 50% 38%,#526d53,#172820 75%);border:1px solid #7d906d;display:grid;place-items:center;position:relative;overflow:hidden}.creator-stage::after{content:"";height:90px;background:#13261a;position:absolute;bottom:-45px;left:-20%;width:140%;border-radius:50%}.creator-stage .hero-puppet{width:66%;height:83%;z-index:3}.creator-stage .hero-puppet svg{filter:drop-shadow(0 11px 5px #0005)}.creator-label{position:absolute;z-index:5;bottom:15px;left:15px;font-size:11px;color:#ecd39b;letter-spacing:.16em}.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hero-card{border:1px solid #6e8067;border-radius:8px;background:#23362c;color:var(--ink);overflow:hidden;padding:0;text-align:center}.hero-card img{width:100%;height:137px;object-fit:cover;object-position:center 18%;display:block}.hero-card span{display:block;padding:6px;font-size:11px}.hero-card.selected{border:2px solid var(--gold);box-shadow:0 0 15px #f2bd6e33}.field{margin-top:13px}.field label{color:#efd09b;font-size:11px;letter-spacing:.12em;font-weight:850;display:block;margin-bottom:7px}.field input{width:100%;background:#14221a;border:1px solid #71826d;padding:11px;border-radius:7px;color:var(--ink)}.swatches{display:flex;gap:7px;flex-wrap:wrap}.swatch-btn{width:36px;height:36px;background:var(--swatch);border:3px solid #1b2b23;border-radius:9px;outline:1px solid #87947e}.swatch-btn.selected{border:3px solid #ecca88;outline:2px solid #e7c483}.creator .btn{margin-top:10px}
/* Quest puzzles and questions */
.question-layout{padding:21px 24px}.question-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(290px,.82fr);gap:17px;margin-top:13px}.question-panel{background:#263a2f;border:1px solid #75866c;border-radius:11px;padding:21px}.question-panel h3{font-size:25px;line-height:1.25;margin:13px 0 17px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:9px}.answer{background:#13241d;color:var(--ink);border:1px solid #738672;border-radius:8px;padding:13px;display:flex;align-items:center;text-align:left;gap:10px;line-height:1.4;min-height:68px}.answer:hover:not(:disabled){background:#38533b;border-color:#f0c689}.answer-key{width:28px;height:29px;display:grid;place-items:center;border-radius:6px;border:1px solid #a6a47b;color:var(--gold);font-weight:900;flex:none}.answer.correct{background:#27583c;border-color:#a3d29c}.answer.incorrect{background:#613c35;border-color:#e28b73}.answer.selected{border-color:#e7c185}.feedback{background:#2c4c35;border:1px solid #7eaf7a;padding:14px 16px;border-radius:9px;margin-top:12px}.feedback.bad{background:#533630;border-color:#c58c77}.feedback p{font-size:13px;line-height:1.6;margin:5px 0 10px}.feedback strong{font-size:14px}.status-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:8px 0}.status-chip{padding:6px 9px;background:#354737;border:1px solid #6e8469;border-radius:7px;font-size:11px;color:#eadfcb}.status-chip.attention{color:#ffe4c1;background:#614535}.gauge{height:12px;border-radius:20px;background:#15221b;border:1px solid #4f6a50;overflow:hidden}.gauge-fill{height:100%;background:linear-gradient(90deg,#74a67b,#e7c47d);border-radius:20px;transition:width .4s}.gauge-fill.red{background:linear-gradient(90deg,#a94842,#e38b6e)}.gauge-label{display:flex;justify-content:space-between;font-size:12px;color:#d6d7ca;margin-bottom:6px}.side-note{font-size:12px;color:#d6dbc6;line-height:1.6}
/* Physical library hotspot game */
.library-stage{height:min(58vw,520px);min-height:310px}.book-hotspot{position:absolute;z-index:6;left:var(--x);top:var(--y);width:var(--w);height:var(--h);color:#ffe0a4;background:linear-gradient(90deg,#391b17ee,#975631ee 30%,#6d3227ee);border:2px solid #cf9e68;border-radius:4px 7px 4px 4px;box-shadow:inset 4px 0 #ecc59744,0 5px 9px #0008;writing-mode:vertical-rl;padding:4px 2px;text-align:center;font:800 clamp(7px,.95vw,12px) Georgia,serif;letter-spacing:.05em;transition:transform .2s,filter .2s}.book-hotspot:nth-of-type(3n){background:linear-gradient(90deg,#1f3435,#537769,#253d37)}.book-hotspot:nth-of-type(4n){background:linear-gradient(90deg,#3c2841,#76557d,#372c47)}.book-hotspot:hover{transform:translateY(-12px) scale(1.06);filter:brightness(1.25);z-index:8}.book-hotspot::after{content:"✣";font-size:9px;color:#edc68f}.library-hint{position:absolute;bottom:16px;right:16px;z-index:6;background:#192820dc;border:1px solid #cfaa69;border-radius:8px;padding:12px;font-size:12px;color:#f0dbb8;max-width:260px}.fade{animation:entry .35s ease both}.parchment{background:linear-gradient(105deg,#b89664,#f5e5bc 9%,#ead1a0 52%,#f8eac5 91%,#b28c59);border:9px solid #a87d4c;color:#684a2a;border-radius:7px;box-shadow:inset 0 0 38px #8f6546a3,0 8px 19px #0008;padding:22px;position:relative;min-height:250px}.parchment::before,.parchment::after{content:"";position:absolute;top:-12px;bottom:-12px;left:-11px;width:17px;border-radius:12px;background:linear-gradient(90deg,#5e3e29,#c8a16c,#755032)}.parchment::after{left:auto;right:-11px}.parchment h3{font:700 24px Georgia,serif;text-align:center;border-bottom:1px solid #aa8151;padding-bottom:10px;color:#5d3f23}.fragments{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fragment{min-height:104px;border:1px solid #ac8b5e;border-radius:5px;display:grid;place-items:center;background:#876746;color:#ddcda9;text-align:center;padding:13px;font:italic 15px Georgia,serif}.fragment.ok{background:#f0e1bd;color:#5e482c;animation:reveal .55s ease}@keyframes reveal{from{filter:brightness(3)}to{filter:brightness(1)}}.fragment.burn{background:radial-gradient(circle at center,#3c3229,#251d16);color:#af9e8c;border-color:#4e3a2e;animation:char .6s ease}@keyframes char{0%{filter:brightness(3)}100%{filter:brightness(1)}}
/* Interactive maps */
.locations{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:17px}.location{background:#253a2d;border:1px solid #85977b;color:var(--ink);padding:0;border-radius:10px;overflow:hidden;text-align:center;transition:transform .15s}.location:hover{transform:translateY(-3px);border-color:#efc486}.location-art{height:110px;display:grid;place-items:center;font-size:65px;background:linear-gradient(160deg,#7c9479,#3e594b);text-shadow:0 8px 12px #0006}.location strong{display:block;padding:12px}.battle-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.battle-choices button{background:#314635;color:var(--ink);border:1px solid #7b8d70;border-radius:8px;padding:14px;text-align:center}.battle-choices button:hover{border-color:var(--gold);background:#4a593d}.battle-choices b{display:block;font-size:28px;margin-bottom:7px}.battle-choices small{display:block;color:#ccd5c8;font-size:11px;margin-top:5px}.battle-choices .picked{border-color:var(--gold);background:#535239}
/* Messenger minigame */
.npc{position:absolute;z-index:6;width:64px;height:77px;background:transparent;border:none;font-size:48px;filter:drop-shadow(0 8px 4px #0009);left:var(--x);top:var(--y);animation:walk var(--speed) ease-in-out infinite alternate}.npc:hover{filter:drop-shadow(0 0 15px #e8ca7f);transform:scale(1.12)}@keyframes walk{to{translate:var(--dx) 0}}.npc .npc-bubble{position:absolute;top:-10px;left:40px;border-radius:100px;background:#1e3928;border:1px solid #e1bf78;font:900 10px system-ui;padding:3px 5px}.npc.collected{pointer-events:none;opacity:.35;filter:grayscale(1);animation:none}.recruit-progress{position:absolute;top:15px;right:15px;z-index:8;background:#14261bdc;border-radius:8px;border:1px solid #8e986f;padding:10px;font-weight:800;color:#f6dfb3}
/* Forge timing */
.anvil{font-size:clamp(60px,13vw,145px);position:absolute;left:42%;bottom:12%;z-index:3;filter:drop-shadow(0 12px 12px #000a)}.fire{font-size:clamp(45px,8vw,85px);position:absolute;right:18%;bottom:13%;z-index:3;animation:flicker 1s ease-in-out infinite alternate}@keyframes flicker{to{transform:scale(1.1);filter:brightness(1.4)}}.forgeline{height:25px;border:1px solid #d2b184;border-radius:30px;background:linear-gradient(90deg,#a1493c 0 34%,#d5a04b 34% 42%,#7bc187 42% 58%,#d5a04b 58% 66%,#a1493c 66%);position:relative;margin:17px 0}.hammer-pointer{height:34px;width:4px;background:white;position:absolute;left:0;top:-6px;box-shadow:0 0 9px white;animation:sweep 1.7s linear infinite alternate}@keyframes sweep{to{left:calc(100% - 4px)}}.forge-progress{display:flex;gap:10px;margin:10px 0}.forge-progress span{flex:1;height:9px;border-radius:10px;background:#4b5142}.forge-progress .done{background:#e5b46f}
/* timer / pyre */
.timer{font:900 38px Georgia,serif;color:#ffd194}.timer.urgent{color:#ff9c80;animation:blink .5s ease-in-out infinite alternate}@keyframes blink{to{opacity:.5}}.logs{display:flex;flex-wrap:wrap;gap:7px}.log{width:70px;height:13px;background:#8f6740;border:2px solid #4e3326;border-radius:5px;transform:rotate(-10deg)}.log.removed{background:#344c36;opacity:.5;transform:translateY(10px)}
/* Results and teacher */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.stat-card{background:#2b4032;border:1px solid #75856d;border-radius:9px;text-align:center;padding:15px}.stat-card strong{display:block;color:var(--gold);font:700 30px Georgia,serif}.stat-card small{font-size:11px;color:#c5ccb9}.review-list{max-height:340px;overflow:auto;display:grid;gap:8px}.review-card{border:1px solid #607463;background:#25372d;padding:11px;border-radius:7px}.review-card p{font-size:12px;margin:5px 0}.review-card .bad{color:#ffc2aa}.review-card .good{color:#b9e0ae}.editor-area{width:100%;min-height:360px;background:#121e19;color:#d8e1c9;border:1px solid #82947a;border-radius:8px;padding:14px;font:12px/1.5 ui-monospace,monospace;resize:vertical}.timeline{display:grid;gap:9px}.timeline-item{border-left:3px solid #c4a474;background:#24372d;padding:10px 13px;border-radius:0 7px 7px 0}.timeline-item span{color:#f0cd97;font:800 11px system-ui;letter-spacing:.1em}.timeline-item p{font-size:13px;margin:4px 0}.chapter-stack{display:flex;flex-wrap:wrap;gap:8px}
/* modal */
.modal-backdrop{position:fixed;inset:0;background:#06120ee0;z-index:100;display:grid;place-items:center;padding:17px}.modal{width:min(800px,100%);max-height:90vh;overflow:auto;background:#1e3027;border:1px solid #a3a07c;border-radius:13px;padding:23px;box-shadow:0 20px 90px #000b}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-head h2{margin:0}.modal pre{white-space:pre-wrap}.modal .close{background:#314638;border:1px solid #87967e;color:var(--ink);border-radius:8px;padding:8px 12px}
/* mobile */
@media(max-width:930px){body{padding:7px}.header{padding:12px 13px;gap:9px}.brand{min-width:auto}.brand strong{font-size:17px}.brand .emblem{width:35px;height:35px;font-size:22px}.header-center{display:none}.desktop-only{display:none}.header-actions{margin-left:auto}.split,.creator{grid-template-columns:1fr}.split{padding:17px}.menu-art{min-height:270px;order:-1}.creator-preview{grid-template-columns:.55fr 1fr}.creator-stage{height:330px}.creator-stage .hero-puppet{width:85%}.hero-card img{height:94px}.question-grid{grid-template-columns:1fr}.scene.large{min-height:355px}.question-layout{padding:15px}.footer{font-size:9px}}
@media(max-width:600px){h1{font-size:44px}h2{font-size:29px}.wide{padding:14px}.split{gap:16px}.scene.large{min-height:250px}.scene{min-height:230px}.answers{grid-template-columns:1fr}.locations,.battle-choices{grid-template-columns:1fr 1fr}.location-art{height:77px;font-size:42px}.creator-preview{grid-template-columns:1fr}.creator-stage{height:310px;order:-1}.hero-cards{grid-template-columns:repeat(3,1fr)}.hero-card img{height:105px}.question-panel{padding:15px}.question-panel h3{font-size:21px}.fragments{grid-template-columns:1fr 1fr}.fragment{min-height:80px;font-size:12px}.scene .hero-puppet{width:34%;height:62%}.scene-caption{font-size:18px}.stats-grid{grid-template-columns:repeat(2,1fr)}.mode-grid{grid-template-columns:1fr}.book-hotspot{font-size:7px!important}.library-stage{min-height:235px}.footer{letter-spacing:0}.head-btn{padding:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* QUESTORIA 2.1 — restored original library: colorful interactive bookcase */
.old-library{position:relative;isolation:isolate;overflow:hidden;min-height:530px;border:1px solid #a27f54;border-radius:13px;padding:20px 24px;background:radial-gradient(circle at 13% 26%,#dfac6472,transparent 32%),linear-gradient(120deg,#3c3025,#1c241e 45%,#51402d);box-shadow:inset 0 0 55px #100f0cbb,0 14px 23px #0006}
.old-library::before{content:"";position:absolute;inset:-20%;background:repeating-linear-gradient(102deg,transparent 0 108px,#ffffff0a 113px,#ffffff00 121px);animation:library-light 14s linear infinite alternate;pointer-events:none}
@keyframes library-light{to{transform:translateX(35px)}}
.old-library-window{position:absolute;top:65px;left:-33px;width:160px;height:330px;background:linear-gradient(115deg,#f6dba9,#9f9275 35%,#263c40);border:15px solid #5e4b39;border-radius:85px 85px 0 0;box-shadow:0 0 40px #f3c47a5c;display:grid;place-items:center;color:#c69b64;font:78px Georgia,serif;opacity:.9}
.old-library-window::after{content:"";position:absolute;inset:0;border-left:4px solid #614e3b;border-right:4px solid #614e3b;transform:translateX(45px)}
.old-library-arch{position:absolute;top:-70px;left:11%;right:11%;height:160px;border:17px solid #66513a;border-radius:50% 50% 0 0;opacity:.62;pointer-events:none}
.old-library-header{position:relative;z-index:2;display:flex;justify-content:space-between;gap:10px;align-items:center;color:#e9d09d;font:800 18px Georgia,serif;letter-spacing:.14em;text-shadow:0 2px 9px #000b;margin:0 0 15px}
.old-library-header small{font:800 11px system-ui;color:#d9bd85;letter-spacing:.16em}
.old-library-bookcase{position:relative;z-index:2;max-width:820px;margin:0 0 38px auto;border:14px ridge #865c35;border-radius:12px;box-shadow:0 18px 25px #000a,inset 0 0 28px #100c08;background:linear-gradient(90deg,#4a2c1c,#8b5a34 4%,#54341f 11%,#49301f 89%,#91623c 97%,#48311e 100%);height:390px;padding:10px 14px}
.old-library-books{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,1fr);gap:10px 9px;height:100%;padding:4px 5px 9px}
.old-library-book{position:relative;z-index:4;min-width:0;border:2px solid #39251a;border-bottom:6px solid #342217;border-radius:5px 8px 3px 3px;background:linear-gradient(90deg,#0004,var(--book) 20%,var(--book) 72%,#0005);color:#f4d8aa;box-shadow:inset 5px 0 #ffffff32,inset -7px 0 #0005,4px 4px 0 #170c08aa;display:flex;align-items:center;justify-content:center;transition:transform .19s,filter .19s}
.old-library-book:hover,.old-library-book:focus-visible{transform:translateY(-13px) scale(1.035);filter:brightness(1.33);z-index:10}
.old-library-book span{writing-mode:vertical-rl;font:700 clamp(10px,1.6vw,17px) Georgia,serif;letter-spacing:.075em;white-space:nowrap;overflow:hidden;max-height:89px;text-shadow:0 1px 2px #0008}
.old-library-shelf{position:absolute;left:0;right:0;height:17px;background:linear-gradient(#ad7b49 0 30%,#704628 50%,#332012);border-bottom:3px solid #26180f;box-shadow:0 6px 10px #0009;z-index:7;pointer-events:none}
.old-library-shelf.shelf-a{top:33.333%}.old-library-shelf.shelf-b{top:66.666%}.old-library-shelf.shelf-c{bottom:0}
.old-library-candle{position:absolute;z-index:8;bottom:27px;left:24px;font-size:38px;animation:flicker 1.2s infinite alternate;filter:drop-shadow(0 0 18px #ffbd6c)}
.old-library-caption{position:absolute;z-index:9;bottom:15px;right:22px;max-width:73%;background:#15251fe8;border:1px solid #b49b6d;color:#f9e3b8;border-radius:8px;padding:11px 16px;font-size:12px;line-height:1.4;box-shadow:0 5px 16px #0008}
/* New real-time canvas minigames */
.arcade-stage{position:relative;background:#20392d;border:2px solid #b28e5e;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 50px #0008,0 14px 24px #0006}
.arcade-stage canvas{display:block;width:100%;height:auto;aspect-ratio:960/420;touch-action:none;cursor:crosshair}
.arcade-stage.runner canvas{cursor:pointer}
.arcade-stage.defenestration canvas{cursor:grab}
.arcade-stage.defenestration canvas:active{cursor:grabbing}
.arcade-banner{position:absolute;top:12px;right:12px;pointer-events:none;color:#f7e2ba;font-weight:800;text-shadow:0 2px 5px #000;font-size:12px}
.arcade-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#20352b;border:1px solid #526d54;border-radius:0 0 9px 9px;margin-top:9px;padding:14px 17px}
.arcade-hud{color:#e2d7bd;font-size:13px;font-weight:650}
.arcade-foot .btn{min-width:172px}
@media(max-width:900px){.old-library-bookcase{height:345px}.old-library{min-height:470px}.old-library-book span{font-size:12px;max-height:80px}.arcade-foot{flex-wrap:wrap}}
@media(max-width:600px){.old-library{min-height:335px;padding:10px}.old-library-window{width:110px;height:190px;left:-35px;top:83px}.old-library-header{font-size:14px;margin-bottom:10px}.old-library-header small{font-size:9px}.old-library-bookcase{border-width:7px;padding:4px 6px;height:290px;margin-bottom:25px}.old-library-books{gap:7px 5px}.old-library-book{border-width:1px;border-bottom-width:4px}.old-library-book span{font-size:9px;max-height:59px;letter-spacing:0}.old-library-shelf{height:12px}.old-library-caption{bottom:9px;right:9px;max-width:82%;font-size:10px;padding:8px}.old-library-candle{font-size:26px;bottom:19px}.arcade-foot{padding:10px;font-size:11px}.arcade-foot .btn{width:100%}.arcade-foot .buttons{width:100%}.arcade-hud{font-size:11px}.arcade-stage canvas{min-height:205px;object-fit:contain}}

/* 2.2 usability: close-up portraits and legible full manuscript titles */
.hero-card img{height:155px!important;object-position:center top!important;object-fit:cover}
.hero-card:focus-visible,.old-library-book:focus-visible{outline:3px solid #ffe2a6;outline-offset:3px}
.old-library-book{overflow:visible!important}
.old-library-book::after{content:attr(data-name);position:absolute;bottom:100%;left:50%;transform:translate(-50%,-8px);width:max-content;max-width:230px;white-space:normal;background:#1c2a21;border:1px solid #e1c184;box-shadow:0 8px 12px #000a;color:#ffe3b3;font:800 14px/1.4 Georgia,serif;padding:10px;border-radius:7px;z-index:40;opacity:0;pointer-events:none}
.old-library-book:hover::after,.old-library-book:focus-visible::after{opacity:1}
.library-index{position:relative;z-index:10;background:#1a2b24ed;border:1px solid #9d8d67;border-radius:9px;padding:12px;margin:15px auto 0;max-width:850px}
.library-index>strong{display:block;font-size:12px;margin-bottom:8px;color:#eed39b}
.library-index>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.library-index-book{color:#eedab8;text-align:left;background:#2c3b31;border:1px solid #6c806b;padding:8px;border-radius:6px;font-size:12px;white-space:normal}
.library-index-book:hover{border-color:#f3cf91;background:#45553e}
.hero-puppet.guard.flyaway{animation:flyAway 1.3s cubic-bezier(.25,.45,.7,1) forwards!important}
@keyframes flyAway{10%{translate:0 0;rotate:0deg;opacity:1}100%{translate:210px -155px;rotate:48deg;opacity:0}}
.coin-hud{border:1px solid #ac945f;background:#4c3a25;border-radius:99px;padding:7px 11px;font-weight:800;color:#f9d28a;white-space:nowrap;font-size:12px}
/* Real time strategy: self-contained one-lane player vs AI */
.war-hud{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.war-canvas{position:relative;border:2px solid #a58d67;border-radius:12px;overflow:hidden;background:#354635}
.war-canvas canvas{display:block;width:100%;height:auto;aspect-ratio:1020/420;touch-action:manipulation}
.war-alert{position:absolute;top:14px;left:20px;background:#422e25;color:#f0d3ab;border-radius:8px;pointer-events:none}
.war-shop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.war-buy{background:linear-gradient(#42583d,#25382d);color:#f1e4c5;border:1px solid #b0a274;border-radius:10px;padding:14px;display:grid;gap:6px;text-align:left;min-width:0}
.war-buy:hover:not(:disabled){background:#526c4b;border-color:#f4d295;transform:translateY(-2px)}
.war-buy b{font-size:16px;color:#f3d393}.war-buy span{font-size:12px;color:#e9e4d3}.war-buy small{font-size:11px;color:#b2d5a9}
.war-rescue-panel{margin:10px 0;padding:12px;background:#302c25;border:1px solid #bb9775;border-radius:9px}
.war-rescue-panel[hidden],.war-shop[hidden]{display:none!important}
.rescue-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}
.retreat-btn{border:1px solid #c3ad78;border-radius:8px;background:#3a4b37;color:#f7e7c8;padding:11px;text-align:left;font-size:12px}
.retreat-btn.retreat{background:#34575b}.retreat-btn.saved{background:#2c543b}.retreat-btn.lost{background:#614039}
.war-rescue-count{font-weight:800;color:#f8d8aa;margin:10px 0}
.war-stats{grid-template-columns:repeat(2,1fr)}
@media(max-width:850px){.war-shop{grid-template-columns:1fr}.rescue-buttons{grid-template-columns:repeat(2,1fr)}.library-index>div{grid-template-columns:repeat(2,1fr)}.hero-card img{height:123px!important}}
@media(max-width:500px){.library-index>div{grid-template-columns:1fr}.war-hud .status-chip{font-size:10px}.rescue-buttons{grid-template-columns:1fr}.war-canvas canvas{min-height:210px}}
