/* Shared H3LL navigation and persona material layers. Character art stays independent. */
:root { --character-glow:#b260ff; --persona-tempo:1s; }
html { color-scheme:dark; }
body { background:#08090c; }
body:not([data-persona]) .app { visibility:hidden; }
.world-header { position:relative;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px 8px;min-height:64px; }
.world-home { display:flex;align-items:center;gap:10px;min-height:44px;color:var(--paper);text-decoration:none;letter-spacing:.16em;font-size:1.05rem; }
.world-home>span { font-family:Georgia,serif;font-size:1.7rem;line-height:1; }
.world-wallet { position:relative;isolation:isolate;display:grid;grid-template-columns:30px max-content;align-items:center;gap:8px;flex:none;min-height:44px;padding:3px 12px 3px 5px;border:1px solid #8b7054a8;border-radius:8px;background:radial-gradient(ellipse at 17% 50%,color-mix(in srgb,var(--character-glow) 9%,transparent),transparent 55%),linear-gradient(180deg,#1c1719ed,#09080ce9),url('../assets/textures/velvet.webp') center/240px;box-shadow:inset 0 1px #ead2aa2b,inset 0 0 0 2px #08070b9c,0 4px 16px #0008;font-variant-numeric:lining-nums tabular-nums; }
.world-wallet::after { content:'';position:absolute;inset:0;border:11px solid transparent;border-image-source:url('../assets/oracle/tab-sub-plate-v1.png');border-image-slice:180;border-image-width:11px;border-image-repeat:stretch;opacity:.46;pointer-events:none; }
.wallet-emblem { display:grid;place-items:center;width:30px;height:32px;border-right:1px solid #a98b6860;background:radial-gradient(circle,color-mix(in srgb,var(--character-glow) 17%,transparent),transparent 72%); }
.wallet-emblem img { display:block;width:16px;height:28px;object-fit:contain;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--character-glow) 24%,transparent)); }
.wallet-copy { display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0; }
.wallet-label { color:#bda383;font-size:.6rem;line-height:1;letter-spacing:.17em; }
.wallet-value { color:#f0e2cf;font-size:1.13rem;line-height:1.04;letter-spacing:.08em;white-space:nowrap; }
.world-wordmark { display:grid;place-items:center;width:44px;height:44px;flex:none; }
.world-wordmark img { display:block;width:28px;height:44px;object-fit:contain;filter:brightness(1.45) drop-shadow(0 0 5px #b33135a0); }
.persona-switcher { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;z-index:6;gap:5px;padding:8px 19px 12px;border-bottom:1px solid color-mix(in srgb,var(--gold) 25%,transparent); }
.persona-switcher button { display:flex;flex-direction:column;align-items:center;gap:6px;min-width:44px;min-height:68px;padding:4px 0;border:0;border-radius:8px;background:none;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase; }
.persona-switcher button>span:last-child { max-width:100%;overflow-wrap:anywhere; }
.avatar-ring { width:45px;height:45px;padding:3px;overflow:hidden;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);border-radius:50%;transition:border-color .2s,box-shadow .2s; }
.avatar-ring img { display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 17%!important;transform:scale(1.8);transform-origin:50% 20%; }
.persona-switcher button[aria-current] { color:var(--paper); }
.persona-switcher button[aria-current] .avatar-ring { border-color:var(--character-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--character-glow) 9%,transparent),0 0 16px color-mix(in srgb,var(--character-glow) 20%,transparent); }
.persona-switcher button:hover .avatar-ring { border-color:var(--character-accent); }
.world-home:focus-visible,.persona-entry:focus-visible { outline:2px solid var(--character-focus);outline-offset:3px; }
.realm-atmosphere { position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none; }
.hero-realm { position:absolute;left:26px;bottom:22px;z-index:5;max-width:65%;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:#ebdbc4; }
.realm-character { width:118%;height:100%;aspect-ratio:auto;left:0;top:0;mask-image:none; }
.realm-character img,.realm-character .realm-performance { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--hero-position);filter:none; }
.realm-performance { opacity:0;transition:opacity .45s; }
.layered-character { width:136%;left:-7%;top:0;aspect-ratio:1;height:auto;mask-image:linear-gradient(#000 60%,#000e 77%,transparent 100%); }
.layered-character img,.layered-character canvas { object-fit:contain;filter:brightness(.94) saturate(.95); }
/* The repaired Aeri cutout has tighter native margins; retain the established hero framing. */
body[data-persona=aeri] .layered-character img { transform:none; }
body:not([data-persona=kaeris]) .layered-hero .city { opacity:.82;background-size:cover;background-position:center; }
body:not([data-persona=kaeris]) .layered-hero .hero-shade { background:linear-gradient(90deg,#050407ad 0%,#05040765 26%,transparent 52%),linear-gradient(0deg,var(--h3ll-ink),#09090c88 13%,transparent 37%); }
body:not([data-persona=kaeris]) .layered-hero .hero-atmosphere { background:radial-gradient(ellipse at 82% 15%,color-mix(in srgb,var(--character-glow) 9%,transparent),transparent 55%); }
body:not([data-persona=kaeris]) .layered-hero .identity { padding-top:clamp(4.05rem,12vw,5.4rem); }
body:not([data-persona=kaeris]) .hero { min-height:27rem;height:clamp(27rem,112vw,40rem); }
body:not([data-persona=kaeris]) .hero-shade { background:linear-gradient(90deg,#080808c9, #08080872 32%,transparent 65%),linear-gradient(0deg,#080808b0,transparent 26%); }
body:not([data-persona=kaeris]) .identity { padding-top:6rem;width:62%; }
body:not([data-persona=kaeris]) .identity h1 { font-size:clamp(3.1rem,14vw,5.5rem);color:#f2e5d3;background:none;-webkit-text-fill-color:currentColor;letter-spacing:.035em; }
body:not([data-persona=kaeris]) .identity .eyebrow { color:color-mix(in srgb,var(--character-glow) 45%,#fff1e3);white-space:normal;font-size:clamp(.86rem,3.1vw,1.1rem);max-width:90%;letter-spacing:.05em; }
body:not([data-persona=kaeris]) .identity blockquote { color:#e4d4be;max-width:85%;font-size:clamp(1.02rem,4vw,1.28rem);margin-top:16px;line-height:1.34; }
body:not([data-persona=kaeris]) .sigil { width:38px;height:38px;object-fit:contain;margin-left:14%;filter:none; }
body:not([data-persona=kaeris]) .lore-button { color:#ebdcc6;background:#100c0bd4;border-color:color-mix(in srgb,var(--character-glow) 60%,#a9937a);box-shadow:inset 0 0 0 3px #0b090a,inset 0 0 0 4px #dac9af30; }
body:not([data-persona=kaeris]) .lore-seal { width:16px;height:16px;filter:none;object-fit:contain; }
body:not([data-persona=kaeris]) .portrait-options { color:#e8d8c2;background:#100c0bbd; }
/* Shared reading and interaction surfaces inherit the active world's accents. */
body:not([data-persona=kaeris]) .essence-divider::before,
body:not([data-persona=kaeris]) .essence-divider::after { background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--character-accent) 40%,transparent)); }
body:not([data-persona=kaeris]) :is(.icon-button,.lore-button):hover { background:color-mix(in srgb,var(--character-glow) 15%,var(--h3ll-ink));border-color:var(--character-accent); }
body:not([data-persona=kaeris]) .lore-button:active { background:color-mix(in srgb,var(--character-glow) 22%,var(--h3ll-ink)); }
body:not([data-persona=kaeris]) :is(.story-card,.ch-card):hover { border-color:var(--character-accent); }
body:not([data-persona=kaeris]) .story-card:active { border-color:var(--character-focus); }
body:not([data-persona=kaeris]) dialog { background:var(--h3ll-surface);border-color:var(--gold);box-shadow:0 24px 90px #000d,0 0 35px color-mix(in srgb,var(--character-glow) 15%,transparent); }
body:not([data-persona=kaeris]) :is(.panel-kicker,.panel-link span,.setting output,.reader-index) { color:var(--character-accent); }
body:not([data-persona=kaeris]) .lore-panel blockquote { border-color:var(--character-accent);color:color-mix(in srgb,var(--character-accent) 35%,var(--paper)); }
body:not([data-persona=kaeris]) .reader-lead { color:color-mix(in srgb,var(--character-accent) 35%,var(--paper)); }
body:not([data-persona=kaeris]) :is(.panel-link,.reader-navigation button) { background:var(--h3ll-ink);border-color:color-mix(in srgb,var(--gold) 65%,transparent);color:var(--paper); }
body:not([data-persona=kaeris]) :is(.panel-link,.reader-navigation button):hover:not(:disabled) { background:color-mix(in srgb,var(--character-glow) 12%,var(--h3ll-surface));border-color:var(--character-accent); }
body:not([data-persona=kaeris]) :is(.reader-navigation,.setting) { border-color:color-mix(in srgb,var(--gold) 35%,transparent);color:var(--muted); }
body:not([data-persona=kaeris]) :is(.setting input,#speed,.form-row input) { accent-color:var(--character-accent); }
body:not([data-persona=kaeris]) .drink-visual { background:radial-gradient(ellipse at center,color-mix(in srgb,var(--character-glow) 9%,transparent),transparent 65%); }
body:not([data-persona=kaeris]) .drink-visual::after { border-color:color-mix(in srgb,var(--character-accent) 36%,transparent);box-shadow:0 0 0 8px color-mix(in srgb,var(--character-glow) 4%,transparent),0 0 20px color-mix(in srgb,var(--character-glow) 12%,transparent); }
body:not([data-persona=kaeris]) .drink-effects .ch-icon { color:var(--character-accent); }
/* Lighter worlds change the whole reading surface, with dark art captions kept legible. */
body[data-surface=light] .frame { background:var(--h3ll-ink); }
body[data-surface=light] .frame::after { opacity:.5; }
body[data-surface=light] .hero { border-bottom:1px solid var(--gold); }
body[data-surface=light] .kaeris-chamber { background:var(--h3ll-surface); }
body[data-surface=light] dialog { background:var(--h3ll-surface);color:var(--paper); }
body[data-surface=light] .close { background:var(--h3ll-surface); }
body[data-surface=light] .close img { filter:none; }
body[data-surface=light] .reader-lead,body[data-surface=light] .simple-panel p { color:var(--muted); }
body[data-surface=light] .reader-prose { color:var(--paper); }
body[data-surface=light] .reader-navigation button,body[data-surface=light] .panel-link { color:var(--character-accent);background:var(--h3ll-ink);border-color:var(--gold); }
body[data-surface=light] .panel-kicker,body[data-surface=light] .simple-panel blockquote { color:var(--character-accent); }
body[data-surface=light] .setting { border-color:color-mix(in srgb,var(--gold) 25%,transparent); }
body[data-surface=light] .setting input { accent-color:var(--character-accent); }
body[data-surface=light] .essence h2,body[data-surface=light] .essence p,body[data-surface=light] .section-heading h2 { color:var(--paper); }
body[data-surface=light] .story-card { border-color:color-mix(in srgb,var(--gold) 55%,transparent); }
body[data-surface=light] .story-title,body[data-surface=light] .story-number { color:#efdfc7; }
body[data-surface=light] .story-teaser { color:#d9c9b5; }
body:not([data-persona=kaeris]) .kaeris-chamber { --ch-edge:color-mix(in srgb,var(--gold) 45%,transparent);--ch-bright:var(--character-accent);border-color:var(--ch-edge); }
body:not([data-persona=kaeris]) .ch-main-tabs,body:not([data-persona=kaeris]) .ch-subtabs { border-color:color-mix(in srgb,var(--gold) 35%,transparent); }
body:not([data-persona=kaeris]) :is(.ch-main-tabs,.ch-subtabs) button { color:var(--muted); }
body:not([data-persona=kaeris]) :is(.ch-main-tabs,.ch-subtabs) button[aria-selected=true] { color:var(--paper);background:color-mix(in srgb,var(--character-glow) 10%,var(--h3ll-surface));border-color:var(--character-accent);box-shadow:inset 0 0 0 3px var(--h3ll-surface),inset 0 0 0 4px color-mix(in srgb,var(--character-accent) 25%,transparent); }
body:not([data-persona=kaeris]) :is(.ch-main-tabs,.ch-subtabs) button:hover { color:var(--paper);background:color-mix(in srgb,var(--character-glow) 13%,var(--h3ll-surface)); }
body:not([data-persona=kaeris]) :is(.ch-card,.ch-detail,.patterns) { background:var(--h3ll-surface);color:var(--paper); }
body:not([data-persona=kaeris]) .ch-card.selected { border-color:var(--character-accent);box-shadow:0 0 12px color-mix(in srgb,var(--character-glow) 15%,transparent),inset 0 0 10px color-mix(in srgb,var(--character-glow) 6%,transparent); }
body:not([data-persona=kaeris]) .ch-card.selected .ch-corners { filter:none; }
body:not([data-persona=kaeris]) .ch-action { color:var(--paper);background:color-mix(in srgb,var(--character-glow) 13%,var(--h3ll-surface));border-color:var(--character-accent);box-shadow:inset 0 0 0 3px var(--h3ll-surface),inset 0 0 0 4px color-mix(in srgb,var(--gold) 25%,transparent); }
body:not([data-persona=kaeris]) .ch-action:hover:not(:disabled) { border-color:var(--character-accent);box-shadow:0 0 12px color-mix(in srgb,var(--character-glow) 18%,transparent); }
body:not([data-persona=kaeris]) :is(.ch-detail p,.ch-detail em,.drink-detail p,.ch-note,.ch-footnote,.collection-progress,.manifest-intro,.form-preview-note,.scale-labels,.drink-facts dt,.drink-facts dd,.relic-copy,.drink-effects ul) { color:var(--muted); }
body:not([data-persona=kaeris]) :is(.card-state,.option-caption small,.drink-choice small,.relic-card small,.ch-section-title,.patterns h3,.manifest h3,.drink-effects h4,.heat-price .ch-icon,.ch-status) { color:var(--character-accent); }
body:not([data-persona=kaeris]) .outfit-art { filter:none; }
@media (max-width:430px) {
 body:not([data-persona=kaeris]) .relic-card .ch-card-title { font-size:clamp(.8rem,3.4vw,1.05rem);letter-spacing:0;overflow-wrap:normal;word-break:normal; }
}
body:not([data-persona=kaeris]) .outfit-caption { color:#f2e4d6; }
body:not([data-persona=kaeris]) .outfit-caption .card-state,body:not([data-persona=kaeris]) .outfit-caption .heat-price .ch-icon { color:color-mix(in srgb,var(--character-glow) 50%,#fff); }
body:not([data-persona=kaeris]) .selection-mark { border-color:var(--character-glow);background:#161214e6; }
body:not([data-persona=kaeris]) .lock-mark { border-color:var(--gold);color:var(--gold);background:#161214e6; }
body:not([data-persona=kaeris]) .option-filters button { color:var(--muted); }
body:not([data-persona=kaeris]) .option-filters button[aria-pressed=true] { color:var(--character-accent);background:color-mix(in srgb,var(--character-glow) 12%,var(--h3ll-surface));border-color:var(--character-accent); }
body:not([data-persona=kaeris]) .option-caption { background:var(--h3ll-surface);color:var(--paper); }
body:not([data-persona=kaeris]) .hair-art { position:relative;inset:auto;height:auto;aspect-ratio:1;object-fit:contain;object-position:center;mask-image:none;z-index:0; }
body:not([data-persona=kaeris]) :is(.item-rail,.option-rail) { scrollbar-color:var(--character-accent) var(--h3ll-surface); }
body:not([data-persona=kaeris]) .pattern { color:var(--paper);background:var(--h3ll-ink);border-color:color-mix(in srgb,var(--gold) 40%,transparent); }
body:not([data-persona=kaeris]) .pattern.selected { background:color-mix(in srgb,var(--character-glow) 12%,var(--h3ll-surface));border-color:var(--character-accent);box-shadow:none; }
body:not([data-persona=kaeris]) .pattern small,body:not([data-persona=kaeris]) .pattern>.ch-icon { color:var(--muted); }
.persona-control-mark,.persona-pattern-mark { display:block;background-color:var(--character-accent);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;mask-repeat:no-repeat;mask-position:center;mask-size:contain; }
.persona-control-mark { -webkit-mask-image:url('../assets/chamber/icons/control-source-hand.png');mask-image:url('../assets/chamber/icons/control-source-hand.png'); }
.persona-pattern-mark { -webkit-mask-image:url('../assets/chamber/icons/control-source-wave.png');mask-image:url('../assets/chamber/icons/control-source-wave.png'); }
body:not([data-persona=kaeris]) .ritual-gauge { background:#100f13;border-color:var(--gold); }
body:not([data-persona=kaeris]) .ritual-gauge>h3,body:not([data-persona=kaeris]) .reading-label { color:color-mix(in srgb,var(--character-glow) 55%,white); }
body:not([data-persona=kaeris]) .ritual-gauge :is(.ch-action,.adjust) { color:#f3e8df;border-color:var(--character-glow);background:#19141b;box-shadow:inset 0 0 12px color-mix(in srgb,var(--character-glow) 12%,transparent); }
body:not([data-persona=kaeris]) .ritual-gauge #hint { color:#cdbfbf; }
body:not([data-persona=kaeris]) .reading>div { color:var(--paper); }
body:not([data-persona=kaeris]) .ritual-gauge.active { box-shadow:inset 0 0 30px color-mix(in srgb,var(--character-glow) 13%,transparent),0 0 14px color-mix(in srgb,var(--character-glow) 13%,transparent); }
body:not([data-persona=kaeris]) .ritual-gauge.charging { border-color:var(--character-glow); }
body:not([data-persona=kaeris]) .form-row { border-color:color-mix(in srgb,var(--gold) 25%,transparent); }
body:not([data-persona=kaeris]) .form-stepper :is(button,output) { background:var(--h3ll-surface);color:var(--paper);border-color:var(--gold); }
body:not([data-persona=kaeris]) .form-row input[type=range]::-webkit-slider-runnable-track { background:linear-gradient(90deg,var(--character-accent) var(--level),var(--gold) var(--level));box-shadow:none; }
body:not([data-persona=kaeris]) .form-row input[type=range]::-webkit-slider-thumb { background:var(--h3ll-surface) var(--persona-motif) center/14px no-repeat;border-color:var(--character-accent);box-shadow:0 0 8px color-mix(in srgb,var(--character-glow) 30%,transparent); }
body:not([data-persona=kaeris]) .form-row input[type=range]::-moz-range-thumb { background:var(--h3ll-surface) var(--persona-motif) center/14px no-repeat;border-color:var(--character-accent); }
body:not([data-persona=kaeris]) .form-row input[type=range]::-moz-range-progress { background:var(--character-accent); }
body:not([data-persona=kaeris]) progress::-webkit-progress-value { background:var(--character-accent);box-shadow:0 0 9px color-mix(in srgb,var(--character-glow) 30%,transparent); }
body:not([data-persona=kaeris]) progress::-moz-progress-bar { background:var(--character-accent); }
body:not([data-persona=kaeris]) .collection-progress progress { background:var(--h3ll-surface); }
body:not([data-persona=kaeris]) progress::-webkit-progress-bar { background:var(--h3ll-surface); }
body:not([data-persona=kaeris]) .resonance { background:conic-gradient(from 210deg,var(--character-accent) var(--resonance),var(--gold) 0);box-shadow:none; }
body:not([data-persona=kaeris]) .resonance>span { background:var(--h3ll-surface); }
body:not([data-persona=kaeris]) .resonance strong { color:var(--character-accent); }
body:not([data-persona=kaeris]) .effect-preview { background:var(--h3ll-ink);border-color:var(--gold); }
body:not([data-persona=kaeris]) .preview-orb { background:var(--character-glow);box-shadow:0 0 18px var(--character-glow); }
@media (max-width:360px) {
 .drink-layout { grid-template-columns:minmax(0,1fr); }
 .drink-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
 .drink-choice { min-width:0; }
 .effect-preview { flex-direction:column;align-items:flex-start; }
 .effect-preview p { margin:0; }
}
body[data-persona=aeri] .identity h1.aeri-signature { width:clamp(150px,42vw,230px);line-height:1; }
.aeri-signature img { display:block;width:100%;height:auto; }
body[data-persona=via] .ch-card,body[data-persona=via] .ch-action { border-radius:4px; }
body[data-persona=eva] { --world-material:url('../assets/personas/eva/material.webp'); }
body[data-persona=via] { --world-material:url('../assets/personas/via/material.webp'); }
body[data-persona=noira] { --world-material:url('../assets/personas/noira/material.webp'); }
body[data-persona=aeri] { --world-material:url('../assets/personas/aeri/material.webp'); }
body:not([data-persona=kaeris]) .frame { background:linear-gradient(#09090cc2,#09090ce8),url('../assets/textures/velvet.webp') center/500px; }
body:not([data-persona=kaeris]) .world-header,body:not([data-persona=kaeris]) .persona-switcher { background-color:color-mix(in srgb,var(--h3ll-ink) 78%,transparent); }
body:not([data-persona=kaeris]) .kaeris-chamber { background-color:color-mix(in srgb,var(--h3ll-surface) 95%,transparent); }
.settings-note { font-size:1rem!important;line-height:1.4!important; }
.frame-footer.persona-footer { gap:12px;min-height:58px; }
.frame-footer.persona-footer .footer-rule { width:min(24%,100px);height:auto;opacity:.45; }
.frame-footer.persona-footer .footer-motif { width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--character-glow) 24%,transparent)); }
/* The entrance keeps the supplied street, atmosphere, serpent, and lettering independent. */
.selection-app { width:min(100%,820px); }
.selection-world { position:relative;border:1px solid #76553a70;border-radius:16px;overflow:hidden;background:#0a090b; }
.selection-world .world-header { position:absolute;top:0;left:0;right:0;color:#e0cbb7; }
body[data-persona=selection] .selection-world .world-header { background:linear-gradient(180deg,#050406df,transparent); }
.selection-stage { position:relative;isolation:isolate;overflow:hidden;background:#050406; }
.selection-hero { position:relative;z-index:1;isolation:isolate;min-height:330px;height:clamp(330px,51.5vw,430px);overflow:hidden; }
.selection-scene { position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;background:#050406 url('../assets/landing/street-v2.webp') center / cover no-repeat; }
.selection-scene::after { content:'';position:absolute;z-index:5;inset:0;background:linear-gradient(180deg,#05040630 0%,transparent 24%,transparent 66%,#09070a48 84%,#0a090bbc 100%); }
.selection-scene :is(img,video) { display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center; }
.selection-city { z-index:0;filter:brightness(.91) saturate(1.08); }
.selection-scene video { z-index:1;opacity:0;filter:brightness(.91) saturate(1.08);transition:opacity .3s ease-out; }
.selection-scene.is-playing video { opacity:1; }
.selection-near-facades { z-index:2;filter:brightness(.91) saturate(1.08); }
.selection-storm,.selection-wake { position:absolute;inset:0;pointer-events:none;opacity:0; }
.selection-storm { z-index:3;background:radial-gradient(ellipse 31% 28% at 50% 28%,#c2465b40,transparent 80%); }
.selection-scene.is-playing .selection-storm { animation:selection-distant-storm 31s linear infinite; }
.selection-wake { z-index:4;background:radial-gradient(ellipse 35% 34% at 50% 53%,#bb383c6b,transparent 85%); }
.selection-stage.is-awakening .selection-wake { animation:selection-world-wake .82s ease-out both; }
.selection-hero::before { content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#8e22211c,transparent 48%); }
.selection-sigil { position:absolute;z-index:2;top:-8px;left:50%;width:auto;height:clamp(270px,42vw,360px);max-width:none;transform:translateX(-50%);opacity:.94;filter:brightness(1.16) drop-shadow(0 0 9px #ab292a6e);animation:selection-sigil-arrive .62s ease-out both; }
.selection-logo { position:absolute;z-index:3;left:50%;bottom:clamp(20px,2.5vw,28px);width:clamp(250px,46%,365px);height:auto;transform:translateX(-50%);filter:drop-shadow(0 0 8px #ed433776);animation:selection-logo-arrive .55s .13s ease-out both; }
@keyframes selection-sigil-arrive { from { opacity:.2;transform:translateX(-50%) scale(.975);filter:brightness(.75); } to { opacity:.94;transform:translateX(-50%) scale(1);filter:brightness(1.16) drop-shadow(0 0 9px #ab292a6e); } }
@keyframes selection-logo-arrive { from { opacity:0;transform:translate(-50%,9px);filter:brightness(.75); } to { opacity:1;transform:translate(-50%,0);filter:drop-shadow(0 0 8px #ed433776); } }
@keyframes selection-world-wake { 0% { opacity:0; } 38% { opacity:.55; } 100% { opacity:0; } }
@keyframes selection-distant-storm { 0%,72%,76%,100% { opacity:0; } 73% { opacity:.19; } 74% { opacity:.06; } }
.selection-hero.no-motion :is(.selection-sigil,.selection-logo) { animation:none; }
.selection-intro { position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:15px 16px 20px;text-align:center; }
.selection-intro p { margin:0;color:#e2ac9c;font-size:.7rem;line-height:1.2;letter-spacing:.23em;text-shadow:0 2px 8px #050406,0 0 16px #050406; }
.selection-intro>span { color:#c9b1a5;font-size:1rem;font-style:italic;line-height:1.2;text-shadow:0 2px 8px #050406,0 0 16px #050406; }
.persona-cards { position:relative;z-index:2;display:grid;gap:9px;padding:0 14px; }
.persona-entry { position:relative;isolation:isolate;display:block;min-height:max(156px,9.75rem);height:clamp(156px,34vw,225px);border:1px solid color-mix(in srgb,var(--entry-accent) 35%,#332925);border-radius:7px;overflow:hidden;text-decoration:none;transition:border-color .2s,box-shadow .2s; }
.entry-art { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;z-index:-2;transition:transform .6s; }
.entry-shade { position:absolute;inset:0;background:linear-gradient(90deg,#060608ee,#070609aa 28%,#08070926 65%,transparent);z-index:-1; }
.entry-identity { display:flex;align-items:flex-start;flex-direction:column;padding:15px 20px;height:100%;width:65%; }
.entry-number { font-size:.75rem;letter-spacing:.13em;color:#c0a88c; }
.entry-brand { display:flex;flex:1;flex-direction:column;align-items:flex-start;width:max-content;max-width:100%; }
.entry-label { position:relative;display:block;width:max-content;max-width:100%; }
.entry-name { display:block;color:#efdfcc;font-size:clamp(2rem,8vw,3.6rem);letter-spacing:.075em;line-height:1.1;text-transform:uppercase; }
.entry-title { position:absolute;top:100%;left:0;width:min(calc(100vw - 70px),24rem);white-space:normal;color:color-mix(in srgb,var(--entry-accent) 40%,#dfccb5);font-size:.68rem;line-height:1.14;text-transform:uppercase;letter-spacing:.09em; }
.entry-motif { display:block;align-self:center;flex:none;object-fit:contain;width:56px;height:56px;margin-top:auto; }
.entry-enter { position:absolute;right:15px;bottom:16px;color:#e8d9ca;font-size:1.3rem; }
.persona-entry:hover { border-color:var(--entry-accent);box-shadow:0 0 18px color-mix(in srgb,var(--entry-accent) 12%,transparent); }
.persona-entry:hover .entry-art { transform:scale(1.025); }
.selection-footer { padding:27px 15px 24px;text-align:center;color:#997c69; }
.selection-footer>span { font-size:.8rem;letter-spacing:.3em; }
.selection-footer p { margin:6px 0 0;font-style:italic; }
@media(max-width:420px) { .selection-hero { height:max(330px,12.2rem); }.selection-sigil { top:calc(3rem - 56px); } }
@media(min-width:700px) { .persona-switcher { gap:14px;padding:10px 45px 15px; }.avatar-ring { width:54px;height:54px; }.persona-switcher button { font-size:.9rem; }.persona-cards { padding:0 22px;gap:12px; }.entry-identity { padding:23px 29px; }.entry-motif { width:68px;height:68px; }.entry-title { font-size:.85rem; } }
@media(max-width:350px) { .world-header { padding-left:16px;padding-right:16px;gap:8px; }.world-wallet { padding:3px 9px 3px 4px;grid-template-columns:27px max-content;gap:5px; }.wallet-emblem { width:27px; }.wallet-value { font-size:1rem; }.persona-switcher { padding:6px 12px 9px;gap:2px; }.avatar-ring { width:41px;height:41px; }.persona-switcher button { font-size:.73rem; }.entry-identity { padding:13px; }.hero-realm { left:20px; }.identity .eyebrow { overflow-wrap:normal; } }
@media(prefers-reduced-motion:reduce) { .realm-performance,.entry-art,.selection-scene video { transition:none; }.persona-entry:hover .entry-art { transform:none; }.selection-sigil,.selection-logo,.selection-storm,.selection-wake { animation:none!important; } }

/* Scene and layered media share hero dimensions; character framing stays independent. */
body:not([data-persona=kaeris]) .hero:is(.scene-hero,.layered-hero) { height:auto;min-height:clamp(25.5rem,106vw,34rem); }
.scene-hero .realm-character { width:100%;height:100%;inset:0;aspect-ratio:auto;mask-image:none; }
.scene-hero .realm-character :is(img,.realm-performance) { width:100%;height:100%;object-fit:cover;object-position:var(--hero-position);filter:none; }
body:not([data-persona=kaeris]) .scene-hero .city { display:none; }
body:not([data-persona=kaeris]) .scene-hero .hero-shade { background:linear-gradient(90deg,#030810e8 0%,#03081099 27%,transparent 54%),linear-gradient(0deg,#09090c,transparent 30%); }
body:not([data-persona=kaeris]) .scene-hero .identity { width:var(--hero-copy-width);padding-top:var(--hero-copy-top);padding-left:clamp(20px,5vw,30px); }
body:not([data-persona=kaeris]) .scene-hero .identity h1 { font-size:clamp(3.2rem,14vw,5rem);color:var(--hero-text,#e3ecf4);letter-spacing:.045em; }
body:not([data-persona=kaeris]) .scene-hero .identity .eyebrow { max-width:100%;font-size:clamp(.875rem,3.4vw,1.12rem);line-height:1.35;color:var(--hero-detail,#b4d0e7); }
body:not([data-persona=kaeris]) .scene-hero .identity blockquote { max-width:100%;font-size:clamp(1.06rem,4.4vw,1.35rem);color:var(--hero-text,#d9e4ee);line-height:1.4;margin-top:22px; }
body:not([data-persona=kaeris]) .scene-hero .sigil { width:44px;height:44px;margin:0 0 14px 0; }
body:not([data-persona=kaeris]) .scene-hero .hero-realm { left:26px;bottom:18px;max-width:50%;color:var(--hero-detail,#afc6da);font-size:.7rem; }
body:not([data-persona=kaeris]) .scene-hero .lore-button { bottom:24px;background:#0c0d12eb;border-color:var(--character-accent);color:var(--hero-text,#dae7f1); }
body:not([data-persona=kaeris]) .frame { background:linear-gradient(#09090ceb,#09090cf5),var(--world-material) center/560px; }
body:not([data-persona=kaeris]) :is(.ch-main-tabs,.ch-subtabs,.world-header,.persona-switcher) { background-image:linear-gradient(110deg,#0b1016f5,#0a0e13e8),var(--world-material);background-size:cover; }
body:not([data-persona=kaeris]) .ch-card.selected { border-color:var(--character-accent);box-shadow:inset 0 0 0 3px #10171d,0 0 14px color-mix(in srgb,var(--character-glow) 10%,transparent); }
body:not([data-persona=kaeris]) .hero-atmosphere { background:radial-gradient(ellipse at 86% 24%,#9bbede14,transparent 56%); }
body[data-persona=via] .hero:not(.atmosphere-paused)::after { content:'';position:absolute;z-index:3;inset:65% -20% -10%;pointer-events:none;background:radial-gradient(ellipse at 75% 60%,#a6c3d514,transparent 65%);animation:via-mist calc(18 * var(--persona-tempo)) ease-in-out infinite alternate; }
@keyframes via-mist { from{transform:translateX(-3%);opacity:.5}to{transform:translateX(3%);opacity:1} }
.reader-art.reader-scene { background:#080d13;height:clamp(180px,50vw,270px); }
.reader-art.reader-scene img { inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--scene-position);filter:none; }
.reader-art.reader-scene::after { background:linear-gradient(0deg,var(--h3ll-surface),transparent 45%); }
body:not([data-persona=kaeris]) .story-art { inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:70% 38%;filter:none; }
body:not([data-persona=kaeris]) .story-card::before { background:linear-gradient(90deg,#08090cf7 3%,#08090cf0 34%,#08090ca6 63%,#08090c55); }
body:not([data-persona=kaeris]) .story-copy { max-width:85%; }
body:not([data-persona=kaeris]) .section-heading h2 { white-space:nowrap;font-size:clamp(1rem,4vw,1.5rem);letter-spacing:.12em; }
body:not([data-persona=kaeris]) .section-heading img { flex:1;max-width:20%; }
.storage-notice { position:relative;z-index:12;margin:12px 20px;padding:12px;border:1px solid #cba474;border-radius:8px;color:#f4dfbf;background:#231b14;font-size:1rem;line-height:1.4; }
.setting:has(input:disabled) { opacity:.65; }
@media(min-width:768px) {
 body:not([data-persona=kaeris]) .persona-app { width:660px; }
 body:not([data-persona=kaeris]) .scene-hero .identity { padding-top:4.7rem;width:40%; }
 body:not([data-persona=kaeris]) .scene-hero .identity blockquote { max-width:90%; }
}
@media(prefers-reduced-motion:reduce) { .scene-hero::after { animation:none!important; } }
.hero.infusion-active .hero-atmosphere { background:radial-gradient(ellipse at 75% 18%,color-mix(in srgb,var(--character-glow) 22%,transparent),transparent 65%); }
.reader-art.reader-scene::after { content:'';position:absolute;inset:0;pointer-events:none; }
.reader-scene .reader-index { z-index:1;padding:5px 8px;background:#080d13db;border-radius:3px;color:#d6e4ef!important; }
body:not([data-persona=kaeris]) .stories .story-card:nth-child(n) .story-art { inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 38%; }

/* Text enlargement grows the scene's reading area instead of clipping copy. */
body:not([data-persona=kaeris]) .scene-hero .lore-button { width:max(58px,4.15em); }
body:not([data-persona=kaeris]) .scene-hero .identity { padding-bottom:1rem; }
body:not([data-persona=kaeris]) .scene-hero .identity h1 { max-width:none;white-space:nowrap; }
body:not([data-persona=kaeris]) .scene-hero .hero-realm { position:relative;left:auto;bottom:auto;margin:0 0 18px 26px;max-width:50%; }

/* Atmosphere is separated from anatomy and from the reading surfaces. */
body[data-persona=eva] { --hero-text:#efdfca;--hero-detail:#dfc39a; }
body[data-persona=noira] { --hero-text:#e8d9cc;--hero-detail:#d4b498; }
body[data-persona=aeri] { --hero-text:#f4dadb;--hero-detail:#ffa5ac; }
body[data-persona=eva] .scene-hero .hero-shade { background:linear-gradient(90deg,#0b0905ef 0%,#0b0905b8 30%,transparent 58%),linear-gradient(0deg,#09090c,transparent 28%); }
body[data-persona=noira] .scene-hero .hero-shade { background:linear-gradient(90deg,#090608e8 0%,#09060899 27%,transparent 54%),linear-gradient(0deg,#09090c,transparent 30%); }
body[data-persona=aeri] .scene-hero .hero-shade { background:linear-gradient(90deg,#0c070aeb 0%,#0c070a99 30%,transparent 56%),linear-gradient(0deg,#09090c,transparent 30%); }
body[data-persona=eva] :is(.ch-main-tabs,.ch-subtabs,.world-header,.persona-switcher) { background-image:linear-gradient(110deg,#15120ef5,#0e0d0de8),var(--world-material); }
body[data-persona=noira] :is(.ch-main-tabs,.ch-subtabs,.world-header,.persona-switcher) { background-image:linear-gradient(110deg,#160f13f5,#0c0b0fe8),var(--world-material); }
body[data-persona=aeri] :is(.ch-main-tabs,.ch-subtabs,.world-header,.persona-switcher) { background-image:linear-gradient(110deg,#171015f5,#100d11e8),var(--world-material); }
body[data-persona=eva] .scene-hero .hero-atmosphere { background:radial-gradient(ellipse at 86% 24%,#e4b86714,transparent 56%); }
body[data-persona=noira] .scene-hero .hero-atmosphere { background:radial-gradient(ellipse at 86% 24%,#b8674f14,transparent 56%); }
body[data-persona=aeri] .scene-hero .hero-atmosphere { background:radial-gradient(ellipse at 86% 24%,#fa496e14,transparent 56%); }
body[data-persona=eva] .scene-hero:not(.atmosphere-paused)::after { content:'';position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 48%,#efce8b0c 60%,transparent 72%);animation:gold-light 15s ease-in-out infinite alternate; }
body[data-persona=noira] .scene-hero:not(.atmosphere-paused)::after { content:'';position:absolute;z-index:3;inset:60% 0 0 40%;pointer-events:none;background:linear-gradient(100deg,transparent 15%,#ba867d0c 48%,transparent 60%);animation:rain-reflection 11s ease-in-out infinite alternate; }
@keyframes gold-light { from {opacity:.2;transform:translateX(-8%)}to{opacity:1;transform:translateX(5%)} }
@keyframes rain-reflection { from {opacity:.15}to{opacity:.85} }
body[data-persona=noira] .scene-hero .identity h1 { font-size:clamp(2.7rem,12vw,4.8rem);letter-spacing:.02em; }
body[data-persona=aeri] .scene-hero .identity h1.aeri-signature { width:100%;max-width:200px; }
/* Decorative waveform spans must not compete with the pattern's reading column. */
body:not([data-persona=kaeris]) .pattern>.pattern-wave { flex:0 0 28px; }
body:not([data-persona=kaeris]) .pattern>span:not(.pattern-wave) { min-width:0; }
body:not([data-persona=kaeris]) .pattern small { overflow-wrap:normal;word-break:normal; }

/* Aeri's film is a transparent foreground. Poster and canvas share one box. */
body[data-persona=aeri] .layered-character { left:28%;top:0;width:80%;height:100%;aspect-ratio:auto;mask-image:none; }
body[data-persona=aeri] .layered-character :is(img,canvas) { width:100%;height:100%;object-fit:contain;object-position:center;filter:none;transform:none; }
body[data-persona=aeri] .layered-hero .city { opacity:1;background-position:62% center; }
body[data-persona=aeri] .layered-hero .hero-shade { background:linear-gradient(90deg,#0c070aeb 0%,#0c070a80 29%,transparent 56%),linear-gradient(0deg,#09090c,transparent 18%); }
body[data-persona=aeri] .layered-hero .identity { width:40%;padding:clamp(4rem,13vw,5rem) 0 2rem clamp(20px,5vw,30px); }
body[data-persona=aeri] .layered-hero .identity h1.aeri-signature { width:100%;max-width:200px; }
body[data-persona=aeri] .layered-hero .identity blockquote { max-width:100%;font-size:clamp(1rem,4vw,1.25rem);line-height:1.4; }
body[data-persona=aeri] .layered-hero .sigil { margin-left:0; }
body[data-persona=aeri] .layered-hero .hero-realm { max-width:44%;font-size:.68rem;line-height:1.5; }
body[data-persona=aeri] .layered-hero .hero-grain { opacity:.025; }

/* One responsive viewport for all five performances. Framing belongs to the persona. */
body[data-persona] .hero.performance-hero { --hero-motif-size:52px;display:flex;flex-direction:column;height:auto;min-height:clamp(27rem,110vw,34rem); }
body[data-persona] .performance-hero .layered-character,
body[data-persona] .performance-hero .hero-foreground-prop {
 left:var(--foreground-left);top:var(--foreground-top);height:var(--foreground-height);width:auto;aspect-ratio:2/3;mask-image:none;
}
body[data-persona] .performance-hero .layered-character :is(img,canvas) { width:100%;height:100%;object-fit:contain;object-position:var(--foreground-focus);filter:none;transform:none; }
.hero-foreground-prop { position:absolute;z-index:1;pointer-events:none;object-fit:contain; }
body[data-persona] .performance-hero .city { display:block;opacity:1;background-size:cover;background-position:center; }
body[data-persona] .performance-hero .identity { width:var(--hero-copy-width);padding:var(--hero-copy-top) 0 0 clamp(20px,5vw,30px); }
body[data-persona] .performance-hero .identity h1 { font-size:clamp(2.7rem,12vw,4.8rem);letter-spacing:.02em;white-space:nowrap; }
body[data-persona] .performance-hero .identity .eyebrow { max-width:100%;font-size:clamp(.875rem,3.4vw,1.12rem);line-height:1.35;white-space:normal; }
body[data-persona] .performance-hero .identity blockquote { max-width:100%;font-size:clamp(1rem,4vw,1.25rem);line-height:1.4;margin-top:22px; }
body[data-persona] .performance-hero .hero-bottom { position:relative;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:max-content;max-width:55%;margin-top:auto;padding:12px 0 18px clamp(20px,5vw,30px);pointer-events:none; }
body[data-persona] .performance-hero .hero-bottom .hero-motif { display:block;flex:none;width:var(--hero-motif-size);height:var(--hero-motif-size);margin:0;filter:none;object-fit:contain; }
body[data-persona] .performance-hero .hero-bottom .hero-realm { position:static;left:auto;bottom:auto;max-width:100%;margin:0;font-size:.68rem;line-height:1.5; }
body[data-persona] .performance-hero .hero-shade { background:linear-gradient(90deg,#09090ceb 0%,#09090c90 27%,transparent 57%),linear-gradient(0deg,#09090c,transparent 20%); }
body[data-persona] .performance-hero .hero-grain { opacity:.025; }
body[data-persona=kaeris] .performance-hero .identity h1 { max-width:none;font-size:clamp(2.35rem,10.5vw,4.4rem);color:#e6d9ed;background:none;-webkit-text-fill-color:currentColor; }
body[data-persona=via] .performance-hero .hero-foreground-prop { left:0;top:83.5%;width:100%;height:auto;aspect-ratio:960/412; }
body[data-persona=via] .performance-hero .hero-shade { background:linear-gradient(90deg,#09090ceb 0%,#09090c90 27%,transparent 57%),linear-gradient(0deg,#09090c,transparent 12%); }
@media(min-width:700px) { body[data-persona] .hero.performance-hero { --hero-motif-size:64px; } }
@media(max-width:350px) {
 body[data-persona] .performance-hero .layered-character { left:calc(var(--foreground-left) - 10%); }
 body[data-persona=aeri] .performance-hero .identity { width:42%; }
 body[data-persona=aeri] .performance-hero .identity blockquote { font-size:.9rem;margin-top:12px; }
}
/* Enlarged text expands card columns and form labels before content can clip. */
body:not([data-persona=kaeris]) .relic-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,max(6.5em,calc((100% - 18px)/3))),1fr)); }
@media(max-width:600px) {
 body:not([data-persona=kaeris]) .form-row label { flex-basis:max-content;min-width:max-content; }
}

/* Five doors: the selected portrait is centred on phones and stays visible on wide screens. */
.persona-portal { position:relative;z-index:6;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;padding:2px 9px 10px;border-bottom:1px solid color-mix(in srgb,var(--gold) 25%,transparent); }
body[data-persona] .persona-portal { background:linear-gradient(#0b0a0ee8,#0b0a0ef2),var(--world-material);background-size:cover; }
body[data-persona] .persona-portal .persona-switcher { background-image:none;background-color:transparent; }
.persona-portal .persona-switcher { position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:88px;grid-template-columns:none;gap:4px;min-width:0;padding:5px calc(50% - 44px) 7px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border:0; }
.persona-portal .persona-switcher::-webkit-scrollbar { display:none; }
.persona-portal .persona-switcher button { position:relative;scroll-snap-align:center;min-width:0;min-height:91px;padding:3px 0 0;gap:5px;transition:color .2s; }
.persona-portal .avatar-ring { position:relative;display:block;width:51px;height:51px;flex:none;padding:3px;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease; }
.persona-portal .avatar-ring::after { content:'';position:absolute;inset:-4px;border:1px solid var(--portal-accent);border-radius:50%;opacity:0;transform:rotate(-25deg) scale(.9);transition:opacity .24s,transform .35s;pointer-events:none; }
.persona-portal .persona-switcher button[aria-current] .avatar-ring { transform:scale(1.15);border-color:var(--portal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 13%,transparent),0 0 19px color-mix(in srgb,var(--portal-accent) 28%,transparent); }
.persona-portal .persona-switcher button[aria-current] .avatar-ring::after { opacity:.8;transform:rotate(0) scale(1); }
.persona-portal .portal-name { font-size:.75rem;letter-spacing:.12em;line-height:1; }
.persona-portal .portal-motif { display:block;width:15px;height:15px;object-fit:contain;opacity:0;transform:translateY(-3px);transition:opacity .22s,transform .22s; }
.persona-portal .persona-switcher button[aria-current] .portal-motif { opacity:.9;transform:none; }
.portal-step { width:32px;height:44px;padding:0;border:0;background:none;color:var(--paper);font-family:Georgia,serif;font-size:1.8rem;line-height:1;opacity:.85; }
.portal-step:disabled { opacity:.2; }
.portal-step:not(:disabled):hover { color:var(--character-focus); }
.portal-veil { position:fixed;z-index:40;display:grid;place-items:center;overflow:hidden;pointer-events:none;border-radius:2px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--veil-glow) 29%,var(--veil-ink)),var(--veil-ink) 75%);box-shadow:inset 0 0 55px var(--veil-ink);animation:portal-handoff 350ms ease-in-out both; }
.portal-veil::before { content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,color-mix(in srgb,var(--veil-glow) 20%,transparent) 49%,transparent 72%); }
.portal-veil img { width:clamp(56px,17vw,100px);height:clamp(56px,17vw,100px);object-fit:contain;filter:drop-shadow(0 0 16px var(--veil-glow));opacity:.75; }
@keyframes portal-handoff { 0%{opacity:0} 25%{opacity:.96} 42%{opacity:.96} 100%{opacity:0} }
@media(min-width:700px) {
 .persona-portal { grid-template-columns:32px minmax(0,1fr) 32px;padding:2px 18px 12px; }
 .persona-portal .persona-switcher { grid-auto-columns:minmax(0,1fr);grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-flow:row;gap:12px;padding:4px 0 5px;overflow:visible;scroll-snap-type:none; }
 .persona-portal .persona-switcher button { min-height:99px; }
 .persona-portal .avatar-ring { width:56px;height:56px; }
 .persona-portal .portal-name { font-size:.82rem; }
}
@media(prefers-reduced-motion:reduce) {
 .persona-portal .avatar-ring,.persona-portal .avatar-ring::after,.persona-portal .portal-motif { transition:none; }
 .portal-veil { animation:none;display:none; }
}
@media(prefers-contrast:more) {
 .world-wallet { border-color:#e7cba3; }
 .wallet-label { color:#f0dfc7; }
}
@media(forced-colors:active) {
 .world-wallet { grid-template-columns:max-content;background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none; }
 .world-wallet::after,.wallet-emblem { display:none; }
 .wallet-label,.wallet-value { color:CanvasText; }
}
