:root{font-family:'DM Sans',system-ui,sans-serif;color:#e9edf3;background:#0e1520;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Fraunces,Georgia,serif;font-weight:500}h1{font-size:clamp(1.5rem,2.4vw,2.25rem);margin:0}h2{font-size:1.45rem;margin-bottom:1rem}h3{font-size:1.1rem;margin-bottom:.65rem}p{line-height:1.55}small,.muted{color:#a8b3c1}label{display:block;color:#c9d4dc;font-weight:600;font-size:.87rem;margin-bottom:.4rem}input,textarea,select{width:100%;border:1px solid #394858;border-radius:10px;background:#152231;color:#f5f7f5;padding:.7rem .8rem;outline:none}input:focus,textarea:focus,select:focus{border-color:#e7b76c;box-shadow:0 0 0 2px #e7b76c33}textarea{resize:vertical;min-height:85px;line-height:1.5}input[type=file]{padding:.5rem}.field{margin:0 0 1rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.field-grid .field{margin:0}.topbar{position:sticky;top:0;z-index:20;background:#101927ed;backdrop-filter:blur(14px);border-bottom:1px solid #304050;padding:.8rem clamp(1rem,2vw,2rem);display:flex;align-items:center;gap:1rem;justify-content:space-between}.brand{display:flex;align-items:center;gap:.8rem;white-space:nowrap;font-family:Fraunces,Georgia,serif;font-size:1.3rem}.brand-mark{background:#e6af62;color:#17202b;border-radius:9px;width:34px;height:34px;display:grid;place-items:center;font-family:serif}.top-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.btn{border:1px solid #486071;color:#f3f5f5;background:#243747;border-radius:10px;padding:.68rem .95rem;font-weight:700;white-space:nowrap}.btn:hover{background:#335064}.btn.primary{background:#e7b66d;color:#14202b;border-color:#e7b66d}.btn.primary:hover{background:#f6c984}.btn.ghost{background:transparent}.btn.danger{color:#f2aaaa;border-color:#704858}.btn.sm{padding:.42rem .65rem;font-size:.81rem}.shell{max-width:1700px;margin:auto;display:grid;grid-template-columns:245px minmax(410px,1fr) 345px;min-height:calc(100vh - 64px)}.sidebar,.inspector{padding:1.3rem;border-right:1px solid #2b3a49;background:#121d29}.inspector{border-right:0;border-left:1px solid #2b3a49;background:#15212d;overflow:auto;max-height:calc(100vh - 64px);position:sticky;top:64px}.sidebar{position:sticky;top:64px;align-self:start;max-height:calc(100vh - 64px);overflow:auto}.step{display:flex;align-items:center;gap:.65rem;padding:.8rem;border-radius:10px;color:#bdc9d1;border:0;background:none;width:100%;text-align:left;font-weight:600}.step:hover,.step.active{background:#263c4b;color:#fff}.step span{color:#e6b26b}.sidebar-note{border-top:1px solid #32404d;margin-top:1.3rem;padding-top:1.2rem;font-size:.86rem;line-height:1.55;color:#a9b8c2}.main{padding:1.5rem clamp(1rem,2vw,2rem);min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#e8b972;font-size:.72rem;font-weight:700;margin-bottom:.45rem}.lead{max-width:700px;color:#acbbc4;margin-bottom:1.4rem}.card{border:1px solid #354454;background:#1b2b39;border-radius:16px;padding:1.2rem;margin-bottom:1rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}.pills{display:flex;gap:.45rem;flex-wrap:wrap}.pill{border:1px solid #526577;border-radius:100px;background:#203342;color:#e8edf0;padding:.4rem .68rem;font-size:.84rem}.pill.selected{background:#e9b76c;color:#162332;border-color:#e9b76c}.asset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.asset{border:1px solid #52616e;background:#172535;border-radius:12px;padding:.3rem;color:#dbe5e9;overflow:hidden}.asset.selected{border:2px solid #e8b66b}.asset img{width:100%;height:95px;object-fit:contain;display:block}.asset span{font-size:.8rem}.world-asset img{height:78px;object-fit:cover;border-radius:7px}.map-toolbar{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem}.map-wrap{overflow:auto;min-height:390px;border:1px solid #354553;border-radius:16px;background:radial-gradient(circle at 1px 1px,#39495788 1px,transparent 0) 0 0/22px 22px,#111e2b;padding:1.4rem}.map-board{position:relative;min-width:max-content;min-height:330px;display:flex;gap:70px;align-items:flex-start}.map-board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.map-column{position:relative;display:flex;flex-direction:column;gap:20px;min-width:210px;max-width:210px}.node{position:relative;z-index:1;display:block;text-align:left;width:210px;min-height:86px;padding:.8rem;border:1px solid #537081;border-radius:11px;background:#1c3040;color:#f1f3f3;box-shadow:0 7px 20px #07101a77}.node.selected{outline:2px solid #ebbb72;border-color:#ebbb72}.node.ending{border-color:#b99a68;background:#364038}.node strong,.node span{display:block}.node strong{margin:.22rem 0 .35rem}.node span{font-size:.75rem;color:#b1bfca}.node em{font-size:.68rem;color:#e7b86d;font-style:normal;letter-spacing:.07em}.note{color:#b8c6cf;font-size:.86rem;line-height:1.5;background:#243644;padding:.85rem;border-left:3px solid #edb96d;border-radius:5px;margin:1rem 0}.choice-row{border:1px solid #465868;border-radius:12px;padding:.8rem;margin:.7rem 0;background:#182838}.choice-row .rowhead{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.choice-row .rowhead strong{font-size:.88rem;color:#eebd75}.tag{display:inline-block;border:1px solid #587080;color:#cfdee5;border-radius:30px;padding:.2rem .5rem;font-size:.75rem;margin:.15rem}.inline-actions{display:flex;gap:.5rem;flex-wrap:wrap}.preview-stage{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(circle at 50% 0,#3a4956,#101927 65%)}.play-card{max-width:900px;width:100%;border:1px solid #5d6972;border-radius:24px;overflow:hidden;background:#192633;box-shadow:0 25px 65px #030a12aa}.play-visual{height:clamp(210px,34vh,340px);background:#243443 center/cover;position:relative;display:flex;align-items:end;justify-content:space-between;padding:1.2rem;isolation:isolate}.play-visual:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#162431bb,transparent 70%);z-index:-1}.play-visual img{height:92%;width:35%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 12px 20px #09101b99)}.scene-kind{background:#142432bb;padding:.4rem .7rem;border:1px solid #a3aab280;border-radius:30px;font-size:.75rem;font-weight:700;letter-spacing:.1em}.play-content{padding:clamp(1.3rem,3vw,2.4rem)}.play-content h2{font-size:clamp(1.65rem,3vw,2.6rem)}.story-text{white-space:pre-wrap;color:#e2e6e5;font-family:Fraunces,Georgia,serif;font-size:clamp(1.08rem,1.7vw,1.3rem);line-height:1.6}.play-choice{display:block;width:100%;text-align:left;padding:1rem;border:1px solid #556a7a;border-radius:12px;background:#243d4e;color:#fff;margin:.65rem 0}.play-choice:hover{border-color:#ecc17e;background:#345369}.journey{border-top:1px solid #435568;padding-top:1.1rem;margin-top:1.5rem}.stat{color:#e8bd79}.modal-back{position:fixed;inset:0;background:#050a0dc9;z-index:50;display:grid;place-items:center;padding:1rem}.modal{width:min(560px,100%);background:#1b2b38;border:1px solid #607181;border-radius:17px;padding:1.5rem;box-shadow:0 20px 80px #000a}.toast{position:fixed;bottom:1.2rem;right:1.2rem;background:#e8bb77;color:#172534;padding:.75rem 1rem;border-radius:10px;font-weight:700;z-index:70;box-shadow:0 9px 30px #0008}.mobile-step{display:none}hr{border:0;border-top:1px solid #344755;margin:1.2rem 0}a{color:#ecc27c}@media(max-width:1100px){.shell{grid-template-columns:180px minmax(360px,1fr)}.inspector{position:static;max-height:none;grid-column:2;border-left:0;border-top:1px solid #334657}.sidebar{max-height:none}.asset-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){.topbar{position:static;align-items:flex-start;flex-wrap:wrap}.top-actions{width:100%}.top-actions .btn{flex:1}.shell{display:block}.sidebar{position:static;display:flex;overflow:auto;padding:.6rem;white-space:nowrap}.sidebar .step{width:auto;flex:none;padding:.6rem}.sidebar-note{display:none}.main,.inspector{padding:1rem}.inspector{border-left:0}.field-grid{grid-template-columns:1fr}.play-visual img{width:44%}.asset-grid{grid-template-columns:repeat(2,1fr)}}

.appearance{position:absolute;right:1rem;top:1rem;display:flex;gap:.3rem;flex-direction:column;align-items:flex-end}.appearance span{background:#172633d9;border:1px solid #eabd78;border-radius:20px;color:#ffe0a8;padding:.3rem .55rem;font-size:.75rem;font-weight:700}

.guide-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-color:#ae8557;background:linear-gradient(110deg,#263b47,#1b2b39)}.guide-card h3{margin-bottom:.3rem}.guide-card p{margin:0;color:#d4dee0}.guide-list{padding-left:1.45rem;margin:1rem 0}.guide-list li{padding-left:.25rem;margin:.6rem 0;line-height:1.5}.guide-list li::marker{color:#edbc74;font-weight:700}.guide-modal{max-height:min(90vh,850px);overflow:auto;width:min(680px,100%)}@media(max-width:700px){.guide-card{align-items:flex-start;flex-direction:column}.top-actions .btn{flex:auto}}

.shell{grid-template-columns:210px minmax(0,1fr);max-width:1420px}.main{max-width:1100px;width:100%;margin:auto}.optional{margin-top:.9rem;border-top:1px solid #405261;padding-top:.85rem}.optional summary{cursor:pointer;color:#e6bd80;font-weight:700;margin-bottom:.8rem}.optional[open] summary{margin-bottom:1rem}.scene-workspace{margin-top:1.2rem;scroll-margin-top:85px;border-color:#c09864}.next-actions{border:1px dashed #b29162;border-radius:14px;padding:1.2rem;margin:1.2rem 0;background:#25343e}.next-actions p{margin:.3rem 0 .8rem}.bottom-next{margin:1.5rem 0 2rem}.choice-row{background:#1d3040}.choice-row .field{margin-top:.65rem}@media(max-width:700px){.shell{display:block}.scene-workspace{scroll-margin-top:1rem}.map-wrap{min-height:260px}}
/* Visual novel player */
.novel-screen{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:clamp(.6rem,2vw,1.5rem);background:radial-gradient(ellipse at 50% 20%,#31404a,#0b111a 68%)}.novel-book{width:min(1120px,100%);border:1px solid #777675;border-radius:18px;overflow:hidden;background:#14212f;box-shadow:0 35px 90px #02060bbb}.novel-stage{height:clamp(440px,70vh,700px);position:relative;overflow:hidden;isolation:isolate;background:#243747}.novel-scenery{position:absolute;inset:-3%;z-index:-4;background:linear-gradient(0deg,#0b1422ad,#0b142213 55%),var(--scene-image) center/cover;animation:sceneryEnter 1.1s ease-out both,sceneryDrift 18s ease-in-out 1.1s infinite alternate}.novel-light{position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 72% 30%,#f7db9480,transparent 37%),linear-gradient(90deg,#07121cb8,transparent 55%),linear-gradient(0deg,#101c2bea,transparent 75%);animation:lightBreathe 8s ease-in-out infinite alternate}.novel-particles{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.novel-particles i{position:absolute;bottom:20%;left:14%;width:5px;height:5px;border-radius:50%;background:#f8d696;box-shadow:0 0 18px 5px #f3c3736b;opacity:.5;animation:firefly 8s linear infinite}.novel-particles i:nth-child(2){left:36%;bottom:42%;animation-delay:-3s;animation-duration:10s;transform:scale(.6)}.novel-particles i:nth-child(3){left:67%;bottom:25%;animation-delay:-5s;animation-duration:12s}.novel-particles i:nth-child(4){left:84%;bottom:55%;animation-delay:-7s;animation-duration:9s;transform:scale(.7)}.novel-particles i:nth-child(5){left:24%;bottom:65%;animation-delay:-1s;animation-duration:13s;transform:scale(.5)}.novel-particles i:nth-child(6){left:56%;bottom:70%;animation-delay:-4s;animation-duration:11s}.novel-chapter{position:absolute;top:0;left:0;right:0;padding:1.3rem 1.7rem;display:flex;justify-content:space-between;gap:1rem;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700;color:#f6e5c6;text-shadow:0 2px 6px #111;animation:fadeRise .7s .3s both}.novel-character{position:absolute;right:3%;bottom:18%;height:78%;max-width:56%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 15px 28px #08101ecb);animation:characterEnter .85s cubic-bezier(.2,.8,.2,1) both,characterIdle 6s ease-in-out .85s infinite alternate}.novel-details{position:absolute;right:1.5rem;top:4rem;display:flex;flex-direction:column;gap:.3rem}.novel-details span{background:#172638cb;color:#f8d59a;border:1px solid #e9be77;border-radius:20px;padding:.25rem .5rem;font-size:.76rem}.novel-dialogue{position:absolute;left:3%;right:3%;bottom:3%;min-height:200px;max-width:94%;border:1px solid #9e8b72;border-radius:15px;background:linear-gradient(145deg,#122132ed,#101a29f4);box-shadow:0 15px 35px #0009,0 0 35px #07162477;backdrop-filter:blur(15px);padding:1.3rem clamp(1.2rem,3vw,2.3rem);animation:dialogueEnter .65s .25s both}.novel-label{color:#eac68d;text-transform:uppercase;font-weight:700;letter-spacing:.14em;font-size:.72rem;margin-bottom:.5rem}.novel-diamond{margin-right:.6rem;font-size:1rem}.novel-dialogue h1{font-size:clamp(1.5rem,3vw,2.4rem);margin:0 0 .5rem;color:#fff7ea}.novel-text{font-family:Fraunces,Georgia,serif;font-size:clamp(1rem,1.65vw,1.3rem);line-height:1.55;white-space:pre-wrap;color:#e5e8e5;margin:0;min-height:3.4em;max-height:20vh;overflow:auto}.novel-read-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#b2c0ca;font-size:.8rem;margin-top:.7rem}.novel-skip{background:transparent;color:#f6cc8e;border:0;padding:.3rem;font-size:.82rem;font-weight:700}.novel-skip:hover{text-decoration:underline}.novel-next{padding:1.35rem clamp(1.2rem,4vw,3rem) 1.6rem;background:linear-gradient(180deg,#1b2d3b,#121f2d);animation:fadeRise .45s both}.novel-next[hidden]{display:none}.novel-prompt{text-transform:uppercase;color:#edc486;letter-spacing:.14em;font-size:.78rem;font-weight:700;margin-bottom:.65rem}.novel-choice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:.7rem}.novel-choice{display:flex;align-items:center;gap:.8rem;min-height:64px;width:100%;text-align:left;background:#273d4c;border:1px solid #607383;color:#f2f4f2;border-radius:10px;padding:.8rem 1rem;animation:fadeRise .4s both;animation-delay:calc(var(--order)*.09s)}.novel-choice:hover,.novel-choice:focus-visible{background:#375467;border-color:#f5c989;transform:translateY(-2px)}.novel-choice .choice-num{color:#e9b971;font-size:.75rem;letter-spacing:.08em}.novel-choice span:nth-child(2){flex:1}.novel-ending{max-width:740px;margin:auto}.novel-ending h2{font-size:clamp(1.5rem,3vw,2.5rem);color:#f9dbac}.novel-path{border-top:1px solid #546472;padding-top:1rem;color:#becbd1}.novel-ending .inline-actions{margin-top:1rem}@keyframes sceneryEnter{from{opacity:.1;transform:scale(1.11)}to{opacity:1;transform:scale(1.03)}}@keyframes sceneryDrift{from{transform:scale(1.03) translateX(-.4%)}to{transform:scale(1.09) translateX(.4%)}}@keyframes characterEnter{from{opacity:0;transform:translateX(45px) translateY(20px)}to{opacity:1;transform:translateX(0)}}@keyframes characterIdle{from{transform:translateY(0)}to{transform:translateY(-7px)}}@keyframes dialogueEnter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes lightBreathe{from{opacity:.7}to{opacity:1}}@keyframes firefly{0%{opacity:0;transform:translate(0,20px)}25%{opacity:.65}75%{opacity:.4}100%{opacity:0;transform:translate(35px,-90px)}}@media(max-width:700px){.novel-screen{min-height:calc(100vh - 130px);padding:0}.novel-book{border-radius:0}.novel-stage{height:min(76vh,670px);min-height:470px}.novel-character{right:-7%;bottom:29%;height:64%;max-width:70%}.novel-dialogue{left:2%;right:2%;bottom:2%;padding:1rem;min-height:205px}.novel-text{max-height:22vh}.novel-chapter{padding:.8rem 1rem}.novel-light{background:linear-gradient(0deg,#101c2bee,transparent 75%)}}@media(prefers-reduced-motion:reduce){.novel-scenery,.novel-light,.novel-particles i,.novel-character,.novel-chapter,.novel-dialogue,.novel-next,.novel-choice{animation:none!important}.novel-choice:hover{transform:none}}

/* 1980s 8-bit game presentation */
@font-face{font-family:PressStart;src:url('./press-start-2p.woff2') format('woff2');font-display:swap}
:root{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#03030a;color:#fff;--cyan:#00ebed;--pink:#f228e9;--yellow:#ffec00;--blue:#0826e8;--green:#27ec17}
body{background:#03030a;color:#fff}h1,h2,h3,.brand,.serif{font-family:PressStart,ui-monospace,monospace;font-weight:400;line-height:1.55;letter-spacing:-.035em}h1{font-size:clamp(1.2rem,2vw,1.8rem)}h2{font-size:clamp(.95rem,1.5vw,1.3rem)}h3{font-size:.9rem}p{line-height:1.6}small,.muted{color:#c2c5d7}label{color:#f6edb7}input,textarea,select{border:2px solid #8a82ff;border-radius:0;background:#05051a;color:#fff;padding:.78rem}input:focus,textarea:focus,select:focus{border-color:var(--yellow);box-shadow:0 0 0 2px var(--blue)}button{border-radius:0!important}.topbar{background:#020208;border-bottom:4px solid var(--blue);backdrop-filter:none;position:sticky}.brand{font-size:.9rem;color:var(--yellow);white-space:normal}.brand-mark{background:var(--blue);color:var(--yellow);border-radius:0;box-shadow:4px 4px 0 var(--pink)}.btn{background:#0b1258;border:2px solid var(--cyan);border-radius:0;color:#fff;box-shadow:3px 3px 0 #01010a;font-size:.86rem}.btn:hover{background:var(--blue);color:#fff}.btn.primary{background:var(--yellow);border-color:var(--yellow);color:#060621}.btn.primary:hover{background:#fff;color:#050515}.btn.ghost{background:#050516;border-color:#6059cb}.btn.danger{border-color:#f34467;color:#ff7e99}.sidebar,.inspector{background:#040414;border-color:#2020a0}.step{border-radius:0;color:#d8d8e2}.step.active{background:var(--blue);color:#fff;box-shadow:inset 4px 0 0 var(--yellow)}.step span{color:var(--yellow)}.main{background:#070719}.eyebrow{color:var(--cyan);font-family:PressStart,monospace;font-size:.63rem;line-height:1.7;letter-spacing:0}.lead{color:#dedde9}.card,.choice-row,.next-actions{border:2px solid #3334ad;border-radius:0;background:#090d2a}.guide-card{border-color:var(--pink);background:#13052a}.pill,.tag{border:2px solid #6d68cb;border-radius:0;background:#090a29;color:#fff}.pill.selected{border-color:var(--yellow);background:var(--yellow);color:#090824}.asset{border:2px solid #6c6bba;border-radius:0;background:#050516}.asset.selected{border-color:var(--yellow);box-shadow:4px 4px 0 var(--pink)}.asset img,.world-asset img{image-rendering:pixelated;border-radius:0}.asset span{font-family:ui-monospace,monospace}.map-wrap{border:3px solid var(--blue);border-radius:0;background-color:#030318;background-image:linear-gradient(#141471 1px,transparent 1px),linear-gradient(90deg,#141471 1px,transparent 1px);background-size:24px 24px}.node{border:2px solid var(--cyan);border-radius:0;background:#090a2a;box-shadow:4px 4px 0 #01010b}.node.ending{border-color:var(--yellow);background:#242000}.node.selected{outline:3px solid var(--pink);outline-offset:2px}.node strong{font-family:PressStart,monospace;font-size:.67rem;line-height:1.6}.node em{color:var(--yellow)}.node span{color:#ddd}.note{background:#0a1135;border-left:4px solid var(--pink);border-radius:0;color:#fff}.scene-workspace{border-color:var(--cyan)}.next-actions{border:2px dashed var(--yellow);background:#0b0e2c}.optional{border-color:#4646a1}.optional summary{color:var(--yellow)}.modal{border:3px solid var(--cyan);border-radius:0;background:#090923;box-shadow:8px 8px 0 var(--blue)}.toast{border-radius:0;background:var(--yellow);color:#07071a}
.novel-screen{background:#020208;padding:clamp(.6rem,2vw,1.5rem)}.novel-book{border:4px solid var(--blue);border-radius:0;background:#000;box-shadow:8px 8px 0 var(--pink)}.novel-stage{background:#000}.novel-scenery{inset:0;background:var(--scene-image) center/cover;image-rendering:pixelated;animation:retroReveal .4s steps(5,end) both}.novel-light{display:none}.novel-particles{display:none}.novel-character{right:0;bottom:20%;height:78%;max-width:57%;image-rendering:pixelated;filter:none;animation:retroSprite .45s steps(5,end) both,retroBob 1.7s steps(2,end) .45s infinite alternate}.novel-chapter{font-family:PressStart,monospace;font-size:clamp(.55rem,.85vw,.7rem);line-height:1.8;background:#000a;color:var(--yellow);text-shadow:2px 2px 0 #000;animation:none}.novel-details span{border:2px solid var(--yellow);border-radius:0;background:#000;color:var(--yellow)}.novel-dialogue{left:2%;right:2%;bottom:2%;max-width:96%;min-height:185px;border:3px solid #fff;border-radius:0;background:#000;box-shadow:6px 6px 0 var(--blue);backdrop-filter:none;padding:1.15rem clamp(1rem,2.5vw,2rem);animation:retroDialog .3s steps(3,end) both}.novel-label{color:var(--cyan);font-family:PressStart,monospace;font-size:.6rem}.novel-diamond{color:var(--pink)}.novel-dialogue h1{color:var(--yellow);font-size:clamp(.9rem,1.5vw,1.25rem);line-height:1.5}.novel-text{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(.95rem,1.3vw,1.16rem);color:#fff;line-height:1.6;max-height:24vh}.novel-read-controls{color:#c5c6e5}.novel-skip{color:var(--yellow);font-family:ui-monospace,monospace}.novel-next{background:#02020e;border-top:4px solid var(--blue);animation:retroDialog .3s steps(3,end) both}.novel-prompt{font-family:PressStart,monospace;color:var(--yellow);font-size:.8rem}.novel-choice{background:#0b145c;border:2px solid var(--cyan);border-radius:0;color:#fff;animation:retroDialog .25s steps(3,end) both;animation-delay:calc(var(--order)*.09s)}.novel-choice:hover,.novel-choice:focus-visible{background:var(--blue);border-color:var(--yellow);transform:translate(2px,-2px)}.novel-choice .choice-num{color:var(--yellow);font-family:PressStart,monospace}.novel-ending h2{color:var(--yellow)}.novel-path{border-color:var(--blue)}@keyframes retroReveal{from{opacity:0;filter:brightness(0)}to{opacity:1;filter:brightness(1)}}@keyframes retroSprite{from{opacity:0;transform:translateX(38px)}to{opacity:1;transform:translateX(0)}}@keyframes retroBob{from{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes retroDialog{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.novel-book{border-left:0;border-right:0;box-shadow:none}.novel-character{height:60%;max-width:70%;bottom:30%}.novel-dialogue{min-height:190px}.topbar{position:static}.brand{font-size:.73rem}}@media(prefers-reduced-motion:reduce){.novel-scenery,.novel-character,.novel-dialogue,.novel-next,.novel-choice{animation:none!important}}
.eyebrow,.novel-label,.novel-chapter,.node strong{font-size:.75rem}.novel-prompt{font-size:.8rem}.brand{font-size:clamp(.75rem,1.1vw,.95rem)}@media(max-width:700px){.novel-chapter{font-size:.64rem}.brand{font-size:.75rem}}
/* Distinct creator and full-screen player experiences */
.start-screen{position:relative;min-height:calc(100dvh - 64px);display:grid;place-items:center;overflow:hidden;background:#000}.start-art{position:absolute;inset:0;background:linear-gradient(90deg,#000d,#0008 60%,#0003),url('retro-forest.png') center/cover;image-rendering:pixelated}.start-content{position:relative;width:min(920px,92vw);padding:clamp(1rem,4vw,3rem)}.start-content h1{max-width:760px;font-size:clamp(1.5rem,3vw,2.7rem);color:var(--yellow)}.start-content>p{font-size:1.1rem;max-width:700px}.start-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}.start-option{min-height:190px;text-align:left;background:#03031ee8;border:3px solid var(--cyan);color:#fff;padding:1.4rem;display:flex;flex-direction:column;gap:.7rem;position:relative;cursor:pointer}.start-option:nth-child(2){border-color:var(--pink)}.start-option:hover,.start-option:focus-visible{background:#07115d;transform:translateY(-3px)}.start-option strong{font:1.05rem/1.6 PressStart,monospace;color:var(--yellow)}.start-option>span:nth-of-type(2){font-size:.96rem}.option-arrow{position:absolute;bottom:1rem;right:1.2rem;color:var(--yellow);font-size:1.5rem}.idea-screen{min-height:calc(100dvh - 64px);display:grid;place-items:center;background:#03030a url('retro-cavern.png') center/cover;padding:2rem}.idea-panel{width:min(760px,100%);background:#000e;border:3px solid var(--cyan);padding:clamp(1rem,3vw,2rem)}.idea-panel h1{color:var(--yellow)}.idea-panel .inline-actions{margin-top:1.4rem}
body:has(.novel-screen){overflow:hidden}.novel-screen{width:100vw;height:100dvh;min-height:0;padding:0;display:block;background:#000}.novel-book{position:relative;width:100%;height:100%;max-width:none;border:0;box-shadow:none;overflow:hidden}.novel-stage{height:100%;min-height:0}.novel-scenery{background-size:cover}.novel-chapter{z-index:2;padding:1.5rem 2rem}.novel-character{height:min(82vh,800px);right:5%;bottom:12%;z-index:1}.novel-dialogue{left:3%;right:3%;bottom:3%;max-width:94%;min-height:0;z-index:3;transition:bottom .2s steps(3,end)}.novel-book.has-choices .novel-dialogue{bottom:clamp(160px,25vh,250px)}.novel-next{position:absolute;bottom:0;left:0;right:0;max-height:35vh;overflow:auto;z-index:4;border-top:4px solid var(--blue);background:#02020eef}.novel-book.has-choices .novel-next{min-height:clamp(160px,25vh,250px)}.novel-text{max-height:20vh}.novel-dialogue-line{font-family:ui-monospace,monospace;color:var(--cyan);font-size:1rem;line-height:1.5;margin:.65rem 0 0;border-left:3px solid var(--pink);padding-left:.7rem}.preview-exit{position:absolute;right:1.25rem;top:1.1rem;z-index:8;background:#000d;border:2px solid var(--yellow);color:#fff;padding:.65rem .8rem;font:700 .82rem ui-monospace,monospace}.preview-exit:hover{background:var(--blue)}.novel-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none}.motion-Rain .novel-atmosphere{background:repeating-linear-gradient(105deg,transparent 0 15px,#b8faff88 16px 17px,transparent 18px 42px);background-size:200px 200px;animation:rainFall .4s linear infinite;opacity:.5}.motion-Clouds .novel-atmosphere,.motion-Mist .novel-atmosphere{background:linear-gradient(90deg,transparent,#ffffff22 50%,transparent);animation:cloudPass 12s linear infinite}.motion-Mist .novel-atmosphere{opacity:.6}.motion-Flicker .novel-atmosphere{background:#ffff7670;animation:flicker 3s steps(1,end) infinite}.motion-Stars .novel-atmosphere{background-image:radial-gradient(circle,#fff 1px,transparent 2px),radial-gradient(circle,var(--yellow) 1px,transparent 2px);background-size:87px 91px,123px 117px;animation:starPulse 2s steps(2,end) infinite}@keyframes rainFall{to{background-position:30px 110px}}@keyframes cloudPass{from{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes flicker{0%,90%,95%,100%{opacity:0}92%,97%{opacity:.45}}@keyframes starPulse{50%{opacity:.45}}[hidden]{display:none!important}@media(max-width:700px){body:has(.novel-screen){overflow:hidden}.novel-screen,.novel-book,.novel-stage{height:100dvh;min-height:0}.novel-character{height:59vh;right:-7%;bottom:24%;max-width:75%}.novel-dialogue{left:2%;right:2%;max-width:96%;bottom:2%;padding:.9rem}.novel-book.has-choices .novel-dialogue{bottom:clamp(190px,30vh,270px)}.novel-next{max-height:35vh;padding:1rem}.novel-book.has-choices .novel-next{min-height:clamp(190px,30vh,270px)}.novel-dialogue h1{font-size:.85rem}.novel-text{font-size:.9rem;max-height:15vh}.novel-chapter{padding:.8rem}.preview-exit{top:.6rem;right:.5rem;font-size:.7rem}.start-options{grid-template-columns:1fr}.start-screen{min-height:calc(100dvh - 64px)}.start-option{min-height:155px}}
@media(prefers-reduced-motion:reduce){.novel-atmosphere{animation:none!important}}
.novel-support{position:absolute;left:2%;bottom:16%;height:52%;max-width:37%;object-fit:contain;object-position:bottom;image-rendering:pixelated;z-index:1;animation:retroSprite .5s steps(5,end) both}.novel-dialogue-line strong{color:var(--yellow)}@media(max-width:700px){.novel-support{left:-5%;bottom:31%;height:38%;max-width:40%}}
.music-toggle{position:absolute;top:1.1rem;right:1.25rem;z-index:9;border:2px solid var(--cyan);background:#000e;color:var(--yellow);padding:.65rem .8rem;font:700 .82rem ui-monospace,monospace;cursor:pointer}.music-toggle:hover,.music-toggle:focus-visible{background:var(--blue)}.preview-exit+.music-toggle{right:11.5rem}@media(max-width:700px){.music-toggle{top:.6rem;right:.5rem;font-size:.7rem}.preview-exit+.music-toggle{top:3.5rem;right:.5rem}}
/* Title and featured-adventure entry, using the existing pixel artwork. */
.title-screen{position:relative;min-height:100dvh;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#01010b;color:#fff}.title-art{position:absolute;inset:0;background:linear-gradient(90deg,#01010bf2 0%,#01010bca 48%,#01010b49 100%),url('retro-forest.png') center/cover;image-rendering:pixelated}.title-screen:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#0003 4px 5px)}.title-top,.title-content,.title-foot{position:relative;z-index:1}.title-top{display:flex;align-items:center;justify-content:space-between;padding:clamp(1rem,2.5vw,2rem) clamp(1rem,4vw,4rem)}.title-brand{font:clamp(.8rem,1.4vw,1rem)/1.5 PressStart,monospace;color:var(--yellow)}.title-content{width:min(1050px,100%);padding:2rem clamp(1rem,4vw,4rem);margin:auto 0}.title-content h1{font:clamp(1.55rem,3.7vw,3.6rem)/1.45 PressStart,monospace;color:var(--yellow);max-width:970px;text-shadow:5px 5px #051068;margin:.8rem 0 1.3rem}.title-content>p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6;max-width:670px}.title-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:850px;margin-top:2rem}.title-action{position:relative;min-height:185px;display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;padding:1.35rem 2.8rem 1.35rem 1.4rem;text-align:left;border:3px solid var(--cyan);background:#03031de9;color:#fff;cursor:pointer}.title-create{border-color:var(--pink)}.title-action:hover,.title-action:focus-visible{background:#0b1761;transform:translateY(-3px)}.title-action strong{font:clamp(.95rem,1.55vw,1.3rem)/1.5 PressStart,monospace;color:var(--yellow)}.title-action>span:nth-of-type(2){font-size:1rem;line-height:1.5}.title-arrow{position:absolute;right:1.2rem;bottom:1rem;font-size:1.6rem;color:var(--yellow)}.title-foot{padding:1rem clamp(1rem,4vw,4rem);color:#c6cced;font:.7rem/1.5 PressStart,monospace}.title-foot span{color:var(--yellow);padding:0 .7rem}.featured-novel .novel-text{max-height:min(32vh,330px)}.featured-novel .novel-dialogue{max-height:54vh;overflow:auto}.featured-novel .novel-book.has-choices .novel-dialogue{max-height:calc(100dvh - clamp(160px,25vh,250px) - 5rem)}@media(max-width:700px){.title-content{padding:1.4rem 1rem}.title-content h1{font-size:clamp(1.45rem,6vw,2.2rem)}.title-actions{grid-template-columns:1fr;margin-top:1.4rem}.title-action{min-height:145px}.title-foot{font-size:.58rem}.featured-novel .novel-text{max-height:23vh}.featured-novel .novel-book.has-choices .novel-dialogue{max-height:calc(100dvh - clamp(190px,30vh,270px) - 3rem)}}

.featured-novel .novel-character,.featured-novel .novel-support{display:none}.featured-novel .novel-scenery{background-position:center 34%}
/* Keep scene art above the opaque stage surface and beneath novel UI. */
.novel-scenery{z-index:0}.featured-novel .novel-chapter span:last-child{display:none}
/* Featured adventure chooser */
.featured-picker{min-height:100dvh;background:#07091c;color:#f8f7ef;padding:clamp(1rem,3vw,2rem) clamp(1rem,5vw,5rem);background-image:radial-gradient(circle at 80% 0%,#34407c75,transparent 45%)}
.picker-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.picker-content{max-width:1180px;margin:clamp(2rem,7vh,5rem) auto}.picker-content h1{font:clamp(1.4rem,3vw,2.7rem)/1.5 PressStart,monospace;color:var(--yellow);margin:.6rem 0}.picker-content>p{font-size:1.15rem;color:#d6ddf2}.picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,2rem);margin-top:2rem}.adventure-card{display:flex;flex-direction:column;text-align:left;cursor:pointer;padding:0;background:#101536;color:#fff;border:3px solid #6b7bb3;box-shadow:9px 9px 0 #020612;transition:transform .18s,border-color .18s}.adventure-card:hover,.adventure-card:focus-visible{transform:translateY(-5px);border-color:var(--yellow)}.adventure-card img{width:100%;aspect-ratio:16/9;object-fit:cover;image-rendering:pixelated}.card-info{display:flex;flex-direction:column;gap:.8rem;padding:1.5rem;flex:1}.card-info small{color:#9ce8fa;font:.65rem/1.6 PressStart,monospace}.card-info strong{color:#ffe478;font:clamp(.95rem,1.5vw,1.2rem)/1.55 PressStart,monospace}.card-info>span{font-size:1.1rem;line-height:1.5}.card-info em{font-style:normal;color:#ffcf75;font-weight:700;margin-top:auto;padding-top:.5rem}
/* Pip keeps the established pixel art presentation, with a softer reading palette. */
.pip-novel{--yellow:#ffe99a}.pip-novel .novel-stage:after{opacity:.45}.pip-novel .novel-choice{border-color:#9ddde3}.pip-novel .novel-choice:hover,.pip-novel .novel-choice:focus-visible{border-color:#ffe99a}.pip-novel .novel-text{font-size:clamp(1.05rem,1.45vw,1.25rem);line-height:1.65}.pip-novel .novel-scenery{background-position:center 44%}
@media(max-width:720px){.picker-grid{grid-template-columns:1fr}.picker-top .title-brand{font-size:.65rem}.picker-content{margin:2rem auto}.card-info{padding:1.15rem}}
/* Scene visual builder: location and story object remain identical in editor and player. */
.visual-builder{margin:1.2rem 0;padding:1rem;border:2px solid var(--cyan);background:#050b28}.visual-builder-head{display:flex;justify-content:space-between;align-items:start;gap:1rem}.visual-builder-head p{font-size:.9rem}.visual-builder-head .btn{white-space:normal}.visual-builder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:1rem}.visual-builder-grid .field{margin:0}.visual-tip{color:#d6d8f8;font-size:.86rem;margin:1rem 0 0}.visual-composition{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000;border:3px solid #5256a5;isolation:isolate}.visual-backdrop{position:absolute;inset:0;background:var(--visual-backdrop) center/cover;image-rendering:pixelated}.visual-preview .visual-backdrop{image-rendering:pixelated}.visual-actor{position:absolute;z-index:1;height:77%;max-width:43%;object-fit:contain;object-position:bottom;bottom:5%;left:5%;image-rendering:pixelated;filter:drop-shadow(6px 6px 0 #000)}.visual-object{position:absolute;z-index:2;right:18%;bottom:20%;width:clamp(45px,12%,100px);aspect-ratio:1;filter:drop-shadow(5px 7px 0 #000)}.pixel-prop{display:block;width:100%;height:100%;image-rendering:pixelated}.visual-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0008,transparent 35%),linear-gradient(90deg,#0005,transparent 23%,transparent 76%,#0006)}.visual-time-Dawn .visual-backdrop{filter:sepia(.25) saturate(1.2) hue-rotate(320deg) brightness(1.1)}.visual-time-Day .visual-backdrop{filter:brightness(1.25) saturate(1.1)}.visual-time-Dusk .visual-backdrop{filter:sepia(.45) saturate(1.3) hue-rotate(312deg) brightness(.8)}.visual-time-Night .visual-backdrop{filter:brightness(.65) saturate(1.3) hue-rotate(18deg)}.visual-mood-Dangerous .visual-vignette{background:linear-gradient(0deg,#a8004544,transparent 60%),linear-gradient(90deg,#0009,transparent 35%,#0009)}.visual-mood-Hopeful .visual-vignette{background:linear-gradient(0deg,#ffe74b33,transparent 48%)}.visual-mood-Peaceful .visual-vignette{background:linear-gradient(0deg,#52e5ce22,transparent 45%)}.visual-stage-prop{position:absolute;z-index:1;right:19%;bottom:34%;width:min(12vw,120px);aspect-ratio:1;filter:drop-shadow(7px 9px 0 #000)}.novel-screen:has(.visual-stage-prop) .novel-character{left:5%;right:auto;max-width:35%;height:min(75vh,720px)}.novel-screen:has(.visual-stage-prop) .novel-scenery{filter:saturate(1.1)}.novel-stage[class*="visual-time-"] .novel-scenery{filter:brightness(.8)}.novel-stage.visual-time-Day .novel-scenery{filter:brightness(1.2)}.novel-stage.visual-time-Night .novel-scenery{filter:brightness(.65) saturate(1.3)}.novel-stage.visual-time-Dusk .novel-scenery{filter:sepia(.3) brightness(.75)}
@media(max-width:750px){.visual-builder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-builder-head{flex-direction:column}.visual-stage-prop{bottom:43%;width:15vw}.novel-screen:has(.visual-stage-prop) .novel-character{height:52vh;bottom:34%;max-width:45%}}
.novel-stage.visual-mood-Dangerous .novel-scenery{filter:brightness(.7) saturate(1.5) hue-rotate(320deg)}.novel-stage.visual-mood-Hopeful .novel-scenery{filter:brightness(1.15) saturate(1.2)}.novel-stage.visual-mood-Peaceful .novel-scenery{filter:brightness(.95) saturate(.9)}
.asset-library{max-height:470px;overflow:auto;padding:.35rem;background:#050922;border:2px solid #303b82;scrollbar-color:#8582e5 #050922}.asset-library .asset img{image-rendering:pixelated}.asset-library .asset[hidden]{display:none}.asset-library .asset{min-height:126px}.asset-library .asset span{overflow-wrap:anywhere}.asset-library .asset:hover,.asset-library .asset:focus-visible{border-color:var(--yellow);background:#141e55}
/* Editable names and spectrum colour treatments for locations and character sprites. */
.asset-settings{display:grid;grid-template-columns:minmax(115px,30%) 1fr;gap:1rem;align-items:center;margin:1rem 0;padding:.85rem;border:2px solid #6260ad;background:#080e32}.asset-settings-fields{min-width:0}.asset-settings-fields strong{display:block;color:var(--yellow);font:.66rem/1.6 PressStart,monospace;margin-bottom:.75rem}.asset-settings .field-grid{gap:.7rem}.asset-settings input[type=color]{height:45px;padding:.15rem;cursor:pointer}.asset-settings-preview{position:relative;align-self:stretch;min-height:110px;background:#000;overflow:hidden}.asset-settings-preview img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;image-rendering:pixelated}.asset-settings-preview.actor-preview img{object-fit:contain}.asset-settings-preview i.tinted{position:absolute;inset:0;background:var(--asset-color);mix-blend-mode:color;opacity:.8;pointer-events:none}.asset-settings-preview.actor-preview i.tinted{-webkit-mask:var(--asset-url) center/contain no-repeat;mask:var(--asset-url) center/contain no-repeat;mix-blend-mode:normal;opacity:.62}.scene-asset-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.scene-asset-settings .asset-settings{grid-template-columns:1fr;margin:.8rem 0}.scene-asset-settings .asset-settings-preview{aspect-ratio:16/6;min-height:90px}.visual-caption{position:absolute;top:.5rem;left:.5rem;z-index:4;display:flex;gap:.4rem}.visual-caption span,.novel-scene-identity span{display:block;color:#ffef94;background:#030314dd;border:1px solid #7b8bff;padding:.25rem .45rem;font:.56rem/1.5 PressStart,monospace}.visual-location-color,.novel-location-color{position:absolute;inset:0;background:var(--location-color);mix-blend-mode:color;opacity:.66;pointer-events:none}.visual-location-color{z-index:1}.novel-location-color{z-index:1}.visual-character-color{position:absolute;left:5%;bottom:5%;height:77%;width:43%;background:var(--character-color);-webkit-mask:var(--actor-mask) center bottom/contain no-repeat;mask:var(--actor-mask) center bottom/contain no-repeat;opacity:.62;z-index:2;pointer-events:none}.novel-actor-color{position:absolute;left:auto;right:5%;bottom:12%;height:min(82vh,800px);width:57%;background:var(--character-color);-webkit-mask:var(--actor-mask) center bottom/contain no-repeat;mask:var(--actor-mask) center bottom/contain no-repeat;opacity:.62;z-index:2;pointer-events:none}.novel-stage:has(.visual-stage-prop) .novel-actor-color{left:5%;right:auto;width:35%;height:min(75vh,720px)}.novel-scene-identity{position:absolute;top:5.4rem;left:2rem;display:flex;gap:.4rem;z-index:3;pointer-events:none}
@media(max-width:900px){.scene-asset-settings{grid-template-columns:1fr}.scene-asset-settings .asset-settings{grid-template-columns:minmax(100px,30%) 1fr}}
@media(max-width:700px){.asset-settings{grid-template-columns:1fr}.asset-settings-preview{aspect-ratio:16/6}.visual-caption span,.novel-scene-identity span{font-size:.42rem}.novel-scene-identity{top:3.8rem;left:.6rem}.novel-actor-color{right:-7%;bottom:24%;height:59vh;width:75%}.novel-stage:has(.visual-stage-prop) .novel-actor-color{left:5%;right:auto;bottom:34%;height:52vh;width:45%}}
.music-preview-note{color:var(--yellow);font:.68rem/1.5 PressStart,monospace;margin:.75rem 0 0}.menu-music-btn[aria-pressed="true"]{border-color:var(--yellow);color:var(--yellow)}
/* Character design controls and pixel-art details. */
.character-options{margin-top:1rem;padding-top:.8rem;border-top:1px solid #6260ad}.character-options .field{margin:.55rem 0}.character-options .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-options input[type=range]{width:100%;accent-color:var(--cyan);cursor:pointer}.character-options output{color:var(--yellow)}.character-checks{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin:.8rem 0}.character-checks label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.character-checks input{width:1.05rem;height:1.05rem;accent-color:var(--cyan)}
.asset-settings-preview.actor-preview img,.visual-actor,.novel-character{scale:calc(var(--character-facing,1) * var(--character-scale,1)) var(--character-scale,1);filter:var(--character-glow,drop-shadow(6px 6px 0 #000))}.asset-settings-preview.actor-preview{align-self:start;aspect-ratio:1}.asset-settings-preview.actor-preview img{object-position:center top}.character-carry{position:absolute;z-index:3;width:clamp(32px,9%,70px);aspect-ratio:1;filter:drop-shadow(4px 4px 0 #000);pointer-events:none}.carry-preview{right:18%;bottom:15%;width:18%;max-width:65px}.carry-scene{left:31%;bottom:19%}.carry-game{right:5%;bottom:23%;width:min(9vw,100px)}.novel-screen:has(.visual-stage-prop) .carry-game{left:27%;right:auto}
@media(max-width:700px){.character-options .field-grid{grid-template-columns:1fr}.carry-game{right:2%;bottom:35%;width:12vw}.novel-screen:has(.visual-stage-prop) .carry-game{left:31%;bottom:41%}}
/* Square, high-contrast controls and a visual inventory of carryable sprites. */
.carry-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.carry-choice{min-width:0;min-height:76px;padding:.35rem .2rem;background:#030318;border:2px solid #635eb4;color:#fff;font:clamp(.55rem,.9vw,.72rem)/1.25 ui-monospace,monospace;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.carry-choice:hover,.carry-choice:focus-visible{border-color:var(--cyan);background:#10135a}.carry-choice.selected{border-color:var(--yellow);box-shadow:inset 0 0 0 2px #080819,3px 3px 0 var(--pink);color:var(--yellow)}.carry-choice-art{width:34px;height:34px;display:grid;place-items:center;font-size:1.6rem;line-height:1}.carry-choice-art svg{width:100%;height:100%}.character-options input[type=range]{appearance:none;-webkit-appearance:none;height:12px;border:2px solid #807cff;border-radius:0;background:linear-gradient(90deg,#211d72,#0a0a2a);padding:0;cursor:pointer}.character-options input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:22px;border:3px solid #080818;border-radius:0;background:var(--yellow);box-shadow:2px 2px 0 var(--pink)}.character-options input[type=range]::-moz-range-thumb{width:17px;height:18px;border:3px solid #080818;border-radius:0;background:var(--yellow);box-shadow:2px 2px 0 var(--pink)}.character-checks input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;border:2px solid #8a82ff;border-radius:0;background:#05051a;padding:0}.character-checks input[type=checkbox]:checked{background:var(--yellow);box-shadow:inset 0 0 0 4px #05051a}.character-checks input[type=checkbox]:focus-visible,.carry-choice:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:550px){.carry-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.carry-choice{min-height:65px;font-size:.55rem}}
@media(min-width:1051px){.picker-content{max-width:1440px}.picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-info{padding:1.2rem}.card-info strong{font-size:1rem}.card-info>span{font-size:1rem}}

@media(min-width:1051px){.picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.picker-content{max-width:1180px}}
/* The map is the first screen; editing begins only after selecting a block. */
.map-empty{margin:1rem 0;padding:1.4rem;border:2px solid #6664b4;background:#0a0f32}.map-empty strong{display:block;color:var(--yellow);font:clamp(.75rem,1.4vw,.95rem)/1.6 PressStart,monospace}.map-empty p{margin:.65rem 0 1rem;color:#d8def7}.block-editor-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.scene-workspace{scroll-margin-top:90px}.map-toolbar .btn:first-of-type{margin-left:auto}.node{cursor:pointer}.node:hover,.node:focus-visible{border-color:var(--yellow);box-shadow:4px 4px 0 var(--pink);transform:translateY(-2px)}.node:focus-visible{outline:2px solid #fff;outline-offset:3px}.choice-row .optional{margin-top:.4rem}.choice-row .optional summary{font-size:.9rem}.scene-workspace>.section-head{margin-top:1rem}
@media(max-width:700px){.map-toolbar .btn:first-of-type{margin-left:0}.block-editor-top{align-items:flex-start;flex-direction:column}.map-empty{padding:1rem}.scene-workspace{scroll-margin-top:1rem}}
/* The picture on each map block and the first two visible scene controls stay in sync. */
.node{min-height:185px;overflow:hidden}.node-picture{position:relative;display:block;height:78px;margin:-.8rem -.8rem .75rem;overflow:hidden;background:#000;border-bottom:2px solid #5355aa}.node-picture img{position:absolute;display:block;image-rendering:pixelated}.node-picture .node-place{inset:0;width:100%;height:100%;object-fit:cover}.node-picture .node-person{right:4%;bottom:-12%;height:105%;max-width:58%;object-fit:contain;filter:drop-shadow(2px 2px 0 #000)}.node .node-meta{color:#bfe8ff;font:.68rem/1.5 ui-monospace,monospace;margin:.25rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node strong{min-height:2.15rem}.block-look{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1.05fr);gap:1rem;align-items:center;padding:1rem;margin:.6rem 0 1.25rem;background:#040821;border:2px solid #5456aa}.block-look h3{color:var(--yellow);margin:0 0 .35rem}.block-look p{font-size:.92rem;color:#c8d5ed;margin-bottom:.7rem}.block-look-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.block-look-fields .field{margin:0}.block-look-preview .visual-composition{aspect-ratio:16/8;min-height:170px}.block-look-preview .visual-caption span{font-size:.45rem}.block-look-preview .visual-actor{left:8%;max-width:48%}
@media(max-width:950px){.block-look{grid-template-columns:1fr}.block-look-preview .visual-composition{min-height:0}}
@media(max-width:550px){.block-look-fields{grid-template-columns:1fr}.node-picture{height:66px}}
.block-edit-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:-.35rem 0 1.25rem}.block-asset-panel{min-width:0;border:2px solid #5d59ae;background:#080d2c}.block-asset-panel[open]{grid-column:span 2;border-color:var(--cyan)}.block-asset-panel summary{cursor:pointer;padding:.8rem 1rem;color:var(--yellow);font:clamp(.7rem,1vw,.85rem)/1.5 ui-monospace,monospace}.block-asset-panel summary:hover,.block-asset-panel summary:focus-visible{background:#17205a;outline:2px solid var(--yellow);outline-offset:-2px}.block-asset-panel .asset-settings{margin:0 .75rem .75rem}.block-asset-panel>p{margin:.75rem 1rem;color:#d7dcf7}.node .node-meta{display:block}.node .node-meta span{display:inline}
@media(max-width:700px){.block-edit-details{grid-template-columns:1fr}.block-asset-panel[open]{grid-column:auto}}
.easy-shell{max-width:1040px;margin:0 auto;padding:clamp(1rem,3vw,2.5rem);min-height:calc(100dvh - 64px)}.easy-shell h1{color:var(--yellow);font-size:clamp(1.35rem,3vw,2.2rem)}.easy-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.5rem 0 2rem}.easy-progress button{padding:1rem .4rem;background:#090d2d;color:#fff;border:2px solid #565d96;font:clamp(.6rem,1vw,.8rem)/1.5 PressStart,monospace;cursor:pointer}.easy-progress button.active{border-color:var(--yellow);background:#172267;color:var(--yellow)}.easy-panel{background:#101a34;border:2px solid #37c9dc;padding:clamp(1rem,2.5vw,2rem);margin:1rem 0;box-shadow:6px 6px 0 #020414}.easy-panel h2{color:var(--yellow);font-size:1.25rem}.easy-panel>.field{margin:1rem 0}.easy-panel input,.easy-panel textarea,.easy-panel select{font-size:1rem}.easy-panel textarea{min-height:110px}.easy-picture{height:clamp(160px,26vw,270px);position:relative;overflow:hidden;background:#050719;border:2px solid #555e99;margin:1rem 0;image-rendering:pixelated}.easy-picture img:first-child{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.easy-picture img:nth-child(2){position:absolute;height:85%;width:40%;right:5%;bottom:0;object-fit:contain;object-position:bottom;image-rendering:pixelated;filter:drop-shadow(5px 5px 0 #000)}.easy-endings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.easy-controls{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.4rem 0}.easy-extra{margin:2rem 0;text-align:right}.easy-shell .btn{min-height:46px}@media(max-width:680px){.easy-endings{grid-template-columns:1fr}.easy-progress{gap:.3rem}.easy-progress button{font-size:.55rem;padding:.7rem .2rem}.easy-picture{height:190px}}
.novel-scenery{animation:retroReveal .4s steps(5,end) both,sceneCamera 21s steps(28,end) .4s infinite alternate;transform-origin:center center}.novel-atmosphere::before,.novel-atmosphere::after{content:"";position:absolute;inset:0;pointer-events:none}.novel-atmosphere::after{background:linear-gradient(90deg,transparent 15%,#ffffff0e 48%,transparent 80%);animation:sceneShimmer 9s steps(12,end) infinite alternate}.motion-Rain .novel-atmosphere::before{background:repeating-linear-gradient(105deg,transparent 0 54px,#c3faff99 55px 57px,transparent 58px 96px);background-size:290px 260px;opacity:.35;animation:rainFall 1s linear infinite reverse}.motion-Mist .novel-atmosphere::before,.motion-Clouds .novel-atmosphere::before{background:linear-gradient(90deg,transparent,#b0e9ff21 30%,#ffffff3b 50%,transparent 80%);width:150%;animation:mistDrift 16s steps(26,end) infinite alternate}.motion-Clouds .novel-atmosphere::before{opacity:.55}.motion-Wind .novel-atmosphere::before{background:repeating-linear-gradient(165deg,transparent 0 80px,#d8eeff2e 81px 83px,transparent 84px 150px);background-size:200% 180%;animation:windSweep 4s steps(18,end) infinite}.motion-Snow .novel-atmosphere,.motion-Snow .novel-atmosphere::before{background-image:radial-gradient(circle,#e6f8ffdd 1px,transparent 2px),radial-gradient(circle,#e6f8ff99 2px,transparent 3px);background-size:77px 93px,139px 119px;animation:snowFall 8s steps(20,end) infinite}.motion-Snow .novel-atmosphere::before{opacity:.45;animation-duration:12s;animation-direction:reverse}.motion-Embers .novel-atmosphere,.motion-Embers .novel-atmosphere::before{background-image:radial-gradient(circle,#ffe876 2px,transparent 3px),radial-gradient(circle,#ff5c63 2px,transparent 4px);background-size:89px 113px,157px 143px;animation:embersRise 9s steps(16,end) infinite;opacity:.7}.motion-Embers .novel-atmosphere::before{animation-duration:13s;opacity:.4}.motion-Flicker .novel-atmosphere::before{background:radial-gradient(circle at 55% 50%,#ffe68043,transparent 55%);animation:fireGlow 2.7s steps(4,end) infinite}.novel-support{animation:retroSprite .5s steps(5,end) both,supportIdle 2.7s steps(3,end) .5s infinite alternate}.visual-stage-prop,.carry-game{animation:propHover 3s steps(4,end) infinite alternate}@keyframes sceneCamera{from{transform:scale(1.04) translate(-.4%,.3%)}to{transform:scale(1.11) translate(.6%,-.5%)}}@keyframes sceneShimmer{to{transform:translateX(12%);opacity:.4}}@keyframes mistDrift{from{transform:translateX(-20%)}to{transform:translateX(10%)}}@keyframes windSweep{to{background-position:70% 55%}}@keyframes snowFall{to{background-position:28px 420px,-33px 520px}}@keyframes embersRise{to{background-position:35px -360px,-18px -440px}}@keyframes fireGlow{50%{opacity:.2}75%{opacity:.7}}@keyframes supportIdle{to{transform:translateY(-5px)}}@keyframes propHover{to{translate:0 -7px}}@media(prefers-reduced-motion:reduce){.novel-scenery,.novel-atmosphere,.novel-atmosphere::before,.novel-atmosphere::after,.novel-character,.novel-support,.visual-stage-prop,.carry-game{animation:none!important;transform:none!important;translate:none!important}}

/* Render the finer Spectrum-style scene art smoothly at modern screen sizes. */
.adventure-card[data-action="play-city"] img,.adventure-card[data-action="play-clock"] img,.soft-pixel-novel .novel-scenery{image-rendering:auto;filter:none}

/* Easy Mode keeps the opening, choices and outcomes together on one editable map. */
.easy-shell{max-width:1120px}.easy-map-head{display:flex;justify-content:space-between;align-items:end;gap:1.25rem;flex-wrap:wrap;margin:.6rem 0 1.5rem}.easy-map-head h1{margin:.15rem 0 .55rem}.easy-map-head p{margin:0;color:#dce3ff;font-size:1rem}.easy-map-head .easy-controls{margin:0}.easy-story-map{position:relative;padding:1.5rem clamp(.75rem,3vw,2rem) 2rem;border:3px solid #323fc2;background-color:#060922;background-image:linear-gradient(#202765 1px,transparent 1px),linear-gradient(90deg,#202765 1px,transparent 1px);background-size:32px 32px}.easy-story-start{max-width:370px;margin:0 auto;position:relative}.easy-story-start::after{content:"";position:absolute;top:100%;left:50%;height:28px;border-left:3px solid #f2c56e}.easy-story-branches{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,5vw,5rem);max-width:820px;margin:27px auto 0}.easy-story-branches::before{content:"";position:absolute;top:0;left:25%;right:25%;border-top:3px solid #f2c56e}.easy-story-branch{min-width:0;position:relative;padding-top:20px}.easy-story-branch::before{content:"";position:absolute;top:0;left:50%;height:23px;border-left:3px solid #f2c56e}.easy-story-link{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:84px;margin:0 auto 1rem;padding:.7rem 1rem;max-width:350px;text-align:center;background:#1e1b09;border:2px solid #f2c56e;color:#fff}.easy-story-link span:first-child{color:#ffe868;font:700 .75rem/1.3 ui-monospace,monospace}.easy-story-link strong{font:700 1rem/1.35 ui-monospace,monospace;overflow-wrap:anywhere}.easy-story-link span:last-child{color:#ffe868;line-height:1}.easy-story-card{display:block;width:100%;padding:0;text-align:left;background:#090e2b;color:#fff;border:3px solid #36d4e5;cursor:pointer;box-shadow:5px 5px 0 #010311}.easy-story-card.ending{border-color:#f3dc3d;background:#201d09}.easy-story-card.selected{outline:3px solid #fff;outline-offset:3px}.easy-story-card:hover,.easy-story-card:focus-visible{transform:translateY(-3px);outline:3px solid #fff;outline-offset:3px}.easy-story-art{position:relative;display:block;height:135px;overflow:hidden;background:#050719}.easy-story-art img:first-child{width:100%;height:100%;object-fit:cover;image-rendering:auto}.easy-story-art img:nth-child(2){position:absolute;right:7%;bottom:0;width:40%;height:90%;object-fit:contain;object-position:bottom;image-rendering:auto;filter:drop-shadow(3px 3px 0 #000)}.easy-story-copy{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.1rem 1.2rem}.easy-story-copy em{font:700 .8rem/1.35 ui-monospace,monospace;color:#ffe868;font-style:normal}.easy-story-copy strong{font:700 clamp(.9rem,1.6vw,1.15rem)/1.45 PressStart,ui-monospace,monospace;overflow-wrap:anywhere}.easy-story-copy>span:not(.easy-edit-hint){font-size:.96rem;line-height:1.4;color:#edf2ff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.easy-story-copy small{font:.84rem/1.35 ui-monospace,monospace;color:#afd9ee}.easy-story-copy .easy-edit-hint{color:#ffe868;font-size:.85rem}.easy-block-editor{margin-top:1.5rem;scroll-margin-top:1.5rem}.easy-edit-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.easy-edit-heading h2{margin:.5rem 0;color:#fff}.easy-edit-heading>span{font-size:.9rem;color:#c8d5f4}.easy-choice-fields{margin:1.5rem 0}.easy-choice-fields h3{color:#ffe868}.easy-choice-field{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;padding:.9rem 0;border-top:1px solid #45517b}.easy-choice-field label{flex-basis:100%;color:#fff}.easy-choice-field input{flex:1 1 230px;min-width:0}.easy-choice-field .btn{flex:0 0 auto}.easy-picture,.easy-picture img:first-child,.easy-picture img:nth-child(2){image-rendering:auto}@media(max-width:680px){.easy-map-head .easy-controls{width:100%}.easy-story-map{padding:1rem .65rem 1.5rem}.easy-story-start{max-width:320px}.easy-story-branches{gap:.75rem}.easy-story-branches::before{left:25%;right:25%}.easy-story-branch{padding-top:18px}.easy-story-art{height:95px}.easy-story-copy{padding:.75rem .6rem 1rem;gap:.35rem}.easy-story-copy strong{font-size:.7rem;line-height:1.55}.easy-story-copy>span:not(.easy-edit-hint){font-size:.82rem}.easy-story-copy small{font-size:.72rem}.easy-story-link{min-height:100px;padding:.55rem .35rem}.easy-story-link strong{font-size:.85rem}.easy-story-link span:first-child{font-size:.7rem}}

.easy-story-map{overflow-x:auto;overflow-y:hidden;display:flex;justify-content:safe center;align-items:flex-start}.easy-tree-node{display:flex;flex-direction:column;align-items:center;min-width:275px}.easy-tree-node>.easy-story-card{width:min(310px,100%)}.easy-tree-children{display:flex;justify-content:center;align-items:flex-start;gap:clamp(.8rem,2vw,2rem);position:relative;margin-top:28px}.easy-tree-node:has(>.easy-tree-children)>.easy-story-card{position:relative}.easy-tree-node:has(>.easy-tree-children)>.easy-story-card::after{content:"";position:absolute;left:50%;top:100%;height:28px;border-left:3px solid #f2c56e}.easy-tree-children::before{content:"";position:absolute;top:0;left:calc(50% / var(--easy-branches,2));right:calc(50% / var(--easy-branches,2));border-top:3px solid #f2c56e}.easy-tree-child{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:20px;min-width:275px}.easy-tree-child::before{content:"";position:absolute;left:50%;top:0;height:20px;border-left:3px solid #f2c56e}.easy-story-link{width:min(310px,100%);cursor:pointer}.easy-story-link:hover,.easy-story-link:focus-visible{outline:3px solid #fff;outline-offset:2px}.easy-tree-return{padding:1rem}.easy-type-field{padding:1rem;margin:1.2rem 0;border:2px solid #6476c9;background:#0a1232}.easy-type-field strong{display:block;margin-bottom:.8rem;color:#ffe868}.easy-type-actions{display:flex;flex-wrap:wrap;gap:.7rem}.block-type-select{margin:1rem 0}.block-type-select p{margin:.45rem 0 0}@media(max-width:680px){.easy-tree-node,.easy-tree-child{min-width:245px}.easy-tree-node>.easy-story-card,.easy-story-link{width:245px}}

.node .node-choice-list{display:block;margin-top:.7rem;padding-top:.45rem;border-top:1px solid #4856a0}.node .node-choice-list>span{display:block;padding:.34rem .1rem;border-bottom:1px solid #303b72;color:#fff;font-size:.78rem;line-height:1.35}.node .node-choice-list b{font-weight:700;color:#ffe868;overflow-wrap:anywhere}.node .node-choice-list small{display:block;margin-top:.18rem;color:#bbd7ee;font-size:.75rem;overflow-wrap:anywhere}

/* A wide, compact card makes each branch readable across a landscape story map. */
.easy-tree-node,.easy-tree-child{min-width:460px}.easy-story-block{position:relative;width:460px;border:3px solid #36d4e5;background:#090e2b;box-shadow:5px 5px 0 #010311}.easy-story-block.ending{border-color:#f3dc3d;background:#201d09}.easy-tree-node>.easy-story-block{width:460px}.easy-story-block .easy-story-card{width:100%;display:grid;grid-template-columns:42% minmax(0,1fr);min-height:170px;border:0;box-shadow:none;background:transparent}.easy-story-block .easy-story-card:hover,.easy-story-block .easy-story-card:focus-visible{transform:none;outline:3px solid #fff;outline-offset:-3px}.easy-story-block .easy-story-art{height:100%;min-height:170px}.easy-story-block .easy-story-copy{padding:.8rem .9rem;gap:.4rem;justify-content:center}.easy-story-block .easy-story-copy strong{font-size:clamp(.8rem,1.2vw,1rem)}.easy-story-block .easy-story-copy>span:not(.easy-edit-hint){font-size:.88rem}.easy-block-actions{display:flex;gap:.5rem;padding:.55rem;border-top:1px solid #4a6181}.easy-block-actions button{flex:1 1 0;min-width:0;min-height:40px;border:2px solid #39d8e8;background:#0c2252;color:#fff;font:700 .78rem/1.35 ui-monospace,monospace}.easy-block-actions button:last-child{border-color:#efd34d;background:#322a12}.easy-block-actions button:hover,.easy-block-actions button:focus-visible{background:#354ca2;outline:2px solid #fff;outline-offset:2px}.easy-tree-node:has(>.easy-tree-children)>.easy-story-block::after{content:"";position:absolute;left:50%;top:100%;height:28px;border-left:3px solid #f2c56e}.easy-story-link{width:min(460px,100%)}.easy-story-map{max-height:min(68vh,750px);overflow-y:auto;scrollbar-color:#6776c7 #0a1031}@media(max-width:680px){.easy-tree-node,.easy-tree-child{min-width:330px}.easy-story-block,.easy-tree-node>.easy-story-block{width:330px}.easy-story-block .easy-story-card{min-height:150px;grid-template-columns:40% minmax(0,1fr)}.easy-story-block .easy-story-art{min-height:150px}.easy-story-block .easy-story-copy{padding:.55rem}.easy-story-block .easy-story-copy strong{font-size:.69rem}.easy-story-block .easy-story-copy>span:not(.easy-edit-hint){font-size:.79rem}.easy-story-link{width:330px}.easy-block-actions button{font-size:.72rem}}
/* Compact left-to-right map: branches use horizontal space before vertical space. */
.easy-story-map{position:relative;justify-content:flex-start;max-height:min(80vh,760px);padding:1rem;overflow:auto}
#easy-map-lines{position:absolute;top:0;left:0;pointer-events:none;z-index:0;overflow:visible}
.easy-tree-node{position:relative;z-index:1;display:flex;flex-direction:row;align-items:flex-start;gap:30px;min-width:0}
.easy-tree-children{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;margin:0;padding:0;min-width:0}
.easy-tree-child{display:flex;flex-direction:row;align-items:flex-start;gap:16px;padding:0;min-width:0}
.easy-tree-children::before,.easy-tree-child::before,.easy-tree-node:has(>.easy-tree-children)>.easy-story-block::after,.easy-tree-node:has(>.easy-tree-children)>.easy-story-card::after{content:none}
.easy-story-block,.easy-tree-node>.easy-story-block{width:310px;flex:0 0 310px}
.easy-story-block .easy-story-card{min-height:110px;grid-template-columns:39% minmax(0,1fr)}
.easy-story-block .easy-story-art{height:110px;min-height:110px}
.easy-story-block .easy-story-copy{padding:.5rem .6rem;gap:.2rem}
.easy-story-block .easy-story-copy strong{font-size:.72rem;line-height:1.4}
.easy-story-block .easy-story-copy>span:not(.easy-edit-hint){font-size:.75rem}
.easy-story-block .easy-story-copy small,.easy-story-block .easy-story-copy em,.easy-story-block .easy-story-copy .easy-edit-hint{font-size:.68rem}
.easy-block-actions{gap:.3rem;padding:.3rem}
.easy-block-actions button{min-height:31px;font-size:.68rem}
.easy-story-link{flex:0 0 132px;width:132px;min-height:54px;margin:29px 0 0;padding:.4rem}
.easy-story-link strong{font-size:.76rem}
.easy-story-link span:last-child{display:none}
@media(max-width:680px){.easy-story-map{padding:.8rem}.easy-story-block,.easy-tree-node>.easy-story-block{width:265px;flex-basis:265px}.easy-story-block .easy-story-card{min-height:100px}.easy-story-block .easy-story-art{height:100px;min-height:100px}.easy-story-link{width:112px;flex-basis:112px;min-height:50px;margin-top:26px}.easy-tree-node{gap:24px}.easy-tree-child{gap:12px}}
.start-options{grid-template-columns:minmax(0,640px)}
.start-option{min-height:165px}
.easy-customise{margin:1rem 0}
.easy-customise .asset-settings{margin-top:1rem}
.brand-mark{width:40px;height:40px;background:#06143c;border:2px solid var(--cyan);color:var(--cyan);box-shadow:3px 3px 0 var(--pink);padding:4px;flex:none}
.brand-mark svg{width:100%;height:100%;display:block}
.title-brand{display:inline-flex;align-items:center;gap:.8rem}
.title-brand .brand-mark{width:52px;height:52px}
@media(max-width:680px){.title-brand .brand-mark{width:42px;height:42px}}
.easy-block-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.easy-block-actions .easy-delete{grid-column:1/-1;min-height:27px;border-color:#9c5266;background:#301528;color:#ffd4da;font-size:.65rem}
.easy-block-actions .easy-delete:hover,.easy-block-actions .easy-delete:focus-visible{background:#692a42}
.story-import-label{display:inline-flex;width:max-content;align-items:center;margin-top:.75rem}
.draft-status{color:#afe5ee;font:600 .7rem/1.4 ui-monospace,monospace;align-self:center}

/* Larger, searchable carried-object library. */
.carry-search-label{display:block;margin:.55rem 0;color:#dfe5ff;font-size:.88rem}.carry-search-label input{display:block;width:100%;margin-top:.35rem}.selected-carry{margin:.35rem 0 .6rem;color:var(--yellow);font-size:.84rem}.carry-picker{max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding:.25rem;scrollbar-color:#7771cf #080e32}.carry-choice{min-height:88px;font-size:.78rem;padding:.4rem .25rem}.carry-choice[hidden]{display:none}.carry-choice-art{width:42px;height:42px}.carry-choice-art img{width:100%;height:100%;object-fit:contain}.carry-picker .pixel-prop{image-rendering:auto}@media(max-width:550px){.carry-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.carry-choice{min-height:86px;font-size:.76rem}}
/* Scene effects selected by the story creator. */
.scene-effect-field{margin:1rem 0;padding:.9rem;border:2px solid var(--blue);background:#050b23}
.scene-effect-field label{display:block;margin-bottom:.45rem;color:var(--yellow)}
.scene-effect-field .muted{margin:.45rem 0 0}
.motion-Sunshine .novel-atmosphere{background:radial-gradient(circle at 78% 17%,#fff3a5b8 0 4%,#ffe16f5c 8%,#ffbb422c 26%,transparent 48%);mix-blend-mode:screen;animation:sunGlow 8s ease-in-out infinite alternate}
.motion-Sunshine .novel-atmosphere::before{background:repeating-conic-gradient(from 0deg at 78% 17%,#ffed9b30 0deg 7deg,transparent 9deg 30deg);mask-image:radial-gradient(circle at 78% 17%,transparent 0 5%,#000 8% 55%,transparent 75%);animation:sunRays 24s linear infinite}
.motion-Thunderstorm .novel-atmosphere::before{background:repeating-linear-gradient(105deg,transparent 0 54px,#c3faff99 55px 57px,transparent 58px 96px);background-size:290px 260px;opacity:.6;animation:rainFall .7s linear infinite reverse}
.motion-Thunderstorm .novel-atmosphere::after{background:#e7f8ff;opacity:0;animation:lightningFlash 9s steps(1,end) infinite}
.motion-None .novel-atmosphere::after,.motion-None .novel-particles{display:none}
.motion-None .novel-scenery,.motion-None .novel-character,.motion-None .novel-support,.motion-None .visual-stage-prop,.motion-None .carry-game{animation:none!important}
@keyframes sunGlow{to{opacity:.55;transform:scale(1.05)}}
@keyframes sunRays{to{transform:rotate(360deg)}}
@keyframes lightningFlash{0%,17%,19%,20%,22%,100%{opacity:0}18%,21%{opacity:.56}}
@media(prefers-reduced-motion:reduce){.motion-Thunderstorm .novel-atmosphere::after{opacity:0}.motion-Sunshine .novel-atmosphere,.motion-Sunshine .novel-atmosphere::before{animation:none}}
.scene-effect-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.scene-effect-actions select{flex:1 1 180px}.scene-effect-actions button{white-space:nowrap}
.effect-preview-back{z-index:9999}.effect-preview-modal{width:min(760px,94vw);max-width:760px}.effect-preview-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.effect-preview-head h2{margin:.35rem 0 1rem}.effect-preview-stage{position:relative;height:clamp(250px,48vh,470px);overflow:hidden;isolation:isolate;background:#16263e}.effect-preview-scenery{position:absolute;inset:0;background:var(--scene-image) center/cover;image-rendering:pixelated}.effect-preview-stage .novel-atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none}.effect-preview-character{position:absolute;right:4%;bottom:0;max-width:45%;height:78%;object-fit:contain;object-position:bottom;image-rendering:pixelated;z-index:1}.effect-preview-label{position:absolute;left:.8rem;bottom:.8rem;z-index:3;color:#fff;background:#000c;border:2px solid var(--yellow);padding:.35rem .6rem;font:700 .8rem monospace}
@media(max-width:600px){.effect-preview-modal{padding:1rem}.effect-preview-stage{height:45vh}.effect-preview-character{max-width:55%}}


/* Asset consistency: editor, map and gameplay */
.node-picture .node-person{top:0;bottom:auto;height:112%;object-position:center top;transform-origin:center top}
.asset-settings-preview.actor-preview img,.visual-actor,.novel-character{transform-origin:center top}
.visual-actor{top:4%;bottom:auto;height:82%;object-position:center top}
.novel-character{top:7%;bottom:auto;height:76%;object-position:center top}
.visual-character-color{top:4%;bottom:auto;height:82%;-webkit-mask-position:center top;mask-position:center top}
.novel-actor-color{top:7%;bottom:auto;height:76%;-webkit-mask-position:center top;mask-position:center top}
.character-carry{image-rendering:pixelated}
.carry-preview{right:14%;top:52%;bottom:auto}
.carry-scene{left:31%;top:54%;bottom:auto}
.carry-game{right:7%;top:55%;bottom:auto}
.novel-screen:has(.visual-stage-prop) .carry-game{left:27%;right:auto}
@media(max-width:700px){.novel-character{top:9%;height:70%;max-width:64%}.carry-game{top:52%;width:min(14vw,82px)}}


/* Keep character transform controls close to the character preview. */
.asset-settings-fields .character-options{display:grid;grid-template-columns:minmax(180px,300px) 1fr;column-gap:1rem;align-items:end}
.asset-settings-fields .character-options>.field-grid,
.asset-settings-fields .character-options>.btn,
.asset-settings-fields .character-options>.field:nth-last-child(2){grid-column:1 / -1}
.asset-settings-fields .character-options>.field:last-of-type{grid-column:1;max-width:300px;margin-bottom:0}
.asset-settings-fields .character-checks{grid-column:1;justify-content:flex-start;margin:.35rem 0 0;gap:.45rem .8rem}
@media(max-width:700px){.asset-settings-fields .character-options{grid-template-columns:1fr}.asset-settings-fields .character-options>.field:last-of-type,.asset-settings-fields .character-checks{grid-column:1;max-width:none}}

.story-account-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:8px 20px;background:#161b2e;color:#fff;min-height:50px;font-size:14px}.story-account-email{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-account-bar .btn{margin:0}.cloud-draft-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:600px){.story-account-email{display:none}.story-account-bar{padding:8px 12px}}

/* Fit playback below the account/recovery bars and keep ending actions reachable. */
body:has(.novel-screen){height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body:has(.novel-screen)>.story-account-bar,
body:has(.novel-screen)>.storage-recovery-warning{flex:0 0 auto}
body:has(.novel-screen)>#app{flex:1 1 0;min-height:0}
body:has(.novel-screen) .novel-screen{width:100%;height:100%;min-height:0}
body:has(.novel-screen) .novel-book{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
body:has(.novel-screen) .novel-stage{height:100%;min-height:0}
body:has(.novel-screen) .novel-next{position:relative;inset:auto;min-height:0;max-height:40dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}
body:has(.novel-screen) .novel-book.has-choices .novel-dialogue{bottom:2%}
body:has(.novel-screen) .novel-dialogue{max-height:calc(100% - 5rem);overflow-y:auto}
body:has(.novel-screen) .novel-ending .inline-actions .btn{white-space:normal}


/* StoryForge gameplay progression and cinematic feedback */
.sf-consequence{display:flex;align-items:flex-start;gap:.75rem;margin:0 0 .85rem;padding:.72rem 1rem;border:1px solid rgba(125,226,190,.35);border-radius:12px;background:linear-gradient(105deg,rgba(32,105,92,.36),rgba(19,32,48,.48));color:#eafff7;animation:sf-reveal .42s ease-out both}
.sf-consequence-spark{font-size:1.4rem;color:#a5ffd6;line-height:1.3}
.sf-consequence>div{display:flex;flex-direction:column;gap:.15rem}
.sf-consequence strong{font-size:.75rem;text-transform:uppercase;letter-spacing:.11em;color:#b4f6db}
.sf-consequence span{font-size:.9rem}
.sf-ending-progress{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.85rem;color:#f2e6ba;font-size:.82rem;letter-spacing:.02em}
.sf-ending-gems{display:flex;gap:.3rem;flex-wrap:wrap;color:#99a4bc}
.sf-ending-gems .found{color:#ffe69b;text-shadow:0 0 10px rgba(255,213,110,.6)}
.novel-screen .novel-stage{animation:sf-scene-entrance .65s ease-out both}
.novel-screen .novel-character,.novel-screen .novel-support{animation:sf-character-entrance .55s ease-out both}
.novel-screen .novel-ending{animation:sf-reveal .5s ease-out both}
@keyframes sf-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes sf-scene-entrance{from{opacity:.6;filter:brightness(.65)}to{opacity:1;filter:brightness(1)}}
@keyframes sf-character-entrance{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.sf-consequence,.novel-screen .novel-stage,.novel-screen .novel-character,.novel-screen .novel-support,.novel-screen .novel-ending{animation:none!important}}
@media(max-width:600px){.sf-ending-progress{align-items:flex-start;flex-direction:column}.sf-consequence{padding:.55rem .7rem}}


/* Player-only discovery map and secret ending controls */
.sf-map-button{position:absolute;z-index:9;top:1rem;right:9.25rem;background:rgba(8,16,34,.75);border:1px solid rgba(255,255,255,.26);color:#fff;border-radius:999px;padding:.45rem .8rem;font:inherit;font-size:.83rem;cursor:pointer;backdrop-filter:blur(8px)}
.sf-map-button:hover,.sf-map-button:focus-visible{background:rgba(28,48,71,.96);outline:2px solid rgba(149,247,212,.45)}
.sf-map-modal{width:min(480px,calc(100vw - 2rem));max-height:min(85dvh,780px);overflow:auto}
.sf-map-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.sf-map-head h2{margin:.2rem 0 .6rem}
.sf-map-route{display:flex;flex-direction:column;gap:0;margin-top:1rem}
.sf-map-stop{position:relative;display:flex;align-items:flex-start;gap:.8rem;padding:0 0 1.2rem;color:inherit}
.sf-map-stop:not(:last-child)::before{content:'';position:absolute;left:.63rem;top:1.25rem;bottom:0;width:2px;background:rgba(117,226,201,.35)}
.sf-map-dot{flex:0 0 1.35rem;height:1.35rem;border-radius:50%;display:grid;place-items:center;color:#a9e8db;background:rgba(74,135,131,.19)}
.sf-map-stop.current .sf-map-dot{color:#ffe5a3;background:rgba(255,210,102,.2)}
.sf-map-stop>div{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.sf-map-stop strong{font-size:.97rem}
.sf-map-stop small{color:inherit;opacity:.7}
.sf-map-future{border:1px dashed rgba(142,188,185,.5);border-radius:10px;padding:.8rem;font-size:.87rem;opacity:.85}
@media(max-width:600px){.sf-map-button{top:.7rem;right:7.2rem;font-size:.75rem;padding:.4rem .6rem}}


/* Interactive puzzle encounters and earned collectibles */
.sf-inventory{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.35rem 0 .75rem;font-size:.82rem;color:#d6e8e4}
.sf-inventory-title{font-weight:700;letter-spacing:.02em}
.sf-inventory-item{display:inline-flex;padding:.22rem .6rem;border:1px solid rgba(184,234,210,.35);border-radius:999px;background:rgba(48,96,90,.3);color:#e8fdf1}
.sf-inventory-empty{opacity:.7}
.sf-puzzle{margin:0 0 1rem;padding:1rem;border:1px solid rgba(255,213,133,.42);border-radius:14px;background:linear-gradient(135deg,rgba(73,57,53,.57),rgba(19,31,48,.55));color:#fff}
.sf-puzzle-title{font-weight:800;letter-spacing:.04em;color:#ffe9ac}
.sf-puzzle p{margin:.5rem 0 .65rem}
.sf-puzzle label{display:block;font-size:.83rem;margin:0 0 .4rem}
.sf-puzzle-form{display:flex;gap:.5rem;flex-wrap:wrap}
.sf-puzzle-form input{flex:1 1 160px;min-width:0;padding:.65rem .8rem;border-radius:9px;border:1px solid rgba(255,255,255,.35);background:#111a2b;color:#fff}
.sf-puzzle-form button{flex:0 0 auto}
.sf-puzzle-hint{color:#ffe6af;font-size:.88rem}
.sf-puzzle-success{color:#aff2cf;font-weight:650}
.sf-puzzle-editor{margin:1rem 0}


/* Visual novel mode: let illustration lead, narration remain easy to read. */
body:has(.novel-screen) .novel-dialogue{
 left:clamp(12px,3vw,42px);right:auto;width:min(620px,calc(100% - 24px));max-width:none;
 bottom:clamp(12px,2vh,24px);padding:clamp(.75rem,1.4vw,1.1rem);
 background:linear-gradient(145deg,rgba(10,20,36,.94),rgba(8,17,30,.89));
 border:1px solid rgba(198,228,235,.48);border-radius:13px;
 max-height:min(37dvh,310px);overflow-y:auto;transition:bottom .25s ease,opacity .2s ease;
}
body:has(.novel-screen) .novel-dialogue h1{font-size:clamp(1.05rem,1.7vw,1.45rem);margin:.15rem 0 .35rem}
body:has(.novel-screen) .novel-text{max-height:17dvh;overflow-y:auto;line-height:1.55}
body:has(.novel-screen) .novel-book.has-choices .novel-dialogue{bottom:calc(min(29dvh,255px) + 12px);max-height:min(26dvh,225px)}
body:has(.novel-screen) .novel-next{max-height:29dvh;overflow:auto}
body:has(.novel-screen) .novel-book.has-choices .novel-next{min-height:0}
.sf-artwork-toggle{position:absolute;z-index:10;top:1rem;right:15rem;
 border:1px solid rgba(255,255,255,.55);border-radius:999px;
 color:#fff;background:rgba(5,15,30,.84);padding:.5rem .8rem;
 font:700 .78rem ui-monospace,monospace;cursor:pointer;backdrop-filter:blur(8px)}
.sf-artwork-toggle:hover,.sf-artwork-toggle:focus-visible{background:#17465a;outline:2px solid #9ce7de}
body:has(.novel-screen) .sf-artwork-only .novel-dialogue,
body:has(.novel-screen) .sf-artwork-only .novel-next{display:none!important}
body:has(.novel-screen) .sf-artwork-only .novel-stage{height:100%}
@media(max-width:700px){
 body:has(.novel-screen) .novel-dialogue{left:8px;right:8px;width:auto;bottom:8px;max-height:32dvh}
 body:has(.novel-screen) .novel-book.has-choices .novel-dialogue{bottom:calc(min(34dvh,250px) + 8px);max-height:25dvh}
 body:has(.novel-screen) .novel-next{max-height:34dvh}
 body:has(.novel-screen) .novel-text{max-height:13dvh}
 .sf-artwork-toggle{top:3.55rem;right:.55rem;font-size:.72rem;padding:.38rem .58rem}
}
@media(prefers-reduced-motion:reduce){
 body:has(.novel-screen) .novel-dialogue{transition:none}
}


/* Unified visual-novel reading dock: narration sits directly above choices. */
body:has(.novel-screen) .novel-book{grid-template-rows:minmax(0,1fr) auto}
body:has(.novel-screen) .novel-stage{min-height:0}
body:has(.novel-screen) .novel-dialogue,
body:has(.novel-screen) .novel-book.has-choices .novel-dialogue{
 position:absolute;top:auto;bottom:0;left:50%;right:auto;
 transform:translateX(-50%);width:min(980px,calc(100% - 32px));
 max-width:none;max-height:min(34dvh,310px);min-height:0;
 margin:0;padding:.8rem 1.25rem .65rem;
 border-radius:14px 14px 0 0;border-bottom:0;
 background:linear-gradient(180deg,rgba(8,16,32,.91),rgba(6,12,27,.98));
 box-shadow:0 -10px 35px rgba(0,0,0,.35);
 overflow-y:auto;z-index:4;animation:none;
}
body:has(.novel-screen) .novel-dialogue h1{font-size:clamp(1.1rem,2vw,1.6rem);margin:.15rem 0 .3rem}
body:has(.novel-screen) .novel-text{max-height:15dvh;overflow-y:auto;line-height:1.55;margin:.25rem 0}
body:has(.novel-screen) .novel-next,
body:has(.novel-screen) .novel-book.has-choices .novel-next{
 position:relative;inset:auto;flex:0 0 auto;
 max-height:min(29dvh,265px);min-height:0;
 overflow-y:auto;padding:.65rem clamp(1rem,3vw,2rem) .9rem;
 border-top:2px solid var(--blue);
 background:#080e22;animation:none;
}
body:has(.novel-screen) .novel-next .sf-inventory:has(.sf-inventory-empty){display:none}
body:has(.novel-screen) .novel-next .sf-ending-progress{margin-bottom:.35rem}
body:has(.novel-screen) .novel-next .novel-prompt{margin-bottom:.45rem}
body:has(.novel-screen) .novel-choice-list{gap:.65rem}
body:has(.novel-screen) .novel-read-controls{margin-top:.4rem}
@media(max-width:700px){
 body:has(.novel-screen) .novel-dialogue,
 body:has(.novel-screen) .novel-book.has-choices .novel-dialogue{
  left:50%;right:auto;bottom:0;width:calc(100% - 12px);
  padding:.55rem .75rem .5rem;max-height:32dvh;border-radius:11px 11px 0 0;
 }
 body:has(.novel-screen) .novel-text{max-height:14dvh}
 body:has(.novel-screen) .novel-next,
 body:has(.novel-screen) .novel-book.has-choices .novel-next{max-height:34dvh;padding:.65rem .75rem 1rem}
}
body:has(.novel-screen) .sf-artwork-only .novel-dialogue,
body:has(.novel-screen) .sf-artwork-only .novel-next{display:none!important}


/* Character responses in visual-novel mode */
.sf-character-mood{display:inline-block;padding:.1rem .45rem;margin-right:.3rem;border:1px solid rgba(180,222,246,.5);border-radius:6px;color:#d1ecff;background:#19334a;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.sf-mood-Happy{color:#ffe9a0;border-color:#f5cd70;background:#44381a}
.sf-mood-Worried,.sf-mood-Sad{color:#afd8ff;border-color:#779fc5;background:#19283d}
.sf-mood-Angry{color:#ffc0a5;border-color:#e68e74;background:#481e27}
.sf-mood-Surprised{color:#f2d5ff;border-color:#c99ce1;background:#332344}
.sf-mood-Mysterious{color:#c7f5e9;border-color:#7acabd;background:#173d3b}
.sf-character-editor textarea{min-height:70px}
.novel-character.sf-emotion-Happy{filter:brightness(1.12) saturate(1.08)}
.novel-character.sf-emotion-Worried,.novel-character.sf-emotion-Sad{filter:brightness(.85) saturate(.83)}
.novel-character.sf-emotion-Angry{filter:contrast(1.12) saturate(1.18)}
.novel-character.sf-emotion-Surprised{filter:brightness(1.16)}
.novel-character.sf-emotion-Mysterious{filter:brightness(.92) hue-rotate(7deg)}


/* ZX Spectrum inspired shareable Adventure Invitation — reuse the original game art */
.sf-invite-screen{min-height:100dvh;background:#020217;color:#f7f7f7;padding:clamp(1rem,4vw,3rem) 1rem 4rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;display:flex;justify-content:center}
.sf-invite-shell{width:min(800px,100%);align-self:flex-start;border:4px solid #00edfa;background:#000018;box-shadow:11px 11px 0 #2929f7,0 0 0 1px #101065}
.sf-invite-banner{padding:.8rem 1rem;text-align:center;background:#080e3c;color:#ffe300;border-bottom:4px solid #fff000;font-size:clamp(.67rem,1.6vw,.95rem);font-weight:900;letter-spacing:.07em}
.sf-invite-cover{position:relative;aspect-ratio:16/9;min-height:220px;background:#071330 var(--invite-image) center/cover no-repeat;image-rendering:pixelated;display:flex;align-items:flex-end;overflow:hidden}
.sf-invite-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000 22%,#000a 75%,#000e)}
.sf-invite-cover-label,.sf-invite-cover-title{position:relative;z-index:1;margin-left:clamp(.8rem,3vw,2rem);margin-right:1rem}
.sf-invite-cover-label{position:absolute;bottom:clamp(4.2rem,10vw,6.8rem);color:#00ffff;font-size:clamp(.65rem,1.7vw,.85rem);font-weight:900;letter-spacing:.1em;text-shadow:2px 2px #000}
.sf-invite-cover-title{padding-bottom:clamp(.75rem,3vw,1.8rem);font-size:clamp(1.5rem,5vw,3rem);line-height:1.23;font-family:inherit;font-weight:900;text-transform:uppercase;letter-spacing:.015em;color:#ffe400;text-shadow:3px 3px #080029,5px 5px #e000ef;overflow-wrap:anywhere}
.sf-invite-information{padding:clamp(1rem,3vw,2rem);border-top:4px solid #102de9}
.sf-invite-kicker{color:#00f5ff;font-weight:900;letter-spacing:.07em;font-size:.85rem}
.sf-invite-information p{font-size:clamp(.92rem,1.8vw,1.15rem);line-height:1.55;margin:.65rem 0 1.15rem}
.sf-invite-stats{display:flex;flex-wrap:wrap;gap:.5rem .9rem;color:#d0e6ff;font-size:.8rem;margin-bottom:1.3rem}
.sf-invite-stats span{background:#101244;border-left:3px solid #f7e100;padding:.4rem .55rem}
.sf-invite-play{display:block;width:100%;border:3px solid #ffe400;border-radius:0;color:#000;background:#ffe400;font:900 clamp(1rem,2.5vw,1.5rem) ui-monospace,monospace;letter-spacing:.05em;padding:1rem;cursor:pointer;box-shadow:5px 5px 0 #eb00ca}
.sf-invite-play:hover,.sf-invite-play:focus-visible{background:#00f4ff;border-color:#00f4ff;outline:2px solid #fff}
.sf-invite-links{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;padding:1.2rem 0 .3rem}
.sf-invite-links button{background:none;border:0;color:#00f5ff;text-decoration:underline;font:800 .9rem ui-monospace,monospace;cursor:pointer}
.sf-invite-footer{border-top:2px solid #3039b7;text-align:center;color:#b9bdf7;font-size:.7rem;letter-spacing:.06em;padding:.85rem}
.sf-invite-published-card{display:grid;grid-template-columns:minmax(100px,38%) 1fr;border:3px solid #00f1ff;background:#070e38;box-shadow:5px 5px 0 #233cff;gap:0;margin:1rem 0 1.4rem;color:#fff}
.sf-invite-published-art{min-height:170px;background:var(--invite-image) center/cover no-repeat;image-rendering:pixelated}
.sf-invite-published-details{padding:1rem;min-width:0;overflow-wrap:anywhere}
.sf-invite-published-details span{color:#00edff;font:900 .7rem ui-monospace,monospace}
.sf-invite-published-details h2{font:900 clamp(1.05rem,2.7vw,1.5rem) ui-monospace,monospace;color:#ffe400;margin:.65rem 0}
.sf-invite-published-details p{color:#f5f7ff}
.sf-invite-published-details small{color:#c8eaf2}
@media(max-width:540px){.sf-invite-shell{box-shadow:5px 5px 0 #2929f7}.sf-invite-cover{aspect-ratio:4/3}.sf-invite-published-card{grid-template-columns:1fr}.sf-invite-published-art{height:150px;min-height:0}}


/* Eldernight invitation: fixed fantasy artwork, compact layout, 8-bit typography */
.sf-invite-screen{font-family:PressStart,'Press Start 2P',ui-monospace,monospace}
.sf-invite-shell{width:min(800px,100%)}
.sf-invite-banner{font-family:PressStart,'Press Start 2P',monospace;font-size:clamp(.65rem,1.8vw,1.08rem);line-height:1.8}
.sf-invite-tagline{display:block;font-size:clamp(.42rem,1.04vw,.64rem);letter-spacing:0;color:#ffec00}
.sf-invite-cover{background:#02031a url('/assets/bg-enchanted-ruins.webp') center/cover no-repeat;position:relative;min-height:260px;aspect-ratio:1.8;image-rendering:pixelated}
.sf-invite-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 15%,rgba(0,0,15,.15) 90%);pointer-events:none}
.sf-invite-wizard{position:absolute;z-index:1;left:-2%;bottom:-1%;width:45%;height:105%;background:url('/assets/char-mage.webp') bottom left/contain no-repeat;image-rendering:pixelated;filter:drop-shadow(5px 3px 0 #080026)}
.sf-invite-information{text-align:center;padding:clamp(1.1rem,3.5vw,2.2rem)}
.sf-invite-kicker{font-family:PressStart,'Press Start 2P',monospace;line-height:1.85;font-size:clamp(.64rem,1.7vw,.95rem);letter-spacing:0;color:#00f4ff}
.sf-invite-challenge{font-family:PressStart,'Press Start 2P',monospace;font-size:clamp(1.05rem,3vw,2rem);line-height:1.5;color:#ffe400;text-shadow:3px 4px #d400da;margin:1.2rem 0 1.8rem}
.sf-invite-play{font-family:PressStart,'Press Start 2P',monospace;font-size:clamp(.72rem,1.6vw,1.05rem);line-height:1.7}
.sf-invite-links button,.sf-invite-footer{font-family:PressStart,'Press Start 2P',monospace;font-size:clamp(.48rem,1vw,.68rem);line-height:1.9}
.sf-invite-published-art{background:#02031a url('/assets/bg-enchanted-ruins.webp') center/cover no-repeat;position:relative}
.sf-invite-published-art::after{content:"";position:absolute;bottom:0;left:0;width:48%;height:100%;background:url('/assets/char-mage.webp') left bottom/contain no-repeat;image-rendering:pixelated}
@media(max-width:540px){.sf-invite-cover{min-height:190px;aspect-ratio:4/3}.sf-invite-wizard{width:53%}.sf-invite-banner{padding:.6rem .3rem}}
