/* Vale Kozy: shared presentation; no account or economy changes. */
:root{--wood:#8b5a33;--wood-light:#b57d4a;--wood-shadow:#5a3820;--lantern:#ffb547;--lantern-end:#ff8a3d;--hotbar-space:118px;--ease-pop:cubic-bezier(.34,1.56,.64,1);--duration-ui:200ms;--frame:#8b5a33;--kozy-wood:#8b5a33;--kozy-gold:#ffb547;--game-paper:#f7ebd3;--game-soft:#eee0c3;--game-ink:#294234}
:root[data-theme=dark]{--app-bg:#0f1f19;--surface:#1b3328;--surface-raised:#24443a;--surface-muted:#152c22;--text:#f7ebd3;--text-soft:#bfcfb8;--frame:#8b5a33;--game-paper:#1b3328;--game-soft:#24443a;--game-ink:#f7ebd3}
body{background-color:var(--app-bg);background-image:radial-gradient(ellipse at 15% 15%,#78c85015,transparent 50%),radial-gradient(ellipse at 85% 90%,#ffb54712,transparent 50%);font-variant-numeric:tabular-nums}
.shell{border:3px solid var(--wood-shadow);box-shadow:0 8px 0 #0003,var(--kz-shadow);background:var(--surface);border-radius:var(--kz-r-lg)}.main{padding-bottom:calc(125px + env(safe-area-inset-bottom))}
.game-header{position:sticky;top:0;padding:10px 0;margin:0 0 12px;border:0;background:var(--surface);box-shadow:var(--kz-shadow);z-index:26}.header-tools{gap:8px}.game-logo{color:#294234}.game-logo>span{font-size:var(--kz-fs-xl);text-shadow:0 1px #fff5}.game-logo>span>span{color:#c38429!important}:root[data-theme=dark] .game-logo{color:#f7ebd3}.game-logo svg{filter:drop-shadow(0 2px #0003)}.trainer-pouch{margin-top:8px;gap:6px}.wallet-chip{border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised);font-size:var(--kz-fs-xs);box-shadow:0 2px var(--wood-shadow);min-height:30px}.wallet-chip span:not(.ui-icon){display:none}.trainer-xp{font-size:var(--kz-fs-xs)}.header-button{border:2px solid var(--wood);box-shadow:0 3px var(--wood-shadow);background:var(--surface-raised);border-radius:var(--kz-r-md)}.kozy-solid{background:none!important;mask:none!important;-webkit-mask:none!important;display:inline-flex!important}.kozy-solid svg{width:100%;height:100%;fill:currentColor;stroke:none;filter:drop-shadow(0 1px #0003)}
.sidebar{max-width:480px;border:3px solid var(--wood-shadow);background:var(--wood)!important;box-shadow:inset 0 2px var(--wood-light),0 5px #0004!important;padding:5px;border-radius:var(--kz-r-lg)}.nav{background:var(--surface-muted);padding:4px 2px;gap:3px;overflow:visible}.nav button{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;height:59px;min-height:59px;padding:5px 0;border-radius:var(--kz-r-md)}.nav button span:not(.ui-icon){display:block!important;font-size:var(--kz-fs-xs);line-height:1.1;font-weight:800}.nav button .ui-icon{width:23px;height:23px}.nav button.active{background:linear-gradient(#ffcf75,#ffb547)!important;color:#49331e;box-shadow:0 3px #89521e!important;transform:translateY(-3px)}.nav button[aria-label=Batalha] .ui-icon{width:27px;height:27px}
.page-heading{margin:14px 0 18px;padding:0;border:0}.page-heading h1{display:inline-block;position:relative;padding:9px 17px;color:#f7ebd3;background:linear-gradient(var(--wood-light),var(--wood));border:2px solid var(--wood-shadow);border-radius:var(--kz-r-md);box-shadow:inset 0 1px #ffe9bd80,0 3px var(--wood-shadow);font-size:var(--kz-fs-xl);text-shadow:0 2px var(--wood-shadow);transform-origin:50% 0;animation:kozy-sign 350ms var(--ease-pop)}.page-heading h1:before,.page-heading h1:after{content:'';position:absolute;top:4px;width:4px;height:4px;background:#f7ebd3;border-radius:50%;box-shadow:0 1px #5a3820}.page-heading h1:before{left:6px}.page-heading h1:after{right:6px}
.button{background:linear-gradient(var(--lantern),var(--lantern-end))!important;color:#49331e!important;border:2px solid #89521e!important;border-radius:var(--kz-r-md);box-shadow:inset 0 1px #fff6,0 4px #89521e!important;font-weight:900;min-height:44px;transition:transform 160ms,filter 160ms,box-shadow 160ms}.outline,.soft{border:2px solid var(--wood);background:var(--surface-raised);color:var(--text);box-shadow:0 3px var(--wood-shadow);min-height:44px;border-radius:var(--kz-r-md)}button:not(:disabled):hover{filter:brightness(1.08)}button:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px var(--wood-shadow)!important}button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.5)}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #46a6d8;outline-offset:3px}
.card,.world-card,.inventory-bag{border:3px solid var(--wood)!important;background:var(--surface-raised)!important;color:var(--text);box-shadow:inset 0 1px #fff2,0 4px var(--wood-shadow)!important;border-radius:var(--kz-r-lg)}.inventory-bag{padding:12px}.card{position:relative}.card:before{content:'';position:absolute;inset:5px;border:1px dashed color-mix(in srgb,var(--wood-light) 55%,transparent);border-radius:var(--kz-r-md);pointer-events:none}.card>*{position:relative}.inventory-slot{border-radius:var(--kz-r-md);background:var(--game-paper)}
dialog{border:3px solid var(--wood)!important;background:var(--surface-raised)!important;color:var(--text)!important;box-shadow:0 5px var(--wood-shadow),var(--kz-shadow)!important;border-radius:var(--kz-r-lg)!important;animation:kozy-modal 180ms var(--ease-pop)}dialog::backdrop{background:#0f1f1980;backdrop-filter:blur(4px)!important}.egg-chance-content{background:var(--surface-raised);color:var(--text)}#toast{background:var(--surface-raised);color:var(--text);border:2px solid var(--wood);box-shadow:0 4px var(--wood-shadow);font-size:var(--kz-fs-sm);border-radius:var(--kz-r-md);bottom:calc(112px + env(safe-area-inset-bottom))}
small,.small,.hint,.mon-card .name,.mon-card .level{font-size:var(--kz-fs-xs)}.boot{min-height:65dvh;display:grid;align-content:center;justify-items:center;gap:12px}.kozy-loader-mark{font-size:58px;color:var(--lantern);text-shadow:0 4px var(--wood-shadow)}.kozy-loading-bar{width:120px;height:8px;border-radius:var(--kz-r-sm);background:var(--wood);overflow:hidden}.kozy-loading-bar:after{content:'';display:block;width:45%;height:100%;background:var(--lantern);animation:kozy-loading 1s ease-in-out infinite alternate}
@keyframes kozy-sign{from{transform:rotate(-3deg)}to{transform:rotate(0)}}@keyframes kozy-modal{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes kozy-loading{to{transform:translateX(125%)}}
@media(min-width:900px){body{background-image:linear-gradient(#0f1f19b0,#0f1f19d0),url('/assets/maps/garden.png');background-size:cover;background-attachment:fixed}.shell{margin:24px auto}.sidebar{bottom:20px}}
@media(max-width:380px){.main{padding-inline:12px}.game-logo>span{font-size:var(--kz-fs-lg)}.game-logo svg{display:block;width:25px;height:25px}.header-tools{gap:6px}.nav button span:not(.ui-icon){font-size:var(--kz-fs-xs)}.sidebar{width:calc(100% - 24px)}.page-heading h1{font-size:var(--kz-fs-lg)}.trainer-pouch{gap:5px}.wallet-chip{padding:3px 5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.kozy-theme-switch{border:0;padding:0;display:flex;gap:10px;align-items:center}.kozy-theme-switch legend{font-weight:800;margin-bottom:8px}.kozy-theme-switch button{min-height:44px;padding:8px 20px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface);color:var(--text)}.kozy-theme-switch button[aria-pressed=true]{background:var(--lantern);color:#49331e}.guild-six span{border-style:solid}.rarity-0{--rarity:#a7b1ac}.rarity-portrait{box-shadow:0 2px 0 #0002}.rarity-3,.rarity-4,.rarity-5{border-style:double}

.kozy-effects-switch{display:flex;gap:10px;align-items:center;min-height:44px;margin-top:12px;font-weight:800}.kozy-effects-switch input{width:22px;height:22px;accent-color:var(--lantern)}

/* Phase 2: the village is a scene, zones are wooden signs instead of debug boxes. */
[data-screen=home] .home-map{margin-inline:-8px;border:3px solid var(--wood);border-radius:var(--kz-r-lg);overflow:hidden;box-shadow:0 5px var(--wood-shadow)}[data-screen=home] .home-map canvas{width:100%;display:block;touch-action:pan-y}.home-map .job-zone{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;opacity:1!important;display:flex;align-items:flex-end;justify-content:center;padding:0;z-index:4}.home-map .job-zone:hover{background:#ffefbe0a!important}.zone-sign{font-family:var(--kz-font);font-weight:900;font-size:var(--kz-fs-xs);line-height:1.1;color:#f7ebd3;background:linear-gradient(#a87042,#8b5a33);border:2px solid #5a3820;border-radius:var(--kz-r-sm);padding:4px 6px;box-shadow:0 2px #0004;text-shadow:0 1px #5a3820;white-space:nowrap;position:relative}.zone-sign b{color:#ffcf75;position:absolute;right:-7px;top:-7px;background:#5a3820;border-radius:50%;font-size:var(--kz-fs-xs);padding:2px;box-shadow:0 0 9px #ffb547}.job-zone.drop-ready{outline:3px solid #78c850;outline-offset:-3px}.scene-label{background:#8b5a33;color:#f7ebd3;border:2px solid #5a3820;border-radius:var(--kz-r-sm);font-family:var(--kz-font);font-weight:900;font-size:var(--kz-fs-xs);padding:5px 8px;top:8px;left:8px}.scene-tools{top:8px;bottom:auto;right:8px}.scene-tools button{width:44px;height:44px;background:var(--surface-raised)!important;box-shadow:0 3px #5a3820;border:2px solid #8b5a33}.village-bonus{display:flex;justify-content:flex-end;margin:12px 0}.village-bonus .outline{font-size:var(--kz-fs-xs);padding:7px 12px}.village-bonus-list{display:grid;gap:10px}.village-bonus-list>div{display:flex;justify-content:space-between;padding:10px;background:var(--surface);border-radius:var(--kz-r-md)}.home-gathering{margin-top:8px}.gathering-column{border:0!important}.gathering-workers{gap:10px}.gathering-portrait{min-height:44px;min-width:44px}.zone-summary{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--kz-fs-xs);margin-bottom:16px}.zone-ready{color:var(--lantern)}.zone-roster{display:grid;gap:10px}.zone-roster>div{display:flex;align-items:center;gap:12px;padding:10px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface)}.zone-roster>div>span:not(.rarity-portrait){flex:1;min-width:0}.zone-roster strong,.zone-roster small{display:block}.zone-roster small{font-size:var(--kz-fs-xs);margin-top:3px;color:var(--text-soft)}.zone-roster progress{width:100%;height:9px;accent-color:#78c850}.zone-actions{display:grid;gap:12px;margin-top:20px}.zone-sheet{position:fixed;inset:auto 12px 105px;margin:0 auto;width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 130px);overflow:auto;border-radius:var(--kz-r-lg) var(--kz-r-lg) var(--kz-r-md) var(--kz-r-md)!important}.zone-sheet #modal-title{font-size:var(--kz-fs-xl)}

/* Village roster: compact, three aligned professions, real energy and state. */
[data-screen=home] .page-heading{margin-bottom:12px}[data-screen=home] .village-bonus{margin:10px 0 4px}[data-screen=home] .village-bonus button{background:transparent;box-shadow:none;border-color:color-mix(in srgb,var(--wood) 40%,transparent)}.home-gathering{gap:8px;margin:10px 0 0;align-items:start}.gathering-column{padding:7px 4px 9px;border-radius:var(--kz-r-md);background:color-mix(in srgb,var(--surface-raised) 75%,transparent);box-shadow:inset 0 1px #fff3}.gathering-symbol{width:100%;height:auto;min-height:54px;display:flex;flex-direction:column;gap:4px;padding:5px 2px;border-radius:var(--kz-r-md);margin:0;box-sizing:border-box}.gathering-label{font-size:var(--kz-fs-xs);line-height:1.1;font-weight:900}.gathering-symbol .ui-icon{width:24px;height:24px}.gathering-symbol.has-rare{background:#ffb54714;box-shadow:inset 0 0 9px #ffb54722!important}.gathering-egg-dot{position:absolute;top:-4px;left:-3px;color:#d49423;text-shadow:0 0 5px #ffb547}.loot-new{right:-3px;top:1px;font-size:var(--kz-fs-md);width:18px;height:18px;line-height:18px}.gathering-workers{gap:6px;margin-top:8px}.gathering-worker{display:grid;justify-items:center;gap:4px;padding:9px 3px 7px;border:0!important;background:var(--surface);border-radius:var(--kz-r-md);min-width:0;box-shadow:0 1px color-mix(in srgb,var(--wood) 25%,transparent)}.gathering-portrait{padding:0;min-width:44px;min-height:44px}.home-worker-name{font-size:var(--kz-fs-xs);line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--worker-rarity);text-shadow:0 1px #0002}.home-worker-energy{display:flex;align-items:center;gap:4px;width:100%;font-size:var(--kz-fs-xs);font-weight:800}.home-worker-energy progress{width:100%;min-width:0;height:7px;accent-color:#78c850}.home-worker-energy span{min-width:29px;text-align:right}.home-worker-state{font-size:var(--kz-fs-xs);line-height:1.1;color:var(--text-soft)}.is-resting progress{accent-color:#e5aa4b}.worker-sleep{top:-5px;right:-10px;font-size:var(--kz-fs-xs);color:var(--text);background:var(--surface-raised);padding:1px 3px;border-radius:var(--kz-r-sm);animation:kozy-sleep 2s ease-in-out infinite}.gathering-empty-slot{display:grid;justify-items:center;gap:4px;min-height:90px;border:1px solid var(--wood);border-radius:var(--kz-r-md);color:var(--text-soft);background:var(--surface);font-size:var(--kz-fs-xs)}.gathering-empty-slot span{font-size:var(--kz-fs-lg)}.home-map canvas{aspect-ratio:4/3}.home-gathering .rarity-portrait{border-radius:var(--kz-r-sm)}.home-gathering .gathering-symbol:active{transform:translateY(1px)}@keyframes kozy-sleep{50%{transform:translateY(-2px)}}
:root[data-theme=normal] .home-worker-name{color:color-mix(in srgb,var(--worker-rarity) 60%,#203b32)}[data-screen=home] .home-map{margin-inline:-10px}

.home-worker-top{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-width:0}.home-worker-top .gathering-portrait{flex:none}.home-worker-attributes{display:grid;gap:2px;min-width:29px}.home-worker-attributes>span{display:flex;align-items:center;gap:3px;font-size:var(--kz-fs-xs);line-height:1.1}.home-worker-attributes .attribute-icon{width:13px;height:13px;flex:none}.home-worker-attributes svg{width:13px;height:13px}.home-worker-name{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0}.home-worker-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-worker-level{font-size:var(--kz-fs-xs);flex:none;color:var(--text-soft);font-weight:800}.village-title-actions{display:flex;gap:5px;align-items:center;flex:none}.village-title-actions [data-do=village-bonus]{font-size:var(--kz-fs-xs);padding:5px 7px;max-width:70px;line-height:1.15;white-space:normal}.village-title-actions .icon-button{width:44px;min-width:44px}.village-title-actions~*{min-width:0}[data-screen=home] .page-heading{gap:7px;align-items:center}[data-screen=home] .page-heading>div:first-child{min-width:0;flex:1}[data-screen=home] .page-heading h1{font-size:var(--kz-fs-lg);padding:9px 10px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}@media(max-width:380px){.home-worker-top{gap:2px}.home-worker-attributes{min-width:25px}.home-worker-attributes>span{gap:2px}.home-worker-name{gap:2px}.village-title-actions{gap:4px}.village-title-actions [data-do=village-bonus]{max-width:60px;padding:4px}.village-title-actions .icon-button{width:40px;min-width:40px}}

/* Battle and journey share the same wooden HUD and real account progress. */
.battle-team-panel{padding:12px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised);box-shadow:0 3px var(--wood-shadow)}.battle-team-heading{display:flex;justify-content:space-between;gap:8px;font-size:var(--kz-fs-sm)}.battle-team-heading>span{font-weight:900;color:var(--text-soft)}.battle-team-portraits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:10px}.battle-team-portraits button{display:grid;justify-items:center;gap:5px;padding:0;border:0;background:none;color:var(--text);min-height:60px;min-width:0;box-shadow:none}.battle-team-portraits small{font-size:var(--kz-fs-xs)}.battle-edit-team{display:block!important;width:100%!important;padding:8px!important;border-radius:var(--kz-r-md);margin-top:8px;font-size:var(--kz-fs-xs) !important;min-height:44px}.battle-edit-team .ui-icon{display:none}.combat-banners{gap:14px;margin-top:18px}.combat-banner{min-height:164px;padding:18px 14px;border:3px solid var(--wood-shadow);box-shadow:0 4px var(--wood-shadow);isolation:isolate}.combat-banner strong{font-size:var(--kz-fs-xl)}.combat-banner small{font-size:var(--kz-fs-xs);letter-spacing:0;max-width:none}.combat-banner>div:first-child{position:relative;z-index:2}.banner-detail,.banner-progress{display:block;font-size:var(--kz-fs-xs);margin-top:6px;max-width:155px;line-height:1.3}.banner-progress{padding:5px 7px;background:#102d2460;border-radius:var(--kz-r-sm);width:max-content}.banner-pve{background:linear-gradient(90deg,#204635e8,#2b584db0),url('/assets/maps/meadow.png') center/cover}.banner-pvp{background:linear-gradient(120deg,#6d343ddd 50%,#343e66dd 50%),url('/assets/maps/embers.png') center/cover}.banner-pokemon{gap:3px;transform:rotate(-5deg);position:absolute;right:12px;bottom:24px;opacity:.96}.banner-pokemon img{width:44px;height:44px;box-shadow:0 3px #0005}.banner-pokemon span{font-family:var(--kz-font);font-weight:900;font-size:var(--kz-fs-xl)}.banner-pve .banner-pokemon{right:10px;bottom:25px}.battle-boss-link{display:flex;align-items:center;gap:10px;padding:12px;background:var(--surface-raised);color:var(--text);border:2px solid var(--wood);border-radius:var(--kz-r-md);text-align:left;min-height:80px;box-shadow:0 3px var(--wood-shadow)}.battle-boss-link img{width:44px;height:44px;border-radius:var(--kz-r-md)}.battle-boss-link>span:not(.ui-icon){flex:1}.battle-boss-link strong,.battle-boss-link small{display:block}.battle-boss-link small{font-size:var(--kz-fs-xs);margin-top:4px}.journey-badges{padding:12px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised)}.journey-badges>span{font-size:var(--kz-fs-xs);font-weight:800}.journey-badges>div{display:flex;justify-content:space-between;gap:3px;margin-top:8px}.journey-badge{font-size:var(--kz-fs-xl);color:var(--text-soft);opacity:.4}.journey-badge.earned{color:#d89d31;opacity:1;text-shadow:0 2px #5a3820}.journey-path{position:relative;display:grid;gap:22px;padding:18px 0}.journey-path:before{content:'';position:absolute;inset:25px auto 25px 39px;width:8px;background:var(--wood);border:2px solid var(--wood-shadow);border-radius:var(--kz-r-md)}.journey-stop{position:relative;display:flex;align-items:center;gap:12px;min-height:110px;width:100%;padding:12px 10px;border:2px solid var(--wood);border-radius:var(--kz-r-lg);background:var(--surface-raised);color:var(--text);text-align:left;box-shadow:0 4px var(--wood-shadow)}.journey-art{display:flex;flex-direction:column;align-items:center;gap:3px;width:58px;flex:none}.journey-art img{width:42px;height:42px;border-radius:var(--kz-r-sm);border:2px solid var(--wood)}.journey-routes .journey-art{flex-direction:row;width:70px}.journey-routes img{width:34px;height:34px}.journey-stop>span:nth-child(2){flex:1;min-width:0}.journey-stop strong{display:block;font-family:var(--kz-font);font-weight:900;font-size:var(--kz-fs-lg)}.journey-stop small{display:block;font-size:var(--kz-fs-xs);margin-top:5px;line-height:1.4}.journey-stop>.ui-icon{width:18px;height:18px}.arena-entry{margin-top:18px;padding:20px 14px;background:linear-gradient(140deg,#a94f4920,#36788420);border:2px solid var(--wood);border-radius:var(--kz-r-lg);text-align:center}.arena-versus{display:flex;align-items:center;justify-content:center;gap:20px}.arena-versus img{width:64px;height:64px;border:3px solid var(--wood);border-radius:var(--kz-r-md)}.arena-versus strong{font-size:var(--kz-fs-xl);color:#e05a4f}.arena-entry .combat-destination{min-height:48px;padding:10px!important;font-size:var(--kz-fs-md)}.battle-outcome{padding:18px 10px;border:2px solid var(--wood);border-radius:var(--kz-r-lg);background:var(--surface-raised)}.outcome-totals{border:0;gap:10px}.outcome-totals>span{flex:1;padding:10px;background:var(--surface);border-radius:var(--kz-r-md)}.outcome-rewards{border:2px solid #c79635;background:#ffb54714;border-radius:var(--kz-r-md)}.outcome-party .rarity-portrait{box-shadow:0 3px #0003}.outcome-details{padding:10px;border-radius:var(--kz-r-md);background:var(--surface)}.world-roster strong,.world-roster small{font-size:var(--kz-fs-xs)}.gym-grid{grid-template-columns:1fr}.gym-grid .world-card{padding:14px}.gym-grid .world-portrait{width:40px;height:40px;margin-right:5px}
.battle-edit-team{background:var(--surface)!important;color:var(--text)!important;border:2px solid var(--wood)!important;box-shadow:0 2px var(--wood-shadow)!important;font-weight:800}

.screen-back{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin-top:9px;padding:7px 10px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised);color:var(--text);font-size:var(--kz-fs-xs);font-weight:800;text-align:left;box-shadow:0 2px var(--wood-shadow)}.screen-back .ui-icon{width:18px;height:18px;flex:none}[data-back-slot]:empty{display:none}

/* Original illustrated interface scenery, composed with the established Pokémon portraits. */
.banner-pve{background-image:linear-gradient(90deg,#193b34f0,#193b3450),url('/assets/art/batalha/journey.png');background-position:center;background-size:cover}.banner-pvp{background-image:linear-gradient(90deg,#482a39dd,#22354d30),url('/assets/art/batalha/arena.png');background-position:center;background-size:cover}.banner-pokemon img{width:49px;height:49px;border-width:3px;box-shadow:0 4px #20302e80}.banner-pvp .banner-pokemon img:first-child{transform:rotate(-9deg) translateY(-7px)}.banner-pvp .banner-pokemon img:last-child{transform:rotate(9deg) translateY(12px)}.banner-pvp .banner-pokemon span{color:#ffcf75!important;text-shadow:0 0 8px #ffb54766}.banner-pvp .banner-pokemon:after{content:'';position:absolute;left:50%;top:-20px;width:3px;height:12px;background:#ffcf75;box-shadow:8px 5px #ffcf75,-8px -4px #ffcf75;transform:rotate(30deg);animation:arena-spark 2s ease-in-out infinite}.journey-travellers{transform:rotate(-3deg)}.journey-travellers img{border-radius:50%;border-color:#d2bc80}.journey-path{padding:18px 8px;background:linear-gradient(#18342d35,#18342d35),url('/assets/art/batalha/journey.png') center/cover;border:3px solid var(--wood);border-radius:var(--kz-r-lg);margin-top:16px;gap:24px}.journey-path:before{left:39px;background:#d5bd80;border-color:#816342;width:8px}.journey-stop{background:var(--surface-raised);border-width:3px;box-shadow:0 4px #5a382080}.journey-routes{background:linear-gradient(90deg,var(--surface-raised) 70%,#78c85025)}.journey-gyms{background:linear-gradient(90deg,var(--surface-raised) 70%,#46a6d825)}.journey-boss{background:linear-gradient(90deg,var(--surface-raised) 70%,#ffb54725)}.journey-art img{box-shadow:0 3px #20302e55}.journey-badge{width:28px;height:28px;display:grid;place-items:center;background:var(--surface-muted);border:2px solid var(--wood);border-radius:50%;opacity:.55;color:var(--text-soft);box-sizing:border-box}.journey-badge .ui-icon{width:16px;height:16px}.journey-badge.earned{background:#e8bb58;color:#5a3820;box-shadow:0 2px #5a3820}.journey-badge:nth-child(even){border-radius:var(--kz-r-sm)}.journey-badge:nth-child(3n){border-radius:50% 50% 4px 4px}.arena-entry{background:linear-gradient(#273642aa,#273642dd),url('/assets/art/batalha/arena.png') center/cover;color:#f7ebd3}.arena-versus{padding:20px 0}.arena-versus img:first-child{transform:rotate(-8deg)}.arena-versus img:last-child{transform:rotate(8deg)}.arena-versus strong{color:#ffcf75;text-shadow:0 2px #5a3820}.battle-boss-link{background:linear-gradient(90deg,var(--surface-raised) 65%,#ffb54720)}.boss-feature-art{position:relative;display:grid;place-items:center;width:100%;height:165px;background:url('/assets/art/batalha/boss.png') center/cover;border:2px solid var(--wood);border-radius:var(--kz-r-md)}.boss-feature-art .world-portrait{width:88px;height:88px;border:3px solid #d7b472;border-radius:var(--kz-r-lg);box-shadow:0 4px #20302e80;image-rendering:auto}.boss-card{padding:10px!important}.boss-card h2{font-size:var(--kz-fs-xl)}.boss-card small{font-size:var(--kz-fs-xs)}@keyframes arena-spark{50%{opacity:.3;transform:rotate(30deg) translateY(-3px)}}

.journey-badge{width:30px;height:30px;border-radius:var(--kz-r-sm)!important;border:1px solid var(--wood);background:var(--surface-muted);opacity:1}.kanto-badge-sprite{display:block;width:24px;height:24px;background:url('/assets/ui/badges/kanto-frlg.png') no-repeat;background-size:192px 24px;background-position:calc(var(--badge-index) * -24px) 0;image-rendering:pixelated;opacity:.35;filter:grayscale(1)}.journey-badge.earned .kanto-badge-sprite{opacity:1;filter:none}.journey-badge.earned{background:#ffb54730;border-color:#d89d31}

.banner-boss{min-height:200px;background:linear-gradient(90deg,#201e35ed,#26394440),url('/assets/art/batalha/boss.png') center/cover;border-color:#8c6735;box-shadow:0 5px #5a3820,inset 0 0 28px #ffb54718}.banner-boss:before{border-color:#d9b47899;inset:8px}.banner-boss strong{font-size:var(--kz-fs-xl);max-width:190px;color:#ffdfa0!important;text-shadow:0 3px #211c2c}.banner-boss small{color:#e6c98e!important}.banner-boss .banner-detail{font-size:var(--kz-fs-md);font-weight:900;text-transform:capitalize;max-width:180px}.banner-boss .banner-progress{max-width:155px;white-space:normal;background:#12162699;border:1px solid #d9b47855}.boss-banner-portrait{position:absolute;right:17px;top:50%;transform:translateY(-50%);width:92px;height:108px;display:grid;place-items:center}.boss-banner-portrait:before{content:'';position:absolute;width:108px;height:108px;border:2px solid #e0bd78;border-radius:50%;box-shadow:0 0 18px #ffb54733,inset 0 0 12px #ffb54722}.boss-banner-portrait:after{content:'✦';position:absolute;right:-9px;top:-5px;color:#ffcf75;font-size:var(--kz-fs-lg);text-shadow:0 0 8px #ffb547}.boss-banner-portrait .world-portrait{position:relative;z-index:1;width:72px;height:72px;border:3px solid #d9b478;border-radius:var(--kz-r-md);box-shadow:0 5px #151d2b80;image-rendering:auto}.banner-boss:hover .boss-banner-portrait:before{box-shadow:0 0 22px #ffb54755,inset 0 0 12px #ffb54722}.banner-boss .banner-detail,.banner-boss .banner-progress{padding-right:0}@media(max-width:380px){.banner-boss strong{font-size:var(--kz-fs-xl);max-width:165px}.boss-banner-portrait{right:13px;width:78px}.boss-banner-portrait:before{width:90px;height:90px}.boss-banner-portrait .world-portrait{width:64px;height:64px}.banner-boss .banner-detail{max-width:160px}}

.boss-banner-portrait{display:grid;place-items:center;padding:0}.boss-banner-portrait:before{left:50%;top:50%;transform:translate(-50%,-50%);box-sizing:border-box}.boss-banner-portrait .world-portrait{display:block;margin:0!important;align-self:center;justify-self:center;box-sizing:border-box}.journey-path+.banner-boss{width:100%;margin:8px 0 20px}
.banner-boss{min-height:290px;display:flex;flex-direction:column;justify-content:flex-start;text-align:center;padding:16px 12px 18px}.banner-boss>div:first-child{width:100%;display:flex;flex-direction:column;align-items:center}.banner-boss strong{max-width:none;font-size:var(--kz-fs-xl)}.banner-boss .banner-detail{max-width:none;margin-top:4px}.banner-boss .banner-progress{max-width:none;margin-top:130px}.banner-boss .boss-banner-portrait{left:50%;right:auto;top:55%;transform:translate(-50%,-50%);width:108px;height:108px}.banner-boss .boss-banner-portrait:before{width:108px;height:108px}.banner-boss .boss-banner-portrait .world-portrait{width:76px;height:76px}

.banner-emblem{position:absolute;right:12px;bottom:18px;width:105px;height:105px;pointer-events:none}.banner-emblem img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px #102b2455)}.banner-pve .banner-emblem{transform:rotate(-6deg)}.banner-pvp .banner-emblem{transform:rotate(3deg)}.arena-emblem-large{display:grid;place-items:center;padding:8px 0}.arena-emblem-large img{width:142px;height:142px;filter:drop-shadow(0 5px #0004)}.journey-routes .journey-art{width:58px}.journey-art .journey-map-emblem{width:54px;height:54px;border:0;border-radius:0;box-shadow:none}.gym-badge-emblem{height:58px;display:grid;place-items:center;background:#ffb54720;border:2px solid var(--wood);border-radius:50%}.gym-badge-emblem .kanto-badge-sprite{width:40px;height:40px;background-size:320px 40px;background-position:calc(var(--badge-index) * -40px) 0;opacity:1;filter:none}@media(max-width:380px){.banner-emblem{width:92px;height:92px;right:9px}.combat-banner .banner-detail{max-width:155px}}
.banner-boss .boss-banner-portrait .world-portrait{width:104px;height:104px;border:0!important;border-radius:50%!important;box-shadow:none!important;margin:0!important;object-fit:cover}.banner-boss .boss-banner-portrait:before{z-index:2;pointer-events:none}.banner-boss .boss-banner-portrait:after{z-index:3}
.banner-boss .boss-banner-portrait{top:51%}
.banner-boss .boss-banner-portrait{top:48%}
.banner-boss .boss-banner-portrait{top:45%}

/* Original FRLG Pewter gym: display only the building from the unchanged map. */
.gym-building-emblem{width:58px;height:58px;display:grid;place-items:center;flex-shrink:0;background:none;border:0}.gba-gym-building{display:block;width:56px;height:40px;background-image:url("/assets/ui/vale/pewter-frlg.png");background-size:384px 320px;background-position:-96px -96px;background-repeat:no-repeat;image-rendering:pixelated;border:0;border-radius:0;box-shadow:0 3px 0 #102b2430}

/* Battle playback and durable team HUD. */
.arena-stage{border:3px solid var(--wood);border-radius:var(--kz-r-lg);overflow:hidden;box-shadow:0 4px var(--wood-shadow)}
.arena-playback{display:flex;justify-content:center;gap:6px;margin:12px 0}.arena-playback button{min-width:44px;min-height:44px;padding:6px 12px;background:var(--surface-raised);color:var(--text);border:2px solid var(--wood);border-radius:var(--kz-r-md);font-weight:900}.arena-playback button[aria-pressed=true]{background:var(--lantern);color:#352419}.arena-playback [data-arena-skip]{margin-left:10px}
.arena-live{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.arena-live>section{padding:8px;background:var(--surface-raised);border:2px solid var(--wood);border-radius:var(--kz-r-md);min-width:0}.arena-live>section>strong{display:block;font-size:var(--kz-fs-xs);margin-bottom:8px}.arena-unit{display:flex;align-items:center;gap:6px;margin:7px 0;min-width:0}.arena-unit .rarity-portrait{flex:none;width:30px!important;height:30px!important}.arena-unit>div{flex:1;min-width:0}.arena-unit span,.arena-unit small{font-size:var(--kz-fs-xs);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-unit.fainted{opacity:.4}.arena-hp-track{position:relative;height:7px;background:#182722;border-radius:var(--kz-r-sm);overflow:hidden;margin:3px 0}.arena-hp-track i{position:absolute;inset:0 auto 0 0;width:100%;background:#78c850}.arena-hp-track .arena-hp-ghost{background:#edcc83;transition:width .65s ease}.arena-live>section:last-child .arena-hp-fill{background:#e47f70}.reward-reveal{animation:reward-reveal .55s ease-out both}.reward-reveal>span{animation:reward-reveal .55s .15s ease-out both}@keyframes reward-reveal{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.reward-reveal,.reward-reveal>span{animation:none}.arena-hp-ghost{transition:none!important}}

.arena-role-filter{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.arena-role-filter button{min-height:44px;padding:6px 10px;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised);color:var(--text);font-weight:800}.arena-role-filter button[aria-pressed=true]{background:var(--lantern);color:#352419}.arena-playback{gap:4px;flex-wrap:wrap}.arena-playback [data-arena-skip]{margin-left:0}

.arena-unit span{text-transform:capitalize}.arena-unit-level{font-size:var(--kz-fs-xs);font-weight:700;color:var(--text-soft)}.arena-recovery-track{height:3px;position:relative;margin:2px 0;background:#15232233;border-radius:var(--kz-r-sm);overflow:hidden}.arena-recovery-track i{display:block;height:100%;background:#62b9db;width:0}

.gym-member{display:inline-flex;flex-direction:column;align-items:center;gap:3px;margin:4px}.gym-member small{font-size:var(--kz-fs-xs)}

/* Shared handcrafted controls, no native dropdown presentation. */
select[hidden]{display:none!important}.kozy-choice{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:9px 12px;border:2px solid var(--wood-shadow,#5a3820);border-radius:var(--kz-r-md);background:var(--surface-raised,#24443a);color:var(--text,#f7ebd3);font:inherit;box-shadow:0 3px 0 #382718}.kozy-choice svg{width:18px;height:18px}.choice-sheet{max-width:min(420px,calc(100vw - 24px));width:100%;max-height:80dvh}.choice-sheet [role=listbox]{display:grid;gap:6px;max-height:50dvh;overflow:auto}.choice-sheet [role=option]{text-align:left;min-height:44px;padding:10px;border-radius:var(--kz-r-md);background:var(--surface-raised,#24443a);color:inherit;border:1px solid #b57d4a}.choice-sheet [aria-selected=true]{border-color:#ffb547;background:#8b5a3344}.kozy-empty{text-align:center;padding:18px;color:var(--text-secondary,#bfcfb8)}.kozy-mascot{width:76px;height:76px}.market-canopy{height:24px;background:repeating-linear-gradient(90deg,#e6ba6a 0 24px,#577e60 24px 48px);border:3px solid #5a3820;border-bottom:0;border-radius:var(--kz-r-md) var(--kz-r-md) 0 0;mask:linear-gradient(#000 0 0) top/100% 70% no-repeat,radial-gradient(circle at 50% 0,#000 70%,transparent 72%) bottom/24px 10px repeat-x}.market-tabs button{display:flex;flex-direction:column;gap:3px;font-size:var(--kz-fs-xs)}.market-tabs svg{width:20px;height:20px}.market-offer{min-width:0}.market-offer .offer-types{display:flex;gap:4px;flex-wrap:wrap}.market-offer .offer-types span{font-size:var(--kz-fs-xs);padding:2px 5px;border-radius:var(--kz-r-sm);background:#56786655}.offer-attributes{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.offer-attributes span{font-size:var(--kz-fs-xs);display:flex;align-items:center;gap:2px}.market-more{display:block;margin:12px auto}.market-meta{display:block;font-size:var(--kz-fs-xs);color:var(--text-secondary)}.collection-overview{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;font-size:var(--kz-fs-xs)}.pokemon-card-details{display:grid;gap:4px}.pokemon-card-details .type-badges{display:flex;justify-content:center;gap:3px}.pokemon-card-energy{height:6px;width:100%;accent-color:#78c850}.inventory-tabs button .tab-label{display:block;font-size:var(--kz-fs-xs);line-height:1.2}.inventory-capacity{padding:10px 14px;font-size:var(--kz-fs-xs)}.inventory-item-name{font-size:var(--kz-fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.inventory-slot{position:relative}.inventory-new{position:absolute;top:5px;right:5px;width:7px;height:7px;background:#ffb547;border-radius:50%;box-shadow:0 0 8px #ffb547}.inventory-tools{display:flex;gap:8px;margin:8px 0}.inventory-tools>input{min-width:0;width:60%}.inventory-tools .kozy-choice{width:40%}

.reward-flight{position:fixed;z-index:9999;pointer-events:none;display:flex;gap:5px;align-items:center;font-weight:900;font-size:var(--kz-fs-lg);color:#ffca73;text-shadow:2px 2px #4e331b}.reward-flight img{width:32px;height:32px;object-fit:contain}.inspect-sprite-pedestal{width:96px;height:72px;overflow:hidden;margin:8px auto;background:radial-gradient(ellipse at 50% 95%,#ffb54744,transparent 65%);border-bottom:5px solid #8b5a33;border-radius:50%}.inspect-sprite-pedestal img{height:64px;width:auto;max-width:none;object-fit:cover;object-position:left}.toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toolbar>input{grid-column:1/-1}.mon-card{min-width:0;padding:10px!important;gap:5px;font-size:var(--kz-fs-xs)}.mon-card .rarity-portrait{margin:auto}.mon-card .name{font-size:var(--kz-fs-sm)}.mon-card small{font-size:var(--kz-fs-xs)}

.goals-open{display:flex;align-items:center;gap:6px;margin:4px 0 8px auto;min-height:44px;font-size:var(--kz-fs-xs)}.goal-badge{background:#ffb547;color:#382718;border-radius:50%;padding:2px 6px}.goal-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #b57d4a55}.goal-row>div{min-width:0;display:grid;gap:5px}.goal-row strong{font-size:var(--kz-fs-xs)}.goal-row small{font-size:var(--kz-fs-xs)}.goal-row progress{width:100%;height:8px;accent-color:#78c850}.login-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:12px 0}.login-calendar span{display:grid;text-align:center;padding:8px 2px;border:2px solid #8b5a33;border-radius:var(--kz-r-sm)}.login-calendar .current{border-color:#ffb547;background:#ffb54722}.login-calendar small{font-size:var(--kz-fs-xs)}

.audio-volume{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;font-size:var(--kz-fs-sm)}.audio-volume input{max-width:65%;accent-color:#ffb547}.inspect-sprite-pedestal{height:84px}

.trainer-xp progress{width:32px;height:6px;accent-color:#ffb547}.trainer-xp small{font-size:var(--kz-fs-xs)}.inventory-slot b{font-size:var(--kz-fs-xs)}.inventory-tabs button{min-height:50px}.page-heading .eyebrow{font-size:var(--kz-fs-xs);letter-spacing:0;text-transform:none}@media(min-width:1000px){body{background-image:linear-gradient(#0f1f19dd,#0f1f19ee),url(/assets/maps/garden.png);background-position:center;background-size:cover;background-attachment:fixed}}

.boss-countdown{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font-size:var(--kz-fs-xs);color:#ffca73;white-space:nowrap}.hint,small,.pill,.eyebrow,.egg-roll-card small,.inventory-egg-pool span,.inventory-egg-pool b{font-size:var(--kz-fs-xs) !important}.kozy-choice span{font-size:var(--kz-fs-xs);overflow-wrap:anywhere}.inventory-slot{min-height:78px}.mon-card .rarity-portrait{flex-shrink:0}

.egg-hatching{animation:egg-hatch 450ms ease-out forwards}.egg-result{animation:egg-reveal 400ms var(--ease-pop)}@keyframes egg-hatch{0%{transform:rotate(-6deg)}25%{transform:rotate(6deg);filter:brightness(1.5)}60%{transform:scale(1.12);filter:brightness(3);opacity:1}100%{transform:scale(1.2);opacity:0}}@keyframes egg-reveal{from{transform:perspective(400px) rotateY(70deg);opacity:0}to{transform:rotateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.egg-hatching,.egg-result{animation:none}}

.rarity-3{box-shadow:0 0 0 1px #a35cff88,0 0 9px #a35cff33!important}.rarity-4{box-shadow:0 0 0 1px #ffb80088,0 0 9px #ffb80033!important}.rarity-5{box-shadow:0 0 0 1px #ef676788,0 0 9px #ef676733!important}.rarity-4,.rarity-5{border-style:double!important}.rarity-3{border-radius:var(--kz-r-sm)!important}.rarity-portrait img{border-radius:inherit}

.campaign-map{position:relative;background:linear-gradient(#75966c22,#b9ce7d11),url(/assets/art/batalha/journey-emblem.png) center/cover;margin:16px 0;padding:12px;border:3px solid #8b5a33;border-radius:var(--kz-r-lg);display:grid;gap:8px}.campaign-map:before{content:'';position:absolute;top:24px;bottom:24px;left:35px;width:6px;background:#c8af75;border:1px solid #694c2b}.campaign-node{display:flex;position:relative;align-items:center;gap:12px;text-align:left;min-height:58px;background:var(--surface);color:var(--text);border:2px solid #8b5a33;border-radius:var(--kz-r-md);padding:7px 10px;box-shadow:0 2px #5a3820}.campaign-marker{display:grid;place-items:center;width:32px;height:32px;border:2px solid #b57d4a;border-radius:50%;background:#24443a}.campaign-marker .kanto-badge-sprite{transform:scale(1.3)}.campaign-node>span:last-child{display:grid;gap:3px}.campaign-node small{font-size:var(--kz-fs-xs)}.campaign-node.current{border-color:#ffb547;box-shadow:0 0 10px #ffb54733}.campaign-node.completed .campaign-marker{background:#78c85066}.campaign-node.locked{filter:saturate(.2);opacity:.65}.gym-preview-party{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.gym-preview-party>span{display:grid;justify-items:center;gap:4px}

.offline-results strong{color:#ffb547}.seasonal-note{padding:12px;border:2px solid #b57d4a;border-radius:var(--kz-r-md);background:#ff8a3d11}

.wallet-chip button{min-width:28px;min-height:44px;padding:0 6px;border:0;background:transparent;color:inherit;font-weight:900;font-size:var(--kz-fs-lg)}.trainer-pouch{flex-wrap:wrap}.kozy-solid svg{stroke:#5a382033;stroke-width:.4}.goal-row .outline{flex-shrink:0}

.wallet-chip button{min-width:44px}.wallet-chip.dollars>span{display:none}.trainer-pouch{gap:5px}.trainer-pouch .wallet-chip{gap:4px;padding:2px 5px}.trainer-xp{gap:3px;font-size:var(--kz-fs-xs)}

.nav button{position:relative}.nav-badge{position:absolute;top:2px;right:3px;display:grid;place-items:center;min-width:16px;height:16px;border-radius:var(--kz-r-md);padding:1px 3px;background:#e05a4f;color:#fff;font-size:var(--kz-fs-xs);box-shadow:0 1px #6d3027;border:1px solid #5a3820}

.trainer-avatar{position:relative;width:44px;height:44px;flex:none;padding:3px;border:0;border-radius:50%;background:conic-gradient(#ffb547 var(--trainer-progress),#4c6451 0);box-shadow:0 2px #38291b}.trainer-avatar img{width:38px;height:38px;object-fit:contain;object-position:center 25%;background:#e8d4a0;border-radius:50%}.trainer-avatar b{position:absolute;bottom:-3px;right:-3px;background:#b57d4a;border:2px solid #5a3820;border-radius:var(--kz-r-sm);padding:1px 4px;color:#fff6df;font-size:var(--kz-fs-xs)}.nickname-field{display:grid;gap:6px}.kozy-loader-mark{width:80px;height:80px}.boot small{max-width:290px;text-align:center;line-height:1.5}.rarity-0{--rarity-color:#a7b1ac}.rarity-1{--rarity-color:#3d8bff}.rarity-2{--rarity-color:#a35cff}.rarity-3{--rarity-color:#ffd34d}.rarity-4{--rarity-color:#ff9a35}.rarity-5{--rarity-color:#ef6767}.rarity-portrait{border-color:var(--rarity-color)!important}.rarity-3,.rarity-4,.rarity-5{box-shadow:0 0 8px color-mix(in srgb,var(--rarity-color) 35%,transparent)!important}.game-header .header-tools{gap:7px}.game-header .game-logo{font-size:var(--kz-fs-lg)}

.desktop-companion{display:none}.zone-summary{display:grid;gap:8px}.zone-summary small{line-height:1.5}.zone-actions{display:flex;flex-wrap:wrap;gap:8px}@media(min-width:1100px){.desktop-companion{display:block;position:fixed;left:calc(50% + 310px);top:80px;width:260px;padding:20px;background:var(--surface);border:5px solid var(--wood);box-shadow:0 6px var(--wood-shadow);border-radius:var(--kz-r-lg);color:var(--text)}.desktop-companion h2{font-family:var(--kz-font);font-weight:900}.desktop-companion p{font-size:var(--kz-fs-sm);line-height:1.6}}

.compact-hud{display:grid;grid-template-columns:44px 1fr 1fr;gap:5px;padding:6px 0;align-items:center}.compact-hud .header-tools,.compact-hud .trainer-pouch{display:contents}.compact-hud .trainer-avatar{grid-column:1;grid-row:1}.compact-hud .game-logo{position:absolute;left:5px;top:56px;font-size:var(--kz-fs-xs)}.compact-hud .game-logo svg{width:18px;height:18px}.compact-hud .game-logo>span{font-size:var(--kz-fs-xs) !important}.compact-hud .header-button,.compact-hud #music-dock{display:none}.compact-hud .wallet-chip{height:44px;min-height:44px;margin:0;justify-content:space-between}.compact-hud .wallet-chip.dollars{grid-column:2;grid-row:1}.compact-hud .wallet-chip.emeralds{grid-column:3;grid-row:1}.compact-hud .wallet-chip .ui-icon{width:16px;height:16px}.compact-hud .trainer-xp{grid-column:2/4;grid-row:2;justify-content:flex-end;min-height:18px;margin:0}.compact-hud [data-back-slot]{grid-column:1/-1}.compact-hud .wallet-chip button{padding:0;min-width:44px}.compact-hud .wallet-chip strong{font-size:var(--kz-fs-xs)}.kozy-empty p{color:var(--text-soft)!important}.kozy-choice-label{color:var(--text-soft)}.desktop-companion .goals-open{width:100%}.world-roster small{color:var(--text-soft)}

.scene-viewport{position:relative;overflow:hidden;border-radius:var(--kz-r-lg)}.scene-viewport .scene-wrap{transform-origin:center;will-change:transform;margin-bottom:0}.camera-tools{position:absolute;right:6px;bottom:6px;display:flex;gap:4px;z-index:8}.camera-tools button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:7px;background:#e6d9b8e8;border:2px solid #70503a;border-radius:var(--kz-r-md);color:#294234;box-shadow:0 2px #5a3820}.camera-tools .ui-icon{width:18px;height:18px}.market-filters label,.kozy-choice-label{color:var(--text-soft)!important}

.kozy-skeleton{height:120px;margin:12px 0;border-radius:var(--kz-r-md);background:linear-gradient(90deg,var(--surface-muted),var(--surface-raised),var(--surface-muted));background-size:200% 100%;animation:kozy-shimmer 1.5s infinite}@keyframes kozy-shimmer{to{background-position:-200% 0}}button,a.screen-back,[role=button]{min-height:44px}button.icon-button{min-width:44px}.inventory-slot.empty{background:var(--surface-muted);opacity:.5}.inventory-slot .inventory-new{background:#ffb547;box-shadow:0 0 8px #ffb547}.goal-row progress{transition:all .3s}@media(prefers-reduced-motion:reduce){.kozy-skeleton{animation:none}.scene-viewport .scene-wrap{transition:none}}

.inspect-sprite-pedestal{background:radial-gradient(ellipse at 50% 95%,color-mix(in srgb,var(--aura,#ffb547) 35%,transparent),transparent 65%)}.offer-stat-track{display:block;height:4px;width:100%;background:var(--surface-muted);border-radius:var(--kz-r-sm);overflow:hidden}.offer-stat-track b{display:block;height:100%;background:#78c850}.offer-attributes span{display:block}.combat-objective{margin-top:16px;border:3px solid var(--wood);border-radius:var(--kz-r-lg);padding:12px;background:var(--surface-raised)}.combat-objective progress{width:100%;display:block}.combat-objective small{display:block;margin:5px 0}.inventory-slot.locked{min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-style:solid;color:var(--text-soft)}.work-affinity{margin:12px 0;padding:10px;background:var(--surface-muted);border-radius:var(--kz-r-md)}.work-affinity p{margin:5px 0}

summary{min-height:44px;display:flex;align-items:center;gap:5px}.page-heading h1:before,.page-heading h1:after{height:7px;width:3px;top:-8px;background:var(--wood-shadow);border-radius:0}.inventory-slots:not([aria-busy]) .inventory-slot:not(.empty){animation:kozy-slot-in .2s var(--ease-pop) both}.inventory-slot:nth-child(4n+2){animation-delay:35ms!important}.inventory-slot:nth-child(4n+3){animation-delay:70ms!important}.inventory-slot:nth-child(4n){animation-delay:105ms!important}@keyframes kozy-slot-in{from{transform:translateY(4px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.inventory-slot{animation:none!important}}

.village-next-goal{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;margin-bottom:8px;text-align:left;border:2px solid var(--wood);border-radius:var(--kz-r-md);background:var(--surface-raised);color:var(--text);font-size:var(--kz-fs-xs)}.village-next-goal small{display:block;color:var(--text-soft)}.egg-result-dialog{background-image:repeating-conic-gradient(from 0deg at 50% 25%,color-mix(in srgb,var(--hatch-color,#ffb547) 14%,transparent) 0deg 15deg,transparent 15deg 30deg)!important}.egg-result-photo{filter:drop-shadow(0 0 12px var(--hatch-color,#ffb547))}

[data-screen=home] #page>.goals-open{margin-bottom:6px;font-size:var(--kz-fs-xs);min-height:44px;padding:5px 10px}.gathering-worker .home-worker-level{font-size:var(--kz-fs-xs)}.game-header.compact-hud{background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(6px)}

.route-stars{position:absolute;top:6px;right:8px;color:#ffb547;text-shadow:0 2px #5a3820;z-index:2}.route-drop-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px}.route-drop-preview>span{display:flex;align-items:center;gap:5px}.route-drop-preview img{width:24px;height:24px;object-fit:contain}.boss-reward-tiers p{display:flex;gap:12px;padding:6px;border-bottom:1px solid var(--wood)}

.inventory-bag,.world-card{border-image-source:url('/assets/ui/wood-frame.svg');border-image-slice:12;border-image-width:7px;border-image-repeat:stretch}.market-filters label{font-size:var(--kz-fs-xs)}.boot .wordmark{font-family:var(--kz-font);font-weight:900}
.alpha-auth{max-width:400px!important;margin:8vh auto!important;padding:28px!important}.alpha-auth .brand{max-width:150px!important;margin:0 auto 18px!important;display:block}.alpha-auth h1{font-size:var(--kz-fs-xl);text-align:center}.alpha-auth>p,.alpha-auth>small{display:block;text-align:center;margin:12px 0 24px}.alpha-pill{display:block;text-align:center;font-size:var(--kz-fs-xs);letter-spacing:2px;color:#8eae83;margin:12px}.alpha-auth-link{display:block;text-align:center;margin-top:18px;color:inherit}
.alpha-auth .field{color:#435642!important;font-weight:600}.alpha-auth input{background:#fffdf6!important;border:1px solid #b6b9a4!important;color:#203934!important;min-height:44px}.alpha-auth input:focus{outline:2px solid #799970;outline-offset:2px}html[data-theme=dark] .alpha-auth .field{color:#d9e5dd!important}html[data-theme=dark] .alpha-auth input{background:#172a2d!important;color:#f2eedf!important;border-color:#5d7371!important}
.welcome-tutorial{display:flex;align-items:center;gap:16px;margin:0 0 16px;padding:18px;background:#fff7dd;border:2px solid #c3ab74;border-radius:var(--kz-r-lg);box-shadow:0 3px 0 #a48a5f30}.welcome-tutorial-icon{flex:0 0 54px}.welcome-tutorial-icon img{width:54px;height:64px}.welcome-tutorial h2{font-size:var(--kz-fs-md);margin:3px 0 6px;color:#294c3a}.welcome-tutorial p{font-size:var(--kz-fs-xs);line-height:1.5;margin:0;color:#56634f}.welcome-step{font-size:var(--kz-fs-xs);text-transform:uppercase;letter-spacing:1px;color:#7c6b43;font-weight:700}.welcome-dots{display:flex;gap:5px;margin-top:9px}.welcome-dots i{width:20px;height:5px;border-radius:var(--kz-r-sm);background:#d8d5c1}.welcome-dots .filled{background:#709c60}.welcome-buff{display:flex;align-items:center;gap:10px;padding:11px 14px;margin-bottom:14px;border:1px solid #93b681;border-radius:var(--kz-r-md);background:#e1efd6;color:#32513b}.welcome-buff>span{font-size:var(--kz-fs-lg);color:#719b4d}.welcome-buff strong{display:block;font-size:var(--kz-fs-xs)}.welcome-buff small{font-size:var(--kz-fs-xs);display:block;margin-top:3px}html[data-theme=dark] .welcome-tutorial{background:#23382f;border-color:#6a805d}html[data-theme=dark] .welcome-tutorial h2{color:#f3e8c7}html[data-theme=dark] .welcome-tutorial p{color:#c5d2bf}html[data-theme=dark] .welcome-step{color:#d9bd82}html[data-theme=dark] .welcome-buff{background:#233d30;color:#d6e9cc;border-color:#587c56}

/* Rarity schema 6: borders and glows share the canonical palette. */
.rarity-0{--rarity-color:#a7b1ac;box-shadow:0 0 8px #a7b1ac55!important;border-style:solid!important}
.rarity-1{--rarity-color:#60b85b;box-shadow:0 0 8px #60b85b55!important;border-style:solid!important}
.rarity-2{--rarity-color:#3d8bff;box-shadow:0 0 8px #3d8bff55!important;border-style:solid!important}
.rarity-3{--rarity-color:#a35cff;box-shadow:0 0 8px #a35cff55!important;border-style:solid!important}
.rarity-4{--rarity-color:#ff9a35;box-shadow:0 0 8px #ff9a3555!important;border-style:solid!important}
.rarity-5{--rarity-color:#ffd34d;box-shadow:0 0 8px #ffd34d55!important;border-style:solid!important}
.rarity-6{--rarity-color:#ef6767;box-shadow:0 0 8px #ef676755!important;border-style:solid!important}

.region-soon img{filter:brightness(.18) saturate(0)}
