/* Shared scene language, one companion in focus. */
.setting-row select{max-width:62%;min-width:0}.quality-note{font-size:11px;line-height:1.7}
.traveler-dialog{width:min(1120px,calc(100% - 48px));height:min(760px,calc(100dvh - 44px));max-height:calc(100dvh - 28px);overflow:hidden}
.traveler-dialog #modal-content{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.traveler-dialog .modal-head{padding:20px 30px 17px}.traveler-dialog .modal-head h2{font-size:31px}.traveler-dialog .modal-head p{font-size:12px;margin-top:5px}
.traveler-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr)}
.traveler-showcase{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 76px;gap:14px;padding:20px 22px;background:radial-gradient(ellipse at 50% 35%,#f9f9e880,#e2edda7a)}
.traveler-stage{min-height:0;position:relative;overflow:hidden;isolation:isolate;border-radius:9px;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--traveler-accent) 14%,#fcfced),#edf3e082 70%);border:1px solid #e0debf}
.traveler-stage:after{content:'';position:absolute;inset:5px;border:1px solid #ffffef90;border-radius:5px;pointer-events:none;z-index:2}
.traveler-halo{position:absolute;left:50%;top:44%;width:64%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(-15deg);border:1px solid #baa96566;border-radius:50%;box-shadow:0 0 0 11px #ffffe533,0 0 0 12px #d5c78c40;pointer-events:none}
.traveler-halo:before,.traveler-halo:after{content:'';position:absolute;inset:20px;border:1px solid #fcffed;border-radius:20%;transform:rotate(45deg)}
.traveler-halo:after{inset:36px;border-radius:50%;transform:none;border-style:dashed;border-color:#b6ba8050}
.traveler-art{position:absolute;inset:0;mask-image:linear-gradient(#000 0%,#000 78%,transparent 100%)}
.traveler-art-crop{position:absolute;top:-3%;left:50%;height:122%;aspect-ratio:2/3;transform:translateX(-50%);overflow:hidden}
.traveler-art-crop img{display:block;height:100%;width:300%;max-width:none;object-fit:fill;mix-blend-mode:multiply}
.traveler-preview{position:absolute;inset:4px 0 auto;width:100%;height:calc(100% - 88px);touch-action:none;cursor:grab}
.traveler-preview:active{cursor:grabbing}
.traveler-ownership{position:absolute;top:15px;left:15px;z-index:3;display:flex;align-items:center;gap:6px;font-size:11px;color:#5c7354;background:#ffffede8;border:1px solid #d6d6b5;border-radius:20px;padding:8px 11px}
.traveler-ownership .icon{width:14px;height:14px}
.traveler-view-switch{position:absolute;top:13px;right:13px;z-index:3;display:flex;gap:2px;padding:3px;border:1px solid #d5d7b7;border-radius:25px;background:#fcfceded;box-shadow:0 2px 9px #3159440a}
.traveler-view-switch button{min-height:38px;padding:0 13px;background:transparent;color:#7c8b68;border-radius:20px;font-size:11px}
.traveler-view-switch button[aria-pressed=true]{color:#fffde9;background:#426e59;box-shadow:0 2px 6px #2a4c4026}
.traveler-model-tools{position:absolute;bottom:12px;left:12px;right:12px;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}
.traveler-model-tools>div{display:flex;gap:3px}
.traveler-model-tools button{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:5px;background:#fcfdecf2;border:1px solid #d7d5af;border-radius:5px;padding:0 10px;font-size:11px;color:#48674e}
.traveler-model-tools button:hover{background:#e6edcf}
.traveler-model-tools .icon{width:14px;height:14px}
.traveler-model-tools small{width:100%;text-align:center;font-size:10px;color:#798763;line-height:1.5}
.traveler-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0}
.traveler-roster button{min-width:0;position:relative;display:flex;align-items:center;gap:9px;padding:7px;background:#f9faeccc;border:1px solid #d2d8bc;border-radius:7px;transition:background .18s,border-color .18s,translate .18s;text-align:left;color:#64805f;font-family:var(--serif);font-size:17px}
.traveler-roster button[aria-selected=true]{border-color:#ab9659;background:#fffdec;box-shadow:inset 0 0 0 2px #e5e5c3}
.traveler-roster button:hover{translate:0 -3px;background:#ffffee}
.roster-portrait{height:56px;width:44px;flex-shrink:0;border-radius:5px;background-image:url('./assets/art/travelers-concept-v1.png');background-size:300% auto;background-repeat:no-repeat;box-shadow:0 0 0 1px #d2d6b2}
.traveler-roster button>.icon{position:absolute;width:12px;height:12px;right:7px;bottom:9px;color:#9b9665}
.traveler-details{padding:22px 30px;min-height:0;overflow:auto;border-left:1px solid #dce1c7;background:linear-gradient(130deg,#fffff049,#f7f8e980)}
.traveler-trait{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#6f8056;background:#e9efd9;padding:7px 10px;border:1px solid #dce4c7;border-radius:20px}
.traveler-trait .icon{width:15px;height:15px}
.traveler-epithet{font-size:10px;letter-spacing:1.9px;text-transform:uppercase;color:#8b9774;margin-top:18px}
.traveler-details h3{font-family:var(--serif);font-size:47px;line-height:1.08;font-weight:400;color:#2e5546;margin:5px 0 11px;letter-spacing:-1px}
.traveler-description{font-size:12px;line-height:1.8;color:#718260;max-width:300px;min-height:40px}
.traveler-stats{margin-top:22px;display:grid;gap:17px}
.traveler-stat>div{display:flex;align-items:center;justify-content:space-between;color:#527153;font-size:12px}
.traveler-stat strong{font-family:var(--serif);font-size:23px;font-weight:400;color:#476b54;font-variant-numeric:tabular-nums;line-height:1}
.traveler-stat strong small{font-family:var(--sans);font-size:10px;margin-left:3px;color:#7b8c68}
.traveler-stat-track{display:block;overflow:hidden;height:4px;border-radius:3px;background:#dde5ca;margin-top:8px}
.traveler-stat-track i{display:block;height:100%;background:linear-gradient(90deg,var(--traveler-accent),#b9c68b);border-radius:3px}
.traveler-stat>small{display:block;font-size:10px;line-height:1.5;color:#8c9678;margin-top:5px}
.traveler-stats>p{font-size:9px;color:#9a9f81;margin-top:-5px}
.traveler-loadout{display:grid;gap:7px;border-top:1px solid #dbe1c9;margin-top:20px;padding-top:15px}
.traveler-loadout>span{font-size:8px;letter-spacing:1.5px;color:#8a9877;margin-bottom:2px}
.traveler-loadout p{display:flex;align-items:center;gap:8px;font-size:11px;color:#718564}
.traveler-loadout .icon{height:15px;width:15px;color:#8a9d74}
.traveler-voice{display:flex;align-items:center;gap:10px;margin-top:18px;color:#687c59}
.traveler-voice .icon-button{width:40px;height:40px;flex-shrink:0;background:#eef3df;border:1px solid #d6dfc1}
.traveler-voice p{font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.5}
.traveler-choice{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:17px 27px;border-top:1px solid #d8d9bb;background:linear-gradient(90deg,#f3f7e6ed,#fcfcedfa)}
.traveler-choice .shop-buy{min-width:270px;min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;background:#365f4d;color:#fffce5;font-size:13px;border-radius:6px;border:1px solid #527152;box-shadow:0 3px 9px #33503d15}
.traveler-choice .shop-buy:hover:not(:disabled){background:#254d3e}
.traveler-choice .shop-buy.selected{background:#e5edd5;color:#66815c;border-color:#cfdaba;box-shadow:none}
.traveler-choice>small{font-size:11px;line-height:1.6;color:#7a8868;max-width:55%}
@media(max-width:1000px) and (min-width:701px){
 .traveler-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}.traveler-showcase{padding:16px;gap:10px;grid-template-rows:minmax(0,1fr) 72px}
 .traveler-details{padding:20px 23px}.traveler-roster{gap:7px}.traveler-roster button{gap:6px;font-size:14px}.roster-portrait{width:35px;height:50px}
 .traveler-ownership{top:auto;bottom:16px}.traveler-stage[data-view=model] .traveler-ownership{display:none}
 .traveler-view-switch button{min-height:38px;padding:0 12px}
}
@media(max-height:720px) and (min-width:701px){
 .traveler-dialog .modal-head{padding-top:15px;padding-bottom:13px}.traveler-dialog .modal-head h2{font-size:28px}
 .traveler-details{padding-top:16px;padding-bottom:16px}.traveler-epithet{margin-top:12px}.traveler-details h3{font-size:37px}.traveler-stats{margin-top:14px;gap:12px}
 .traveler-loadout{margin-top:14px;padding-top:12px}.traveler-voice{margin-top:12px}.traveler-choice{padding-top:12px;padding-bottom:12px}
}
@media(max-width:700px){
 .traveler-dialog{width:calc(100% - 24px);height:calc(100dvh - 28px)}
 .traveler-dialog .modal-head{padding:16px 18px 14px;gap:8px;flex-wrap:nowrap!important}
 .traveler-dialog .modal-head h2{font-size:27px}.traveler-dialog .modal-head p{font-size:10px;line-height:1.6}
 .traveler-dialog .modal-tools{gap:4px}.traveler-dialog .modal-head .icon-button{width:38px;min-width:38px;height:44px}
 .traveler-layout{display:block;overflow:auto}.traveler-showcase{display:grid;grid-template-rows:320px 74px;padding:14px 16px;gap:10px}
 .traveler-art-crop{height:119%;top:-2%}.traveler-halo{width:73%}
 .traveler-ownership{top:auto;bottom:13px;left:13px;font-size:10px;padding:7px 9px}
 .traveler-stage[data-view=model] .traveler-ownership{display:none}
 .traveler-view-switch{top:12px;right:12px}.traveler-view-switch button{min-height:38px;font-size:11px;padding:0 13px}
 .traveler-roster{gap:8px}.traveler-roster button{padding:6px;gap:7px;flex-direction:column;justify-content:center;font-family:var(--sans);font-size:11px}
 .roster-portrait{width:34px;height:37px;background-position-y:7%!important}
 .traveler-roster button>.icon{width:11px;height:11px;right:5px;bottom:6px}
 .traveler-details{overflow:visible;border-left:0;border-top:1px solid #e0e3cc;padding:22px 24px 27px}
 .traveler-epithet{margin-top:13px}.traveler-details h3{font-size:40px}.traveler-description{max-width:100%;min-height:0}
 .traveler-stats{margin-top:22px}.traveler-loadout{margin-top:20px}
 .traveler-choice{display:flex;flex-direction:column;gap:9px;padding:12px 18px 15px}
 .traveler-choice>small{max-width:100%;font-size:10px;text-align:center}.traveler-choice .shop-buy{min-width:0;width:100%;min-height:46px}
}
@media(max-width:360px){
 .traveler-dialog .modal-head{padding-left:13px;padding-right:13px}.traveler-dialog .modal-head h2{font-size:24px}
 .traveler-dialog .modal-head p{display:none}.traveler-dialog .modal-tools .coin-pill{min-width:53px;padding:7px}.traveler-showcase{padding:12px;grid-template-rows:284px 72px}
 .traveler-model-tools button{padding:0 7px}.traveler-model-tools{gap:4px}
}
@media(max-height:500px) and (min-width:701px){
 .traveler-dialog{height:calc(100dvh - 24px)}.traveler-dialog .modal-head p{display:none}
 .traveler-showcase{grid-template-rows:minmax(0,1fr) 58px;padding:10px 16px}.roster-portrait{height:42px;width:31px}
 .traveler-ownership{display:none}.traveler-details{overflow:auto;padding:12px 20px}.traveler-details h3{font-size:30px}
 .traveler-dialog .modal-head{padding:10px 20px}.traveler-dialog .modal-head h2{font-size:24px}.traveler-choice{padding:9px 20px}
 .traveler-art-crop{height:140%}.traveler-view-switch{top:8px;right:8px}.traveler-view-switch button{min-height:32px}
 .traveler-preview{height:calc(100% - 55px)}.traveler-model-tools small{display:none}.traveler-model-tools{bottom:5px;gap:4px}
 .traveler-model-tools button{min-height:36px}.traveler-model-tools .icon{display:none}
}
@media(prefers-reduced-motion:reduce){.traveler-roster button{transition:none}}
