:root{color-scheme:dark;font-family:"Malgun Gothic","Segoe UI",sans-serif;color:#e9e3ce;background:#080e13;font-synthesis:none;--gold:#e6c887;--line:#718579;--paper:#ede3c9;--ink:#293c36}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;border:1px solid #788779;background:#233831;box-shadow:0 3px #081713;border-radius:7px;font-weight:700;padding:10px 15px}button:hover:not(:disabled){filter:brightness(1.15)}button:active:not(:disabled){translate:0 2px}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cfe2a3;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}a{color:inherit}kbd{font:9px inherit;border:1px solid #81917b66;border-radius:3px;padding:1px 4px;color:#b6c4aa}
#expedition{position:relative;width:min(100%,1180px);height:100dvh;max-height:1000px;margin:auto;overflow:hidden;background:#101b22;isolation:isolate;box-shadow:0 0 80px #0008}body{display:grid;place-items:center}#world{display:block;width:100%;height:100%;touch-action:none;outline:none;image-rendering:pixelated}
.exp-hud{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;gap:12px;align-items:center;height:76px;padding:12px 22px;background:linear-gradient(#101e26f5,#15232dcc,transparent);pointer-events:none}.exp-hud button{pointer-events:auto}.hero-medallion{width:45px;height:45px;border:2px solid #bbad7d;border-radius:7px;background:#2e4840;overflow:hidden;flex:none}.hero-medallion span{display:block;width:65px;height:65px;margin:-14px -11px;background:url('../../assets/game/characters/v4/knight.png') 0 0/400% 200%;image-rendering:pixelated}.exp-vitals{width:180px;display:grid;gap:5px}.exp-vitals>div{position:relative;height:16px;border:1px solid #91a388;border-radius:3px;background:#14232b;overflow:hidden}.exp-vitals .armor{height:13px;border-color:#8196ac}.exp-vitals i{position:absolute;inset:0 auto 0 0;background:#90aa6c;width:100%;box-shadow:inset 0 2px #dce6a866;transition:width .16s}.exp-vitals .armor i{background:#7096b8}.exp-vitals b{position:absolute;inset:0;text-align:center;font-size:10px;line-height:14px;color:#f8f3d6;text-shadow:1px 1px #24362a}.exp-vitals .armor b{line-height:11px;font-size:9px}.exp-gold{display:flex;gap:7px;align-items:center;color:#e9d090;font-size:14px;text-shadow:0 2px #172426}.exp-gold>span{font-size:20px;color:#eabd65}.square{margin-left:auto;width:39px;height:39px;padding:0;font-size:26px;background:#293a35cc;border-color:#748674}
.location{position:absolute;left:23px;top:83px;pointer-events:none;text-shadow:0 2px 3px #000}.location>span{letter-spacing:3px;font-size:9px;color:#c8ceac}.location h1{font-size:20px;letter-spacing:-.8px;margin:5px 0 3px}.location p{font-size:10px;color:#93aaa0}.location p .boss{color:#efa796}#minimap-button{position:absolute;right:21px;top:87px;padding:4px 6px;background:#0d1d258c;border-color:#657b6866;border-radius:7px;box-shadow:none;width:126px}#minimap{width:110px;height:86px;display:block;margin:auto}#minimap-button>span{font-size:9px;color:#aebda4;display:flex;justify-content:space-between;padding:3px 5px}#transition-banner{position:absolute;z-index:8;left:50%;top:30%;translate:-50% -50%;font-size:25px;font-weight:900;letter-spacing:4px;color:#f2d698;text-shadow:0 3px #182b2c,0 0 20px #000;pointer-events:none;text-align:center;white-space:nowrap;opacity:0;transition:opacity .2s}#transition-banner.visible{opacity:1}#toast{position:absolute;left:50%;top:26%;translate:-50% 0;max-width:85%;width:max-content;padding:10px 17px;background:#152c29ee;border:1px solid #a6b78b;color:#eee2b9;font-size:12px;box-shadow:0 4px 20px #0004;border-radius:8px;opacity:0;pointer-events:none;z-index:20}#toast.visible{opacity:1}#travel-hint{position:absolute;bottom:54px;left:50%;translate:-50% 0;white-space:nowrap;color:#8da396;font-size:10px;text-shadow:0 2px 3px #000;pointer-events:none}
#joystick{position:absolute;left:25px;bottom:68px;width:124px;height:135px;touch-action:none;user-select:none;display:flex;align-items:center;flex-direction:column;justify-content:center}.stick-ring{position:relative;width:110px;height:110px;border-radius:50%;border:2px solid #a6b89955;background:radial-gradient(#637f6344,#20373033);box-shadow:inset 0 0 0 13px #304c3522,0 0 0 6px #13272522}.stick-ring:before,.stick-ring:after{content:"";position:absolute;background:#adc59a33}.stick-ring:before{left:50%;top:13px;bottom:13px;width:1px}.stick-ring:after{top:50%;left:13px;right:13px;height:1px}.stick-ring i{position:absolute;left:50%;top:50%;width:44px;height:44px;translate:-50% -50%;border-radius:50%;border:2px solid #c2caa67a;background:radial-gradient(#718b6e99,#3d5b4aa6);box-shadow:0 3px 9px #0004;z-index:1}#joystick>span{font-size:9px;color:#8fa394;margin-top:7px;letter-spacing:3px}.explore-buttons{position:absolute;right:25px;bottom:99px;display:flex;align-items:end;gap:15px}.round{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;width:58px;height:58px;font-size:24px;border:2px solid #9ba88a;background:#203b36aa;box-shadow:0 4px #091a1888;backdrop-filter:blur(2px)}.round small{font-size:9px;line-height:1.5}.round.primary{width:77px;height:77px;border-color:#d5bb79;color:#efdd9f;background:#645c32bb;font-size:30px}.round.secondary{margin-bottom:-15px}.round.ready{box-shadow:0 0 0 5px #d8c47a19,0 0 26px #e6c97733}.round:disabled{opacity:.6}#interact-label{position:absolute;left:50%;translate:-50% 0;bottom:206px;font-size:11px;background:#263d32ed;border-color:#b2ba8b;padding:9px 16px;color:#eadca7;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exp-footer{position:absolute;bottom:0;left:0;right:0;height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#11212bba;border-top:1px solid #5d72602b;color:#849e8c;font-size:9px;letter-spacing:1px}.exp-footer b{font-size:7px;color:#537567;font-weight:400;margin-left:8px}.exp-footer button{background:none;box-shadow:none;border:0;font-size:9px;padding:6px 0;color:#b5ba8d}
#combat-controls{position:absolute;bottom:51px;left:50%;translate:-50% 0;width:min(460px,calc(100% - 28px));z-index:9}.combat-message{background:#132b2cdd;border:1px solid #85997999;border-radius:8px 8px 0 0;padding:10px 13px;height:65px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 2px 20px #0004}.combat-message span{font-size:9px;color:#b9caa1;margin-bottom:4px}.combat-message strong{font-size:12px;font-weight:700;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.combat-buttons{display:flex;gap:7px;padding:9px;background:#263a32e8;border:1px solid #84917680;border-top:0;border-radius:0 0 8px 8px}.combat-buttons button{min-height:37px;font-size:11px;padding:7px 10px;flex:1;background:#cfbd86;color:#2a3c30;border-color:#867e59}.combat-buttons button:last-child{flex:0 0 49px;background:#617c5f;color:#e4e7bd}#step-button{background:#bcc4a1}.in-combat #travel-hint,.in-combat #explore-controls{display:none}.in-combat #minimap-button{opacity:.65}
#sheet-backdrop{position:absolute;z-index:40;inset:0;background:#07121bd1;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px}#sheet{width:min(630px,100%);max-height:92%;display:flex;flex-direction:column;border:2px solid #81947a;border-radius:13px;background:var(--paper);color:var(--ink);box-shadow:0 15px 70px #0008;overflow:hidden}.sheet-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;background:#294137;color:#f0e5c5;border-bottom:3px solid #a3af80;flex:none}.sheet-heading span{color:#b3c09a;font-size:8px;letter-spacing:3px}.sheet-heading h2{font-size:23px;margin-top:4px}.sheet-close{font-size:24px;background:none;box-shadow:none;border:0;padding:0 4px;color:#d7debb}#sheet-content{overflow:auto;padding:20px;scrollbar-width:thin}.intro-copy{font-size:13px;line-height:1.8;color:#7c795f;margin-bottom:17px}.variant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.variant-card{border:2px solid #beb695;background:#e1d9bd;border-radius:8px;display:flex;flex-direction:column;text-align:left;padding:10px 9px;color:#5a6852;box-shadow:0 3px #b7ac89;min-width:0}.variant-card.selected{border-color:#638365;background:#d7dfbb;box-shadow:0 3px #607852}.variant-card>span{font-size:9px;color:#91916b;letter-spacing:2px}.variant-card b{font-size:15px;margin-top:3px}.variant-card p{font-size:10px;font-weight:400;line-height:1.7;color:#828166}.variant-card svg{height:66px;width:100%;margin:7px 0}.variant-card svg line{stroke:#93a181;stroke-width:2}.variant-card svg circle{fill:#738965;stroke:#e5dfbf;stroke-width:1.5}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.settings-fields label{display:flex;flex-direction:column;gap:6px;font-size:10px;color:#7b7b60}.settings-fields input,.settings-fields select{width:100%;background:#fff5da;color:#40513c;border:1px solid #b5ab87;border-radius:6px;padding:9px 10px;font-size:12px;min-width:0}.settings-fields .seed-field{grid-column:1/-1}.seed-field>div{display:flex;gap:7px}.seed-field button{background:#c3ccab;color:#42563e;padding:5px 12px;box-shadow:none;border-color:#9fa988}.sheet-primary{width:100%;background:linear-gradient(#efda99,#d1b774);color:#3a4b33;border:2px solid #968456;box-shadow:0 3px #a58f5c;font-size:16px;min-height:48px}.sheet-note{font-size:10px;line-height:1.7;color:#969071;margin:12px 0}.sheet-links{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:11px;color:#68805c}.sheet-links button{background:#d6d9bb;color:#556c49;border-color:#a7b18f;box-shadow:none;padding:8px 12px}.control-guide{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#8b8c6c;padding-top:14px}.control-guide kbd{color:#5b6f54;border-color:#aea887}.full-map{width:100%;height:330px;background:#172c2d;border-radius:8px;border:1px solid #93a37e}.map-caption{font-size:11px;color:#7c8664;margin-top:12px;line-height:1.8}.card-list{display:grid;gap:10px}.item-card{background:#f9f0d8;border:1px solid #b6ac8c;border-radius:8px;padding:13px;display:flex;gap:12px;align-items:center}.item-card>div{flex:1;min-width:0}.item-card h3{font-size:14px}.item-card p{font-size:11px;line-height:1.8;color:#878267;margin-top:4px}.item-card button{font-size:11px;background:#d8c087;color:#465638;border-color:#a4956d;padding:9px;min-width:67px}.item-card small{font-size:10px;color:#81906b}.sheet-section{font-size:13px;color:#6e7f5a;margin:17px 0 10px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.choice-card{background:#f8efd7;border:2px solid #b2a67e;padding:12px 9px;border-radius:8px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:210px}.choice-card h3{font-size:13px;line-height:1.6}.choice-card p{font-size:11px;color:#868165;line-height:1.8;margin:10px 0;flex:1}.choice-card button{font-size:11px;background:#bbc999;border-color:#879267;color:#415934;padding:8px 10px;width:100%}.choice-emblem{font-size:27px;color:#8b7650;margin:5px 0 12px}.plain-actions{display:flex;gap:10px;margin-top:16px}.plain-actions button{flex:1;background:#cbd2ad;color:#41543a;border-color:#94a074}.result-stats{display:flex;justify-content:space-around;text-align:center;background:#dfd6b8;border-radius:8px;padding:17px;margin:18px 0}.result-stats b{display:block;font-size:25px;color:#5a7655}.result-stats span{font-size:10px;color:#8b8264}.save-error{color:#ffbe98!important}#boot{position:absolute;z-index:50;inset:0;display:grid;place-content:center;gap:15px;text-align:center;background:#13232d;color:#d9d1a2}#boot strong{font:32px Georgia,serif;letter-spacing:4px}#boot span{font-size:12px;color:#8fa89a}
@media(min-width:850px){.exp-hud{padding:16px 28px;height:85px}.exp-vitals{width:230px}.location{top:100px;left:30px}.location h1{font-size:24px}#minimap-button{width:165px;right:28px;top:97px}#minimap{width:149px;height:118px}#joystick{opacity:.55;left:45px;bottom:65px}.explore-buttons{right:45px;bottom:86px}#travel-hint{bottom:59px}#interact-label{bottom:181px}.exp-footer{padding:0 30px}}
@media(max-width:430px){.exp-hud{gap:9px;padding:11px 14px;height:68px}.exp-vitals{width:auto;flex:1;max-width:190px}.hero-medallion{width:38px;height:39px}.exp-gold{font-size:12px;gap:4px}.square{width:34px;height:34px;font-size:23px}.location{top:77px;left:16px}.location h1{font-size:17px}.location p{font-size:9px}#minimap-button{right:13px;top:78px;width:98px}#minimap{width:82px;height:65px}#joystick{left:13px;bottom:70px;width:100px;height:111px}.stick-ring{width:90px;height:90px}.stick-ring i{width:38px;height:38px}.explore-buttons{right:17px;bottom:98px;gap:12px}.round{width:48px;height:48px;font-size:21px}.round.primary{width:65px;height:65px;font-size:26px}#travel-hint{font-size:8px;bottom:48px}#interact-label{bottom:191px;font-size:10px}#sheet-backdrop{padding:12px}.sheet-heading{padding:14px 16px}.sheet-heading h2{font-size:20px}#sheet-content{padding:15px}.variant-grid{gap:6px}.variant-card{padding:8px 6px}.variant-card b{font-size:13px}.variant-card p{font-size:9px}.settings-fields{gap:9px;margin:15px 0}.intro-copy{font-size:11px}.exp-footer{padding:0 15px}.exp-footer b{font-size:6px;letter-spacing:.3px}.choice-grid{gap:6px}.choice-card{padding:10px 6px}.choice-card h3{font-size:11px}}
@media(max-height:650px){.location{top:69px}.location h1{font-size:16px}#minimap-button{top:70px}#minimap{height:49px}.exp-hud{height:62px}#joystick{bottom:49px;scale:.85;transform-origin:bottom left}.explore-buttons{bottom:76px;scale:.85;transform-origin:bottom right}#interact-label{bottom:145px}#travel-hint{display:none}#combat-controls{bottom:42px}.combat-message{height:52px}.combat-buttons{padding:6px}.combat-buttons button{min-height:33px}#transition-banner{top:38%;font-size:20px}.sheet-heading{padding:10px 15px}.sheet-heading h2{font-size:18px}#sheet-content{padding:13px}.full-map{height:240px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.round{padding:0}.seed-field button{flex:none;white-space:nowrap}#toast{top:21%}#transition-banner{max-width:92%;font-size:clamp(17px,4.8vw,25px);letter-spacing:2px;overflow:hidden;text-overflow:ellipsis}.full-map{object-fit:contain}.sheet-close{flex:none}
