:root{color-scheme:dark;--bg:#06161c;--panel:#10292fe8;--ink:#eef8f5;--muted:#aac3c8;--line:#7ebac23c;--cyan:#9df4e7;--gold:#e2f58e;--red:#f299a8;--blue:#8acbf8;--green:#a5e6ac;--font:Inter,'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;min-width:320px}body:before{content:'';position:fixed;inset:0;z-index:-2;background:linear-gradient(90deg,#031118d9,#061b2177 60%,#04121899),url('/assets/forest.webp') center/cover no-repeat}body:after{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(0deg,#041318 2%,transparent 75%);pointer-events:none}button,select,input{font:inherit}button{cursor:pointer;color:inherit;border:none;background:none;touch-action:manipulation}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.13)}button,select{transition:background .18s,border-color .18s,transform .18s}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.3}h1{font-size:clamp(30px,4vw,48px);letter-spacing:-.045em}h2{font-size:24px}h3{font-size:18px}small{font-size:12px}button small{font-size:12px}a{color:var(--cyan)}em{font-style:normal;color:var(--cyan)}i{font-style:normal}main{max-width:1440px;margin:auto;padding:38px 5vw 48px;min-height:calc(100vh - 160px)}.topbar{height:91px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#05171ba8}.brand{font-size:22px;font-weight:950;letter-spacing:-1px;line-height:.82;position:relative;text-align:left;padding:0 90px 0 0}.brand>span{display:block}.brand>small{position:absolute;right:0;top:8px;font-size:12px;letter-spacing:.15em;font-weight:400;color:var(--muted)}nav{display:flex;gap:30px;align-items:center}nav button{font-size:14px;letter-spacing:.04em}nav button span{margin-left:6px;color:var(--cyan)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--cyan);display:flex;align-items:center;gap:12px;margin-bottom:12px}.line{display:inline-block;width:28px;height:2px;background:var(--cyan)}.primary,.outline{padding:13px 24px;font-size:14px;font-weight:800;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px}.primary{color:#071b21;background:var(--cyan);clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}.primary:hover:not(:disabled){background:var(--gold);transform:translateY(-2px)}.outline{border:1px solid #8cc7cc7d;background:#0a242b8f}.textbutton{font-size:14px;text-decoration:underline;text-underline-offset:5px;padding:10px;color:var(--muted)}.muted{color:var(--muted);font-size:14px}.center{text-align:center}.home{display:grid;grid-template-columns:1.15fr 1fr;position:relative;padding-top:42px;padding-bottom:0;min-height:calc(100vh - 140px);overflow:hidden}.homecopy{z-index:2;position:relative;padding-top:12px}.chapter{font-size:14px;letter-spacing:.1em;margin:37px 0 12px}.chapter span{color:var(--muted);margin-left:12px}.home h1{font-size:clamp(72px,9.7vw,146px);line-height:.85;letter-spacing:-.075em;font-weight:950;transform:skew(-5deg);width:max-content;position:relative}.home h1 em{display:block;-webkit-text-stroke:1px var(--cyan);color:transparent;margin-left:26px}.edition{display:block;font-size:12px;line-height:2;letter-spacing:.23em;text-align:right;color:var(--muted);margin:22px 0 0}.intro{font-size:21px;line-height:1.8;letter-spacing:.1em;margin:28px 0}.huge{font-size:18px;min-width:290px;min-height:62px}.huge span{font-size:26px}.start-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.start-details{display:flex;gap:26px;font-size:11px;letter-spacing:.13em;color:var(--muted);margin:30px 0 35px}.character{position:relative;min-height:620px;margin-top:-15px;align-self:stretch;isolation:isolate}.portrait{position:absolute;inset:0 -40px 0 -85px;background:url('/assets/image1.jpeg') 16% center/auto 100% no-repeat;mask-image:linear-gradient(90deg,transparent,#000 14%,#000 88%,transparent);clip-path:polygon(20% 0,100% 0,89% 100%,0 100%);opacity:.87}.character:after{content:'';position:absolute;inset:55% -5% 0 -12%;background:linear-gradient(transparent,#06171bf0 82%);z-index:1}.character-caption{position:absolute;bottom:55px;left:20px;z-index:3;transform:rotate(-3deg);border-left:4px solid var(--cyan);padding-left:22px}.character-caption small{letter-spacing:.2em;color:var(--cyan)}.character-caption h2{font-size:38px;margin:6px 0}.character-caption p{font-size:14px}.character-index{position:absolute;right:0;top:25px;font-size:72px;font-weight:200;color:#061b216b;z-index:3}.home-bottom{grid-column:1/-1;display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted);z-index:2}.home-bottom i{margin:0 10px;color:var(--cyan)}.footer{padding:15px 5vw;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;letter-spacing:.08em;color:#92acb5;border-top:1px solid var(--line)}.footer i{color:var(--cyan);margin:0 10px}.runbar{display:flex;align-items:center;gap:30px;padding:13px 5vw;background:#061a20d9;border-bottom:1px solid var(--line)}.floorcount{white-space:nowrap;display:flex;gap:8px;align-items:baseline}.floorcount strong{font-size:34px;font-weight:900;line-height:1}.floorcount span{font-size:12px;color:var(--muted)}.health{width:270px;max-width:33vw}.health>span{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px;gap:14px}.health b{font-size:14px;white-space:nowrap}.health small{color:var(--muted);font-weight:400}.bar{display:block;height:4px;width:100%;background:#e5fdf321;overflow:hidden}.bar i{display:block;height:100%;background:var(--cyan);transition:width .25s}.gold{font-size:22px;font-weight:600;margin-left:auto;color:var(--gold);white-space:nowrap}.gold small{font-size:12px}.runbar .outline{padding:8px 16px;font-size:12px;min-height:40px;gap:6px}.runbar .outline span{color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.section-heading h1 span{color:var(--muted);font-size:24px;margin-left:16px;font-weight:400}.section-heading>span{font-size:14px;color:var(--muted)}.depthtrack{display:flex;gap:5px;margin:10px 0 48px}.depthtrack span{height:24px;flex:1;border-top:3px solid #65878e66;color:var(--muted);font-size:11px;text-align:center}.depthtrack .done{border-color:var(--cyan)}.depthtrack .current{border-color:var(--gold);color:var(--gold);background:#e2f58e16}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.route{display:flex;flex-direction:column;align-items:stretch;min-height:330px;padding:24px;text-align:left;background:linear-gradient(145deg,#122f35f2,#081d24e8);border:1px solid #80b2bc60;position:relative;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);transition:transform .2s,border-color .2s}.route:nth-child(2){transform:translateY(18px)}.route:hover:not(:disabled){border-color:var(--cyan);background:linear-gradient(145deg,#204750f2,#0e282be8);transform:translateY(-5px)}.route:nth-child(2):hover{transform:translateY(13px)}.route-id{font-size:12px;letter-spacing:.14em;color:var(--muted)}.route-mark{height:100px;display:flex;align-items:center;justify-content:flex-end;font-size:66px;font-weight:200;color:var(--cyan);font-family:Georgia,serif;opacity:.65}.route small{font-size:11px;letter-spacing:.18em;color:var(--cyan)}.route h2{margin:8px 0 10px;font-size:28px}.route p{font-size:14px;color:var(--muted)}.route-go{display:block;border-top:1px solid var(--line);padding-top:14px;margin-top:25px;font-size:14px;text-align:right}.route.shop .route-mark,.route.shop small{color:var(--gold)}.route.boss{grid-column:1/-1;min-height:320px;max-width:760px;width:100%;margin:auto;background:linear-gradient(120deg,#252f3be8,#153a3ddd)}.route.boss .route-mark{position:absolute;right:30px;top:50px;font-size:100px}.route.boss h2{margin-top:80px}.map-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:60px}.map-bottom p{font-size:14px}.map-bottom p span{color:var(--muted)}.battle-screen{padding-top:23px;padding-bottom:25px}.battle-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.battle-heading h1{font-size:24px}.battle-heading .eyebrow{margin-bottom:3px;font-size:11px}.turn{font-size:12px;letter-spacing:.1em;color:var(--muted)}.turn strong{font-size:32px;color:var(--ink);margin-left:8px}.enemies{display:flex;justify-content:center;align-items:stretch;gap:20px;max-width:1000px;margin:0 auto 25px}.enemy{flex:1;max-width:310px;background:#071b23e0;border:1px solid #739aa360;padding:16px 20px;text-align:left;position:relative;min-width:0}.enemy.selected{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),0 0 32px #9df4e719;background:#12343bcc}.enemy.dead{opacity:.32;filter:grayscale(1);border-color:var(--line)}.enemy-number{font-size:10px;color:var(--muted);letter-spacing:.12em}.enemy-sigil{font-size:56px;line-height:1.2;font-family:Georgia,serif;text-align:center;color:#b2f0e4;filter:drop-shadow(0 0 14px #90edd380);margin:3px 0 8px}.enemy h2{font-size:18px;text-align:center;margin-bottom:12px}.enemy-hp{display:flex;justify-content:space-between;font-size:12px}.enemybar{margin-top:5px;height:5px}.enemybar i{background:#cce79b}.enemy-status{min-height:30px;display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.status{display:inline-block;padding:2px 7px;background:#7ba0ac23;color:#c3d9dd;font-size:12px;border:1px solid #71929a40;white-space:nowrap}.status.freeze{background:#599ebf28;color:#b6e8ff}.status.burn{color:#ffba90}.status.shock{color:var(--gold)}.status.vulnerable,.status.weak{color:#f7bac7}.intent{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:10px;align-items:center}.count{font-size:33px;line-height:1;display:flex;flex-direction:column;align-items:center;min-width:44px;color:var(--gold);font-weight:800}.count small{font-size:9px;font-weight:400;letter-spacing:.08em;margin-top:4px}.intent>span:last-child{font-size:13px;line-height:1.4}.intent>span:last-child small{display:block;color:var(--blue);font-size:11px;margin-top:4px}.target-label{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.18em;background:var(--cyan);color:#071b21;padding:1px 14px}.battle-strip{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#0b242bd9;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 16px;margin-bottom:14px}.battle-strip>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shield-stat{color:var(--blue);font-size:22px;white-space:nowrap}.shield-stat small{font-size:10px;color:var(--muted);margin:0 10px 0 4px}.nexus-display{font-size:14px}.nexus-display span{font-size:10px;letter-spacing:.12em;color:var(--green);margin-right:12px}.hand-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 0 10px;gap:10px}.hand-heading>span{font-size:12px;color:var(--muted)}.hand-heading>div{display:flex;gap:12px}.hand-heading button{font-size:12px;padding:2px 0;border-bottom:1px solid var(--line)}.hand{display:flex;gap:12px;overflow-x:auto;padding:9px 3px 18px;scroll-snap-type:x proximity;align-items:stretch}.card{--type:var(--red);display:flex;flex-direction:column;flex:0 0 205px;min-height:280px;width:205px;background:linear-gradient(145deg,#213338,#0d2027);border:1px solid #9cbcc16b;text-align:left;padding:0;position:relative;isolation:isolate;scroll-snap-align:start;overflow:hidden;border-top:3px solid var(--type);transition:transform .2s,box-shadow .2s}.card.Defense{--type:var(--blue)}.card.Skill{--type:var(--gold)}.card.Nexus{--type:var(--green)}button.card:hover{transform:translateY(-5px);border-color:var(--type);box-shadow:0 5px 18px #0005}.card.unplayable{filter:saturate(.35);opacity:.56}.cardhead{display:flex;align-items:center;gap:8px;padding:9px 10px;font-size:9px;letter-spacing:.06em;color:var(--type)}.cost{font-size:24px;width:30px;height:31px;line-height:30px;text-align:center;font-weight:800;border:1px solid var(--type);color:var(--ink);transform:skew(-8deg)}.cardcode{margin-left:auto;opacity:.6;font-size:9px}.cardmotif{height:45px;margin-right:20px;line-height:45px;font-size:47px;text-align:right;font-weight:200;color:var(--type);opacity:.5}.cardbody{padding:9px 13px 15px;flex:1}.cardbody h3{font-size:17px;line-height:1.45;margin-bottom:10px;overflow-wrap:anywhere}.cardbody p{font-size:13px;line-height:1.65;color:#d5e3e6}.condition{display:block;font-size:11px;color:var(--blue);margin-top:8px}.cardslots{border-top:1px solid #719da440;display:flex;gap:4px;align-items:center;padding:9px 10px;flex-wrap:wrap;min-height:39px}.slot{width:16px;height:16px;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.slot.Free{color:#d9e6e8}.slot.Offense{color:var(--red)}.slot.Defense{color:var(--blue)}.slot.Skill{color:var(--gold)}.slot.Nexus{color:var(--green)}.slot.filled{background:#daeefb36;box-shadow:0 0 6px currentColor}.cardslots small{font-size:9px;color:var(--muted);flex-basis:100%;padding-top:3px}.battle-footer{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:12px}.energy{display:flex;align-items:center;gap:12px;margin-right:10px}.energy strong{font-size:50px;line-height:1;color:var(--cyan)}.energy>span{font-size:14px;line-height:1.3}.energy small{font-size:8px;white-space:nowrap;color:var(--muted)}.recentlog{flex:1;font-size:12px;color:var(--muted);line-height:1.5}.endturn{min-width:180px}.discard-mode .card{border-color:var(--gold);cursor:crosshair}.empty-hand{width:100%;padding:45px;text-align:center;color:var(--muted)}.reward-screen{max-width:1140px}.drop-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid #99d3ba44;background:#1a343bc9;padding:16px 20px;margin-bottom:38px}.drop-banner>span{font-size:12px;color:var(--muted)}.drop-banner button{padding:5px 10px;border:1px solid var(--line);font-size:14px;color:var(--gold)}.drop-banner>small{margin-left:auto;color:var(--muted)}.reward-cards{display:flex;justify-content:center;gap:28px;margin:30px 0}.reward-cards .card{flex:1;max-width:290px;min-height:360px}.reward-cards .cardmotif{height:85px;font-size:76px;line-height:85px}.reward-cards .cardbody h3{font-size:23px}.reward-cards .cardbody p{font-size:16px}.encounter-screen{max-width:1000px;padding-top:60px}.encounter-screen h1{font-size:44px;margin:24px 0}.encounter-text{font-size:18px;color:var(--muted);margin-bottom:35px}.heal-banner{display:flex;align-items:center;gap:20px;color:var(--cyan);font-size:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px;margin-bottom:35px}.heal-banner small{font-size:14px;color:var(--muted)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.choice{display:flex;flex-direction:column;align-items:start;position:relative;text-align:left;background:#123039e0;border:1px solid var(--line);padding:25px}.choice small{color:var(--cyan);font-size:11px;letter-spacing:.12em}.choice h2{margin:8px 0 12px;font-size:24px}.choice p{font-size:14px;color:var(--muted)}.choice>span{align-self:end;margin-top:20px;color:var(--cyan);font-size:14px}.event-choices{display:grid;gap:14px}.event-choices .choice{padding:15px 25px}.event-choices .choice>span{position:absolute;right:25px;bottom:20px}.subheading{display:flex;align-items:center;gap:20px;font-size:15px;letter-spacing:.13em;margin:25px 0 20px}.subheading span{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}.shop-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:860px}.shop-cards .card{width:100%;min-height:280px}.buy{border:1px solid var(--line);background:#20434bc9;width:100%;padding:10px;font-size:14px;margin-top:8px;color:var(--cyan)}.shop-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.module-item{background:#102d34ed;border:1px solid var(--line);padding:20px;text-align:left}.module-type{font-size:26px;color:var(--cyan)}.module-item h3{margin:10px 0;font-size:18px}.module-item p{font-size:14px;color:var(--muted)}.module-item p strong{font-size:12px}.module-item>b{font-size:14px;display:block;color:var(--gold);margin-top:20px}.remove-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#0d242be6;border:1px solid var(--line);padding:24px;margin-top:35px}.remove-banner p{font-size:14px;color:var(--muted);margin-top:5px}.result-screen{text-align:center;padding-top:50px}.result-screen .eyebrow{justify-content:center}.result-screen h1{font-size:clamp(55px,8vw,110px);line-height:.95;font-weight:950;transform:skew(-5deg);margin:35px 0}.result-screen h2{margin-bottom:15px}.result-screen>p:not(.eyebrow){color:var(--muted);font-size:16px}.result-stats{display:flex;justify-content:center;gap:70px;margin:40px 0}.result-stats strong{display:block;font-size:46px;line-height:1.1}.result-stats span{font-size:11px;color:var(--muted);letter-spacing:.15em}.result-actions{display:flex;justify-content:center;gap:20px}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:35px 0}.archive-item{background:#102c34e8;border:1px solid var(--line);text-align:left;padding:24px;position:relative;overflow:hidden}.archive-item>small{color:var(--cyan);font-size:11px;letter-spacing:.15em}.archive-item h2{margin:15px 0 60px;font-size:23px}.archive-item>strong{position:absolute;right:22px;top:60px;font-size:65px;color:#a5eada50;line-height:1;font-weight:500}.archive-item>strong span{font-size:20px}.archive-item p{font-size:12px;letter-spacing:.06em}.archive-item p i{color:var(--muted);margin:0 5px}.archive-item>span{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.archive-item>span b{color:var(--cyan)}.empty-state{text-align:center;padding:70px 20px}.empty-state>span{font-size:65px;color:var(--cyan)}.empty-state h2{margin:15px 0}.empty-state p{color:var(--muted);margin-bottom:25px}.backup-row{margin-top:25px;text-align:right}dialog{color:var(--ink);background:#0b242c;border:1px solid #92d1d178;max-width:760px;width:calc(100% - 36px);max-height:88dvh;padding:26px;box-shadow:0 30px 100px #000a}dialog.wide{max-width:1180px}dialog::backdrop{background:#001018b8;backdrop-filter:blur(7px)}.panel-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:22px;font-size:11px;letter-spacing:.15em;color:var(--muted)}.panel-top button{font-size:20px;padding:0 6px;color:var(--ink)}.panel-heading{margin-bottom:25px}.panel-heading h2{font-size:28px;margin:5px 0 12px}.panel-heading p:not(.eyebrow){font-size:14px;color:var(--muted)}dialog>p{margin:18px 0;font-size:16px;color:var(--muted)}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:15px}.deck-grid .card{width:100%;min-height:250px}.compact .cardmotif{height:20px;font-size:30px;line-height:20px}.compact .cardbody h3{font-size:16px}.compact .cardbody p{font-size:12px}.bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.bag-item{background:#152f36;border:1px solid var(--line);padding:15px}.bag-item>b{font-size:14px}.bag-item p{font-size:12px;color:var(--muted);margin:7px 0}.bag-item small{font-size:11px;color:var(--cyan)}.edit-card{display:grid;grid-template-columns:250px 1fr;gap:35px;margin-top:20px}.edit-card .card{width:100%}.edit-card h2{margin-bottom:15px}.equip-label{display:block;margin-top:20px;color:var(--cyan);font-size:14px}.equip-label select{display:block;width:100%;padding:12px;background:#081e27;color:var(--ink);border:1px solid #7aa3ad88;margin-top:8px;font-size:16px}.equipped-descriptions p{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.equipped-descriptions b{color:var(--ink)}.guide h3{margin:28px 0 12px;color:var(--cyan)}.guide p{font-size:16px;line-height:1.9;margin:10px 0;color:#c8dce1}.guide p.muted{font-size:13px}.logs{font-size:14px;line-height:1.8;padding-left:25px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);padding:12px 24px;background:#d8f9ed;color:#052024;box-shadow:0 5px 30px #0005;z-index:10;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;max-width:90vw;width:max-content;font-size:14px}#toast.show{opacity:1;transform:translate(-50%,0)}.loading{text-align:center;margin-top:35vh;font-size:35px;font-weight:900;letter-spacing:.15em}
@media(min-width:1450px){.topbar,.runbar{padding-left:max(5vw,calc((100vw - 1296px)/2));padding-right:max(5vw,calc((100vw - 1296px)/2))}}
@media(max-width:1000px){.home{grid-template-columns:1fr 1fr}.home h1{font-size:11vw}.character{min-height:560px}.portrait{inset:0 -70px 0 -40px;background-position:17% center}.character-caption{left:15px}.character-caption h2{font-size:30px}.homecopy .eyebrow{font-size:9px}.route{padding:20px}.route h2{font-size:23px}.runbar{gap:20px}.runbar .outline span{display:none}.card{flex-basis:190px;width:190px}.hand{gap:10px}.reward-cards{gap:18px}.reward-cards .cardbody h3{font-size:20px}.reward-cards .cardbody p{font-size:14px}}
@media(max-width:700px){body{font-size:16px}.topbar{height:72px;padding:0 20px}.brand{font-size:19px;padding-right:0}.brand small{display:none}nav{gap:18px}nav button{font-size:12px}main{padding:28px 20px 35px}.home{display:block;min-height:790px;padding-top:27px}.homecopy{padding-top:0}.homecopy>.eyebrow{font-size:10px}.chapter{margin-top:28px;font-size:12px}.home h1{font-size:clamp(60px,15vw,100px);z-index:2}.home h1 em{margin-left:12px}.edition{font-size:9px;margin-top:13px}.intro{font-size:18px;margin:27px 0 185px;position:relative;z-index:3;max-width:220px;text-shadow:0 2px 10px #000}.character{position:absolute;top:100px;right:0;width:58%;height:470px;min-height:0;z-index:1;pointer-events:none}.portrait{inset:0 -18px 0 -40px;background-position:18% center;clip-path:polygon(23% 0,100% 0,100% 100%,0 100%);opacity:.9}.character-caption{bottom:30px;left:0;padding-left:13px;border-left-width:3px}.character-caption h2{font-size:23px;white-space:nowrap}.character-caption small{font-size:8px}.character-caption p{font-size:10px;max-width:170px}.character-index{font-size:42px;right:10px;top:15px}.homecopy .start-actions{position:relative;z-index:4}.huge{width:100%;min-height:58px;font-size:17px}.start-details{margin:24px 0 20px;font-size:9px;gap:20px}.home-bottom{font-size:11px;display:block;position:relative;z-index:3}.home-bottom span{display:block;margin:5px 0}.footer{padding:13px 20px;font-size:9px;gap:8px}.runbar{padding:12px 20px;gap:14px;flex-wrap:wrap}.floorcount strong{font-size:28px}.floorcount span{font-size:10px}.health{flex:1;width:auto;max-width:none}.health>span{font-size:10px}.health b{font-size:12px}.health small{font-size:10px}.gold{font-size:19px;margin-left:0}.runbar .outline{width:100%;justify-content:center;min-height:33px;font-size:12px;padding:4px 10px}.runbar .outline span{display:inline}.section-heading{gap:12px;margin-bottom:24px;align-items:start;flex-wrap:wrap}.section-heading h1{font-size:29px}.section-heading h1 span{font-size:18px;margin-left:8px}.section-heading>span{font-size:12px}.eyebrow{font-size:10px;margin-bottom:8px}.depthtrack{gap:3px;margin-bottom:20px}.depthtrack span{font-size:9px;height:21px}.route-grid{grid-template-columns:1fr;gap:14px}.route{min-height:165px;padding:16px 20px;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}.route:nth-child(2),.route:nth-child(2):hover{transform:none}.route-id{font-size:9px;margin-bottom:15px}.route-mark{position:absolute;right:25px;top:16px;height:auto;font-size:50px}.route small{font-size:9px}.route h2{font-size:24px;margin:2px 0 7px}.route p{font-size:12px;max-width:85%}.route-go{position:absolute;right:20px;bottom:15px;border:0;padding:0;margin:0;font-size:12px}.route.boss{min-height:280px}.route.boss h2{font-size:24px}.route.boss .route-mark{font-size:70px}.map-bottom{display:block;margin-top:28px}.map-bottom p{font-size:12px;margin-bottom:20px}.map-bottom .outline{font-size:12px;width:100%;justify-content:center}.battle-screen{padding:20px 12px}.battle-heading{padding:0 8px;margin-bottom:14px}.battle-heading h1{font-size:21px}.turn strong{font-size:25px}.enemies{gap:7px;align-items:stretch}.enemy{padding:10px 8px;min-width:0;max-width:250px}.enemy-number{font-size:8px;letter-spacing:0}.enemy-sigil{font-size:39px;margin:6px 0}.enemy h2{font-size:13px;line-height:1.5;min-height:38px;margin-bottom:6px;overflow-wrap:anywhere}.enemy-hp{font-size:10px;flex-wrap:wrap;gap:3px}.enemy-status{min-height:25px;gap:3px}.status{font-size:10px;padding:1px 4px}.intent{gap:5px;flex-direction:column;align-items:start;padding-top:8px}.count{font-size:28px;min-width:0;flex-direction:row;align-items:baseline;gap:6px}.count small{font-size:8px}.intent>span:last-child{font-size:11px;min-height:31px}.intent>span:last-child small{font-size:9px}.target-label{font-size:8px;padding:1px 8px}.battle-strip{padding:9px 10px;flex-wrap:wrap;gap:6px;margin-bottom:10px}.shield-stat{font-size:19px}.shield-stat small{font-size:9px}.nexus-display{font-size:12px}.nexus-display span{font-size:9px}.hand-heading{flex-wrap:wrap;gap:7px;padding:0 5px}.hand-heading>span{font-size:11px}.hand-heading>div{gap:15px}.hand-heading button{font-size:11px}.hand{padding:8px 4px 14px;gap:9px;max-width:100%;overscroll-behavior-x:contain}.card{flex-basis:175px;width:175px;min-height:273px}.cardbody{padding:8px 11px 12px}.cardbody h3{font-size:16px;margin-bottom:9px}.cardbody p{font-size:12px}.cardhead{padding:8px;font-size:8px;gap:6px}.cost{font-size:22px}.cardcode{font-size:8px}.cardmotif{height:40px;line-height:40px;font-size:40px}.cardslots small{font-size:9px}.battle-footer{gap:10px;flex-wrap:wrap;padding:10px 5px 0}.energy{gap:8px;margin:0}.energy strong{font-size:38px}.energy>span{font-size:12px}.energy small{font-size:7px}.recentlog{display:none}.battle-footer .textbutton{margin-left:auto;font-size:12px}.endturn{min-width:160px;font-size:13px;padding:12px 15px}.reward-cards{gap:18px;flex-direction:column;align-items:center}.reward-cards .card{width:100%;max-width:420px;min-height:235px;flex-basis:auto}.reward-cards .cardmotif{position:absolute;right:4px;top:3px;font-size:50px;height:50px;line-height:50px;z-index:-1}.reward-cards .cardbody h3{font-size:21px}.reward-cards .cardbody p{font-size:15px}.reward-cards .cardbody{padding:8px 18px 20px}.reward-cards .cardslots{padding:9px 18px}.drop-banner{padding:14px;gap:9px;margin-bottom:20px}.drop-banner small{margin-left:0}.drop-banner button{font-size:12px}.encounter-screen{padding-top:35px}.encounter-screen h1{font-size:31px;margin:20px 0}.encounter-text{font-size:16px}.heal-banner{font-size:24px;gap:14px;padding:14px 0;flex-wrap:wrap}.heal-banner small{font-size:12px}.choice-grid{grid-template-columns:1fr;gap:16px}.choice{padding:20px}.choice h2{font-size:21px}.event-choices .choice{padding:16px}.event-choices .choice h2{font-size:20px}.event-choices .choice p{font-size:13px;max-width:85%}.shop-cards,.shop-modules{grid-template-columns:1fr;gap:22px}.shop-cards .card{min-height:230px}.shop-cards .cardmotif{position:absolute;right:0;top:10px;z-index:-1}.shop-cards .cardbody p{font-size:15px}.shop-cards .cardbody h3{font-size:21px}.module-item{padding:18px}.remove-banner{padding:20px;flex-wrap:wrap}.remove-banner .outline{width:100%;justify-content:center}.result-screen{padding-top:45px}.result-screen h1{font-size:clamp(40px,11vw,75px)}.result-screen h2{font-size:23px}.result-screen>p:not(.eyebrow){font-size:14px}.result-stats{gap:35px;margin:35px 0}.result-stats strong{font-size:36px}.result-stats span{font-size:9px}.result-actions{flex-direction:column;gap:14px}.archive-grid{grid-template-columns:1fr}.archive-item h2{margin-bottom:45px}.archive-screen .section-heading .outline{font-size:12px;padding:9px 15px;min-height:40px}dialog{width:calc(100% - 20px);padding:18px;max-height:90dvh}.panel-top{margin-bottom:18px}.panel-heading h2{font-size:23px}.panel-heading p:not(.eyebrow){font-size:12px}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.deck-grid .card{min-height:245px}.compact .cardbody h3{font-size:14px}.compact .cardbody p{font-size:12px}.compact .cardhead{gap:4px;font-size:7px}.compact .cardhead .cardcode{display:none}.compact .cost{font-size:20px;width:24px;height:27px;line-height:26px}.edit-card{grid-template-columns:1fr;gap:25px}.edit-card>.card{max-width:280px}.edit-card>div:first-child{max-width:260px;margin:auto;width:100%}.edit-card h2{font-size:23px}.guide p{font-size:15px}.bag-grid{grid-template-columns:1fr}.bag-item p{font-size:13px}#toast{font-size:13px;padding:12px 18px;bottom:15px}.loading{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
/* Readable game text at phone widths; metadata never becomes microscopic. */
.cardhead,.cardcode,.cardslots small,.slot,.cardhead .cardcode,.compact .cardhead,.compact .cardhead .cardcode,.enemy-number,.count small,.target-label,.eyebrow,.battle-heading .eyebrow,.route-id,.route small,.edition,.start-details,.character-caption small,.hand-heading>span,.hand-heading button,.footer,.home-bottom,.energy small,.nexus-display span,.shield-stat small,.status,.enemy-hp,.intent>span:last-child small,.subheading span,.archive-item>small,.result-stats span,.module-item p strong,.bag-item small,.panel-top,.floorcount span,.health>span,.health small,.turn,.character-caption p{font-size:12px}
.cardbody p,.compact .cardbody p{font-size:14px;line-height:1.65}.cardbody h3{font-size:18px}.card{min-height:304px}.cardhead{letter-spacing:0;gap:7px}.cardcode{display:none}.cardslots small{line-height:1.4}.cardhead .cost{flex-shrink:0}.enemy-number{letter-spacing:0}.enemy h2{font-size:18px}.hand-heading>span,.hand-heading button,.intent>span:last-child{font-size:14px}.card.compact{min-height:280px}.compact .cardbody h3{font-size:16px}.condition{font-size:12px}.enemy-sigil{font-size:52px}.bag-item p{font-size:14px}
@media(max-width:700px){.cardbody h3{font-size:16px}.cardbody p,.compact .cardbody p{font-size:14px}.cardhead{font-size:12px}.enemy h2{font-size:14px;min-height:42px}.enemy-number{font-size:12px}.intent>span:last-child{font-size:12px}.hand-heading>span,.hand-heading button{font-size:12px}.count{flex-wrap:wrap;gap:3px}.count small{font-size:12px}.status{font-size:12px}.enemy-status{min-height:30px}.health>span{gap:7px}.health>span>b{font-size:12px}.character-caption small{font-size:12px}.character-caption p{font-size:12px}.homecopy>.eyebrow{font-size:12px;letter-spacing:.06em}.start-details{font-size:12px;gap:12px}.home h1{max-width:100%}.footer{font-size:12px;letter-spacing:0}.runbar .outline{font-size:14px}.depthtrack span{font-size:12px}.depthtrack span:not(.current):not(:last-child){font-size:0}.route p,.map-bottom p{font-size:14px}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-grid .card{min-height:300px}.compact .cardbody{padding:8px}.enemy-sigil{font-size:40px}.result-stats span{font-size:12px;letter-spacing:0}.portrait{background-position:16% center}.intro{margin-bottom:190px}}
.module-orb{display:inline-block;flex-shrink:0;width:18px;height:18px;border-radius:50%;margin-right:8px;vertical-align:-3px;border:1px solid #fff9;background:radial-gradient(circle at 30% 25%,#fff, var(--orb) 35%,#15212d 100%);box-shadow:0 0 8px color-mix(in srgb,var(--orb),transparent 65%);--orb:#edc3cf}.module-orb.Offense{--orb:#ef8397}.module-orb.Defense{--orb:#73bcef}.module-orb.Skill{--orb:#eced8f}.module-orb.Nexus{--orb:#79daa4}.module-rewards{margin:24px 0 32px;text-align:left}.module-rewards h2{font-size:22px;margin-bottom:16px}.module-rewards h2 small{display:inline-block;color:var(--muted);font-size:14px;margin-left:12px;font-weight:400}.module-reward-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.module-reward{padding:20px;background:#123139ef;border:1px solid var(--line)}.module-reward h3{font-size:18px;margin-bottom:12px}.module-reward p{font-size:14px;color:var(--muted)}.module-reward strong{display:block;color:var(--cyan);margin-top:8px}.result-screen .module-rewards{max-width:1000px;margin:30px auto}.module-item h3 .module-orb{margin-right:6px}@media(max-width:700px){.module-reward-list{grid-template-columns:1fr}.module-rewards h2 small{display:block;margin:6px 0 0}.module-reward{padding:16px}}
/* Battle presentation: forest stage, foreground swordswoman, illustrated cards. */
.battle-screen{max-width:1600px;padding:18px 3vw 24px}.battle-heading{margin:0 1vw 8px}.battle-heading h1{font-size:22px;letter-spacing:.05em}.battle-stage{isolation:isolate;position:relative;min-height:390px;display:flex;align-items:flex-end;border-top:1px solid #9fe9dd30;border-bottom:1px solid #9fe9dd30;background:linear-gradient(0deg,#05181f 0%,#05181f20 45%,#05202a33),url('/assets/forest.webp') center 66%/cover;box-shadow:inset 0 0 100px #02111899;overflow:hidden}.battle-frodia{position:absolute;left:-2%;bottom:0;width:34%;height:102%;z-index:-1;pointer-events:none}.actor-art,.enemy-art{background-image:url('/assets/combat-atlas.webp');background-size:400% 200%;background-repeat:no-repeat}.actor-art{height:100%;width:100%;filter:drop-shadow(0 0 20px #8ecbf050)}.actor-name{position:absolute;left:22%;bottom:24px;font-size:24px;font-weight:900;font-style:italic;letter-spacing:.12em;text-shadow:0 2px 8px #000}.actor-name small{display:block;font-style:normal;color:var(--cyan);font-size:12px;letter-spacing:.22em}.battle-stage .enemies{position:relative;z-index:1;display:flex;justify-content:space-evenly;align-items:flex-end;gap:16px;width:76%;margin:22px 0 20px 24%;max-width:none}.battle-stage .enemy{display:flex;flex-direction:column;align-items:stretch;max-width:330px;min-width:0;flex:1;border:none;background:transparent;box-shadow:none;padding:0 10px 10px;isolation:isolate;transition:filter .2s,opacity .2s}.battle-stage .enemy.selected{background:transparent;box-shadow:none;border:none}.battle-stage .enemy:after{content:'';position:absolute;top:52%;height:24px;left:8%;right:8%;border:2px solid transparent;border-radius:50%;transform:perspective(160px) rotateX(42deg);pointer-events:none;z-index:-1}.battle-stage .enemy.selected:after{border-color:var(--cyan);box-shadow:0 0 14px #88efdbaa,inset 0 0 12px #88efdb44}.battle-stage .enemy-number{color:#d2e7df;font-size:12px;text-shadow:0 1px 5px #000}.enemy-art{height:210px;order:1;filter:drop-shadow(0 7px 8px #0008);margin:8px -10px 0}.battle-stage .enemy h2{order:0;font-size:18px;min-height:0;margin:4px 0 8px;text-align:left;text-shadow:0 2px 5px #000}.battle-stage .enemy-hp{order:0;background:#061a20bf;padding:3px 6px;font-size:13px}.battle-stage .bar{order:0;height:6px;background:#091b1cee;box-shadow:0 0 0 1px #c8e8a65c}.battle-stage .enemy-status{order:2;min-height:26px;margin:4px 0}.battle-stage .intent{order:3;border:1px solid #72b5b15a;background:#071c24de;padding:8px 10px;min-height:62px;backdrop-filter:blur(6px)}.battle-stage .intent>span:last-child{font-size:14px}.battle-stage .count{font-size:28px}.battle-stage .target-label{bottom:auto;top:115px;left:50%;background:transparent;border:1px solid #b5fbe97a;color:var(--cyan);font-size:12px;font-weight:700;letter-spacing:.15em;padding:3px 8px;text-shadow:0 1px 5px #000}.battle-stage .enemy.dead{opacity:.22}.battle-stage .enemy.dead .enemy-art{filter:grayscale(1)}.battle-strip{margin-top:0;background:#081f29e8}.battle-screen .hand{justify-content:center;gap:12px;padding:14px 8px 22px;background:linear-gradient(0deg,#06121aee,#0a1e2366);align-items:stretch}.card-art{height:104px;flex-shrink:0;background-image:url('/assets/card-atlas.webp');background-size:400% 300%;background-repeat:no-repeat;position:relative;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff30}.card-art:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#10232be6)}.card{border-radius:8px 8px 3px 3px;border:1px solid #819fba;border-top:3px solid var(--type);background:linear-gradient(145deg,#162e40,#0c202c);box-shadow:0 5px 13px #0007;min-height:360px}.cardhead{position:relative;z-index:1;padding:9px 12px;background:#061724ce}.cardhead .cost{border-radius:50%;border:2px solid var(--type);width:32px;height:32px;line-height:28px;transform:none;background:#112838;box-shadow:0 0 12px #abdaf22b}.cardbody{position:relative;background:linear-gradient(#132b37c7,#0b1d2be8)}.cardbody h3{color:#f3faff}.cardslots{background:#081926}.battle-screen .hand .card{flex-basis:205px;min-height:350px}.battle-screen .hand .card:hover{transform:translateY(-9px);box-shadow:0 0 0 1px var(--type),0 0 22px #9bdeff55;z-index:2}.card.unplayable{opacity:.66;filter:saturate(.5)}.reward-cards .card-art{height:160px}.shop-cards .card-art{height:130px}.deck-grid .card-art{height:90px}.edit-card .card-art{height:150px}.battle-footer{background:#061720ee;padding:12px 16px;border:1px solid #88bfd744;border-radius:2px}.energy{min-width:105px}.energy strong{font-size:44px;text-shadow:0 0 18px #83dfea88}.endturn{background:linear-gradient(110deg,#99e8ed,#d0eafc);min-height:55px;letter-spacing:.05em}.cast-label{position:absolute;top:36%;left:35%;right:10%;text-align:center;font-size:28px;letter-spacing:.12em;font-weight:900;font-style:italic;color:#e2fcff;text-shadow:0 0 20px #40dbf9,2px 3px #041724;pointer-events:none;z-index:9;animation:cast-name .85s both}.damage-popup{position:absolute;top:42%;left:40%;font-size:38px;font-weight:950;color:#fff7c1;text-shadow:2px 3px #092131,0 0 20px #ffdf6b;z-index:10;pointer-events:none;animation:damage-rise .85s both}.enemy-hit .enemy-art{animation:hit-flash .4s}.card-impact{animation:stage-flash .4s}@keyframes damage-rise{0%{opacity:0;transform:translateY(15px) scale(.7)}20%{opacity:1;transform:translateY(0) scale(1.2)}100%{opacity:0;transform:translateY(-45px) scale(1)}}@keyframes hit-flash{35%{filter:brightness(2) drop-shadow(0 0 20px #aaf5ff);transform:translateX(5px)}}@keyframes stage-flash{40%{box-shadow:inset 0 0 90px #87e7ff55}}@keyframes cast-name{0%{opacity:0;transform:translateX(-25px)}20%,65%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(25px)}}
@media(max-width:1100px){.battle-screen .hand{justify-content:flex-start}.battle-stage{min-height:365px}.enemy-art{height:180px}.battle-frodia{width:32%;height:94%}.battle-stage .enemies{width:78%;margin-left:22%;gap:6px}.battle-stage .enemy h2{font-size:16px}.battle-stage .intent{gap:8px;padding:7px}.battle-stage .intent>span:last-child{font-size:13px}}
@media(max-width:700px){.battle-screen{padding:12px 8px 20px}.battle-stage{min-height:320px;margin:0 -8px;align-items:stretch}.battle-frodia{width:37%;left:-12%;height:240px;bottom:34px;opacity:.85}.actor-name{font-size:16px;left:39%;bottom:9px}.actor-name small{font-size:12px;letter-spacing:0}.battle-stage .enemies{margin:12px 5px 14px 16%;width:84%;gap:2px;align-items:stretch}.battle-stage .enemy{padding:0 4px 4px;max-width:250px}.battle-stage .enemy-number{font-size:12px;letter-spacing:0}.battle-stage .enemy h2{font-size:14px;min-height:42px;line-height:1.45;margin:5px 0}.battle-stage .enemy-hp{font-size:12px;padding:2px;flex-wrap:wrap}.enemy-art{height:135px;margin:8px -5px 0}.battle-stage .enemy-status{min-height:26px;gap:2px}.battle-stage .intent{flex-direction:column;align-items:start;gap:5px;min-height:84px;padding:6px 4px;margin-top:auto}.battle-stage .intent>span:last-child{font-size:12px;min-height:0}.battle-stage .count{font-size:27px}.battle-stage .count small{font-size:12px}.battle-stage .target-label{top:125px;font-size:12px;padding:1px 3px;letter-spacing:0}.battle-stage .enemy:after{top:56%;left:3%;right:3%;height:16px}.battle-strip{padding:9px}.battle-screen .hand{gap:10px;padding:12px 4px 20px}.battle-screen .hand .card{flex-basis:180px;min-height:350px}.card-art{height:96px}.cardhead{padding:7px 9px}.cardbody p{font-size:14px}.reward-cards .card-art{height:145px}.reward-cards .card{min-height:355px}.shop-cards .card{min-height:340px}.deck-grid .card-art{height:80px}.deck-grid .card{min-height:330px}.battle-footer{padding:10px 8px;gap:8px}.energy{min-width:78px}.energy strong{font-size:36px}.endturn{min-width:145px;padding:10px 15px;min-height:49px}.damage-popup{font-size:28px;left:20%}.cast-label{font-size:20px;left:18%;right:4%;top:38%}}
@media(max-height:600px) and (min-width:701px){.battle-stage{min-height:270px}.enemy-art{height:125px}.battle-stage .enemies{margin-top:8px;margin-bottom:10px}.battle-frodia{height:100%;width:28%}.battle-screen .hand .card{flex-basis:185px}.battle-heading{margin-bottom:5px}.battle-stage .intent{min-height:48px}.battle-screen .card-art{height:80px}}
.battle-stage .enemy-art{width:100%;max-width:230px;height:auto;aspect-ratio:1;margin:8px auto 0}.battle-stage .enemy:after{top:auto;bottom:115px}.battle-stage .enemy .boss-art{max-width:260px}@media(max-width:700px){.battle-stage .enemy-art{max-width:150px;min-height:95px}.battle-stage .enemy:after{bottom:120px}.battle-frodia .actor-art{height:100%;width:100%}}@media(max-height:600px) and (min-width:701px){.battle-stage .enemy-art{max-width:135px}}

.skip-reward{display:flex;justify-content:center;margin:24px 0 8px}.skip-reward .outline{min-height:48px;font-size:16px}

.account-screen{min-height:100svh;display:grid;place-items:center;padding:28px 18px;background:linear-gradient(#06141399,#061413dd),url('/assets/title-forest.jpeg') center/cover}
.account-panel{width:min(100%,420px);padding:28px;background:#091e22ed;border:1px solid #90bdb65e;border-radius:12px;color:#edf4eb;box-shadow:0 20px 70px #0008}
.account-panel h1{font-size:25px;margin:6px 0 16px}.account-panel p{line-height:1.7}
.account-panel label{display:grid;gap:7px;margin:18px 0;font-size:14px}.account-panel input{width:100%;box-sizing:border-box;padding:13px;border:1px solid #8aaba980;border-radius:5px;background:#031418;color:white;font-size:16px}
.account-panel button{padding:12px;cursor:pointer}.account-panel .primary{width:100%;margin-top:12px}.account-panel nav{display:grid;gap:8px;margin-top:22px}.account-error{color:#ffb5a8;min-height:1em}.recovery-code{display:block;overflow-wrap:anywhere;user-select:all;background:#0006;padding:16px;margin:20px 0;font-size:17px}
