@font-face{font-family:systemThai;src:local('Thonburi')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071613;color:#f3f0e7;font-family:systemThai,system-ui,-apple-system,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid #d9be85;outline-offset:4px}button:disabled{opacity:.45;cursor:default}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.hidden{display:none!important}.screen{position:absolute;inset:0;overflow:auto}.veil{position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,19,16,.86),rgba(4,19,16,.35) 55%,rgba(4,19,16,.1)),linear-gradient(0deg,#061714 0%,transparent 65%)}#menu{isolation:isolate;background:url('assets/concept.png') center/cover fixed}header{display:flex;justify-content:space-between;align-items:center;padding:30px 5vw 18px}.brand{color:#f1e7ce;font-size:40px;letter-spacing:10px;text-decoration:none;font-weight:800;line-height:1}.brand span{display:block;font-size:9px;letter-spacing:3px;margin-top:10px;font-weight:500}.header-right{display:flex;align-items:center;gap:20px}.wallet{border:1px solid #bfa77955;background:#092921bb;border-radius:30px;padding:10px 20px;color:#e7c889;font-size:14px}.icon-btn{border:1px solid #e4ddbd40;background:#102d27cc;border-radius:50%;width:42px;height:42px}.intro{padding:38px 5vw 42px;max-width:650px}.eyebrow{color:#d8c393;font-size:10px;letter-spacing:3px;margin-bottom:20px}h1{font-weight:500;font-size:clamp(36px,5vw,66px);line-height:1.35;margin:0;letter-spacing:-1px}h1 em{font-style:normal;color:#dec797}.intro p{color:#c4cfc5;font-size:14px;line-height:1.9;margin:22px 0}.primary{background:#dbbf88;color:#152c24;padding:15px 25px;border-radius:6px;font-weight:700;box-shadow:0 7px 35px #0003}.primary span{margin-left:28px}.subline{font-size:11px;color:#b1bdb0;margin-top:17px}#tabs{display:flex;gap:25px;margin:0 5vw;border-bottom:1px solid #c6c5a526}#tabs button{background:transparent;color:#a9b8ae;padding:16px 3px;position:relative}#tabs button.active{color:#e7cc97}#tabs button.active:after{content:'';height:2px;background:#e7cc97;position:absolute;bottom:0;left:0;right:0}.panel{padding:25px 5vw 20px;background:#071a16db}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-title h2{font-size:16px;font-weight:500;margin:0}.panel-title span{font-size:11px;color:#a6b7aa}.level-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}.level-card{min-height:113px;text-align:left;padding:14px;border:1px solid #7b98784a;border-radius:7px;background:linear-gradient(135deg,#294339a8,#122b23)}.level-card.selected{border-color:#dbbf88;background:linear-gradient(135deg,#665c36aa,#19362b)}.level-number{display:flex;justify-content:space-between;color:#d4bd85;font-size:12px}.level-card strong{display:block;font-size:12px;margin:10px 0 7px;font-weight:500}.level-card small{color:#899e92;font-size:10px}.stars{color:#e2c387!important;letter-spacing:2px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.character{padding:22px;border:1px solid #5d80704f;border-radius:8px;background:linear-gradient(145deg,#284437ad,#102b23)}.character.selected{border-color:#d8bb80}.character .avatar{height:74px;font-size:50px;color:var(--accent);font-weight:800;opacity:.8}.character h3{font-size:19px;margin:10px 0 4px}.character p{font-size:12px;color:#a8bfb0}.statline{font-size:11px;color:#d7c49b;margin:15px 0}.secondary{border:1px solid #d0bf8555;background:#30544670;padding:9px 15px;border-radius:4px;font-size:12px}.equipment-group h3{font-size:13px;color:#dac28e;margin:20px 0 12px}.equipment-group:first-child h3{margin-top:0}.item{border:1px solid #5c7b684f;border-radius:6px;padding:15px;background:#17372caa;display:flex;flex-direction:column;gap:8px}.item.selected{border-color:#d8bb80}.item strong{font-size:13px}.item p{font-size:11px;color:#a8bbad;margin:0}.item button{align-self:flex-start;margin-top:4px}footer{background:#071a16ef;padding:15px 5vw 22px;font-size:10px;color:#789283}#saveWarning{color:#edb387}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#091f19;z-index:20;gap:22px}.loading b{font-size:66px;letter-spacing:14px;color:#dbc38c}.loading span{font-size:13px;color:#91b3a1}#hud{position:absolute;inset:0;pointer-events:none;text-shadow:0 1px 6px #000}#hud button,#joystick{pointer-events:auto}.hud-top{display:flex;justify-content:space-between;padding:20px max(22px,env(safe-area-inset-right)) 10px max(22px,env(safe-area-inset-left));background:linear-gradient(#071c18aa,transparent)}.mission{display:flex;flex-direction:column;gap:5px}.mission small{color:#e5c583;font-size:10px;letter-spacing:2px}.mission strong{font-size:21px}.mission>span{font-size:11px;color:#d3dfd6}.health{position:absolute;top:113px;left:max(22px,env(safe-area-inset-left));width:180px}.health span{font-size:10px}.health div{height:5px;background:#0e221dcc;border-radius:9px;overflow:hidden;margin-top:6px}.health i{display:block;height:100%;background:#91c0a0;transition:width .15s}.hud-info{position:absolute;top:25px;left:50%;transform:translateX(-50%);display:flex;gap:12px;font-size:12px}.hud-info span{background:#0b271ccc;border:1px solid #acba9440;border-radius:20px;padding:9px 12px}.hint{position:absolute;top:170px;left:22px;max-width:320px;font-size:12px;color:#ead5a6;line-height:1.7}#compass{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);text-align:center;font-size:11px;color:#eee0bd}#compass b{display:block;margin-top:8px;font-weight:400;letter-spacing:2px}#controls{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-end}#joystick{width:116px;height:116px;border:1px solid #eeead359;border-radius:50%;background:#0b282247;position:relative;touch-action:none}#stick{width:45px;height:45px;border:1px solid #ddd4b888;border-radius:50%;background:#d8caa13d;position:absolute;left:35px;top:35px;pointer-events:none}.actions{display:grid;grid-template-columns:repeat(2,58px);gap:12px}.actions button{width:58px;height:58px;border-radius:50%;background:#13362e91;border:1px solid #d3c9a25c;font-size:23px;touch-action:none}.actions button small{display:block;font-size:9px;margin-top:0}.actions #attackBtn{background:#9f854986;border-color:#e2c18c}#desktopHelp{position:absolute;bottom:10px;left:22px;font-size:9px;color:#d9e5d0}#portalBtn{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);pointer-events:auto;white-space:nowrap}#toast{position:fixed;left:50%;top:16px;transform:translateX(-50%);background:#13372ef0;border:1px solid #9aba8755;color:#f1dca9;padding:12px 22px;border-radius:6px;font-size:13px;z-index:45;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90vw}.modal{position:absolute;inset:0;background:#03120bd9;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:30;padding:25px}.modal-body{max-width:450px;width:100%;text-align:center;background:linear-gradient(145deg,#234535,#10271f);border:1px solid #a7946455;border-radius:12px;padding:32px;max-height:90vh;overflow:auto}.modal-body h2{font-size:25px;font-weight:500;margin:12px 0}.modal-body p{font-size:13px;line-height:1.8;color:#c1d0c1}.modal-body button{margin:8px 3px}.modal-body .result-stars{font-size:38px;color:#e3c17b;letter-spacing:8px}.modal-body label{display:flex;justify-content:space-between;margin:18px 0;font-size:13px}.modal-body select{background:#143e2e;color:#efdec1;border:1px solid #718262;padding:6px}.modal-body .gain{font-size:30px;color:#d9c185}.modal-body small{font-size:11px;color:#a9b9a9}.danger{color:#edb595}#portrait{display:none} @media(max-width:800px){header{padding:20px 5vw 10px}.intro{padding-top:30px;padding-bottom:26px}h1{font-size:40px}.intro p{font-size:12px}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cards{gap:8px}.character{padding:14px}.character p{font-size:10px;min-height:30px}.statline{font-size:9px}.hud-info{top:88px;left:auto;right:22px;transform:none;gap:5px}.hud-info span{font-size:10px;padding:6px 8px}.mission strong{font-size:17px}.health{top:98px;width:130px}.hint{top:143px;max-width:220px;font-size:11px}#desktopHelp{display:none}.item{padding:12px}.item strong{font-size:11px}.item button{font-size:10px;padding:7px}.panel-title span{font-size:9px}}@media(max-height:500px){header{padding-top:15px}.intro{padding-top:12px;padding-bottom:20px}h1{font-size:32px}.intro p{margin:12px 0}.eyebrow{margin-bottom:8px}.mission>span{max-width:350px}.hud-top{padding-top:12px}.health{top:92px}#joystick{width:96px;height:96px}#stick{left:25px;top:25px}.actions{grid-template-columns:repeat(2,49px);gap:7px}.actions button{width:49px;height:49px;font-size:19px}#controls{bottom:18px}.modal-body{padding:18px}.hud-info{top:18px;right:80px}}@media(orientation:portrait) and (max-width:700px){body.playing #portrait{display:block;position:absolute;bottom:175px;left:50%;transform:translateX(-50%);text-align:center;background:#0a281fbb;border-radius:8px;padding:10px;font-size:11px;pointer-events:none;width:210px}#portrait small{font-size:9px;color:#b4c5b4}.cards{grid-template-columns:1fr}.character{display:grid;grid-template-columns:60px 1fr;column-gap:12px}.character .avatar{grid-row:span 4}.character h3{margin:0}.character p{min-height:0;margin:5px 0}.character .statline{margin:5px 0}.character button{grid-column:2;justify-self:start}.equipment-group .cards{grid-template-columns:1fr 1fr}.intro{padding-top:25px}h1{font-size:38px}.hud-info{top:140px;right:18px}.hint{top:180px;max-width:180px}.mission>span{max-width:260px}.level-card{padding:10px;min-height:105px}}

@supports(padding:max(1px,2px)){header{padding-left:max(5vw,env(safe-area-inset-left));padding-right:max(5vw,env(safe-area-inset-right));padding-top:max(20px,env(safe-area-inset-top))}.intro{padding-left:max(5vw,env(safe-area-inset-left));padding-right:max(5vw,env(safe-area-inset-right))}}

#interactBtn{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);pointer-events:auto;white-space:nowrap}.hurt:after{content:'';position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #b3403866;z-index:25}.hud-info span:empty{display:none}#runeCount{color:#e2c489}#enemyCount{font-variant-numeric:tabular-nums}@media(max-height:500px){#interactBtn{bottom:90px}.hud-info{gap:4px}.hud-info span{padding:6px 8px}}

.equipment-art{display:block;width:112px;height:112px;margin:0 auto 16px;filter:drop-shadow(0 9px 14px #0008)}.item{text-align:center}.name-edit{display:block;margin:10px auto 0;background:transparent;color:#dbc393;font-size:12px;text-decoration:underline;text-underline-offset:4px}#fullNameInput{display:block;width:100%;padding:13px;border:1px solid #bba77677;border-radius:8px;background:#102a25;color:#f3f0e7;font:inherit;margin-top:8px}#nameError{color:#f1b7a1}.character h3{overflow-wrap:anywhere}@media(max-height:500px){.equipment-art{width:84px;height:84px}}

.equipment-render{width:160px;height:160px;object-fit:contain;margin:0 auto 15px;filter:drop-shadow(0 9px 10px #0008)}@media(max-height:500px){.equipment-render{width:120px;height:120px}}

#crosshair{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font:34px system-ui;color:#e9eee0;pointer-events:none;text-shadow:0 2px 5px #000}#crosshair.locked{color:#ffdf80}#targetLabel{display:block;position:absolute;width:240px;left:50%;transform:translateX(-50%);font-size:11px;text-align:center;color:#eee;background:#071613bb;border-radius:8px;padding:5px}#hitMarker{display:none;position:absolute;inset:0;color:#ffb286;font-style:normal}#hitMarker.active{display:block}#ammoCount{color:#ffe1a2}.hud-info{flex-wrap:wrap;max-width:45vw}.actions{grid-template-columns:repeat(2,60px)}@media(max-height:500px){.actions{grid-template-columns:repeat(3,49px)}}

/* Inventory: lightweight paged cards, with clear ownership and score requirements. */
.gear-toolbar{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.gear-toolbar label{font-size:11px;color:#b7c8b7;display:flex;flex-direction:column;gap:6px}.gear-toolbar label:first-child{flex:1;min-width:180px}.gear-toolbar input,.gear-toolbar select{font:inherit;background:#102b24;color:#efe6d1;border:1px solid #a9906255;border-radius:5px;padding:10px;min-height:40px}.gear-filters{display:flex;gap:8px;flex-wrap:wrap}.gear-filters .active{background:#d8bd85;color:#153024}.gear-note{font-size:11px;line-height:1.7;color:#a7bcac}.gear-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}.item-heading{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:#d8c398}.item-heading small{font-size:10px}.item-heading span{color:#aabeb1}.item-price{color:#e3c98e;font-size:14px;margin-top:auto}.gear-missing{font-size:10px;color:#b9c7b9;min-height:28px}.item .secondary{align-self:stretch}.item p{min-height:32px;line-height:1.6}.item-locked{background:linear-gradient(145deg,#183a30,#0f2721)}.rarity-2{border-color:#65acbb70}.rarity-3{border-color:#ad83d070}.rarity-4{border-color:#d7ab6270}.rarity-5{border-color:#eee0ad88}.equipment-art{filter:hue-rotate(var(--gear-hue,0deg)) drop-shadow(0 9px 10px #0008)}.point-pack-list{display:grid;gap:10px;margin:22px 0}.point-pack-list article{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:15px;border:1px solid #aa966455;border-radius:8px;text-align:left}.point-pack-list b{font-size:22px;color:#ecd394}.point-pack-list span{font-size:12px;align-self:center}.point-pack-list button{grid-column:span 2}.gear-cards .equipment-art{max-width:100%}@media(max-width:1000px){.gear-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.gear-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.panel-title{align-items:start;gap:10px;flex-direction:column}.gear-cards .equipment-art{width:124px;height:124px}.gear-cards .item{padding:10px}.item-heading{font-size:9px;flex-wrap:wrap}.item-heading small{font-size:9px}.gear-toolbar{gap:10px}.gear-toolbar select{max-width:150px}.gear-filters button{padding:8px 10px}}

.online-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.online-modes article,.room-members{padding:18px;border:1px solid #d6bc7850;background:#15332baa;border-radius:8px}.online-modes h3{font-size:16px;color:#e4cc98}.online-modes p,.room-members p{font-size:12px;line-height:1.8;color:#bbccbc}.join-room{display:flex;gap:14px;align-items:end;margin:24px 0}.join-room label{display:flex;flex-direction:column;gap:8px;font-size:12px}.join-room input{background:#102d24;border:1px solid #d2b87377;color:#fff;font:inherit;padding:12px;border-radius:5px;text-transform:uppercase}#onlineScore{position:absolute;top:210px;left:20px;right:20px;z-index:22;background:#102a23d9;border:1px solid #b9a36b88;padding:10px;color:#ecd8ad;font-size:11px;pointer-events:none}#tabs{flex-wrap:wrap;gap:16px}@media(max-width:700px){.online-modes{grid-template-columns:1fr}.join-room{flex-wrap:wrap}}@media(max-height:500px){#onlineScore{top:140px;left:180px;right:160px}}

.mode-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:700px;margin:24px 0}.mode-choice article{padding:18px;background:#112b25d9;border:1px solid #aab88c55;border-radius:10px}.mode-choice h2{font-size:20px;margin:8px 0;color:#ead8a5}.mode-choice p{font-size:12px!important;line-height:1.7;margin:8px 0 16px!important}.mode-count{font-size:11px;color:#a5d2c1}.mode-choice button{font-size:12px;padding:12px 14px}@media(max-width:520px){.mode-choice{grid-template-columns:1fr;gap:10px}.mode-choice article{padding:14px}.mode-choice h2{font-size:18px}}

/* Keep held game controls from opening iOS text-selection menus. */
html,body,button,canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
