@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Inter:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0d1523;--surface:#172439;--raised:#20334a;--line:rgba(211,221,226,.15);--ink:#f6f1e5;--muted:#aab9c9;--gold:#e8bf7c;--gold2:#8c653d;--accent:#6bc2bf;--radius:17px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(ellipse at 50% 0%,#243954 0,#121c30 38%,var(--bg) 100%);color:var(--ink);min-height:100vh;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.42;cursor:not-allowed}a{color:var(--gold)}p{margin:8px 0 13px;color:#d3dce5}h1,h2,h3,h4{font-family:Cinzel,Georgia,serif;margin:0 0 9px;font-weight:600;letter-spacing:.01em}h1{font-size:clamp(30px,8vw,48px)}h2{font-size:clamp(22px,5.6vw,31px)}h3{font-size:18px}small,.muted{color:var(--muted)}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:800}.layout{max-width:920px;margin:auto;min-height:100vh;padding-bottom:calc(104px + env(safe-area-inset-bottom))}.topbar{padding:15px 16px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:rgba(14,21,35,.82);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px}.brand-icon{font-size:24px;border:1px solid #a1835b;border-radius:12px;width:38px;height:38px;display:grid;place-items:center;color:var(--gold);background:#283247}.brand strong{font-family:Cinzel,Georgia,serif;font-size:13px;letter-spacing:.055em}.brand i{color:var(--gold);font-style:normal}.brand small{display:block;font-size:9px;letter-spacing:.16em}.build-label{font-size:9px;color:var(--gold);border:1px solid var(--line);padding:5px 8px;border-radius:20px;white-space:nowrap}.hero-strip{display:flex;gap:13px;align-items:center;margin:16px 14px;padding:14px;border:1px solid rgba(218,178,112,.25);background:linear-gradient(135deg,#22344a,#192537);border-radius:18px;box-shadow:0 8px 18px #080c1466}.level-gem{display:grid;place-items:center;flex:none;border-radius:50%;width:62px;height:62px;border:2px solid var(--gold);color:var(--gold);font-family:Cinzel,Georgia,serif;font-weight:700;background:radial-gradient(circle,#4c3d30,#1c2537);font-size:14px}.hero-info{flex:1;min-width:0}.hero-info strong{font-family:Cinzel,serif;font-size:15px;display:block}.hero-info small{font-size:10px;display:block}.strip-stat{text-align:right;border-left:1px solid var(--line);padding-left:12px;min-width:50px}.strip-stat b,.strip-stat small{display:block}.strip-stat b{color:var(--gold);font-size:15px}.strip-stat small{font-size:10px}.progress{height:7px;border-radius:9px;background:#0d1727;overflow:hidden;margin:6px 0;border:1px solid #34435a}.progress span{display:block;background:linear-gradient(90deg,#5cb8ac,#c1dcb9);height:100%;transition:width .3s}.content{padding:0 14px}.page-heading{margin:25px 5px 20px}.page-heading p{max-width:620px;color:var(--muted)}.panel{background:linear-gradient(145deg,#1d2d42,#172338);border-radius:var(--radius);border:1px solid var(--line);padding:19px;margin:14px 0;box-shadow:0 7px 16px #070d183b}.panel h3{margin-bottom:12px}.panel summary{cursor:pointer;font-family:Cinzel,Georgia,serif;font-size:16px;font-weight:600}.panel summary+p{margin-top:14px}.scene{min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px 20px;border-radius:var(--radius);border:1px solid #6c756d55;box-shadow:inset 0 0 90px #101a32b0,0 10px 24px #070d1855;overflow:hidden;position:relative;margin:14px 0}.scene>*{position:relative;z-index:2}.scene p{max-width:600px;text-shadow:0 2px 8px #000;color:#f0e7d3}.scene h2,.scene h3{text-shadow:0 2px 6px #000}.scene-dawn{background:linear-gradient(0deg,#131e2c 0%,#16293e9c 45%,#39476155),radial-gradient(circle at 82% 12%,#fff1b6b0,#b8a99f00 27%),linear-gradient(125deg,#142840,#61727c,#484156)}.scene-dawn:before{content:'✧';position:absolute;top:-56px;right:5%;font-size:260px;line-height:1;color:#f3d8a032;text-shadow:0 0 60px #b6a880}.scene-map{background:linear-gradient(#233b47a8,#101b29db),repeating-linear-gradient(45deg,transparent 0 35px,#d1c0a51b 36px 38px),radial-gradient(ellipse at 80% 20%,#7f7f56,#243c3d 70%);min-height:210px}.scene-sanctuary{background:linear-gradient(0deg,#11212edc,#4b7f8c72),radial-gradient(circle at 70% 12%,#e5d69d,#7096a4 55%,#293c5c);min-height:250px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.two-col .panel{margin:0}.section-head{display:flex;justify-content:space-between;gap:9px;align-items:center}.section-head h3{margin:0}.log p{border-bottom:1px solid var(--line);padding:8px 0;margin:0;font-size:12px}.log p:last-child{border-bottom:none}.btn{border:1px solid #5d7080;background:#26394f;color:var(--ink);font-weight:700;letter-spacing:.025em;border-radius:11px;padding:11px 15px;min-height:43px;font-size:12px;transition:filter .15s}.btn:active{filter:brightness(1.2)}.btn.primary{background:linear-gradient(145deg,#e4bf82,#a77b47);color:#18202e;border-color:#f4d89c}.btn.secondary{background:#22344a}.btn.quiet{background:transparent;border:1px solid #51617199;color:var(--gold);padding:9px}.btn.big{width:100%;min-height:51px;font-size:14px}.notice{position:relative;border:1px solid #739d92;background:#243e43;color:#e6fff1;padding:11px 40px 11px 13px;border-radius:11px;font-size:13px;margin:12px 0}.notice button{position:absolute;right:7px;top:4px;border:0;background:transparent;color:inherit;font-size:25px}.item{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding:14px 0;flex-wrap:wrap}.item:first-of-type{border-top:0}.item-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#344963,#1b2c43);border:1px solid #5367817a;display:grid;place-items:center;font-size:25px;flex:none;color:var(--gold)}.item-body{flex:1;min-width:145px}.item-body strong{font-family:Cinzel,Georgia,serif;font-size:14px}.item-body p{font-size:12px;color:var(--muted);margin:4px 0}.item-actions{display:flex;gap:6px;flex-wrap:wrap}.item-actions .btn{padding:8px 11px}.tag{color:#d2b78c;display:inline-block;font-size:10px;margin:5px 0}.tag.success{color:#8fd1b0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:stretch;justify-content:space-around;gap:2px;width:min(100%,920px);padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:#111c2deF;border-top:1px solid #5b678a59;backdrop-filter:blur(18px);box-shadow:0 -9px 24px #0b0f1d90}.bottom-nav button{background:none;border:0;color:var(--muted);min-width:0;flex:1;padding:5px 1px;border-radius:10px}.bottom-nav button.active{color:#f2d99f;background:#39476060}.bottom-nav button span{display:block;font-size:22px}.bottom-nav button small{display:block;color:inherit;font-size:9px;font-weight:600}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-tile{min-height:115px;padding:16px;background:#1b2b40;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px}.menu-tile span{font-size:26px}.menu-tile strong{font-family:Cinzel,serif;font-size:12px}.hero-stats,.material-grid,.attr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.hero-stats>div,.material-grid>div,.attr{background:#101d30;border-radius:10px;padding:10px;display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:5px}.hero-stats strong,.material-grid b,.attr span{color:var(--gold)}.attr{flex-direction:column}.attr strong{font-size:10px;color:var(--muted)}.attr span{font-size:19px;font-weight:800}.portrait,.echo-art{border:1px solid #81735a78;border-radius:16px;background:radial-gradient(circle at 48% 35%,#4f6c77,#1c2d47 60%,#151c30);min-height:170px;display:grid;place-items:center;font-size:92px;color:#eed5a6;text-shadow:0 0 35px #eabf7d}.echo-art{font-size:115px;color:#bce9d7}.echo-art small{font-size:26px;position:absolute;margin-left:140px}.battle-scene{min-height:340px;background:radial-gradient(circle at 50% 24%,#3b5c57,#203d44 42%,#111d30);border:1px solid #5a847b66;border-radius:18px;padding:18px;margin:14px 0}.enemy-art{height:150px;display:grid;place-items:center;font-size:120px;text-shadow:0 18px 35px #07101c}.battle-party{text-align:center;padding:15px 0;color:#f4daab;font-size:12px}.health-label{font-size:12px;color:var(--muted)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.action-grid .btn{min-height:52px}.setup{min-height:100vh;padding:38px 20px 80px;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;background:radial-gradient(circle at center 20%,#345067,#111a2c 65%)}.setup h1{line-height:1.1;margin-top:14px}.setup p{max-width:480px}.setup form{max-width:420px;width:100%;text-align:left;margin:15px auto}.setup-emblem{height:115px;width:115px;display:grid;place-items:center;font-size:92px;color:#dcbf88;border:2px solid #ab8550;border-radius:50%;box-shadow:0 0 75px #d3a96d44;background:#14273d}label{display:block;margin:13px 0;font-weight:700;font-size:12px;color:var(--gold)}input,select,textarea{width:100%;border-radius:10px;border:1px solid #65768a;background:#0e1c30;color:#fff;padding:13px;outline:none;margin:7px 0 4px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--gold)}textarea{min-height:135px;resize:vertical}.file-input{display:inline-block;background:#26394f;border:1px solid #5d7080;border-radius:11px;padding:11px 15px;color:#fff;cursor:pointer}.file-input input{display:block;font-size:11px;padding:4px;width:100%;margin-top:6px}.boot{padding:50px;text-align:center}.setup form button{margin-top:13px}@media(max-width:500px){.two-col{grid-template-columns:1fr}.brand strong{font-size:11px}.brand small{font-size:8px}.build-label{font-size:8px}.hero-stats,.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.item-actions{width:100%}.item-actions .btn{flex:1}.scene{min-height:245px}.topbar{padding:12px}.panel{padding:15px}.content{padding:0 12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}