@font-face{font-family:SUIT;src:url('assets/fonts/SUIT-Variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--modern-font:SUIT,'Segoe UI','Apple SD Gothic Neo','Malgun Gothic',sans-serif}body,button,input,h1,h2,h3,.brand,.serif,.card h3,.unit-name,.modal-head h2{font-family:var(--modern-font)}body{font-weight:450;letter-spacing:-.02em}h1,h2,h3{font-weight:800}.brand{font-weight:800;transform:none;letter-spacing:-.7px}.header{height:76px}.layout{position:fixed;top:76px;bottom:0;left:0;right:0;min-height:0;overflow:auto}#game-view{min-height:100%;display:grid;place-items:safe center}.shell,.content-center{width:100%}.title-stage{width:100%;min-height:100%;padding-top:40px;padding-bottom:30px}.title-stage:after{opacity:.3}.title-ribbon{display:none}.title-backword{opacity:.5}.title-logo{font-weight:850;font-size:clamp(65px,7.8vw,112px);letter-spacing:-.09em}.title-logo small{font-family:var(--modern-font);font-weight:650}.logo-star{animation:none}.title-subtitle{letter-spacing:.02em}.title-menu{max-width:420px;position:relative}.expedition-menu{position:relative}.expedition-menu>.title-start{width:100%}.expedition-choices{position:absolute;left:calc(100% + 14px);top:0;display:flex;gap:10px;width:310px;z-index:8;transform:rotate(3deg)}.expedition-choices button{flex:1;min-width:0;min-height:84px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:14px 17px;background:#e1f7e9;color:#18362e;border-left:3px solid #a2dcb9;box-shadow:4px 5px 0 #030c18a0}.expedition-choices strong{font-size:19px}.expedition-choices small{margin:5px 0 0;font:9px var(--modern-font);white-space:nowrap;max-width:none}.expedition-choices button:disabled{opacity:.6;background:#8aa89d;color:#15352c}.title-menu button:hover{transform:translateX(5px)}.title-menu button:before{transition-duration:.4s}.title-menu button>small,.title-kicker,.title-bottom strong{font-family:var(--modern-font)}
.knights-window{position:relative;width:100%;max-width:540px;margin-left:auto;align-self:center;z-index:1;border:1px solid #b9d9ca42;background:#102126;border-radius:12px;overflow:hidden;box-shadow:0 16px 45px #0003}.window-caption{padding:18px 23px;background:#0a1a20;display:flex;flex-direction:column;gap:7px}.window-caption span{font:9px var(--modern-font);letter-spacing:2px;color:#8faca1}.window-caption b{font-size:20px;font-weight:650;color:#e5f3e9}.knights-diorama{height:285px;position:relative;overflow:hidden;background:linear-gradient(#162b4133,#21322910),url('assets/backgrounds/windrise.png') center 55%/cover;image-rendering:pixelated}.knights-diorama:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#071a2266,transparent 80%)}.diorama-path{position:absolute;left:0;right:0;bottom:18px;height:63px;background:linear-gradient(#f0d7a233,#71986d5c);transform:skewY(-3deg);border-block:1px solid #c4dab529}.walk-pair{position:absolute;left:35%;bottom:35px;display:flex;gap:22px;align-items:end;animation:garden-walk 16s ease-in-out infinite;will-change:transform}.walk-pair>div{display:flex;flex-direction:column;align-items:center;gap:7px}.walk-pair img{width:auto;height:75px;image-rendering:pixelated;animation:walk-bob .85s ease-in-out infinite;transform-origin:50% 100%}.walk-pair .walk-varka img{animation-delay:-.42s}.walk-pair small{font:10px var(--modern-font);color:#e7f2da;background:#0a1f1cc9;padding:3px 7px;border-radius:3px}.knights-window>p{padding:18px 23px;font-size:12px;line-height:1.8;color:#d5e4dc}.knights-window>p>small{display:block;color:#90aca1;font-size:10px;margin-top:5px}.diorama-leaf{position:absolute;top:35%;width:6px;height:4px;background:#cce6b6;border-radius:50%;animation:leaf-drift 10s ease-in-out infinite}.leaf-two{left:70%;animation-delay:-6s;top:20%}.leaf-one{left:20%}.title-bottom{margin-top:35px}.title-bottom span{max-width:55px;word-break:keep-all}
/* A fixed viewport frame centers the complete scaled combat board. */
.in-combat #game-view{position:absolute;inset:0;display:block;min-height:0}.in-combat .combat-fit{position:absolute;left:50%;top:50%;width:calc(1280px*var(--combat-scale));height:calc(800px*var(--combat-scale));transform:translate(-50%,-50%)}.combat-board{left:0;margin-left:0;top:0}.in-combat .scene-bg>img{filter:blur(4px);scale:1.04;opacity:.57;image-rendering:auto}.in-combat .scene-bg:after{background:linear-gradient(#08192138,#07151a66 65%,#07141bed)}.combat-board .battlefield{align-items:end}.combat-board .unit{height:260px;min-height:260px;position:relative}.combat-board .enemy{width:215px;min-width:215px;padding:0 10px 12px}.combat-board .sprite-stage,.combat-board .stage-lohen,.combat-board .stage-varka,.combat-board .stage-ruinguard{--sprite-scale:1.5;position:absolute;bottom:99px;left:0;width:100%}.combat-board #player-info{position:absolute;bottom:12px;left:0;right:0}.combat-board [id^="enemy-info-"]{position:absolute;bottom:12px;left:10px;right:10px}.combat-board .enemy .target{position:absolute;bottom:85px;width:100%;left:0}.combat-board .intent{top:5px;max-width:210px;font-family:var(--modern-font);transform:none;border-radius:4px}.combat-board .unit-name{font-size:12px;font-weight:650;letter-spacing:0}.combat-board .combat-top h2{font-weight:750;transform:none;font-size:20px}.combat-board .turn-tag{transform:none;font-family:var(--modern-font)}.combat-board .combat-log{font-family:var(--modern-font);transform:none}.card h3{font-weight:750}.card p{font-weight:450}.combat-board .energy{font-family:var(--modern-font);font-style:normal}.expedition .portrait img{width:auto!important;height:92px!important}.expedition .portrait{height:140px}.expedition .panel:before{width:140px;height:140px;margin-left:-70px}.scene-bg{position:fixed;top:76px;bottom:0}
/* Layered subpixel rig: head, torso and grounded feet breathe independently. */
.pose-viewport,.low-effects .pose-viewport{animation:none;transform:none;background-size:0 0}.rig-part{display:block;position:absolute;inset:0;background-image:inherit;background-image:var(--rig-image);background-repeat:no-repeat;background-size:400% 200%;background-position:inherit;pointer-events:none;transform-origin:50% 98%}.rig-head{clip-path:inset(0 0 calc(100% - var(--head-cut)) 0);animation:rig-head 2.1s ease-in-out infinite}.rig-body{clip-path:inset(var(--head-cut) 0 7% 0);animation:rig-body 2.1s ease-in-out infinite}.rig-feet{clip-path:inset(93% 0 0 0)}.enemy:nth-child(2) .rig-part{animation-delay:-.7s}.enemy:first-child .rig-part{animation-delay:-.35s}.pose-viewport.acting{background-size:400% 200%}.pose-viewport.acting .rig-part{display:none}.npc-avatar img{animation:npc-breathe 2.1s ease-in-out infinite;transform-origin:50% 100%}.npc-scene{display:flex;align-items:center;justify-content:center;gap:25px;max-width:630px;margin:12px auto 26px;padding:16px 24px;text-align:left;background:#102c30d9;border:1px solid #b2d9c43b;border-radius:9px}.npc-avatar{position:relative;width:100px;min-width:100px;height:100px;display:flex;align-items:end;justify-content:center}.npc-avatar:after{content:'';position:absolute;bottom:0;width:66px;height:8px;border-radius:50%;background:#0a161866;z-index:-1}.npc-avatar img{height:90px;width:auto;image-rendering:pixelated}.npc-dialogue small{font:8px var(--modern-font);color:#9cbdad;letter-spacing:1.5px}.npc-dialogue strong{display:block;margin:6px 0;font-size:17px;color:#dbf1de;font-weight:700}.npc-dialogue p{font-size:12px;line-height:1.7;color:#bcd4c8;margin:0!important}.soft-scene-label{position:fixed;z-index:80;bottom:22px;right:25px;padding:8px 15px;border-left:2px solid #b4dcc7;color:#bfd8c9;background:#10222bd9;font:10px var(--modern-font);letter-spacing:2px;pointer-events:none;animation:soft-label 1.25s ease both}.screen-cut{display:none}.turn-splash{top:23%;animation:calm-turn 1.2s ease both;transform:translateX(-50%) rotate(-2deg);padding:10px 22px;background:#d9ecdfeb}.turn-splash strong{font-family:var(--modern-font);font-style:normal;font-size:34px;letter-spacing:-1px}.turn-splash span{font-family:var(--modern-font);font-size:32px}.cast-banner{animation:calm-turn .85s ease both}.cast-content{transform:skew(-3deg) rotate(-1deg)}.stage-trail .active{translate:0 0;box-shadow:2px 2px 0 #f3f0dc44}.content-center>h1{font-weight:750;transform:rotate(-1deg);font-size:clamp(28px,3.4vw,45px)}.modal-head h2{font-weight:750;transform:rotate(-1deg)}
@keyframes rig-head{0%,100%{translate:0 0;rotate:-.2deg}50%{translate:.15px -.4px;rotate:.25deg}}@keyframes rig-body{0%,100%{scale:1 1}50%{scale:1.005 1.018}}@keyframes npc-breathe{50%{translate:0 -1px;scale:1.006 1.012;rotate:.4deg}}@keyframes garden-walk{0%,100%{translate:-50px 0}50%{translate:75px -5px}}@keyframes walk-bob{50%{translate:0 -1.7px;rotate:.9deg}}@keyframes leaf-drift{0%,100%{translate:0 0;opacity:0}25%,75%{opacity:.6}90%{translate:90px 75px;opacity:0}}@keyframes soft-label{0%,100%{opacity:0;translate:0 3px}25%,75%{opacity:.8;translate:0 0}}@keyframes calm-turn{0%{opacity:0;translate:0 7px}25%,75%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -4px}}
@media(max-width:1050px){.title-stage{grid-template-columns:1fr 1fr;gap:18px;min-height:100%;padding:35px 5%}.knights-window{max-width:420px}.knights-diorama{height:240px}.expedition-choices{position:relative;left:0;margin-top:14px;width:100%;transform:none}.title-bottom{grid-column:1/-1;margin-top:20px}.title-copy{max-width:none}.title-logo{font-size:80px}.title-bottom>p{max-width:none}}
@media(max-width:960px){.header{height:auto;min-height:65px}.layout{position:relative;top:auto;bottom:auto;min-height:calc(100svh - 65px);overflow:hidden}.scene-bg{position:absolute;top:0}.in-combat #game-view{position:relative;inset:auto}.in-combat .combat-fit{position:relative;left:50%;top:auto;width:100%;height:auto;transform:translateX(-50%)}.combat-board{position:relative;left:auto;top:auto}.combat-board .unit,.combat-board .enemies:has(.enemy:nth-child(2)) .unit{height:200px;min-height:200px;width:clamp(82px,24vw,135px);min-width:0}.combat-board .sprite-stage,.combat-board .stage-lohen,.combat-board .stage-varka,.combat-board .stage-ruinguard{--sprite-scale:.92;bottom:83px}.combat-board #player-info{bottom:12px}.combat-board [id^="enemy-info-"]{left:3px;right:3px;bottom:12px}.combat-board .enemy .target{bottom:71px;font-size:8px}.combat-board .intent{top:4px;font-size:9px;max-width:120px}.combat-board .unit-name{font-size:10px}.title-stage{display:flex;flex-direction:column;align-items:stretch;gap:20px;min-height:0;padding:28px 22px}.title-copy{padding:0}.title-logo{font-size:clamp(62px,17vw,88px)}.title-menu{max-width:none}.title-menu strong{font-size:19px}.title-kicker{gap:8px}.expedition-choices{gap:10px;margin-top:12px}.expedition-choices button{min-height:70px}.expedition-choices strong{font-size:17px}.knights-window{margin:0;max-width:none}.knights-diorama{height:165px}.window-caption{padding:13px 18px}.window-caption b{font-size:17px}.walk-pair{bottom:20px;gap:15px}.walk-pair img{height:55px}.knights-window>p{padding:13px 18px;font-size:11px}.title-bottom{margin-top:0;gap:17px}.title-bottom p{width:100%}.npc-scene{padding:13px;gap:15px;margin:10px auto 20px}.npc-avatar{width:70px;min-width:70px;height:85px}.npc-avatar img{height:73px}.npc-dialogue strong{font-size:15px}.npc-dialogue p{font-size:11px}.content-center>h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){.rig-part,.npc-avatar img,.walk-pair,.walk-pair img,.diorama-leaf{animation:none!important}.soft-scene-label{display:none}}
.shop-view{padding-top:22px;padding-bottom:22px}.shop-view>h1{margin:15px 0 22px}.shop-view .npc-scene{margin:5px auto 15px;padding:10px 22px}.shop-view .npc-avatar{height:80px}.shop-view .npc-avatar img{height:75px}.shop-view .shop-grid{margin:19px 0}.shop-view .shop-item .card{height:228px;min-height:228px}.shop-view .shop-item .skill-art{height:90px}.shop-view .choice-grid{margin:18px 0}.shop-view>.primary{padding:11px 24px}
@media(max-width:960px){.shop-view{padding:25px 14px}.shop-view .shop-grid{gap:12px}.shop-view .shop-item .card{width:143px;min-width:130px}.shop-view .npc-scene{padding:10px}.shop-view .choice-grid{gap:10px}}
