:root{--bg:#080b08;--wood:#2d170b;--wood2:#4a2812;--wood3:#70431e;--gold:#f0c35b;--gold2:#b77a29;--ink:#1a0d07;--cream:#f7e4a1;--parchment:#d3ae68;--blue:#1d5071;--green:#3f7d2c;--red:#8f2f24}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#050705;color:var(--cream);font-family:Georgia,"Times New Roman",serif}body{overflow-x:hidden}.hidden{display:none!important}button{font:inherit}.screen{min-height:100vh}.screen-center{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,#22391e,#050705 70%)}.wood-frame,.wood-panel,.game-window{border:4px solid #120a05;box-shadow:inset 0 0 0 2px #8b572d,inset 0 0 0 5px #2a160b,0 8px 24px #000b;background:linear-gradient(#3b210f,#1d1008)}.wood-panel{position:relative}.wood-panel:after,.wood-frame:after,.game-window:after{content:"";position:absolute;inset:8px;border:1px solid #a06a3490;pointer-events:none}.landing-card{width:min(1100px,94vw);display:grid;grid-template-columns:1.45fr .55fr;overflow:hidden;position:relative}.landing-art{min-height:620px;background:url('/assets/village-map.png') center/cover}.landing-copy{padding:42px 32px;background:linear-gradient(#dfc084,#b88948);color:#281509;display:flex;flex-direction:column;justify-content:center;text-align:center}.brand-mini{display:flex;align-items:center;justify-content:center;gap:12px;color:#4d260e;font-size:32px}.crest-mini{background:#123c63;color:#ffd66b;border:4px solid #9a682c;padding:10px 14px}.landing-copy h1{font-size:34px}.landing-copy p{line-height:1.6}.game-button,.small-button,.icon-button,.realm-button{border:3px solid #160b05;background:linear-gradient(#70441f,#3a1e0d);color:#ffe5a2;box-shadow:inset 0 0 0 2px #9e6834,3px 3px 0 #0c0603;font-weight:700;cursor:pointer}.game-button{padding:12px 18px}.game-button.primary{background:linear-gradient(#356b8e,#173d5a)}.small-button{padding:7px 10px}.icon-button{width:46px;height:42px}.logout{background:linear-gradient(#8f3b2a,#592018)}button:hover{filter:brightness(1.14)}.creator-shell{width:min(1080px,94vw);display:grid;grid-template-columns:420px 1fr;position:relative}.creator-preview{min-height:650px;background:#21140c url('/assets/hero-portrait.png') center/contain no-repeat}.creator-form{padding:30px;background:linear-gradient(#e5c985,#b98a4d);color:#281509}.creator-step{display:none}.creator-step.active{display:block}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.choice{padding:18px;border:4px solid #5a3216;background:#cda967;cursor:pointer}.choice.active{background:#397c54;color:white}.creator-actions{display:flex;justify-content:space-between;margin-top:28px}.game-shell{min-height:100vh;background:#070807 url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="8" height="8"%3E%3Cpath d="M0 7h8" stroke="%23171913"/%3E%3C/svg%3E');display:grid;grid-template-rows:auto 1fr auto}.topbar{display:grid;grid-template-columns:260px minmax(280px,360px) minmax(430px,1fr) 370px;gap:8px;padding:6px;background:linear-gradient(#23301f,#11170f);border-bottom:4px solid #70431e;position:relative;z-index:10}.brand-block{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,#18231a,#10130f);border:3px solid #3f2a15;padding:5px 12px}.crest{width:58px;height:74px;display:grid;place-items:center;background:#123a61;color:#ffd66a;border:4px solid #a66f2e;clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);font-size:30px;font-weight:900}.brand-text{font-size:28px;line-height:.95;font-weight:900;color:#efc05b;text-shadow:2px 2px #311507}.brand-text span{font-size:33px}.player-top,.resources,.top-actions{padding:9px;display:flex;align-items:center;position:relative;min-height:86px}.top-avatar{width:62px;height:62px;object-fit:cover;border:3px solid #2a160b;background:#cfad70}.player-top-copy{display:flex;flex-direction:column;gap:2px;margin-left:10px;min-width:0}.player-top-copy strong{font-size:20px}.player-top-copy span{font-size:14px}.player-top-copy small{color:#ffe070}.mini-progress{height:11px;background:#160d08;border:2px solid #79522b;min-width:140px}.mini-progress span{display:block;height:100%;background:linear-gradient(#61a844,#2d6c29)}.resources{display:grid;grid-template-columns:repeat(4,1fr);padding:0}.resource{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #5b3a1e}.resource:last-child{border-right:0}.resource span{font-size:15px}.resource strong{font-size:28px;margin-top:5px}.top-actions{justify-content:center;gap:10px}.realm-button{height:44px;padding:0 18px;flex:1}.main-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 300px;gap:8px;padding:8px;min-height:0}.left-column,.right-column{padding:8px;position:relative;overflow:hidden}.panel-title{padding:11px;text-align:center;border:3px solid #160b05;box-shadow:inset 0 0 0 2px #9f6730;background:linear-gradient(#563017,#2a160b);font-weight:900;font-size:19px}.hero-card{text-align:center;padding:10px}.hero-card img{width:100%;height:240px;object-fit:contain;background:#20130c;border:3px solid #190c06}.hero-card strong{display:block;font-size:24px;margin-top:8px}.hero-card span{display:block}.xp-bar{height:14px;background:#1a100a;border:3px solid #6e4826;margin:10px 0 3px}.xp-bar span{display:block;height:100%;background:linear-gradient(#6aad46,#2f6d27)}.side-nav{display:grid;gap:4px;margin-top:10px}.side-nav button{height:48px;text-align:left;padding:0 16px;border:3px solid #170b05;background:linear-gradient(#42230f,#241208);color:#f4d98a;font-weight:900;font-size:18px;cursor:pointer}.side-nav button.active{background:linear-gradient(#2d6587,#173d59);box-shadow:inset 0 0 0 2px #75a8c4}.side-nav button span{margin-left:8px}.ranking{margin-top:10px;border:3px solid #160b05;background:#15100b;padding:10px;text-align:center}.small-title{color:#f3cf61;font-weight:900;margin-bottom:8px}.ranking ol{padding:0 0 0 24px;margin:0;text-align:left}.ranking li{display:flex;justify-content:space-between;padding:4px 0}.ranking .small-button{margin-top:8px}.center-column{min-width:0}.view{display:none;height:100%}.view.active{display:block}.village-scene{height:100%;min-height:650px;position:relative;overflow:hidden;background:#2d502e}.village-image{width:100%;height:100%;object-fit:cover;display:block}.map-hotspot{position:absolute;border:0;background:transparent;cursor:pointer}.map-hotspot:hover{outline:4px solid #ffd96a99;background:#fff1}.guild{left:31%;top:9%;width:29%;height:38%}.forge{left:2%;top:24%;width:31%;height:45%}.market{right:0;top:35%;width:34%;height:43%}.quests{left:6%;bottom:0;width:25%;height:18%}.tavern{left:33%;bottom:0;width:29%;height:20%}.dungeon{right:2%;bottom:0;width:29%;height:22%}.game-window{height:100%;min-height:650px;position:relative;padding:16px;background:linear-gradient(#3a2110,#1b1008)}.window-title{text-align:center;font-size:24px;font-weight:900;padding:10px;background:linear-gradient(#70431f,#3d210f);border:3px solid #160b05;margin-bottom:14px}.explore-map{height:540px;position:relative;background:radial-gradient(circle at 30% 35%,#3f7c4a 0 12%,transparent 13%),radial-gradient(circle at 70% 25%,#777f88 0 13%,transparent 14%),radial-gradient(circle at 57% 60%,#455d43 0 12%,transparent 13%),radial-gradient(circle at 22% 75%,#b28743 0 14%,transparent 15%),radial-gradient(circle at 52% 84%,#7d2d1c 0 12%,transparent 13%),radial-gradient(circle at 84% 72%,#4a3a61 0 11%,transparent 12%),linear-gradient(#326f8a,#17455b);border:5px solid #160b05;overflow:hidden}.zone{position:absolute;padding:9px 12px;border:3px solid #160b05;background:linear-gradient(#6d431f,#351b0d);color:#ffe3a0;box-shadow:3px 3px #0c0603;cursor:pointer}.zone small{display:block}.forest{left:10%;top:24%}.mine{left:62%;top:17%}.swamp{left:48%;top:48%}.desert{left:10%;top:66%}.volcano{left:46%;top:73%}.dungeon-zone{right:5%;top:65%}.energy-line{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-top:10px}.inventory-layout{display:grid;grid-template-columns:42% 58%;gap:14px}.parchment{background:linear-gradient(#d9bd7d,#b7864f);border:5px solid #5a3015;color:#2b160a;box-shadow:inset 0 0 0 3px #efd79e;padding:14px}.parchment h3{text-align:center;margin-top:0}.equipment-panel{position:relative;min-height:520px}.equipment-grid{display:grid;grid-template-columns:repeat(2,64px);justify-content:space-between;gap:16px}.equipment-grid button,.inventory-grid button{aspect-ratio:1;background:#5d3b20;border:4px solid #2b160a;color:white;font-size:28px}.inventory-hero{position:absolute;left:50%;top:65px;transform:translateX(-50%);width:180px;height:360px;object-fit:contain}.inventory-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.inventory-grid button{position:relative}.inventory-grid button small{position:absolute;right:3px;bottom:2px;font-size:12px}.capacity{text-align:right;margin-top:10px;font-weight:900}.merchant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.merchant{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;background:linear-gradient(#73411e,#3c210f);border:4px solid #160b05;padding:12px}.merchant-avatar{font-size:44px}.merchant div:nth-child(2){display:flex;flex-direction:column}.merchant span{color:#e7c477}.market-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px;border:4px solid #160b05;background:#2b180c}.profile-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:14px}.profile-main{text-align:center}.profile-main img{width:220px;height:330px;object-fit:contain;background:#2b170d}.stats p{display:flex;justify-content:space-between;border-bottom:1px solid #6e4826;padding:9px 0}.profile-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.profile-tabs button{padding:16px;background:linear-gradient(#6e421f,#38200f);border:4px solid #160b05;color:#ffe1a0;display:flex;flex-direction:column;gap:4px;align-items:center}.right-column{display:flex;flex-direction:column;gap:10px}.event-card{border:3px solid #160b05;background:linear-gradient(#2b180e,#170e08);padding:11px;position:relative;overflow:hidden}.event-card h3{color:#f1cf62;margin:0 0 8px;text-align:center}.event-card.legendary,.event-card.boss{display:grid;grid-template-columns:100px 1fr;gap:10px}.event-card img{width:100px;height:100px;object-fit:cover;border:2px solid #503016}.event-card time{color:#f2cb54;font-weight:900}.event-card.legendary time{grid-column:1/3;text-align:center;border-top:1px solid #69421f;padding-top:6px}.weather-row{display:flex;align-items:center;gap:14px}.weather-icon{font-size:48px}.weather-row div{display:flex;flex-direction:column}.weather-row strong{font-size:28px}.bottom-bar{display:grid;grid-template-columns:430px 1fr 300px;gap:8px;padding:6px;background:linear-gradient(#2a1a0e,#14100b);border-top:4px solid #70431e}.chat-box,.clock-box{border:3px solid #160b05;background:#15100b;padding:10px 16px;display:flex;flex-direction:column;justify-content:center}.chat-box b{color:#efc85b}.chat-box span strong{color:#76b849}.bottom-nav{display:grid;grid-template-columns:repeat(6,1fr)}.bottom-nav button{background:linear-gradient(#4f2d15,#28150b);border:3px solid #160b05;color:#f2d78d;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.clock-box{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.clock-box span{font-size:30px}.clock-box strong{font-size:28px}.modal{position:fixed;inset:0;background:#000c;display:grid;place-items:center;z-index:100;padding:24px}.modal-window{width:min(920px,94vw);max-height:88vh;overflow:auto;position:relative;padding:24px;background:linear-gradient(#3c2110,#1d1008)}.modal-close{position:absolute;right:10px;top:10px;width:42px;height:42px;border:3px solid #160b05;background:#7d2d20;color:white;z-index:2}.modal-content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.modal-card{border:4px solid #160b05;background:linear-gradient(#70431f,#39200f);padding:16px}.modal-card h3{color:#f0c65d}.toast{position:fixed;right:18px;bottom:90px;background:#29170c;border:4px solid #9f6730;padding:13px 18px;z-index:120;color:#ffe0a0;font-weight:900}@media(max-width:1350px){.topbar{grid-template-columns:230px 310px 1fr 300px}.main-grid{grid-template-columns:220px 1fr 270px}.bottom-bar{grid-template-columns:340px 1fr 250px}.brand-text{font-size:23px}.brand-text span{font-size:28px}}@media(max-width:1050px){body{overflow:auto}.topbar{grid-template-columns:1fr 1fr}.brand-block,.player-top,.resources,.top-actions{min-height:74px}.main-grid{grid-template-columns:210px 1fr}.right-column{grid-column:1/3;display:grid;grid-template-columns:repeat(4,1fr)}.right-column .panel-title{grid-column:1/5}.bottom-bar{grid-template-columns:1fr}.bottom-nav{min-height:60px}.village-scene{min-height:560px}}@media(max-width:760px){.topbar{display:block}.brand-block,.player-top,.resources,.top-actions{margin-bottom:6px}.resources{min-height:80px}.main-grid{display:block}.left-column{margin-bottom:8px}.hero-card{display:none}.side-nav{grid-template-columns:repeat(5,1fr)}.side-nav button{font-size:0;text-align:center;padding:0}.side-nav button span{display:none}.ranking{display:none}.right-column{display:block}.event-card{margin-bottom:8px}.bottom-nav{grid-template-columns:repeat(3,1fr)}.bottom-nav button{min-height:52px}.bottom-nav span{display:none}.village-scene,.game-window{min-height:470px}.inventory-layout,.profile-layout,.merchant-grid{grid-template-columns:1fr}.landing-card,.creator-shell{grid-template-columns:1fr}.landing-art,.creator-preview{min-height:320px}.bottom-bar{display:block}.chat-box,.bottom-nav,.clock-box{margin-bottom:6px}}

/* ==========================================================
   V5 — INTERFACE OFFICIELLE : 100 % DANS L'ÉCRAN, SANS SCROLL
   ========================================================== */
html, body { width: 100%; height: 100%; }
body { overflow: hidden; }
.game-shell {
  height: 100dvh;
  min-height: 0;
  display: grid;
  grid-template-rows: clamp(72px, 9.2vh, 98px) minmax(0, 1fr) clamp(58px, 7.2vh, 78px);
  overflow: hidden;
}
.topbar {
  min-height: 0;
  height: 100%;
  padding: 5px;
  gap: 6px;
  grid-template-columns: clamp(210px, 15vw, 280px) clamp(280px, 20vw, 380px) minmax(430px, 1fr) clamp(265px, 18vw, 330px);
}
.brand-block, .player-top, .resources, .top-actions { min-height: 0; height: 100%; }
.brand-block { padding: 5px 10px; }
.crest { height: calc(100% - 2px); width: clamp(48px, 4vw, 66px); font-size: clamp(25px, 2.1vw, 38px); }
.brand-text { font-size: clamp(20px, 1.65vw, 31px); line-height: .84; }
.brand-text span { font-size: clamp(24px, 1.9vw, 35px); }
.player-top { padding: 5px 8px; }
.top-avatar { width: clamp(48px, 4.2vw, 65px); height: clamp(48px, 4.2vw, 65px); }
.player-top-copy { gap: 0; }
.player-top-copy strong { font-size: clamp(16px, 1.1vw, 21px); }
.player-top-copy span, .player-top-copy small { font-size: clamp(11px, .75vw, 14px); }
.mini-progress { height: 9px; min-width: 110px; }
.resource span { font-size: clamp(11px, .78vw, 15px); }
.resource strong { font-size: clamp(20px, 1.75vw, 30px); margin-top: 1px; }
.realm-button { height: clamp(34px, 4.4vh, 45px); padding: 0 10px; font-size: clamp(12px, .9vw, 16px); }
.icon-button { width: clamp(35px, 2.7vw, 46px); height: clamp(35px, 4.4vh, 46px); }

.main-grid {
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 5px;
  gap: 6px;
  grid-template-columns: clamp(205px, 14.5vw, 270px) minmax(0, 1fr) clamp(245px, 17.5vw, 320px);
}
.left-column, .right-column, .center-column { min-height: 0; height: 100%; overflow: hidden; }
.left-column { padding: 6px; display: grid; grid-template-rows: auto minmax(180px, 38%) auto minmax(116px, 1fr); gap: 5px; }
.panel-title { padding: clamp(6px, .75vh, 10px); font-size: clamp(15px, 1.05vw, 20px); }
.hero-card { min-height: 0; padding: 5px; overflow: hidden; }
.hero-card img { height: min(22vh, 220px); min-height: 120px; }
.hero-card strong { font-size: clamp(18px, 1.4vw, 25px); margin-top: 3px; }
.hero-card span, .hero-card small { font-size: clamp(11px, .75vw, 14px); }
.xp-bar { height: 11px; margin: 5px 0 1px; }
.side-nav { gap: 2px; margin-top: 0; }
.side-nav button { height: clamp(34px, 4.3vh, 47px); padding: 0 10px; font-size: clamp(14px, 1vw, 18px); }
.ranking { margin-top: 0; padding: 5px 8px; overflow: hidden; }
.small-title { font-size: clamp(11px, .78vw, 14px); margin-bottom: 3px; }
.ranking li { padding: 1px 0; font-size: clamp(11px, .75vw, 14px); }
.ranking .small-button { margin-top: 3px; padding: 4px 8px; }
.center-column, .view, #view-village { height: 100%; min-height: 0; }
.village-scene { height: 100%; min-height: 0; width: 100%; }
.village-image { width: 100%; height: 100%; object-fit: cover; object-position: center center; image-rendering: auto; }
/* Hotspots suivent les plaques présentes dans le nouveau décor, sans boutons ajoutés. */
.guild { left: 35%; top: 16%; width: 29%; height: 29%; }
.forge { left: 5%; top: 26%; width: 31%; height: 31%; }
.market { right: 4%; top: 31%; width: 31%; height: 34%; }
.quests { left: 4%; bottom: 4%; width: 26%; height: 22%; }
.tavern { left: 34%; bottom: 2%; width: 28%; height: 22%; }
.dungeon { right: 2%; bottom: 3%; width: 28%; height: 27%; }
.map-hotspot:hover { outline: 2px solid #ffd96a99; background: #ffd96a0d; }
.right-column { padding: 6px; gap: 5px; display: grid; grid-template-rows: auto 1.15fr .85fr 1fr .7fr; }
.event-card { min-height: 0; padding: 7px; overflow: hidden; }
.event-card h3 { font-size: clamp(13px, .95vw, 18px); margin-bottom: 3px; }
.event-card p, .event-card time { font-size: clamp(10px, .72vw, 14px); margin: 2px 0; }
.event-card.legendary, .event-card.boss { grid-template-columns: clamp(62px, 5.5vw, 95px) 1fr; gap: 7px; }
.event-card img { width: 100%; height: 100%; max-height: 100px; object-fit: cover; }
.weather-icon { font-size: clamp(30px, 3vw, 50px); }
.weather-row strong { font-size: clamp(19px, 1.6vw, 29px); }

.bottom-bar {
  height: 100%;
  min-height: 0;
  padding: 4px;
  gap: 5px;
  grid-template-columns: clamp(310px, 27vw, 470px) minmax(430px, 1fr) clamp(235px, 19vw, 330px);
  overflow: hidden;
}
.chat-box, .clock-box { padding: 4px 10px; min-height: 0; font-size: clamp(10px, .75vw, 14px); }
.bottom-nav { min-height: 0; }
.bottom-nav button { min-width: 0; font-size: clamp(10px, .75vw, 14px); padding: 2px 4px; }
.clock-box span { font-size: clamp(20px, 2vw, 31px); }
.clock-box strong { font-size: clamp(18px, 1.7vw, 29px); }
.game-window { height: 100%; min-height: 0; overflow: auto; }

@media (min-width: 1051px) {
  body { overflow: hidden !important; }
}
@media (max-height: 800px) and (min-width: 1051px) {
  .game-shell { grid-template-rows: 70px minmax(0,1fr) 56px; }
  .hero-card img { height: 15vh; min-height: 95px; }
  .ranking li:nth-child(n+4) { display: none; }
  .panel-title { padding: 5px; }
  .side-nav button { height: 34px; }
}

/* ==========================================================
   V6 — ROYAUME VIVANT
   ========================================================== */
.village-scene{isolation:isolate;perspective:1100px;cursor:crosshair}
.village-image{transition:transform .35s ease,filter .8s ease;will-change:transform,filter}
.scene-parallax,.daylight-filter,.scene-vignette,.weather-fx,.water-glints,.forge-smoke,.fireflies{position:absolute;inset:0;pointer-events:none}
.scene-parallax{z-index:2;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,231,147,.055),transparent 31%);mix-blend-mode:screen;transition:background .15s linear}
.daylight-filter{z-index:7;transition:background 2s ease,opacity 2s ease;mix-blend-mode:multiply}
.scene-vignette{z-index:8;box-shadow:inset 0 0 70px 18px rgba(0,0,0,.42)}
.village-scene.phase-dawn .daylight-filter{background:linear-gradient(115deg,rgba(255,151,79,.22),rgba(64,91,133,.12))}
.village-scene.phase-day .daylight-filter{background:rgba(255,225,146,.025)}
.village-scene.phase-dusk .daylight-filter{background:linear-gradient(120deg,rgba(242,111,53,.24),rgba(48,38,83,.28))}
.village-scene.phase-night .daylight-filter{background:rgba(17,32,77,.46)}
.village-scene.phase-night .village-image{filter:saturate(.86) brightness(.78) contrast(1.08)}
.village-scene.phase-dusk .village-image{filter:saturate(1.08) brightness(.91)}
.water-glints{z-index:3;overflow:hidden}
.water-glints i{position:absolute;width:8%;height:3px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(198,240,255,.88),transparent);filter:blur(.3px);animation:waterRun 3.6s linear infinite;opacity:.8}
.water-glints i:nth-child(1){left:58%;top:21%;animation-delay:-.5s}.water-glints i:nth-child(2){left:56%;top:43%;animation-delay:-1.7s}.water-glints i:nth-child(3){left:54%;top:66%;animation-delay:-2.4s}.water-glints i:nth-child(4){left:57%;top:82%;animation-delay:-3.1s}
@keyframes waterRun{0%{transform:translate(-18px,-12px) rotate(-66deg);opacity:0}35%{opacity:.9}100%{transform:translate(50px,55px) rotate(-66deg);opacity:0}}
.forge-smoke{z-index:4}
.forge-smoke i{position:absolute;left:21%;top:24%;width:22px;height:22px;border-radius:50%;background:rgba(225,225,210,.5);filter:blur(5px);animation:smokeRise 4.8s ease-in-out infinite}
.forge-smoke i:nth-child(2){animation-delay:-1.6s}.forge-smoke i:nth-child(3){animation-delay:-3.2s}
@keyframes smokeRise{0%{transform:translate(0,15px) scale(.45);opacity:0}25%{opacity:.65}100%{transform:translate(34px,-110px) scale(2.3);opacity:0}}
.fireflies{z-index:6;opacity:0;transition:opacity 1.2s ease}.phase-night .fireflies,.phase-dusk .fireflies{opacity:1}
.firefly{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffe56f;box-shadow:0 0 8px 3px rgba(255,226,75,.65);animation:fly var(--dur) ease-in-out infinite alternate}
@keyframes fly{to{transform:translate(var(--dx),var(--dy)) scale(.5);opacity:.35}}
.weather-fx{z-index:6;overflow:hidden}.rain-drop{position:absolute;top:-8%;width:1px;height:24px;background:linear-gradient(transparent,rgba(188,226,255,.72));animation:rain .8s linear infinite}
@keyframes rain{to{transform:translate(-45px,115vh)}}
.player-sprite{position:absolute;z-index:9;left:48%;top:49%;width:44px;height:54px;transform:translate(-50%,-50%);transition:left .85s cubic-bezier(.22,.72,.22,1),top .85s cubic-bezier(.22,.72,.22,1);pointer-events:none;filter:drop-shadow(0 5px 4px #000a)}
.player-sprite img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated;border:2px solid #e0b45e;background:#1c3150;border-radius:5px;animation:heroIdle 1.6s ease-in-out infinite}
.player-sprite span{position:absolute;left:50%;bottom:-7px;width:34px;height:10px;transform:translateX(-50%);background:rgba(0,0,0,.46);filter:blur(4px);border-radius:50%;z-index:-1}
.player-sprite.walking img{animation:heroWalk .22s steps(2) infinite}
@keyframes heroIdle{50%{transform:translateY(-2px)}}@keyframes heroWalk{50%{transform:translateY(-4px) rotate(-2deg)}}
.map-hotspot{z-index:10;border-radius:18px;transition:box-shadow .18s ease,background .18s ease}
.map-hotspot:hover{outline:0!important;background:radial-gradient(circle,rgba(255,218,91,.14),transparent 67%)!important;box-shadow:inset 0 0 25px rgba(255,210,71,.28),0 0 20px rgba(255,197,48,.18)}
.resource strong,.xp-bar span,.mini-progress span{transition:width .8s ease,transform .25s ease,color .25s ease}
.resource.pulse strong{animation:resourcePulse .55s ease}@keyframes resourcePulse{50%{transform:scale(1.22);color:#fff2a6;text-shadow:0 0 13px #ffc836}}
.event-card{transition:transform .2s ease,filter .2s ease}.event-card:hover{transform:translateY(-2px);filter:brightness(1.08)}
.game-window.active{animation:windowIn .25s ease both}@keyframes windowIn{from{opacity:0;transform:translateY(7px) scale(.993)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.game-select{width:100%;padding:10px;border:3px solid #160b05;background:#2b180e;color:#ffe4a1;font:inherit}.reduced-motion *{animation-play-state:paused!important;transition:none!important}.reduced-motion .player-sprite img{animation:none!important}

/* ===== V7 — scène réellement composée en couches ===== */
.village-scene{isolation:isolate;perspective:900px;overflow:hidden;background:#17210f}
.village-image{z-index:1;filter:saturate(1.06) contrast(1.03);transform-origin:center;will-change:transform}
.scene-parallax{z-index:2;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,220,130,.07),transparent 28%)}
.player-sprite{position:absolute;left:50%;top:49%;width:clamp(46px,4.2vw,76px);height:clamp(72px,7vw,118px);transform:translate(-50%,-86%);z-index:35;transition:left .78s cubic-bezier(.22,.8,.24,1),top .78s cubic-bezier(.22,.8,.24,1);pointer-events:none;filter:drop-shadow(0 8px 5px rgba(0,0,0,.55));will-change:left,top,transform}
.player-sprite img{position:absolute;left:50%;bottom:9%;width:100%;height:auto;transform:translateX(-50%);image-rendering:pixelated;z-index:3;animation:playerIdle 1.35s steps(2,end) infinite;transform-origin:50% 100%}
.player-sprite.facing-left img{transform:translateX(-50%) scaleX(-1)}
.player-sprite.walking img{animation:playerWalk .22s steps(2,end) infinite}
.player-shadow{position:absolute;left:50%;bottom:4%;width:55%;height:10%;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.42);filter:blur(2px);z-index:1;animation:shadowPulse 1.35s ease-in-out infinite}
.selection-ring{position:absolute;left:50%;bottom:0;width:72%;aspect-ratio:2.1/1;transform:translateX(-50%);border:2px solid rgba(88,205,255,.85);border-radius:50%;box-shadow:0 0 8px #38bdf8, inset 0 0 8px rgba(56,189,248,.8);z-index:2;animation:ringPulse 1.6s ease-in-out infinite}
.player-nameplate{position:absolute;left:50%;bottom:95%;transform:translateX(-50%) perspective(180px) rotateX(-7deg);display:flex;gap:5px;align-items:center;white-space:nowrap;padding:3px 8px;border:2px solid #9b6a2d;background:linear-gradient(#2b160a,#130904);box-shadow:0 3px 0 #080402,0 6px 10px rgba(0,0,0,.5);color:#ffe19a;font-size:clamp(9px,.7vw,13px);z-index:5}
.player-nameplate small{color:#87d7ff}
@keyframes playerIdle{0%,100%{translate:0 0}50%{translate:0 -2px}}
@keyframes playerWalk{0%{translate:-1px 0;rotate:-1deg}50%{translate:1px -4px;rotate:1deg}100%{translate:-1px 0;rotate:-1deg}}
@keyframes shadowPulse{50%{transform:translateX(-50%) scale(.88);opacity:.72}}
@keyframes ringPulse{50%{opacity:.45;transform:translateX(-50%) scale(.92)}}

.map-hotspot.world-label{position:absolute;z-index:28;display:grid!important;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;justify-content:center;column-gap:6px;min-width:120px;height:auto!important;padding:7px 14px 6px;border:2px solid #99672b!important;border-radius:2px;background:linear-gradient(180deg,#563015 0%,#2b160b 47%,#170b06 100%)!important;color:#ffe4a2;box-shadow:inset 0 0 0 2px #1b0b04,inset 0 0 0 3px #c29149,0 5px 0 #0b0502,0 9px 16px rgba(0,0,0,.62);transform:translate(-50%,-50%) perspective(280px) rotateX(9deg);transform-origin:50% 100%;opacity:1!important;cursor:pointer;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;font-family:Georgia,serif;text-shadow:0 2px 1px #000}
.map-hotspot.world-label span{grid-row:1/3;font-size:17px}.map-hotspot.world-label b{font-size:clamp(12px,1vw,18px);letter-spacing:.04em}.map-hotspot.world-label small{font-size:10px;color:#d9b66d}
.map-hotspot.world-label:hover,.map-hotspot.world-label:focus-visible{transform:translate(-50%,-55%) perspective(280px) rotateX(5deg) scale(1.06);filter:brightness(1.22);box-shadow:inset 0 0 0 2px #1b0b04,inset 0 0 0 3px #e9ba65,0 7px 0 #0b0502,0 13px 22px rgba(0,0,0,.72),0 0 18px rgba(255,186,74,.35)}
.map-hotspot.guild{left:51.6%!important;top:31.8%!important}.map-hotspot.forge{left:19.7%!important;top:53.3%!important}.map-hotspot.market{left:79.3%!important;top:57.4%!important}.map-hotspot.quests{left:12.7%!important;top:82.2%!important}.map-hotspot.tavern{left:39.8%!important;top:84.4%!important}.map-hotspot.dungeon{left:86.8%!important;top:84.9%!important}

.building-fx{position:absolute;z-index:9;pointer-events:none}.building-fx i{position:absolute;display:block}
.forge-fx{left:11%;top:27%;width:23%;height:28%}.forge-fx i:nth-child(1){left:43%;top:50%;width:24%;height:23%;border-radius:50%;background:radial-gradient(circle,#fff4a8 0,#ff8a1c 22%,rgba(255,55,0,.7) 48%,transparent 72%);filter:blur(2px);animation:fireBreath .55s ease-in-out infinite alternate}.forge-fx i:nth-child(2),.forge-fx i:nth-child(3){left:53%;top:51%;width:3px;height:3px;border-radius:50%;background:#ffd36b;box-shadow:0 0 6px #ff7b00;animation:sparkUp 1.6s linear infinite}.forge-fx i:nth-child(3){animation-delay:.7s;left:59%}
.guild-fx{left:39%;top:5%;width:27%;height:30%}.guild-fx i{top:58%;width:7%;height:10%;background:rgba(255,173,62,.52);filter:blur(3px);box-shadow:0 0 15px #ff8a00;animation:windowGlow 2s ease-in-out infinite}.guild-fx i:first-child{left:27%}.guild-fx i:last-child{right:25%;animation-delay:1s}
.market-fx{left:69%;top:24%;width:27%;height:34%}.market-fx i{left:12%;top:20%;width:66%;height:20%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);transform:skewY(-8deg);animation:awningShimmer 3.5s ease-in-out infinite}
.bank-fx{right:1%;top:1%;width:17%;height:24%}.bank-fx i:first-child{left:45%;top:1%;width:15%;height:34%;background:rgba(71,209,255,.5);filter:blur(6px);box-shadow:0 0 25px #00bfff;animation:crystalPulse 1.8s ease-in-out infinite}.bank-fx i:last-child{left:47%;top:5%;width:10%;height:22%;background:#9cecff;clip-path:polygon(50% 0,100% 30%,82% 100%,18% 100%,0 30%);opacity:.35;animation:crystalPulse 1.8s ease-in-out infinite reverse}
.tavern-fx{left:29%;top:59%;width:28%;height:31%}.tavern-fx i{top:39%;width:5%;height:7%;background:rgba(255,174,62,.5);filter:blur(2px);box-shadow:0 0 10px #ff8a00;animation:windowGlow 2.4s ease-in-out infinite}.tavern-fx i:first-child{left:43%}.tavern-fx i:last-child{left:59%;animation-delay:1.1s}
.dungeon-fx{right:1%;bottom:5%;width:24%;height:36%}.dungeon-fx i:first-child{left:47%;bottom:17%;width:17%;height:28%;border-radius:50%;background:rgba(117,40,255,.45);filter:blur(8px);box-shadow:0 0 28px #7d37ff;animation:portalPulse 1.1s ease-in-out infinite}.dungeon-fx i:last-child{left:55%;bottom:20%;width:2px;height:2px;background:#d0a8ff;box-shadow:18px -10px #9b5cff,-12px -22px #d8bdff,22px -30px #7c3aed;animation:sparkUp 2s linear infinite}
@keyframes fireBreath{to{transform:scale(1.15);filter:blur(4px);opacity:.72}}@keyframes sparkUp{from{transform:translateY(12px);opacity:0}30%{opacity:1}to{transform:translateY(-32px);opacity:0}}@keyframes windowGlow{50%{opacity:.45;filter:blur(5px)}}@keyframes awningShimmer{0%,70%,100%{transform:translateX(-30%) skewY(-8deg);opacity:0}82%{opacity:1}95%{transform:translateX(45%) skewY(-8deg);opacity:0}}@keyframes crystalPulse{50%{transform:scale(1.14);opacity:.75}}@keyframes portalPulse{50%{transform:scale(1.12);opacity:.7}}

.reduced-motion .player-sprite img,.reduced-motion .selection-ring,.reduced-motion .building-fx i{animation:none!important}

/* ===== V8 — personnage réellement intégré au décor ===== */
.player-sprite{
  width:clamp(38px,3.25vw,58px);
  height:clamp(62px,5.3vw,92px);
  transform:translate(-50%,-82%);
  filter:none;
}

/* Phaser 3 village: the former CSS avatar and HTML hotspots are intentionally gone. */
#phaser-village{position:absolute;inset:0;background:#17210f}
#phaser-village canvas{display:block;width:100%!important;height:100%!important;image-rendering:pixelated}
.phaser-help{position:absolute;left:14px;top:14px;z-index:40;padding:7px 11px;border:2px solid #9c6a31;background:#1b0e08df;color:#ffe4a2;box-shadow:0 4px 12px #0009;font-size:12px;pointer-events:none}
.interaction-prompt{position:absolute;left:50%;bottom:26px;z-index:45;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:8px 14px;border:3px solid #1a0c05;background:linear-gradient(#5c3519,#251309);box-shadow:inset 0 0 0 2px #bd8742,0 6px 18px #000b;color:#ffe8aa;font-weight:900;pointer-events:none}
.interaction-prompt kbd{display:grid;place-items:center;width:28px;height:28px;border:2px solid #d6ad61;background:#172a36;color:#fff;border-radius:3px;font:900 15px Georgia}
.realm-economy{position:absolute;right:14px;top:14px;z-index:45;display:flex;border:3px solid #160b05;background:linear-gradient(#5e381b,#28160b);box-shadow:inset 0 0 0 2px #a97337,0 5px 15px #0009}
.realm-economy span{padding:8px 12px;border-right:1px solid #7a4c25;color:#ffe4a2;font-size:13px}.realm-economy span:last-child{border-right:0}.realm-economy b{margin-left:4px;color:#fff1b0}
.building-sheet{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start}.building-emblem{aspect-ratio:1;display:grid;place-items:center;border:5px solid #2b160a;background:radial-gradient(circle,#8b5a2c,#28140a);font-size:68px;box-shadow:inset 0 0 25px #0008}.building-info h2{margin:0;color:#ffd86c}.building-level{display:inline-block;margin:7px 0 12px;padding:4px 9px;background:#193d58;border:2px solid #72a4c1;color:#fff}.upgrade-cost{display:flex;gap:10px;margin:12px 0}.upgrade-cost span{padding:7px 10px;border:2px solid #6e4522;background:#24140b}@media(max-width:700px){.building-sheet{grid-template-columns:1fr}.building-emblem{width:110px}.realm-economy{right:8px;top:8px}.realm-economy span{padding:6px 7px}.phaser-help{display:none}}
.player-shadow{
  left:50%;bottom:3%;width:62%;height:9%;
  background:rgba(9,8,5,.43);filter:blur(2.5px);
}
.world-avatar{position:absolute;inset:0;transform-origin:50% 100%;animation:worldAvatarIdle 1.55s steps(2,end) infinite;image-rendering:pixelated}
.player-sprite.walking .world-avatar{animation:worldAvatarWalk .24s steps(2,end) infinite}
.player-sprite.facing-left .world-avatar{transform:scaleX(-1)}
.world-avatar svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 1px rgba(0,0,0,.28))}

/* ===== Exploration illustrée et chantiers communautaires ===== */
.explore-map{height:clamp(470px,62vh,620px);background:#173949 url('/assets/exploration-map-v1.png') center/cover no-repeat;border:5px solid #160b05;box-shadow:inset 0 0 0 3px #8b5c2d,0 8px 24px #000b}
.explore-map:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 45px #07120fcc;background:linear-gradient(180deg,rgba(255,220,125,.04),rgba(4,10,16,.12))}
.explore-map .zone{z-index:2;min-width:145px;padding:9px 12px;background:linear-gradient(#623916ee,#2b160bed);border:3px solid #160b05;box-shadow:inset 0 0 0 2px #b8813e,0 5px 0 #0b0502,0 8px 16px #0009;transform:translate(-50%,-50%);transition:transform .18s ease,filter .18s ease}
.explore-map .zone:hover{transform:translate(-50%,-56%) scale(1.06);filter:brightness(1.18)}
.explore-map .forest{left:18%;top:24%}.explore-map .mine{left:77%;top:22%}.explore-map .swamp{left:50%;top:43%}.explore-map .desert{left:19%;top:69%}.explore-map .volcano{left:50%;top:74%}.explore-map .dungeon-zone{left:81%;right:auto;top:68%}
.construction-sheet{color:#f7e4a1}.construction-heading{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;padding:15px;border:3px solid #160b05;background:linear-gradient(#533018,#29160b)}.construction-heading>span{display:grid;place-items:center;width:105px;height:105px;border:3px solid #94612d;background:#1d1008;font-size:58px}.construction-heading small{color:#d6ab58}.construction-heading h2{margin:3px 0;color:#ffe074;font-size:28px}.construction-heading p{margin:5px 0}.materials-list{display:grid;gap:10px;margin:12px 0}.material-row{padding:10px 12px;border:3px solid #160b05;background:#24150c}.material-row>div:first-child{display:flex;justify-content:space-between}.material-row small{display:block;margin-top:4px;color:#d5b274}.material-progress{height:13px;margin-top:7px;border:2px solid #75502a;background:#100905}.material-progress i{display:block;height:100%;background:linear-gradient(90deg,#3879a0,#6fbc57);transition:width .35s ease}.construction-help{padding:9px;border-left:4px solid #d49b43;background:#160d08}
@keyframes worldAvatarIdle{50%{translate:0 -1px}}
@keyframes worldAvatarWalk{0%,100%{translate:-1px 0;rotate:-1deg}50%{translate:1px -3px;rotate:1deg}}
.map-hotspot{position:absolute;z-index:30;border:0!important;background:transparent!important;opacity:0!important;cursor:pointer;transform:none!important;box-shadow:none!important}
.map-hotspot:hover,.map-hotspot:focus-visible{opacity:1!important;background:radial-gradient(ellipse,rgba(255,202,78,.12),transparent 68%)!important;outline:2px solid rgba(255,212,105,.35)!important;box-shadow:0 0 22px rgba(255,190,65,.18)!important}
.map-hotspot.guild{left:39%!important;top:7%!important;width:28%!important;height:31%!important}
.map-hotspot.forge{left:4%!important;top:20%!important;width:31%!important;height:40%!important}
.map-hotspot.market{left:66%!important;top:21%!important;width:33%!important;height:40%!important}
.map-hotspot.quests{left:2%!important;top:62%!important;width:27%!important;height:34%!important}
.map-hotspot.tavern{left:28%!important;top:59%!important;width:31%!important;height:39%!important}
.map-hotspot.dungeon{left:72%!important;top:57%!important;width:28%!important;height:41%!important}

/* ===== V13 — vues persistantes, ressources basses et écrans RPG ===== */
.center-column{position:relative;isolation:isolate}.center-column>.view{display:block!important;position:absolute;inset:0;height:100%;min-height:0;opacity:0;visibility:hidden;pointer-events:none;z-index:0;overflow:hidden}.center-column>.view.active{opacity:1;visibility:visible;pointer-events:auto;z-index:2}.center-column>#view-village{padding:0}.realm-economy{display:none!important}
.bottom-resources{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;min-width:0}.bottom-resources>div{position:relative;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;align-items:center;padding:5px 12px;border:3px solid #160b05;background:linear-gradient(180deg,#422610,#1c1008);box-shadow:inset 0 0 0 2px #845326;overflow:hidden}.bottom-resources>div:after{content:"";position:absolute;inset:3px;border:1px solid #d39a4960;pointer-events:none}.bottom-resources .resource-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border:2px solid #8e612f;background:#120b06;font-size:20px}.bottom-resources small{color:#c9a461;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.bottom-resources b{font-size:21px;color:#fff0a8}.bottom-resources>div:nth-child(1) b{color:#e6b878}.bottom-resources>div:nth-child(2) b{color:#d7dde1}.bottom-resources>div:nth-child(3) b{color:#8cdfff;text-shadow:0 0 9px #32b8ff80}
.section-kicker{display:block;color:#7a451f;font-weight:900;font-size:10px;letter-spacing:.12em;text-align:center}.inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:-5px 0 10px}.inventory-summary>div{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:3px solid #170b05;background:linear-gradient(#5a3217,#2b170b);box-shadow:inset 0 0 0 2px #94602e}.inventory-summary small{color:#d6ae67}.inventory-summary b{color:#fff0a8}.inventory-layout{height:calc(100% - 108px);grid-template-columns:minmax(260px,37%) 1fr}.inventory-layout .parchment{background:linear-gradient(145deg,#d9bc7a,#aa7540);box-shadow:inset 0 0 0 3px #efd69a,0 8px 18px #0007}.equipment-panel{min-height:0;height:100%;overflow:hidden}.equipment-panel h3,.bag-panel h3{margin:3px 0 10px;font-size:20px}.inventory-hero{top:76px;width:48%;height:76%;filter:drop-shadow(0 10px 8px #32180c88)}.equipment-grid{position:relative;z-index:2;grid-template-columns:62px 62px;align-content:space-between;height:calc(100% - 48px);gap:8px}.equipment-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #2a160a;background:linear-gradient(#64401f,#35200f);box-shadow:inset 0 0 0 2px #a27137;font-size:24px}.equipment-grid button small{font-size:9px;color:#ebca87}.bag-panel{height:100%;overflow:hidden}.bag-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.bag-heading .section-kicker{text-align:left}.bag-filters{display:flex;gap:4px}.bag-filters button{padding:6px 8px;border:2px solid #4c2b15;background:#8f6335;color:#2b160a;font-size:11px;font-weight:900}.bag-filters button.active{background:#285b78;color:#fff1b0}.inventory-grid{grid-template-columns:repeat(6,minmax(42px,1fr));gap:7px}.inventory-grid button{border:3px solid #281509;background:radial-gradient(circle at 45% 35%,#76502b,#38210f);box-shadow:inset 0 0 0 2px #9b6d38;font-size:24px;transition:transform .15s,filter .15s}.inventory-grid button:hover{transform:translateY(-2px) scale(1.04);filter:brightness(1.18)}.capacity{display:flex;justify-content:space-between;padding-top:8px;border-top:2px solid #795026}
.market-banner{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;margin-bottom:8px;border:4px solid #160b05;background:linear-gradient(100deg,#234c62,#152d3d 55%,#533018);box-shadow:inset 0 0 0 2px #7198a9}.market-banner small{color:#9edcff;letter-spacing:.12em}.market-banner h2{margin:2px 0;color:#ffe07c}.market-banner p{margin:0;color:#e4cea0}.market-wallet{min-width:145px;padding:9px 14px;border:3px solid #160b05;background:#180f09;text-align:center}.market-wallet small{display:block;color:#d7ad61}.market-wallet b{font-size:23px;color:#ffe06a}.market-tabs{display:flex;gap:5px;margin-bottom:10px}.market-tabs button{padding:8px 15px;border:3px solid #160b05;background:linear-gradient(#573119,#2c170b);color:#daba74;font-weight:900}.market-tabs button.active{background:linear-gradient(#347092,#1a405d);color:#fff0ac;box-shadow:inset 0 0 0 2px #76a9c5}.merchant-grid{grid-template-columns:repeat(2,1fr);gap:10px}.merchant{position:relative;min-height:115px;background:linear-gradient(120deg,#60371b,#28160b);box-shadow:inset 0 0 0 2px #92612f;transition:transform .18s,filter .18s}.merchant:hover{transform:translateY(-3px);filter:brightness(1.12)}.merchant-avatar{display:grid;place-items:center;width:66px;height:76px;border:3px solid #211107;background:radial-gradient(circle,#8a5c2d,#2a160b);font-size:37px}.merchant b{font-size:17px;color:#ffe29a}.merchant small{color:#8ed5ff}.market-footer{background:linear-gradient(#203b49,#101f27);box-shadow:inset 0 0 0 2px #557c8d}.market-footer>span{font-size:22px;color:#ffe174}
.profile-layout{grid-template-columns:minmax(260px,42%) 1fr;height:calc(100% - 150px)}.profile-layout .parchment{background:linear-gradient(145deg,#d9bd7d,#aa7540);box-shadow:inset 0 0 0 3px #f0d99d,0 8px 18px #0007}.profile-main{position:relative;overflow:hidden}.profile-rank{display:inline-block;padding:5px 10px;border:2px solid #5c371b;background:#285c79;color:#fff1ad;font-size:10px;font-weight:900;letter-spacing:.08em}.profile-main img{display:block;width:72%;height:64%;margin:6px auto 0;border:3px solid #4a2813;background:radial-gradient(circle,#526b4b,#21140c);filter:drop-shadow(0 7px 5px #0005)}.profile-main h2{margin:4px 0 0;font-size:25px}.profile-main p{margin:1px;color:#633918;font-weight:900}.profile-xp-label{display:flex;justify-content:space-between;font-size:11px;font-weight:900}.stats .section-kicker{text-align:left}.stats h3{margin:3px 0 9px;font-size:22px}.stats p{margin:0;padding:8px 0;align-items:center}.stats p>span{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px;flex:1}.stats p i{display:block;height:8px;border:1px solid #5c351a;background:#5a3a20}.stats p em{display:block;height:100%;background:linear-gradient(90deg,#2a6685,#6baa48)}.stats p b{min-width:30px;text-align:right;font-size:18px}.profile-tabs{height:82px}.profile-tabs button{position:relative;background:linear-gradient(#62391b,#2b170b);box-shadow:inset 0 0 0 2px #93602e;transition:transform .18s}.profile-tabs button:hover{transform:translateY(-3px)}
@media(max-width:1050px){.bottom-resources{min-height:64px}.inventory-grid{grid-template-columns:repeat(5,1fr)}}

/* ===== V14 — paper-doll RPG et atelier de personnalisation ===== */
.creator-shell{grid-template-columns:minmax(330px,42%) 1fr;max-height:94vh;overflow:hidden}.creator-preview{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:680px;background:radial-gradient(circle at 50% 30%,#71936355,transparent 35%),linear-gradient(#1b3441aa,#10150fcc),url('/assets/village-empty-v1.png') center/cover}.creator-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#080b08a8,transparent 40%,#080b0870),linear-gradient(0deg,#080b08df,transparent 45%);pointer-events:none}.creator-avatar{position:absolute;z-index:2;left:50%;bottom:54px;transform:translateX(-50%);width:min(72%,310px);height:82%;filter:drop-shadow(0 14px 8px #0009)}.creator-preview-copy{position:relative;z-index:3;width:100%;padding:16px;text-align:center;background:linear-gradient(transparent,#120b06e8)}.creator-preview-copy small{display:block;color:#8edfff;letter-spacing:.15em}.creator-preview-copy strong{font-size:22px;color:#ffe29a}.creator-form{overflow:auto}.creator-form h1{margin-top:0}.customizer-section{margin:10px 0;padding:10px;border:3px solid #69421f;background:#e3c98e;box-shadow:inset 0 0 0 2px #f6e4b1}.customizer-section h3{margin:0 0 7px;font-size:15px;text-transform:uppercase;color:#613817}.swatch-row,.style-row{display:flex;flex-wrap:wrap;gap:7px}.appearance-swatch{width:36px;height:36px;border:3px solid #3c2212;background:var(--swatch);box-shadow:inset 0 0 0 2px #fff5;cursor:pointer}.appearance-swatch.active{outline:3px solid #29779d;outline-offset:2px;transform:scale(1.08)}
.custom-swatch{position:relative;padding:0;overflow:hidden;background:conic-gradient(#f43,#fd3,#3d6,#3af,#a3f,#f43)}
.custom-swatch input[type=color]{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);border:0;padding:0;cursor:pointer;opacity:0}.appearance-choice{padding:7px 10px;border:2px solid #563116;background:#b98a4e;color:#321b0d;font-weight:900;cursor:pointer}.appearance-choice.active{background:#2b6687;color:#fff3b2}.outfit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:9px}.outfit-choice{display:flex;flex-direction:column;align-items:center;padding:9px 5px;border:3px solid #563116;background:linear-gradient(#c8a45f,#a4743e);color:#321b0d;font-weight:900}.outfit-choice small{font-size:9px;color:#75431f}.outfit-choice.active{background:linear-gradient(#36799c,#1f4f70);color:#fff3b2;box-shadow:inset 0 0 0 2px #8dd3ee}.outfit-choice.active small{color:#bde9ff}.creator-actions{gap:9px;justify-content:flex-end}.dynamic-character{overflow:hidden}.dynamic-character svg{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.top-avatar{overflow:hidden;padding:2px;background:radial-gradient(circle,#5d754d,#24170d)}.hero-card .hero-portrait{width:100%;height:240px;border:3px solid #190c06;background:radial-gradient(circle,#526b4b,#20130c);filter:drop-shadow(0 7px 5px #0005)}.inventory-hero{display:block}.profile-character{display:block;width:72%;height:61%;margin:6px auto 0;border:3px solid #4a2813;background:radial-gradient(circle,#657c57,#21140c);filter:drop-shadow(0 7px 5px #0005)}.profile-main .small-button{margin-top:5px}.profile-main h2{position:relative}.profile-main p{position:relative}
@media(max-width:760px){.creator-shell{max-height:none}.creator-preview{min-height:340px}.creator-avatar{height:90%;bottom:22px}.outfit-grid{grid-template-columns:repeat(2,1fr)}.hero-card .hero-portrait{height:150px}.profile-character{height:260px}}

/* ===== V15 — sprites voyageurs animés homme/femme ===== */
.body-type-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.body-type-choice{padding:11px;border:3px solid #563116;background:linear-gradient(#c8a45f,#a4743e);color:#321b0d;font-weight:900;cursor:pointer}.body-type-choice.active{background:linear-gradient(#36799c,#1f4f70);color:#fff3b2;box-shadow:inset 0 0 0 2px #8dd3ee}.rpg-character-preview{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}

/* ===== V16 — atelier personnage de test ===== */
.character-test-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(330px,.9fr);gap:16px;height:calc(100% - 70px)}.character-test-stage,.character-test-controls{min-height:0}.character-test-stage{display:flex;flex-direction:column;text-align:center}.character-test-preview{flex:1;min-height:320px;margin:10px 0;border:4px solid #43230f;background:radial-gradient(ellipse at 50% 72%,#718861 0 17%,#31462c 43%,#172018 75%);box-shadow:inset 0 0 30px #0008}.character-test-preview canvas{filter:drop-shadow(0 10px 5px #0007)}.character-test-controls h3{text-align:left;margin:22px 0 9px}.character-test-controls input[type=range]{width:100%;accent-color:#286b91}.scale-labels{display:flex;justify-content:space-between;align-items:center;margin-top:5px}.scale-labels b{font-size:20px;color:#234f6b}.character-test-note{margin:24px 0;padding:12px;border-left:5px solid #2b7197;background:#c39b5d}.character-test-note p{margin:5px 0}.character-test-controls .game-button{width:100%}@media(max-width:850px){.character-test-layout{grid-template-columns:1fr;height:auto}.character-test-preview{min-height:280px}}

/* ===== V17 — isolation Phaser et palettes du personnage ===== */
.test-color-grid{display:grid;gap:6px}.test-color-grid h3{margin:12px 0 7px}.test-swatches{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.test-swatches button{width:38px;height:38px;border:3px solid #43230f;box-shadow:inset 0 0 0 2px #ffffff55;cursor:pointer}.test-swatches button.active{outline:3px solid #2379a3;outline-offset:2px;transform:scale(1.08)}.test-swatches-custom{position:relative;width:38px;height:38px;border:3px solid #43230f;box-shadow:inset 0 0 0 2px #ffffff55;cursor:pointer;overflow:hidden;background:conic-gradient(#f43,#fd3,#3d6,#3af,#a3f,#f43)}.test-swatches-custom input[type=color]{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);border:0;padding:0;cursor:pointer;opacity:0}.test-swatches-custom.active{outline:3px solid #2379a3;outline-offset:2px}.center-column>.view:not(.active),.center-column>.view:not(.active) *{pointer-events:none!important}

/* ===== V18 — calques réels et feuille de marche nettoyée ===== */
.test-style-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.test-style-row button{padding:8px 5px;border:3px solid #563116;background:linear-gradient(#c8a45f,#a4743e);color:#321b0d;font-weight:900;cursor:pointer}.test-style-row button.active{background:linear-gradient(#36799c,#1f4f70);color:#fff3b2;box-shadow:inset 0 0 0 2px #8dd3ee}.character-test-controls{overflow:auto}.character-test-preview canvas{max-width:100%;max-height:100%}@media(max-width:600px){.test-style-row{grid-template-columns:repeat(2,1fr)}}

/* ===== V19 — véritable catalogue paper-doll ULPC ===== */
.hair-catalog{max-height:190px;overflow:auto;grid-template-columns:repeat(3,1fr)!important;padding:4px}.catalog-row{max-height:170px;overflow:auto}.catalog-row .appearance-choice{font-size:12px}
