@font-face{font-family:Cinzel;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/cinzel.woff2) format("woff2");unicode-range:U+20,U+28-29,U+30-39,U+41-5a,U+61-7a,U+ff08-ff09}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/shippori-mincho-400.woff2) format("woff2");unicode-range:U+3001-3002,U+300c-300f,U+3042-308d,U+308f,U+3092-3094,U+3099-309a,U+30a2-30ed,U+30ef,U+30f2-30f4,U+30f7,U+30fa-30fc,U+6575,U+81ea,U+8ecd,U+ff01,U+ff08-ff09,U+ff1a-ff1b,U+ff1f}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/shippori-mincho-600.woff2) format("woff2");unicode-range:U+3001-3002,U+300c-300f,U+3042-308d,U+308f,U+3092-3094,U+3099-309a,U+30a2-30ed,U+30ef,U+30f2-30f4,U+30f7,U+30fa-30fc,U+6575,U+81ea,U+8ecd,U+ff01,U+ff08-ff09,U+ff1a-ff1b,U+ff1f}:root{--color-bg: #12151a;--color-bg-secondary: #1a1f26;--color-surface: #1c222b;--color-surface-raised: #242b35;--color-border: #333c48;--color-border-emphasis: #5c6b4f;--color-text: #e6e2d6;--color-text-muted: #9aa1ac;--color-accent: #5fd0c4;--color-accent-muted: #2f5f5a;--color-gold: #b8965a;--color-silver: #b9c2c9;--color-bronze: #8a6a45;--color-moss: #6b7a52;--color-frost: #8fe0d6;--color-ember: #d97a4a;--color-danger: #d9634a;--color-element-fire: var(--color-ember);--color-element-water: var(--color-frost);--color-element-thunder: var(--color-gold);--color-element-tree: var(--color-moss);--color-element-light: #f0ead2;--color-element-dark: #5a4480;--bg: var(--color-bg);--panel: var(--color-surface);--line: var(--color-border);--text: var(--color-text);--muted: var(--color-text-muted);--accent: var(--color-accent);--danger: var(--color-danger);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--font-display: Iowan Old Style, Palatino Linotype, Palatino, Georgia, "Noto Serif JP", serif;--font-heading: "Cinzel", "Shippori Mincho", var(--font-display);--font-body: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-caption: var(--font-body);--text-display: 26px;--text-heading: 17px;--text-body: 15px;--text-caption: 12px;--text-label: 11px;--tracking-display: .09em;--tracking-heading: .04em;--tracking-label: .08em;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--border-hairline: 1px solid var(--color-border);--border-emphasis: 1px solid var(--color-border-emphasis);--shadow-carved: inset 0 1px 2px rgba(0, 0, 0, .55), inset 0 -1px 0 rgba(255, 255, 255, .03);--shadow-raised: 0 2px 10px rgba(0, 0, 0, .4);--shadow-focus: 0 0 0 2px var(--color-accent-muted);--opacity-texture: .05;--opacity-texture-strong: .09;--opacity-disabled: .45;--opacity-muted: .7;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-ambient: 12s ease-in-out;--z-base: 0;--z-raised: 1;--z-sticky: 2;--z-overlay: 10;--z-modal: 20;--z-toast: 30;--texture-grain: url(/assets/textures/grain.svg);--ornament-panel-frame: url(/assets/common/panel-frame.webp);--ornament-medallion-bg: url(/assets/ornaments/character-medallion-bg.webp);--ornament-medallion-frame: url(/assets/ornaments/character-medallion-frame.webp);--ornament-medallion-fire: url(/assets/ornaments/character-medallion-fire.webp);--ornament-medallion-water: url(/assets/ornaments/character-medallion-water.webp);--ornament-medallion-thunder: url(/assets/ornaments/character-medallion-thunder.webp);--ornament-medallion-tree: url(/assets/ornaments/character-medallion-tree.webp);--ornament-medallion-light: url(/assets/ornaments/character-medallion-light.webp);--ornament-medallion-dark: url(/assets/ornaments/character-medallion-dark.webp);color-scheme:dark}@media(prefers-reduced-motion:reduce){:root{--transition-ambient: 0s}}*{box-sizing:border-box;-webkit-user-select:none;user-select:none}html,body,#root{touch-action:pan-x pan-y}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-body)}.public-page,.public-page *{-webkit-user-select:text;user-select:text}.public-page{min-height:100dvh;background-image:radial-gradient(ellipse at 50% -10%,var(--color-accent-muted),transparent 52%),var(--texture-grain);background-size:auto,180px 180px;background-blend-mode:soft-light,overlay}.public-shell{width:min(100%,480px);min-height:100dvh;margin:0 auto;border-inline:var(--border-hairline);background:var(--color-bg)}.public-header{padding:var(--space-lg) var(--space-md) var(--space-md);border-bottom:var(--border-hairline);background:var(--color-surface);box-shadow:var(--shadow-carved)}.public-header__brand{display:block;width:min(100%,360px);margin:0 auto var(--space-lg)}.public-header__brand img{display:block;width:100%;height:auto}.public-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm) var(--space-lg);font-family:var(--font-heading);font-size:var(--text-caption);letter-spacing:var(--tracking-label)}.public-nav a,.public-footer a,.public-article a,.public-link-grid a,.public-contact-link{color:var(--color-frost);text-underline-offset:3px}.public-nav__current{color:var(--color-gold);border-bottom:1px solid var(--color-bronze)}.public-main{padding:var(--space-xl) var(--space-md) var(--space-3xl)}.public-hero{padding:var(--space-xl) 0 var(--space-2xl);text-align:center}.public-hero h1,.public-article>header h1{margin:var(--space-sm) 0 var(--space-lg);font-family:var(--font-display);font-size:var(--text-display);letter-spacing:var(--tracking-display);line-height:1.55}.public-hero p,.public-article p,.public-section p{line-height:1.95}.public-kicker{margin:0;color:var(--color-gold);font-family:var(--font-heading);font-size:var(--text-label);letter-spacing:var(--tracking-display)}.public-cta{display:inline-flex;justify-content:center;min-width:220px;margin-top:var(--space-lg);padding:var(--space-md) var(--space-xl);border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent-muted);color:var(--color-text);font-family:var(--font-heading);letter-spacing:var(--tracking-heading);text-decoration:none;box-shadow:var(--shadow-carved)}.public-cta:focus-visible,.public-link-grid a:focus-visible,.public-nav a:focus-visible,.public-footer a:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.public-rune-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-md) 0 var(--space-xl);color:var(--color-gold)}.public-rune-divider:before,.public-rune-divider:after{content:"";height:1px;flex:1;background:var(--color-border)}.public-section,.public-article>section{margin-top:var(--space-2xl)}.public-section h2,.public-article h2,.public-character h2{margin:0 0 var(--space-md);color:var(--color-text);font-family:var(--font-heading);font-size:var(--text-heading);letter-spacing:var(--tracking-heading);line-height:1.55}.public-section--stone,.public-article>section,.public-character{padding:var(--space-lg);border:var(--border-hairline);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-carved)}.public-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-lg)}.public-link-grid a{display:flex;min-height:104px;flex-direction:column;justify-content:center;gap:var(--space-sm);padding:var(--space-md);border:var(--border-hairline);border-radius:var(--radius-sm);background:var(--color-surface);text-decoration:none;box-shadow:var(--shadow-carved)}.public-link-grid span{color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.6}.public-screen-gallery__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-lg)}.public-screen-shot{min-width:0;margin:0;padding:var(--space-xs);border:var(--border-hairline);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-carved)}.public-screen-shot img{display:block;width:100%;height:auto;aspect-ratio:2 / 3;border:var(--border-hairline);background:var(--color-bg-secondary)}.public-screen-shot figcaption{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-xs) var(--space-xs)}.public-screen-shot figcaption strong{color:var(--color-gold);font-family:var(--font-heading);font-size:var(--text-caption);line-height:1.45}.public-screen-shot figcaption span{color:var(--color-text-muted);font-size:var(--text-label);line-height:1.65}.public-article>header{padding-bottom:var(--space-xl);border-bottom:var(--border-hairline)}.public-article>section p:last-child,.public-section p:last-child,.public-character p:last-child{margin-bottom:0}.public-article__next{margin-top:var(--space-2xl);text-align:center}.public-realm-list{display:grid;gap:var(--space-sm);margin:var(--space-lg) 0 0;padding-left:var(--space-xl)}.public-realm-list li{padding-left:var(--space-xs)}.public-realm-list span{display:block;color:var(--color-text-muted);font-size:var(--text-caption)}.public-character-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-xl)}.public-character{padding:var(--space-md)}.public-character img,.public-character__placeholder{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:var(--border-hairline);background:var(--color-bg-secondary)}.public-character__placeholder{display:grid;place-items:center;text-align:center}.public-character h2{margin-top:var(--space-md)}.public-character p{font-size:var(--text-caption);line-height:1.75}.public-character__meta,.public-news-entry time{color:var(--color-gold)}.public-news-entry time{display:block;margin-bottom:var(--space-sm);font-size:var(--text-caption)}.legal-document h2{font-size:var(--text-heading)}.public-contact-link{overflow-wrap:anywhere;font-size:var(--text-heading)}.public-definition-list{margin:0}.public-definition-list div{display:grid;grid-template-columns:108px 1fr;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:var(--border-hairline)}.public-definition-list div:last-child{border-bottom:0}.public-definition-list dt{color:var(--color-text-muted)}.public-definition-list dd{margin:0}.public-footer{padding:var(--space-xl) var(--space-md);border-top:var(--border-hairline);background:var(--color-surface);color:var(--color-text-muted);text-align:center;font-size:var(--text-caption)}.public-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm) var(--space-lg);margin-bottom:var(--space-lg)}.public-footer p{margin:var(--space-xs) 0}.public-link-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm) var(--space-lg);padding:var(--space-md);color:var(--color-text-muted);font-size:var(--text-caption)}.public-link-row a{color:var(--color-frost)}.settings-legal-links{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-md)}.settings-legal-links a{display:inline-flex;min-height:36px;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);border:var(--border-hairline);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);font-size:var(--text-caption);text-align:center;text-decoration:none}.settings-legal-links a:last-child{grid-column:1 / -1}.settings-legal-links a:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media(max-width:380px){.public-link-grid,.public-character-grid{grid-template-columns:1fr}}#root{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative;background-image:radial-gradient(ellipse at 50% -10%,rgba(95,208,196,.06),transparent 55%),var(--texture-grain);background-size:auto,180px 180px;background-blend-mode:normal,overlay}.screen{padding:var(--space-md);padding-bottom:var(--space-xl);flex:1}.home-screen{padding-bottom:calc(112px + var(--space-xl) + env(safe-area-inset-bottom))}.pvp-screen{padding-bottom:calc(64px + var(--space-xl) + env(safe-area-inset-bottom))}.home-cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-bg) 65%,transparent);pointer-events:none}.home-cta-bar__trial{pointer-events:auto;border-color:var(--color-ember);flex:0 0 20%}.home-cta-bar__row{display:flex;gap:var(--space-sm);width:100%;max-width:480px;pointer-events:auto}.home-cta-bar__row .home-cta-bar__pvp{border-color:var(--color-frost);flex:0 0 20%}.home-cta-bar__row .primary{flex:1}.utgarda-trial-screen{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.utgarda-trial__record{margin-top:var(--space-sm)}.utgarda-trial__rounds{margin-top:var(--space-md);padding-block:var(--space-sm);border-block:var(--border-hairline)}.utgarda-trial__rounds .row+.row{margin-top:var(--space-sm)}.utgarda-trial__challenge{position:sticky;bottom:calc(var(--space-md) + env(safe-area-inset-bottom));width:100%;margin-top:var(--space-xl)}.utgarda-trial-result__actions{margin-top:var(--space-xl)}.utgarda-trial-result__actions>*{flex:1}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:6px var(--space-md);background:var(--color-surface);border-bottom:var(--border-hairline)}.topbar__left{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.topbar__brand-wrap{flex:1;display:flex;justify-content:center;min-width:0;overflow:hidden}.topbar__brand{height:52px;width:auto;max-width:100%;display:block;object-position:center}.topbar__brand--logo{position:absolute;left:50%;top:50%;height:47px;transform:translate(-50%,-50%);object-fit:contain}.topbar__brand-button{display:block;padding:0;border:none;background:none;cursor:pointer}.panel{background:var(--color-surface);border:var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-carved);padding:var(--space-md);margin-bottom:var(--space-sm)}.row{display:flex;align-items:center;gap:10px}.row+.row{margin-top:var(--space-sm)}.spread{justify-content:space-between}.muted{color:var(--color-text-muted);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-input{min-width:0;min-height:44px;padding:10px var(--space-md);color:var(--color-text);background:var(--color-bg-secondary);border:var(--border-hairline);border-radius:var(--radius-sm);font:inherit}.text-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.text-input:disabled{opacity:var(--opacity-disabled)}.redemption-form{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.redemption-form .text-input{flex:1}.redemption-form+.error,.redemption-form+.success{margin-bottom:0}.google-sign-in{display:flex;min-height:44px;justify-content:center;margin-top:var(--space-sm)}.google-sign-in--disabled{opacity:var(--opacity-disabled);pointer-events:none}.turnstile-widget{min-height:65px;margin-top:var(--space-sm)}.turnstile-widget>div:first-child{display:flex;justify-content:center}.turnstile-widget__error p{margin-bottom:0}.turnstile-widget__retry{margin-top:var(--space-xs)}.account-link-help{margin-top:var(--space-xs);line-height:1.6}.account-link-message{margin-bottom:0}.account-name-form{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.account-name-form .text-input{flex:1}.account-name-form+p{margin-bottom:0}.account-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}.account-actions button{width:100%}.starter-name-input{width:100%;margin-top:var(--space-sm)}.starter-screen{padding-bottom:calc(68px + var(--space-xl) + env(safe-area-inset-bottom))}.starter-actions{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:flex;justify-content:center;padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-bg) 65%,transparent);pointer-events:none}.starter-actions .primary{width:100%;max-width:calc(480px - 2 * var(--space-md));pointer-events:auto}button{font:inherit;color:var(--color-text);background:var(--color-surface-raised);border:var(--border-hairline);border-radius:var(--radius-sm);padding:10px 14px;min-height:44px;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}@media(hover:hover)and (pointer:fine){button:hover:not(:disabled){border-color:var(--color-border-emphasis)}}button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}button.primary{background:var(--color-accent-muted);border-color:var(--color-accent);color:#08211e;color:var(--color-text);font-weight:600}button.danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}button:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}button.small{min-height:34px;padding:6px 10px;font-size:13px}.hpbar{height:8px;background:#0d1116;border-radius:var(--radius-sm);overflow:hidden}.hpbar>div{height:100%;background:var(--color-moss);transition:width .16s linear}.hpbar.enemy>div{background:var(--color-ember)}.battle-parties{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md)}.battle-party{min-width:0;text-align:center}.battle-party+.battle-party{border-left:var(--border-hairline);padding-left:var(--space-md)}.battle-party__label{margin-bottom:var(--space-sm);color:var(--color-text-muted);font-family:var(--font-heading);font-size:var(--text-label);letter-spacing:var(--tracking-label)}.battle-active__meta{display:flex;width:100%;justify-content:space-between;color:var(--color-text-muted);font-size:var(--text-label)}.battle-hp{width:100%;margin-top:var(--space-xs)}.battle-hp__numbers{display:block;margin-top:2px;font-size:var(--text-label);font-variant-numeric:tabular-nums}.battle-unit--fainted{filter:grayscale(1);opacity:var(--opacity-disabled)}.battle-roster{display:flex;flex-direction:column;gap:var(--space-sm)}.battle-roster__row{display:flex;align-items:center;gap:var(--space-sm);text-align:left}.battle-roster__info{min-width:0;flex:1}.battle-roster__name{overflow:hidden;font-size:var(--text-caption);font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.battle-roster__portrait{position:relative;display:inline-flex;flex-shrink:0}.battle-roster__portrait-anim{position:relative;display:inline-flex}.battle-roster__portrait-anim--attack{animation:battle-portrait-shake .36s ease-in-out}.battle-roster__portrait-anim--hit-left{animation:battle-portrait-hit-left .32s ease-out}.battle-roster__portrait-anim--hit-right{animation:battle-portrait-hit-right .32s ease-out}.battle-roster__portrait-anim--heal:after,.battle-roster__portrait-anim--buff:after,.battle-roster__portrait-anim--debuff:after{content:"";position:absolute;inset:0;z-index:2;border-radius:50%;pointer-events:none}.battle-roster__portrait-anim--heal:after{background:var(--color-moss);opacity:0;animation:battle-portrait-rise-flash .7s ease-out}.battle-roster__portrait-anim--buff:after{background:var(--color-frost);opacity:0;animation:battle-portrait-rise-flash .7s ease-out}.battle-roster__portrait-anim--debuff:after{background:var(--color-silver);opacity:0;animation:battle-portrait-sink-flash .7s ease-out}.battle-roster__portrait--burning:before{content:"";position:absolute;inset:0;z-index:1;border-radius:50%;background:var(--color-danger);opacity:.25;pointer-events:none;animation:battle-portrait-burn-pulse 1.2s ease-in-out infinite}.battle-roster__damage-popup{position:absolute;top:0;left:50%;z-index:3;font-weight:700;font-size:var(--text-caption);color:var(--color-danger);text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none;animation:battle-damage-popup-rise .9s ease-out forwards}.battle-roster__damage-popup--miss{color:var(--color-text-muted);letter-spacing:var(--tracking-heading)}@keyframes battle-portrait-shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-4px) rotate(-3deg)}40%{transform:translate(4px) rotate(3deg)}60%{transform:translate(-3px) rotate(-2deg)}80%{transform:translate(3px) rotate(2deg)}}@keyframes battle-portrait-hit-left{0%{transform:translate(0) rotate(0)}30%{transform:translate(-10px) rotate(-8deg)}to{transform:translate(0) rotate(0)}}@keyframes battle-portrait-hit-right{0%{transform:translate(0) rotate(0)}30%{transform:translate(10px) rotate(8deg)}to{transform:translate(0) rotate(0)}}@keyframes battle-portrait-burn-pulse{0%,to{opacity:.15}50%{opacity:.4}}@keyframes battle-portrait-rise-flash{0%{opacity:0;transform:scale(1)}30%{opacity:.45;transform:scale(1.05)}to{opacity:0;transform:scale(1.05)}}@keyframes battle-portrait-sink-flash{0%{opacity:0;transform:scale(1)}30%{opacity:.4;transform:scale(1.05)}to{opacity:0;transform:scale(1.05)}}@keyframes battle-damage-popup-rise{0%{opacity:0;transform:translate(-50%)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-28px)}}@media(prefers-reduced-motion:reduce){.battle-roster__portrait-anim--attack,.battle-roster__portrait-anim--hit-left,.battle-roster__portrait-anim--hit-right,.battle-roster__portrait-anim--heal:after,.battle-roster__portrait-anim--buff:after,.battle-roster__portrait-anim--debuff:after,.battle-roster__portrait--burning:before,.battle-roster__damage-popup{animation:none}}.log{height:190px;overflow-y:auto;font-size:13px;line-height:1.7;background:var(--color-bg-secondary);border:var(--border-hairline);border-radius:var(--radius-md);padding:8px 10px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--space-sm)}.starter-candidates{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.starter-granted__slot .medallion-frame--square{max-width:64px;margin:0 auto}.character-image{display:block;border-radius:var(--radius-md);object-fit:cover}.character-image--unknown,.character-image--silhouette-fallback{background:var(--color-border)}.character-image--silhouette-fallback{background:var(--color-bg-secondary);border:var(--border-hairline);box-shadow:inset 0 0 0 var(--space-md) var(--color-surface)}.codex-summary{margin-bottom:var(--space-sm)}.codex-card>.medallion-frame,.codex-detail .medallion-frame,.party-preview__slot .medallion-frame,.character-card>.medallion-frame{width:100%;box-sizing:border-box}.stone-card.codex-card{min-width:0;padding:var(--space-xs);overflow:hidden}.codex-card--encountered{border-color:var(--color-border-emphasis)}.codex-card--unknown{opacity:var(--opacity-disabled)}.codex-card__body{display:flex;min-height:46px;flex-direction:column;justify-content:center;padding:var(--space-sm) var(--space-xs) var(--space-xs);text-align:center;font-size:var(--text-caption)}.codex-card__body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.codex-detail{display:grid;gap:var(--space-sm);margin-top:var(--space-lg)}.codex-detail__heading{display:flex;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-md)}.codex-detail p{line-height:1.7}.codex-evolution{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:var(--space-md);margin-top:var(--space-md)}.codex-evolution__portrait .medallion-frame{width:112px}.codex-evolution--unknown{grid-template-columns:minmax(0,1fr)}.codex-evolution__info{display:grid;gap:var(--space-xs);min-width:0}.codex-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin:var(--space-md) 0 0}.codex-stats>div{display:flex;justify-content:space-between}.codex-stats dt{color:var(--color-text-muted)}.codex-stats dd{margin:0;font-variant-numeric:tabular-nums}.character-combat-power{grid-column:1 / -1;margin-top:var(--space-md);padding-bottom:var(--space-sm);border-bottom:var(--border-hairline);font-variant-numeric:tabular-nums}.codex-skill-list{display:grid;gap:var(--space-md);margin:var(--space-md) 0 0;padding-left:var(--space-lg)}.skill-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:8px}.skill-row{display:block;width:100%;text-align:left;padding:var(--space-sm)}.skill-row__head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm)}.skill-row__name{font-weight:600}.skill-row__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs) var(--space-sm);margin-top:var(--space-xs)}.skill-row__stats dt{color:var(--color-text-muted);font-size:12px}.skill-row__stats dd{margin:0;font-variant-numeric:tabular-nums}.skill-row__effect{margin-top:var(--space-xs);color:var(--color-text-muted);font-size:13px}.character-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);margin-bottom:var(--space-sm)}.character-sort{display:grid;gap:var(--space-xs);margin-top:var(--space-xl)}.character-sort__label{color:var(--color-text-muted);font-size:var(--text-caption)}.character-sort__options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-xs)}.character-sort__options button{min-width:0;padding-inline:var(--space-xs)}.character-sort__options .character-sort__button--selected{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.character-sort+.character-card-grid{margin-top:var(--space-sm)}.party-editor{margin-bottom:var(--space-sm)}.party-editor__total-combat-power{font-variant-numeric:tabular-nums}.party-editor__help{margin:var(--space-xs) 0 var(--space-md)}.party-editor__slots{display:grid;gap:var(--space-sm)}.party-editor__slot{display:grid;grid-template-columns:68px minmax(0,1fr);gap:var(--space-sm) var(--space-md);align-items:center;padding-top:var(--space-sm);border-top:var(--border-hairline)}.party-editor__portrait{background:none;border:none;padding:0;cursor:pointer}.party-editor__member{min-width:0}.party-editor__member>span{display:block;margin-bottom:var(--space-xs)}.party-editor__member-head{font-variant-numeric:tabular-nums}.party-editor__select{width:100%;padding:10px 4px}.party-editor__order{grid-column:2;display:flex;gap:var(--space-sm)}.party-editor__order button{flex:1}.party-editor__saving{margin-top:var(--space-sm)}.stone-card.character-card{--character-element-color: var(--color-border-emphasis);min-width:0;padding:var(--space-xs);overflow:hidden}.stone-card.character-card--fire{--character-element-color: var(--color-element-fire)}.stone-card.character-card--water{--character-element-color: var(--color-element-water)}.stone-card.character-card--thunder{--character-element-color: var(--color-element-thunder)}.stone-card.character-card--tree{--character-element-color: var(--color-element-tree)}.stone-card.character-card--light{--character-element-color: var(--color-element-light)}.stone-card.character-card--dark{--character-element-color: var(--color-element-dark)}.element-tag--fire{color:var(--color-element-fire)}.element-tag--water{color:var(--color-element-water)}.element-tag--thunder{color:var(--color-element-thunder)}.element-tag--tree{color:var(--color-element-tree)}.element-tag--light{color:var(--color-element-light)}.element-tag--dark{color:var(--color-element-dark)}.character-card__body{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px var(--space-xs);padding:var(--space-sm) var(--space-xs) var(--space-xs)}.character-card__name{grid-column:1 / -1;min-width:0;overflow:hidden;color:var(--color-text);font-size:var(--text-caption);line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.character-card__element{justify-self:start;color:var(--character-element-color);border:1px solid currentColor;border-radius:var(--radius-sm);padding:1px var(--space-xs);font-size:var(--text-label);line-height:1.3}.character-card__level{text-align:right;color:var(--color-text-muted);font-size:var(--text-label);white-space:nowrap}.character-card.stone-card--selected{border-color:var(--color-accent)}.chip{display:flex;align-items:center;gap:0px 8px;font-size:var(--text-label);letter-spacing:var(--tracking-label);padding:5px 12px;border:var(--border-hairline);border-radius:999px;color:var(--color-text-muted)}.chip--stamina-max{color:var(--color-accent);font-weight:700}.chip--button{cursor:pointer;font-family:inherit}.topbar-stamina-drop{display:flex;align-items:center;justify-content:space-between;position:fixed;top:57px;width:100%;z-index:var(--z-sticky);padding:var(--space-md) var(--space-md);background:var(--color-surface);border-bottom:var(--border-hairline)}.error{color:var(--color-danger);font-size:13px}.success{color:var(--color-moss);font-size:13px}.heim-select-screen .mythic-heading{margin-bottom:var(--space-lg)}.heim-grid{display:grid;gap:var(--space-sm);overflow-y:auto}.heim-card{min-width:0}.heim-card .row{align-items:flex-start}.heim-card__progress{margin-top:var(--space-xs);color:var(--color-text-muted);font-size:var(--text-caption)}.heim-pin-option{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);color:var(--color-text-muted);cursor:pointer}.heim-pin-option input{width:1.125rem;height:1.125rem;margin:0;accent-color:var(--color-accent)}.heim-pin-option input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.heim-detail,.challenge-controls{margin-bottom:var(--space-sm)}.heim-detail__heading,.challenge-controls__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.challenge-options__label{display:block;color:var(--color-text-muted);font-size:var(--text-label)}.heim-detail__heading{margin-top:var(--space-md);min-height:26px}.heim-detail__encounter-mark{display:inline-flex;margin-left:var(--space-sm);padding:2px 10px;vertical-align:middle;color:var(--color-danger)}.heim-detail__facts{display:grid;gap:var(--space-sm);margin:var(--space-md) 0 0}.heim-detail__facts>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:var(--space-sm);padding-top:var(--space-sm);border-top:var(--border-hairline)}.heim-detail__facts dt{color:var(--color-text-muted)}.heim-detail__facts dd{margin:0;line-height:1.5}.challenge-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-md)}.challenge-mode button{min-width:0}.challenge-mode button span{display:block;margin-top:var(--space-xs);color:var(--color-text-muted);font-size:var(--text-label)}.challenge-mode .challenge-mode--selected{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.challenge-options,.until-defeat-summary{margin-top:var(--space-lg)}.challenge-options__label+.stepper{margin-top:var(--space-sm)}.challenge-options p{margin:var(--space-xs) 0 var(--space-lg)}.challenge-options p:last-child{margin-bottom:0}.stepper{display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.stepper__value{flex:1;text-align:center;font-size:var(--text-heading)}.stepper__button{flex:0 0 auto;width:2.75rem;height:2.75rem;padding:0;display:flex;align-items:center;justify-content:center;line-height:1;font-size:var(--text-heading);touch-action:manipulation}.stepper__button:disabled{opacity:.4;cursor:not-allowed}.stepper__button--max{width:auto;padding:0 var(--space-sm);font-size:var(--text-body)}.until-defeat-summary strong{display:block;margin-top:var(--space-xs)}.until-defeat-summary p{margin-bottom:0;line-height:1.6}.challenge-start,.challenge-summary .primary,.challenge-summary button{width:100%}.challenge-summary button{margin-top:var(--space-xs)}.reward-screen{padding-bottom:calc(64px + var(--space-xl) + env(safe-area-inset-bottom))}.reward-actions{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:flex;justify-content:center;gap:var(--space-sm);padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-bg) 65%,transparent);pointer-events:none}.reward-actions button{flex:1;max-width:232px;pointer-events:auto}.reward-section{margin-bottom:var(--space-md)}.reward-section>.muted{display:block;margin-bottom:var(--space-xs)}.reward-list{margin:0;padding:0;list-style:none}.reward-list li{padding:4px 0;border-bottom:1px solid var(--color-border)}.reward-list li:last-child{border-bottom:none}.battle-context{margin-bottom:var(--space-sm)}.battle-context__heading{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.battle-context__heading>.muted{margin-left:auto;white-space:nowrap}.battle-result-line,.battle-speed-options{margin-top:var(--space-sm)}.battle-speed-options button{flex:1}.battle-speed--selected{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.challenge-summary p{margin-bottom:var(--space-md)}.battle-screen--reward{padding-bottom:calc(180px + env(safe-area-inset-bottom))}.battle-reward-panel{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);max-width:480px;margin:0 auto;padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));border-radius:var(--radius-md) var(--radius-md) 0 0}.pvp-result-screen{padding-bottom:calc(220px + env(safe-area-inset-bottom))}.pvp-result-actions{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:flex;flex-direction:column;gap:var(--space-sm);align-items:center;padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-bg) 65%,transparent);pointer-events:none}.pvp-result-actions>*{pointer-events:auto}.pvp-result-actions .row{width:100%;max-width:480px;gap:var(--space-sm)}.pvp-result-actions .row button{flex:1}.pvp-result-actions>button{width:100%;max-width:480px}.texture-surface{position:relative;isolation:isolate}.texture-surface:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-image:var(--texture-grain);background-size:140px 140px;pointer-events:none}.mythic-heading{font-family:var(--font-display);letter-spacing:var(--tracking-display);text-transform:uppercase;font-weight:600;color:var(--color-text);margin:0}.mythic-heading .mythic-heading__sub{display:block;font-family:var(--font-body);text-transform:none;letter-spacing:normal;font-size:var(--text-caption);color:var(--color-text-muted);margin-top:4px;font-weight:400}.ancient-panel{position:relative;background:var(--color-surface);border:var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-carved);padding:var(--space-lg)}.ancient-panel:before{content:"";position:absolute;right:-4px;top:-4px;background-image:var(--ornament-panel-frame);background-repeat:no-repeat;background-position:top right;background-size:60.64px 46.4px;pointer-events:none;opacity:.7}.ancient-panel__inner-frame{position:absolute;inset:5px;border:1px solid rgba(184,150,90,.14);border-radius:calc(var(--radius-md) - 3px);pointer-events:none}.ancient-panel__corner-accent{position:absolute;left:-4px;bottom:-4px;background-image:var(--ornament-panel-frame);background-repeat:no-repeat;background-position:top right;background-size:60.64px 46.4px;transform:rotate(180deg);pointer-events:none;width:100%;height:100%;opacity:.7}.loading-overlay{position:fixed;inset:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;background:#0a0c0f59;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.loading-overlay--visible{opacity:1;pointer-events:auto}.loading-overlay__spinner{width:40px;height:40px;border-radius:50%;border:3px solid var(--color-accent-muted);border-top-color:var(--color-accent);animation:loading-overlay-spin .8s linear infinite}@keyframes loading-overlay-spin{to{transform:rotate(360deg)}}.bottom-sheet-layer{position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:center;align-items:flex-end;pointer-events:none}.bottom-sheet-layer--open{pointer-events:auto}.bottom-sheet-layer__backdrop{position:absolute;inset:0;background:#0000008c;opacity:0;transition:opacity var(--transition-base)}.bottom-sheet-layer--open .bottom-sheet-layer__backdrop{opacity:1}.bottom-sheet{position:relative;width:100%;max-width:480px;max-height:82vh;overflow-y:auto;background:var(--color-surface);border:var(--border-hairline);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -8px 24px #0006;transform:translateY(100%);transition:transform var(--transition-base)}.bottom-sheet-layer--open .bottom-sheet{transform:translateY(0)}.bottom-sheet--dragging{transition:none}.bottom-sheet__handle{display:flex;justify-content:center;padding:20px 0;touch-action:none;cursor:grab}.bottom-sheet__handle:before{content:"";width:36px;height:4px;border-radius:2px;background:var(--color-border)}.bottom-sheet__content{padding:0 var(--space-md) var(--space-lg)}.legal-document h2{margin:0 0 var(--space-sm);font-size:1.1rem}.legal-document h3{margin:var(--space-md) 0 var(--space-xs);font-size:.95rem}.legal-document p{margin:0;line-height:1.7}.bottom-sheet__close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center;font-size:18px;line-height:1;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border)}.bottom-sheet__close:hover{border-color:var(--color-border-emphasis)}.stone-card{position:relative;background:linear-gradient(165deg,var(--color-surface-raised),var(--color-surface));border:var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-raised),var(--shadow-carved);padding:var(--space-md);transition:border-color var(--transition-base),transform var(--transition-base)}.stone-card--interactive{cursor:pointer}@media(hover:hover)and (pointer:fine){.stone-card--interactive:hover{border-color:var(--color-border-emphasis)}}.stone-card--selected{border-color:var(--color-accent);box-shadow:var(--shadow-focus),var(--shadow-carved)}.reward-character-card{overflow:hidden}.reward-character-card:after{content:"";position:absolute;inset:0;background:var(--color-frost);pointer-events:none;border-radius:inherit;animation:reward-character-sparkle 4s ease-in-out infinite}@keyframes reward-character-sparkle{0%{opacity:0}20%{opacity:.1}40%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.reward-character-card:after{animation:none}}.rune-divider{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-lg) 0;color:var(--color-text-muted)}.rune-divider:before,.rune-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--color-border),transparent)}.rune-divider__mark{font-size:15px;color:var(--color-gold);opacity:.85}.rune-icon{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);line-height:1;color:var(--color-gold)}.combat-power-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.realm-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-frost);border:1px solid var(--color-accent-muted);background:#5fd0c414;border-radius:999px;padding:3px 9px}.medallion-frame{position:relative;display:inline-grid;place-items:center;padding:var(--space-sm);border-radius:50%;isolation:isolate}.medallion-frame--fire{--ornament-medallion: var(--ornament-medallion-fire)}.medallion-frame--water{--ornament-medallion: var(--ornament-medallion-water)}.medallion-frame--thunder{--ornament-medallion: var(--ornament-medallion-thunder)}.medallion-frame--tree{--ornament-medallion: var(--ornament-medallion-tree)}.medallion-frame--light{--ornament-medallion: var(--ornament-medallion-light)}.medallion-frame--dark{--ornament-medallion: var(--ornament-medallion-dark)}.medallion-frame--square{border-radius:0;width:100%;padding:5%}.medallion-frame--square>*{border-radius:0;clip-path:none}.medallion-frame:before,.medallion-frame:after{content:"";position:absolute;inset:0;background-position:center;background-repeat:no-repeat;background-size:contain;pointer-events:none}.medallion-frame:before{z-index:-1;background-image:var(--ornament-medallion-bg);border-radius:9999px;transform:scale(.88);-webkit-mask-image:radial-gradient(circle,black calc(100% - 10px),transparent 100%);mask-image:radial-gradient(circle,black calc(100% - 10px),transparent 100%)}.medallion-frame--square:before{border-radius:0;transform:none;-webkit-mask-image:none;mask-image:none;transform:scale(.89)}.medallion-frame:after{z-index:1;background-image:var(--ornament-medallion);scale:1.02}.medallion-frame--square:after{background-image:var(--ornament-medallion-frame)}.medallion-frame>*{border-radius:50%;clip-path:circle(50%)}.medallion-frame--square>*{border-radius:0;clip-path:circle(100%)}.character-evolution-portrait{position:relative;isolation:isolate}.character-evolution-portrait:after{content:"";position:absolute;inset:0;z-index:2;background:var(--color-element-light);box-shadow:0 0 var(--space-2xl) var(--color-element-light);opacity:0;pointer-events:none}.character-evolution-portrait--glowing:after{animation:character-evolution-glow-in var(--transition-slow) ease-in forwards}.character-evolution-portrait--revealing:after{animation:character-evolution-glow-out var(--transition-slow) ease-out forwards}@keyframes character-evolution-glow-in{0%{opacity:0}to{opacity:1}}@keyframes character-evolution-glow-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.character-evolution-portrait--glowing:after,.character-evolution-portrait--revealing:after{animation:none}}.ds-section-title{font-family:var(--font-heading);font-size:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted);margin:var(--space-lg) 0 var(--space-sm)}.chat-board__tabs{gap:2px}.chat-board__tab{flex:1;opacity:var(--opacity-disabled);white-space:pre-line}.chat-board__tab--active{opacity:1;border-color:var(--color-accent);color:var(--color-accent)}.chat-board__form{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.chat-board__form .text-input{flex:1}.chat-board__counter{text-align:right;margin-top:4px}.chat-board__list{margin-top:var(--space-md);max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.chat-board__message{padding:var(--space-sm) var(--space-md);border:var(--border-hairline);border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.chat-board__message-meta{font-size:12px}.chat-board__message-text{margin-top:4px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.heim-ranking__list{margin-top:var(--space-md);max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.heim-ranking__list--flat{max-height:none;overflow-y:visible}.ranking-list__loading{margin-top:var(--space-md);display:flex;justify-content:center;padding:var(--space-lg) 0}.inline-spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--color-accent-muted);border-top-color:var(--color-accent);animation:loading-overlay-spin .8s linear infinite}.heim-ranking__row{padding:var(--space-md) var(--space-lg);border:var(--border-hairline);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.heim-ranking__row-meta{font-size:13px}.heim-ranking__rank{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:3px 6px;color:var(--color-accent);border:1px solid var(--color-accent);margin-right:8px}.heim-ranking__rank--gold,.heim-ranking__rank--silver,.heim-ranking__rank--bronze{min-width:26px;height:26px;border-radius:50%;font-size:13px;font-weight:700;color:var(--color-bg);border:1px solid rgba(0,0,0,.25);text-shadow:0 1px 0 rgba(255,255,255,.35)}.heim-ranking__rank--gold{background:linear-gradient(155deg,#f3d98a,var(--color-gold) 55%,#8a6a2e);box-shadow:0 0 6px #b8965aa6}.heim-ranking__rank--silver{background:linear-gradient(155deg,#eef2f4,var(--color-silver) 55%,#7c848a);box-shadow:0 0 6px #b9c2c98c}.heim-ranking__rank--bronze{background:linear-gradient(155deg,#d9a878,var(--color-bronze) 55%,#5c4630);box-shadow:0 0 6px #8a6a458c}.heim-ranking__account{margin-top:4px;font-size:15px}.heim-ranking__party{margin-top:var(--space-md);display:flex;gap:var(--space-sm)}.pvp-ranking__account-row{margin-top:4px;align-items:center}.pvp-ranking__account-row .heim-ranking__account{margin-top:0}.pvp-ranking__party{display:flex;gap:4px;flex-shrink:0}.pvp-ranking__party-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid silver;background-image:var(--ornament-medallion-bg);background-size:cover;background-position:center}.pvp-ranking__party-icon .character-image{border-radius:50%;clip-path:circle(50%)}.heim-candidates{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:36px;align-content:start;justify-items:center;gap:var(--space-sm) 4px;margin-top:4px;min-height:calc(36px * 4 + var(--space-sm) * 3)}.heim-candidates__icon{width:36px;height:36px}.stamina-drop-button{display:flex;align-items:center;gap:var(--space-xs);padding:3px 5px;text-align:left}.stamina-drop-button>img{width:22px;height:22px;flex-shrink:0}.stamina-drop-button__label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.2}.stamina-drop-button__effect{font-size:var(--text-label);color:var(--color-text-muted)}
