@font-face{font-family:Mom;src:local('Trebuchet MS')}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}img,canvas,svg,a,button{-webkit-user-drag:none}html{background:#1c1727;color:#f9ead2;font-family:Mom,'Trebuchet MS',sans-serif}body{margin:0;background:radial-gradient(ellipse at 50% 30%,#51304b,transparent 70%);min-height:100vh}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #eebd57;outline-offset:3px}button:disabled{opacity:.4;cursor:default}button{color:inherit}button:active{transform:translateY(2px)}[hidden]{display:none!important}.masthead{max-width:1100px;margin:auto;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;font-weight:800;letter-spacing:2px}.masthead a{color:#f5d7ba;text-decoration:none}.masthead>span{color:#b89fb3}.masthead b{color:#ee8861}.masthead button{background:transparent;border:1px solid #72596c;padding:9px 12px;border-radius:20px;font-size:10px;letter-spacing:1px}main{max-width:1040px;margin:auto;padding:10px 28px 24px}.cartridge{padding:22px 24px 0;background:linear-gradient(145deg,#ae444e,#863747 52%,#642c40);border-radius:24px 24px 62px 24px;box-shadow:0 28px 70px #0008,inset 2px 3px 1px #ffb09a66,inset -3px -7px 1px #391d33;border:1px solid #d27272}.hardware-label{display:flex;justify-content:space-between;font-size:10px;font-weight:bold;letter-spacing:2px;margin:0 4px 16px;color:#f5b6ad}.hardware-label i{display:inline-block;width:7px;height:7px;background:#d6f48e;border-radius:50%;box-shadow:0 0 8px #d6f48e;margin-right:7px}.screen{position:relative;aspect-ratio:8/5;background:#211c36;border:7px solid #332b40;border-radius:9px;overflow:hidden;box-shadow:0 0 0 2px #ce797977,0 3px 0 #efae9766;isolation:isolate}canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#251e3599;padding:20px;overflow:auto}.overlay.title{background:linear-gradient(#271c4977,#221b3166 40%,#271c39df)}.title-brand{text-align:center;position:relative;margin-top:-15px}.eyebrow{color:#ffdcac;font-size:10px;font-weight:900;letter-spacing:4px}.logo{font-size:clamp(36px,7vw,84px);font-weight:1000;letter-spacing:-4px;line-height:1.05;color:#ffe397;text-shadow:3px 4px 0 #843e57,5px 7px 0 #201e40;transform:rotate(-5deg);margin:14px 0}.version{display:inline-block;background:#b9394e;border:2px solid #f7b37e;padding:6px 28px;transform:rotate(-5deg);font-size:clamp(10px,1.6vw,17px);font-weight:900;letter-spacing:6px;box-shadow:3px 4px #301e39}.tagline{font-size:12px;color:#ffdec4;margin:24px 0 12px}.menu-stack{display:grid;gap:8px;min-width:220px;max-width:95%}.menu-stack button,.paper button,.choice{border:1px solid #bea385;background:#fff3dc;color:#3a3047;border-radius:6px;padding:10px 18px;font-weight:900;box-shadow:0 3px 0 #594654;text-align:left;font-size:14px}.menu-stack button:first-child{background:#edb85b;border-color:#ffdea0}.menu-stack button:hover,.paper button:hover,.choice:hover{background:#ffe0a1}.fine{font-size:10px;color:#dac4c4;margin-top:15px}.boot{text-align:center;letter-spacing:4px}.boot-mark{width:55px;height:65px;background:#f2b455;border:5px solid #ffd894;border-radius:12px;margin:0 auto 20px;box-shadow:0 -6px #a94b59}.boot-bar{width:180px;height:6px;background:#635066;margin:24px auto}.boot-bar i{display:block;height:100%;background:#efc576;animation:loading .85s ease-out forwards}@keyframes loading{from{width:0}to{width:100%}}.paper{background:#fff2da;color:#413449;border:3px solid #b78477;outline:3px solid #3a2947;border-radius:10px;padding:22px;max-width:560px;width:100%;box-shadow:0 8px 0 #1d173866;max-height:100%;overflow:auto}.paper h2{margin:0 0 9px;font-size:24px;letter-spacing:-1px}.paper p{font-size:14px;line-height:1.5;margin:10px 0}.paper label{display:block;font-size:12px;font-weight:800;margin:15px 0}.paper input{width:100%;padding:10px;margin-top:5px;border:2px solid #c5a38b;border-radius:4px;background:#fffaf0;color:#413449}.paper .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.paper small{color:#765d6f}.paper .row button{flex:1;text-align:center}.portrait-stage{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;padding-bottom:100px;background:radial-gradient(ellipse,#e7cda6 0,#8c8498 65%,#5b556f);z-index:0}.portrait-stage canvas{width:150px;height:190px;image-rendering:pixelated;filter:drop-shadow(5px 9px 0 #34234340);animation:arrival .6s ease-out}.portrait-stage .intro-label{position:absolute;top:22px;letter-spacing:4px;color:#fcf0d5;font-size:10px}@keyframes arrival{from{transform:translateX(80px);opacity:0}to{transform:translateX(0);opacity:1}}.dialogue{position:absolute;bottom:14px;left:14px;right:14px;text-align:left;min-height:98px;background:#fff3db;color:#42334b;border:3px solid #bfa089;outline:3px solid #3e344b;border-radius:8px;padding:20px 20px 25px;z-index:5;box-shadow:0 4px 0 #20192f66}.dialogue #speaker{position:absolute;top:-15px;left:14px;background:#a84356;border:2px solid #efc69b;color:#fff1db;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:800;letter-spacing:1px}.dialogue #words{display:block;font-size:clamp(12px,1.8vw,18px);line-height:1.5;font-weight:600}.next{position:absolute;right:12px;bottom:6px;font-size:9px;color:#886479;font-weight:800}.console-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 18px 22px}.dpad{display:grid;grid-template:repeat(3,28px)/repeat(3,32px);filter:drop-shadow(0 4px 0 #492636)}.dpad button,.dpad span{border:0;background:#342b3f;color:#c1abb7;padding:0;font-size:16px;touch-action:none}.dpad button:nth-child(1){grid-area:1/2;border-radius:5px 5px 0 0}.dpad button:nth-child(2){grid-area:2/1;border-radius:5px 0 0 5px}.dpad span{grid-area:2/2}.dpad button:nth-child(4){grid-area:2/3;border-radius:0 5px 5px 0}.dpad button:nth-child(5){grid-area:3/2;border-radius:0 0 5px 5px}.action-buttons{display:flex;gap:15px;transform:rotate(-18deg)}.action-buttons button{border:2px solid #e88883;border-radius:50%;background:#5b2943;box-shadow:0 5px 0 #3c2336;width:52px;height:52px;font-weight:900;font-size:20px;touch-action:manipulation}.system-buttons{text-align:center}.system-buttons button{background:#493245;border:1px solid #ab6570;border-radius:12px;padding:6px 18px;font-size:10px;letter-spacing:1px}.system-buttons span{display:block;font-size:8px;letter-spacing:2px;color:#daa0a7;margin-top:15px}footer{text-align:center;margin:23px auto 0;color:#c2aab8;font-size:11px;line-height:1.6;max-width:740px}footer b{color:#f5d4ba}footer p{margin:7px}footer small{font-size:10px;color:#ac93a6}kbd{font-family:inherit;background:#413447;padding:2px 4px;border-radius:3px}#hud{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:start;pointer-events:none}#hud>div{background:#fff0dbea;border:2px solid #513d54;border-radius:6px;padding:8px 13px;color:#44374a;box-shadow:0 3px 0 #37283855}#hud small{display:block;font-size:8px;letter-spacing:2px;margin-bottom:3px}#hud strong{font-size:14px}#hud button{pointer-events:auto;background:#413047e8;border:1px solid #c3a188;padding:10px 12px;border-radius:5px;font-size:10px;font-weight:bold}#prompt{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:#332842ea;padding:8px 14px;border:1px solid #eac59a;border-radius:20px;font-size:11px;white-space:nowrap}#toast{position:absolute;top:70px;left:50%;transform:translateX(-50%);background:#40354eef;color:#fff0d9;padding:9px 18px;border:1px solid #eac59a;border-radius:5px;font-size:12px;z-index:9;max-width:90%;text-align:center}#curtain{position:absolute;inset:0;background:#211c32;opacity:0;pointer-events:none;z-index:10;transition:opacity .18s}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.choice{padding:12px 6px;text-align:center}.choice canvas{width:64px;height:80px;margin:auto}.choice strong,.choice small{display:block;font-size:12px;margin-top:7px}.choice small{font-size:9px;letter-spacing:1px;color:#8b5862}.roster{display:flex;align-items:center;gap:20px;background:#e9dac3;padding:10px;border-radius:6px}.roster canvas{width:70px;height:90px;flex-shrink:0}.roster p{margin:5px 0;font-size:12px}.quest{border-left:3px solid #b54459;padding-left:10px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.menu-grid button{text-align:center;font-size:12px}.badges{display:flex;gap:8px;margin:15px 0}.badges span{border:2px dashed #c5a38b;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;color:#ac8b86}.reveal .paper{animation:arrival .5s ease-out}.intro-dots{display:flex;gap:8px;justify-content:center;margin-top:12px}.intro-dots i{width:8px;height:8px;border-radius:50%;background:#ad707b}.intro-dots i.on{background:#ffe1a5}@media(max-width:650px){main{padding:3px 8px 16px}.masthead{padding:13px 12px;font-size:9px;letter-spacing:1px}.masthead>span{display:none}.cartridge{padding:12px 9px 0;border-radius:17px 17px 38px 17px}.hardware-label{font-size:7px;letter-spacing:1px;margin-bottom:10px}.screen{aspect-ratio:4/3;border-width:4px}.screen>canvas{object-fit:cover}.console-controls{padding:16px 7px 22px}.overlay{padding:13px}.logo{font-size:48px}.title-brand{margin-top:0}.eyebrow{font-size:8px;letter-spacing:2px}.version{font-size:11px;padding:5px 20px}.tagline{font-size:10px;margin:18px 0 10px}.menu-stack{gap:6px;min-width:180px}.menu-stack button{font-size:12px;padding:8px 15px}.fine{font-size:8px;margin:9px 0}.paper{padding:13px}.paper h2{font-size:19px}.paper p{font-size:12px;margin:7px 0}.paper label{margin:9px 0}.paper input{padding:7px}.paper button{font-size:12px;padding:8px 12px}.dialogue{bottom:10px;left:10px;right:10px;min-height:85px;padding:15px 12px 20px}.dialogue #words{font-size:12px}.dialogue #speaker{font-size:10px}#hud{top:8px;left:8px;right:8px}#hud>div{padding:5px 8px}#hud strong{font-size:11px}#hud small{font-size:6px}#hud button{padding:8px;font-size:9px}.portrait-stage{padding-bottom:80px}.portrait-stage canvas{height:125px;width:100px}.portrait-stage .intro-label{top:15px}.choices{gap:5px;margin:10px 0}.choice{padding:7px 4px!important}.choice canvas{width:40px;height:50px}.choice strong{font-size:10px}.choice small{font-size:7px}.system-buttons span{font-size:6px;letter-spacing:1px}.menu-grid{margin-top:9px;gap:6px}.paper .row{margin-top:10px}.roster{gap:10px}.roster canvas{width:45px;height:60px}.roster p{font-size:10px}footer{font-size:10px}footer small{font-size:9px}}@media(max-height:500px) and (min-width:651px){main{max-width:700px}.masthead,footer{display:none}.console-controls{padding:8px}.dpad{grid-template:repeat(3,20px)/repeat(3,26px)}.screen{max-height:calc(100dvh - 115px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the complete title menu visible even on compact phones. */
@media(max-width:650px){.overlay.title{padding:8px}.title .logo{font-size:44px;margin:10px 0}.title .tagline{margin:12px 0 9px}.title .fine{margin:7px 0 0}.title .menu-stack{flex-shrink:0}.title-brand{flex-shrink:0}}
@media(max-width:360px){.title .logo{font-size:34px;margin:8px 0}.title .eyebrow{font-size:6px;letter-spacing:1.5px}.title .version{font-size:9px;letter-spacing:4px;padding:4px 16px}.title .tagline{display:none}.title .menu-stack{margin-top:13px;gap:5px;min-width:165px}.title .menu-stack button{font-size:10px;padding:6px 12px}.title .fine{font-size:7px;margin:6px 0 0}.system-buttons span{display:none}.console-controls{gap:6px}.action-buttons{gap:9px}.action-buttons button{width:44px;height:44px}.system-buttons button{padding:6px 10px}}
@media(max-width:360px){.dpad{grid-template:repeat(3,26px)/repeat(3,28px)}.portrait-stage .intro-label{font-size:7px;letter-spacing:1px;top:8px;text-align:center;max-width:95%}.portrait-stage canvas{width:80px;height:100px}}

/* Game surfaces should behave like a handheld, including held touch buttons. */
.cartridge,.cartridge *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}.cartridge input,.cartridge textarea{user-select:text;-webkit-user-select:text}
.battle-overlay{background:#c2d6b0;padding:10px}.battle-stage{width:100%;height:100%;display:grid;grid-template-rows:1fr 1fr auto;background:repeating-linear-gradient(0deg,#bdd6b0 0 5px,#c5ddb9 5px 10px);border:3px solid #4c5d53;border-radius:8px;overflow:auto;color:#3b3445}.fighter{display:flex;align-items:center;gap:15px;padding:4px 7%;min-height:0}.fighter.rival{flex-direction:row-reverse}.fighter canvas{width:65px;height:81px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 5px 0 #476c5344)}.battle-info{background:#fff4da;border:2px solid #58634c;border-radius:8px 2px;padding:6px 12px;min-width:160px;box-shadow:3px 3px #82936c}.battle-info strong{display:block;font-size:13px}.battle-info small{display:block;font-size:10px}.battle-info progress{display:block;width:100%;height:12px;accent-color:#57945c}.battle-controls{background:#fff2da;border-top:3px solid #4c5d53;padding:9px 12px}.battle-log{font-size:12px;min-height:28px;margin:0 0 6px}.battle-moves{display:grid;grid-template-columns:1fr 1fr;gap:5px}.battle-moves button{background:#fff9e9;border:2px solid #a8937f;color:#403449;border-radius:4px;padding:8px;font-size:11px;font-weight:bold}.attacking canvas{animation:battle-bump .3s ease-in-out}@keyframes battle-bump{50%{transform:translateX(14px);filter:brightness(1.6)}}@media(max-width:650px){.battle-overlay{padding:5px}.fighter{padding:2px 5%;gap:6px}.fighter canvas{width:38px;height:47px}.battle-info{padding:3px 7px;min-width:140px}.battle-info strong{font-size:10px}.battle-info small{font-size:8px}.battle-info progress{height:8px}.battle-controls{padding:5px 8px}.battle-log{font-size:10px;min-height:24px;margin-bottom:4px}.battle-moves button{font-size:9px;padding:5px}.battle-stage{grid-template-rows:minmax(55px,1fr) minmax(55px,1fr) auto}}


/* Route field menus and a bespoke lidded-container capture cue. */
.paper>.roster{margin:7px 0}.paper>button{margin:4px 5px 4px 0}.roster button{margin-top:6px}
.capture-fx{position:absolute;left:55%;top:24%;width:90px;height:63px;background:linear-gradient(#e5e9ba,#91b6a6);border:4px solid #465364;border-radius:8px 8px 17px 17px;box-shadow:0 7px #253d4d55;animation:lid-shake .3s ease-in-out 4;pointer-events:none}.capture-fx:before{content:'';position:absolute;left:-9px;right:-9px;top:-12px;height:14px;background:#d89367;border:3px solid #694b59;border-radius:5px}.capture-fx span{display:block;margin-top:18px;text-align:center;font:bold 8px monospace;color:#3d5661}.capture-fx i{display:block;width:9px;height:9px;margin:5px auto;background:#f9d968;border:2px solid #726b57;border-radius:50%}.capture-fx.still{animation:none}@keyframes lid-shake{25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
@media(max-width:650px){.capture-fx{width:65px;height:46px}.capture-fx span{font-size:6px;margin-top:10px}.battle-moves button{min-height:25px}.battle-log{line-height:1.3}.battle-controls{max-height:155px;overflow:auto}}

/* Growth is a real event, not a silent data swap. */
.growth-panel{text-align:center;background:radial-gradient(circle at 50% 35%,#fff7cf,#f1d2bd 55%,#d5a7b0);overflow-x:hidden;overflow-y:auto}.evolution-stage{display:flex;justify-content:center;align-items:center;gap:22px;min-height:125px;position:relative}.evolution-stage:before{content:'';position:absolute;inset:8px 12%;background:repeating-conic-gradient(from 0deg,#fff7b8 0 8deg,transparent 8deg 18deg);opacity:.55;animation:evolution-rays 2s linear infinite}.evolution-stage canvas,.evolution-arrow{position:relative;z-index:1}.evolution-stage canvas{width:82px;height:103px;image-rendering:pixelated;filter:drop-shadow(0 7px 0 #6f4c5b33);animation:evolution-glow .8s ease-in-out infinite alternate}.evolution-arrow{font-size:30px;color:#a84356;font-weight:900}.growth-panel>strong{display:block;color:#8f354c;font-size:20px}.growth-panel.still .evolution-stage:before,.growth-panel.still .evolution-stage canvas{animation:none}@keyframes evolution-rays{to{transform:rotate(360deg)}}@keyframes evolution-glow{to{filter:brightness(1.35) drop-shadow(0 0 10px #fff4a8);transform:translateY(-5px)}}@media(max-width:650px){.evolution-stage{min-height:85px;gap:10px}.evolution-stage canvas{width:56px;height:70px}.evolution-arrow{font-size:20px}}
