/* Approved ivory art direction. Layout, action IDs and game rules stay in their existing modules. */
:root{color-scheme:light;--bg:#f1ecdf;--panel:#faf6ec;--line:#c9bea6;--gold:#92764e;--muted:#777466;--text:#393b35;--green:#486955;font-family:'Yu Gothic UI','Hiragino Kaku Gothic ProN',Meiryo,sans-serif}
body{background:#eee8db url('/art-marble.svg') center top/600px 1000px repeat;color:var(--text)}
.shell{background:linear-gradient(115deg,#fffdf333,#f1eadc22);border-inline:1px solid #ac9a7622}
h1,h2,h3{color:#3b3a31;letter-spacing:.04em}.eyebrow{color:#91764f}.muted,small{color:#777467}.gold{color:#8c6930}
.topbar{border-color:var(--line)}.brand{color:#3b3a31}.status,.notice{color:#6b7060}
.panel,.card,.quest-card,.character-sheet,.equipment-card,.gear-slot,.stock-item,.bag-item,.character-content,.battle-log-panel{background:linear-gradient(135deg,#fffdf260,#f0e9db60);border-color:var(--line);border-radius:3px;box-shadow:0 2px 9px #52463008}
.panel{background-color:#f8f3e640}.pagehead{border-color:var(--line)}
button{position:relative;border:1px solid #a39375;border-radius:7px 12px;background:linear-gradient(165deg,#fffdf8,#f2ede2 48%,#e4dbc9);color:#454238;box-shadow:inset 0 1px #fffefb,0 2px #bcae94,0 3px 5px #65543c14;transition:background .16s,border-color .16s,box-shadow .16s}
button:before{content:'';position:absolute;inset:3px;pointer-events:none;border:1px solid #bcac8b8c;border-radius:4px 9px}
button:hover{background:linear-gradient(165deg,#fffef8,#e7ddc8);border-color:#8f7450}button:active{box-shadow:inset 0 1px 3px #493b2326,0 1px #bcae94}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8f7143;outline-offset:3px}
.primary,button.active,.character-tabs button.active,.character-tabs button[aria-selected=true]{color:#fff8e8;background:linear-gradient(165deg,#574e50,#332f32 55%,#29282b);border-color:#645342;box-shadow:inset 0 1px #a89a83,0 2px #8e7653,0 3px 6px #42352822}
.primary:before,button.active:before{border-color:#c5ac7699}.primary:hover,button.active:hover{background:linear-gradient(165deg,#65505b,#3c323a);color:#fff8e8}
.subtle,.quiet{background:linear-gradient(#fffdf5aa,#eee7d877)}.danger{color:#922f42;border-color:#b77b80}
input,select,textarea{background:#fffdf4;color:#393b35;border-color:#b9aa8d;border-radius:4px;box-shadow:inset 0 1px 3px #4338260a}label{color:#716b5d}
dialog{background:linear-gradient(#fffdf344,#eee7d833),url('/art-marble.svg') center/600px 1000px;border:3px double #ad9674;border-radius:5px 13px;color:#3b3a31;box-shadow:0 18px 80px #25251b40}
dialog::backdrop{background:#28292299;backdrop-filter:blur(3px)}dialog p,dialog h1,dialog h2,dialog h3{color:inherit}
.nav{background:#f6f1e6 url('/art-marble.svg') center bottom/600px 1000px;border-top:1px solid #ad9e80;box-shadow:0 -5px 20px #423c2b0a}
.nav button{background:transparent;border:0;border-radius:0;box-shadow:none;color:#78705f}.nav button:before{display:none}.nav button.active{color:#642f48;background:#e3daca66;box-shadow:inset 0 2px #7f5962}.nav .symbol .line-icon{width:23px;height:23px}
.party-ribbon{background:linear-gradient(#faf6ea70,#eae2d340);border-color:var(--line);box-shadow:none}.ribbon-member{background:transparent;border-color:transparent;border-radius:2px;box-shadow:none}.ribbon-member:before{display:none}.ribbon-member:hover{background:#e9dfcc77}.ribbon-member.selected-character{border:2px solid #9a7c49;background:#e5d9c4;box-shadow:inset 0 0 0 1px #fff8e5}.ribbon-member strong{color:#3d3b33}.ribbon-member small{color:#68695d}.ribbon-wallet{border-color:#bcad91}.ribbon-wallet strong{color:#4e4635}
.portrait{background:#d8d0bd;border:1px solid #a99774;box-shadow:0 1px 3px #493e2919;color:#6e6553}.portrait img{object-fit:cover;width:100%;height:100%;object-position:center 35%}
.scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene{border-color:#a69a80;background:#4d5147;box-shadow:0 2px 9px #3129191a}.scene:after{background:linear-gradient(0deg,#111a20bd,transparent 65%)}
.scene-caption,.scene-caption h2,.scene-caption p{color:#fff8e7;text-shadow:0 1px 5px #151b1888}.scene-tag{background:#222a26b8;border-color:#b4a58288;color:#f5ead0}.scene-info,.map-region-info{background:linear-gradient(160deg,#fffdf2f5,#e4dbc8ed);color:#655336;border-color:#9a8561}
.facility-pin{background:linear-gradient(160deg,#fffdf1f2,#e3d7bded);border:1px solid #9c8156;color:#65502d;box-shadow:inset 0 1px #fff,0 2px #75603c,0 3px 7px #19211b30;border-radius:8px 13px}.facility-pin.selected{border-color:#7d5c30;box-shadow:inset 0 0 0 2px #cbb176,0 2px #75603c}.facility-pin .line-icon{width:27px;height:27px}
.shop-scene-host{background:#f5ecdce8;border:1px solid #ae9670;border-radius:4px 10px;box-shadow:0 2px 9px #17221838}.shopkeeper-speech{background:#f8f3e8;color:#595344;border-color:#b9a88a}.business-heading{border-color:#aa926a}.business-heading p{background:#e7decc;color:#5b523e;border-color:#b9a88a}
.character-tabs{border-color:#bbad92}.character-tabs button{font-size:13px}.combined-track{background:#ded6c6;border-color:#b9ad93}.base-segment{background:#9c7955}.bonus-segment{background:#487f96}.parameter-legend span:first-child{color:#8b6541}.parameter-legend span:last-child{color:#3b7187}
.badge,.gear-owner,.quest-giver{background:#eae1ce;color:#665a43;border-color:#b7a384}.gear-owner.worn{background:#e8dfcc;color:#695635;border-color:#9f8459}.item-specs dt{color:#7a705f}.item-specs dd{color:#454237}.comparison-current{background:#e6ddca;border-color:#a78c5b}
.world-situation dt{color:#8d714b}.world-situation dd{color:#4d4e43}.dungeon-stock article,.story-consult{background:#f1eadb;border-color:#c7b89a}.story-task,.story-consult{border-color:#a68a5c}.story-task small,.story-consult small{color:#686f52}.journey-controls{background:#f2ecdfef;color:#504c3e}
.battlefield{background:#333e31;border-color:#a19579}.battle-speed,.battle-command{background:linear-gradient(160deg,#fffdf1ef,#e3d7bde8);color:#51432e;border-color:#9c8156}.battle-hud-slot{background:#f4efdf;border-color:#c1b28f}.battle-hud-slot strong{color:#454035}.battle-hud-slot small{color:#6c6a5a}.battle-hud-slot.acting{border-color:#987432;box-shadow:inset 0 0 0 2px #d5c197}.battle-log-panel{color:#4b4d41}.battlelog time{color:#9a7c4d}.battle-note{color:#777264}
.adventure-popup,.dungeon-event-popup{background:#f4eedf url('/art-marble.svg') center/600px 1000px;color:#454237;border:3px double #ad9674}.adventure-popup h2,.dungeon-event-popup h2{color:#454237}
#toast{background:#fcf7eb;color:#554b37;border-color:#b49b71}.empty,.story-complete{color:#4a654e}
@media(max-width:420px){button{min-height:44px}.character-tabs button{font-size:11px;padding-inline:4px}.party-ribbon{gap:5px}.ribbon-member small{font-size:10px}.scene.inside-facility{min-height:240px}.facility-pin{min-height:44px;min-width:44px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.party-ribbon{background:#f5f0e3 url('/art-marble.svg') center top/600px 1000px}
.scene>img{filter:none;opacity:1}
.scene.inside-facility>img.facility-art{filter:none}
.portrait{border-radius:4px 8px}.portrait img{border-radius:inherit}
.shopkeeper-greeting .shopkeeper-speech{background:#fcf8ed;color:#59503f;border-color:#b5a180;box-shadow:inset 0 1px #fffdf5}
@media(max-width:700px){.cards.residents{grid-template-columns:minmax(0,1fr)}.npc-commands{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:7px}.npc-commands button{font-size:11px;padding:10px 4px}}

