:root{--bg: #070d18;--bg2: #0d1628;--card: rgba(18, 28, 48, .78);--card-solid: #121c30;--line: rgba(120, 165, 230, .22);--line-strong: rgba(140, 185, 255, .45);--ink: #e8eef8;--muted: #a3b3cb;--blue: #4da3ff;--blue-deep: #2563c9;--gold: #e3bd6a;--ok: #3fd1a4;--warn: #ff8a7a;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(120% 80% at 50% 0%,#142645 0%,var(--bg) 60%) fixed,var(--bg);color:var(--ink);font-family:Noto Sans JP,-apple-system,Hiragino Sans,sans-serif;font-size:15px;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit;color:inherit}img{display:block}#app{max-width:520px;margin:0 auto;min-height:100%}#top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + var(--safe-t)) 16px 10px;background:linear-gradient(#070d18f2,#070d18bf);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:6px;font-family:Cinzel,serif;font-weight:700;font-size:20px;letter-spacing:.08em;color:#f4f6fb}.logo svg{width:18px;height:18px;fill:var(--gold)}.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);font-size:18px}main{padding:14px 16px calc(96px + var(--safe-b))}.view{display:none}.view.active{display:block;animation:fade .25s ease-out}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}#tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(5,1fr);max-width:520px;margin:0 auto;padding:6px 6px calc(6px + var(--safe-b));background:#090f1cf0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}#tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;border:0;background:none;color:var(--muted);font-size:11px;border-radius:12px}#tabs svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#tabs button.on{color:#fff;background:#4da3ff29}#tabs button.on svg{stroke:var(--blue)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:14px;box-shadow:0 10px 30px #00000059}.card.glow{border-color:var(--line-strong);box-shadow:0 0 0 1px #4da3ff1a,0 12px 40px #1450b440}.sec{display:flex;align-items:baseline;justify-content:space-between;margin:20px 2px 10px}.sec h2{margin:0;font-size:16px;letter-spacing:.04em}.sec .meta{color:var(--muted);font-size:12px}.meta{color:var(--muted);font-size:13px}.en{font-family:Cinzel,serif;letter-spacing:.08em}.player{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center}.avatar{width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);box-shadow:0 0 18px #e3bd6a59}.lv{display:flex;align-items:baseline;gap:10px}.lv b{font-family:Cinzel,serif;font-size:26px}.lv b small{font-size:14px;margin-right:2px}.title{color:var(--gold);font-weight:700;font-size:14px}.exp{margin-top:8px}.exp .row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.bar{display:block;height:8px;border-radius:4px;background:#ffffff14;overflow:hidden;margin-top:4px}.bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue-deep),var(--blue))}.coach{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px;border-radius:14px;background:#4da3ff14;border:1px solid rgba(77,163,255,.25)}.coach .face{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1f4f9a,#4da3ff)}.coach .face svg{width:18px;height:18px;fill:#fff}.coach p{margin:0;line-height:1.6;font-size:14px}.quests{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.quest{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.quest.done{opacity:.72}.quest .thumb{width:46px;height:46px;border-radius:10px;object-fit:cover}.quest .t{min-width:0}.quest .t b{display:block;font-weight:500;overflow-wrap:anywhere}.quest .t small{color:var(--muted);font-size:12px;display:flex;gap:8px;align-items:center;margin-top:2px}.stat-tag{font-family:Cinzel,serif;font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid currentColor}.xp{color:var(--gold);font-weight:700}.check{width:40px;height:40px;border-radius:50%;border:2px solid var(--line-strong);background:transparent;display:grid;place-items:center}.check svg{width:20px;height:20px;stroke:transparent;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.check.on{background:var(--ok);border-color:var(--ok)}.check.on svg{stroke:#062018}.check:disabled{opacity:.5}.quest.recovery{border-color:#e3bd6a99;background:linear-gradient(90deg,rgba(227,189,106,.14),var(--card))}.empty{color:var(--muted);text-align:center;padding:18px}.seg{display:flex;gap:6px;padding:4px;border-radius:12px;background:#ffffff0d;border:1px solid var(--line);margin-bottom:14px}.seg button{flex:1;min-height:40px;border:0;border-radius:9px;background:none;color:var(--muted);font-weight:500}.seg button.on{background:var(--blue-deep);color:#fff}.banner{position:relative;border-radius:18px;overflow:hidden;margin-bottom:14px;border:1px solid var(--line);min-height:150px}.banner img{width:100%;height:170px;object-fit:cover;filter:saturate(1.05)}.banner .over{position:absolute;inset:0;padding:14px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(transparent 20%,#070d18eb)}.banner .kicker{color:var(--gold);font-size:12px;font-weight:700}.banner h3{margin:2px 0 4px;font-size:20px}.banner p{margin:0;color:var(--muted);font-size:13px}.hero{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line-strong);margin-bottom:14px}.hero img{width:100%;height:300px;object-fit:cover;object-position:center 20%}.hero .over{position:absolute;left:0;right:0;bottom:0;padding:16px;background:linear-gradient(transparent,#070d18f2)}.stats{display:flex;flex-direction:column;gap:10px}.stat{display:grid;grid-template-columns:26px 70px 1fr 34px;gap:10px;align-items:center}.stat .ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#ffffff0f}.stat .ico i{width:10px;height:10px;border-radius:3px;transform:rotate(45deg)}.stat .name{font-family:Cinzel,serif;font-size:13px;letter-spacing:.06em}.stat .name small{display:block;font-family:Noto Sans JP,sans-serif;color:var(--muted);font-size:10px;letter-spacing:0}.stat .bar{margin:0;height:7px}.stat b{text-align:right;font-family:Cinzel,serif}.looks{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.look{position:relative;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;background:none;aspect-ratio:3 / 4}.look img{width:100%;height:100%;object-fit:cover}.look.on{border-color:var(--gold)}.look.locked img{filter:grayscale(1) brightness(.35)}.look span{position:absolute;left:0;right:0;bottom:0;padding:3px 2px;font-size:10px;text-align:center;background:#070d18cc}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.step{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.step .no{font-family:Cinzel,serif;font-size:12px;text-align:center;padding:4px 0;border-radius:8px;background:#ffffff0f}.step small{color:var(--muted);font-size:12px}.badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.badge.clear{background:#3fd1a42e;color:var(--ok)}.badge.active{background:#4da3ff33;color:#9ccbff}.badge.locked{background:#ffffff0f;color:var(--muted)}.boss{display:grid;grid-template-columns:110px 1fr;gap:0;border-radius:18px;overflow:hidden;border:1px solid rgba(255,90,90,.4);background:linear-gradient(90deg,rgba(120,20,30,.35),var(--card))}.boss img{width:110px;height:130px;object-fit:cover}.boss .b{padding:12px 14px}.boss .kicker{color:#ff9a8a;font-size:12px;font-weight:700}.boss h3{margin:2px 0;font-size:18px}.hp{height:9px;border-radius:5px;background:#ffffff14;overflow:hidden;margin-top:8px}.hp i{display:block;height:100%;background:linear-gradient(90deg,#a3172a,#ff5a5a)}.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.field{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--card)}.field img{width:100%;height:64px;object-fit:cover}.field div{padding:6px 8px;font-size:12px}.field small{display:block;color:var(--muted);font-size:10px}.guild-head{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center}.emblem{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#3a2a10,#8a6420);border:1px solid var(--gold)}.emblem svg{width:28px;height:28px;fill:var(--gold)}.faces{display:flex;margin-top:8px}.faces img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2px solid var(--bg2);margin-left:-8px}.faces img:first-child{margin-left:0}.rank{display:grid;grid-template-columns:26px 40px 1fr auto;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--line)}.rank:last-child{border-bottom:0}.rank .n{font-family:Cinzel,serif;color:var(--gold);text-align:center}.rank img{width:40px;height:40px;border-radius:50%;object-fit:cover}.rank.me{background:#4da3ff1a;border-radius:10px}.chat{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:8px 0}.chat img{width:36px;height:36px;border-radius:50%;object-fit:cover}.chat .bubble{background:#ffffff0d;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:14px}.chat .who{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:2px}.sample{font-size:10px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px}.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.heat span{aspect-ratio:1;border-radius:5px;background:#ffffff0d}.heat .r1{background:#4da3ff4d}.heat .r2{background:#4da3ff99}.heat .r3{background:var(--blue)}.heat .r0{background:#ff8a7a47}.heat .today{outline:2px solid var(--gold);outline-offset:1px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.kpi{padding:10px;border-radius:12px;background:#ffffff0a;border:1px solid var(--line);text-align:center}.kpi b{display:block;font-family:Cinzel,serif;font-size:22px}.kpi small{color:var(--muted);font-size:11px}.btn{min-height:46px;padding:10px 16px;border-radius:12px;border:1px solid var(--line-strong);background:#ffffff0a;font-weight:700}.btn.primary{background:linear-gradient(90deg,var(--blue-deep),#3b82e6);border-color:transparent;color:#fff}.btn.gold{background:linear-gradient(90deg,#a77a26,var(--gold));border-color:transparent;color:#1a1206}.btn.wide{width:100%}.btn.sm{min-height:40px;padding:6px 12px;font-size:13px}.btn:disabled{opacity:.45}.input{width:100%;min-height:46px;padding:10px 12px;border-radius:12px;border:1px solid var(--line-strong);background:#00000040;font-size:16px}.input::placeholder{color:#8293ad}.label{display:block;color:var(--muted);font-size:12px;font-weight:700;margin:14px 0 6px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);background:#ffffff08;font-size:13px}.chip.on{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff;font-weight:700}.row-btns{display:flex;gap:8px;margin-top:16px}.row-btns .btn{flex:1}.del{border:0;background:none;color:var(--muted);min-width:40px;min-height:40px;font-size:18px}#sheet{position:fixed;inset:0;z-index:20;background:#0000008c;display:flex;align-items:flex-end;justify-content:center}#sheet[hidden]{display:none}.sheet-body{width:100%;max-width:520px;max-height:86%;overflow-y:auto;background:var(--card-solid);border:1px solid var(--line-strong);border-bottom:0;border-radius:20px 20px 0 0;padding:12px 16px calc(16px + var(--safe-b))}.grip{display:block;width:40px;height:5px;border-radius:3px;background:#ffffff40;margin:0 auto 10px}.sheet-body h2{margin:4px 0 8px;font-size:18px}#onboard{position:fixed;inset:0;z-index:30;overflow-y:auto;background:radial-gradient(120% 70% at 50% 0%,#17305a,var(--bg) 65%)}#onboard[hidden]{display:none}.ob{max-width:520px;margin:0 auto;padding:calc(20px + var(--safe-t)) 18px calc(30px + var(--safe-b))}.ob-hero{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line-strong)}.ob-hero img{width:100%;height:260px;object-fit:cover;object-position:center 25%}.ob-hero .over{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;background:linear-gradient(transparent 35%,#070d18f2)}.ob-hero .logo{font-size:30px}.ob-hero p{margin:6px 0 0;color:var(--gold);font-weight:700}.tpl{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);margin-bottom:6px;text-align:left;width:100%}.tpl.on{border-color:var(--blue);background:#4da3ff1f}.tpl small{color:var(--muted);font-size:12px}#celebrate{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#0000008c}#celebrate[hidden]{display:none}.burst{text-align:center;padding:24px 28px;border-radius:22px;background:linear-gradient(160deg,#1b2f55,#0b1426);border:1px solid var(--gold);box-shadow:0 0 40px #e3bd6a59;animation:pop .45s cubic-bezier(.2,1.6,.4,1);max-width:300px}.burst img{width:160px;height:200px;object-fit:cover;border-radius:14px;margin:0 auto 12px;border:1px solid var(--gold)}.burst .kicker{color:var(--gold);font-family:Cinzel,serif;letter-spacing:.1em;font-size:13px}.burst h3{margin:6px 0 2px;font-size:22px}.burst p{margin:0;color:var(--muted);font-size:13px}@keyframes pop{0%{transform:scale(.5);opacity:0}}#toasts{position:fixed;left:16px;right:16px;bottom:calc(86px + var(--safe-b));z-index:45;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{background:#0a1222f2;border:1px solid var(--line-strong);color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;font-size:14px;animation:rise .25s ease-out}.toast .xp{margin-left:6px}@keyframes rise{0%{transform:translateY(10px);opacity:0}}.quest.with-del{grid-template-columns:46px 1fr auto auto;gap:8px}
