:root{color-scheme:dark;--bg:#0b1114;--panel:#10191d;--ink:#f3f1e9;--muted:#9ba9a6;--line:rgba(255,255,255,.11);--accent:#d8c78e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);overflow-x:hidden}body{min-height:100svh;background:radial-gradient(circle at 50% -10%,#1b292d 0,#0b1114 46%,#070b0d 100%);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}.shell{width:min(100%,520px);min-height:100svh;margin:0 auto;position:relative;padding:max(20px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.home{margin:auto 0;padding:7vh 2px 5vh}.eyebrow{margin:0 0 14px;color:#b9c7c2;font-size:.76rem;text-transform:uppercase;letter-spacing:.18em}.home h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.65rem,12vw,4.5rem);line-height:.92;letter-spacing:-.045em;margin:0;max-width:9ch}.lede{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem;line-height:1.55;color:#bdc8c4;max-width:30ch;margin:24px 0 42px}.field{display:block}.field span{display:block;font-size:.78rem;letter-spacing:.04em;color:#c4cfcb;margin:0 0 8px}.field input{width:100%;height:58px;border-radius:17px;border:1px solid var(--line);background:rgba(255,255,255,.055);color:white;padding:0 16px;font-size:1rem;outline:none;box-shadow:inset 0 1px rgba(255,255,255,.04);transition:border .2s,background .2s}.field input:focus{border-color:rgba(220,208,159,.5);background:rgba(255,255,255,.075)}.error{min-height:23px;color:#e5a49c;font-size:.8rem;margin:8px 2px 4px}.primary,.ghost,.iconBtn{min-height:50px;border:0;border-radius:17px;cursor:pointer;touch-action:manipulation}.primary{width:100%;background:#e7dfbe;color:#172022;font-weight:700;padding:0 20px;box-shadow:0 14px 36px rgba(0,0,0,.24)}.primary:active{transform:translateY(1px)}.homeFooter{margin-top:44px;color:#66736f;font-size:.72rem}.worldView{display:flex;flex-direction:column;min-height:calc(100svh - max(20px,env(safe-area-inset-top)) - max(22px,env(safe-area-inset-bottom)))}.topbar{height:54px;display:flex;align-items:center;justify-content:space-between;gap:8px}.brand{font-family:Georgia,serif;font-size:.86rem;color:#d7dfdc}.topActions{display:flex;gap:7px}.iconBtn{min-width:48px;padding:0 13px;background:rgba(255,255,255,.06);border:1px solid var(--line);font-size:.74rem}.iconBtn:disabled{opacity:.6}.sceneWrap{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 2px 6px}.sceneHalo{position:absolute;inset:8% 8% 10%;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 64%);filter:blur(30px);pointer-events:none}.worldCanvas{display:block;width:min(100%,calc((100svh - 300px)*.75));max-height:calc(100svh - 300px);aspect-ratio:3/4;object-fit:contain;touch-action:none;filter:drop-shadow(0 22px 26px rgba(0,0,0,.35));position:relative;z-index:1}.birthLabel{position:absolute;left:50%;bottom:17px;transform:translateX(-50%);z-index:3;padding:8px 11px;border-radius:99px;background:rgba(7,13,15,.62);backdrop-filter:blur(10px);font-size:.74rem;color:#ccd6d2;border:1px solid var(--line);white-space:nowrap}.skip{position:absolute;right:8px;top:12px;z-index:4;background:rgba(7,13,15,.62);border:1px solid var(--line);color:#d5dcda;min-height:48px;border-radius:14px;padding:0 13px}.info{padding:4px 4px 0}.info h2{font-family:Georgia,serif;font-size:1.45rem;font-weight:500;margin:0 0 7px;letter-spacing:-.02em}.facts{display:flex;gap:7px;overflow:hidden;flex-wrap:wrap}.facts span{font-size:.72rem;color:#b6c2be;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:999px;padding:6px 9px;white-space:nowrap}.phrase{font-family:Georgia,serif;color:#cdd5d2;font-size:.91rem;line-height:1.4;margin:10px 0 12px}.actions{display:grid;grid-template-columns:1fr auto;gap:8px;padding-bottom:2px}.share{min-height:52px}.ghost{min-width:50px;background:rgba(255,255,255,.055);border:1px solid var(--line);padding:0 14px;color:#bcc7c3}.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,18px);opacity:0;pointer-events:none;z-index:50;background:#edf0e8;color:#152023;padding:11px 14px;border-radius:13px;font-size:.78rem;transition:.25s;white-space:nowrap;max-width:calc(100vw - 28px);overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}.qa{max-width:1200px;margin:auto;padding:24px}.qa h1{font-family:Georgia,serif}.qaGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.qaGrid article{background:#111a1e;border:1px solid var(--line);border-radius:18px;padding:9px}.qaGrid canvas{width:100%;display:block;border-radius:12px}.qaGrid p{font-size:.72rem;color:#b6c1be;margin:8px 4px 2px}
@media(max-height:700px){.shell{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}.topbar{height:44px}.worldCanvas{width:min(88%,calc((100svh - 235px)*.75));max-height:calc(100svh - 235px)}.info h2{font-size:1.2rem}.phrase{font-size:.78rem;margin:7px 0}.facts span{font-size:.64rem;padding:5px 7px}.actions .primary{min-height:48px}}
@media(min-width:700px){body:before{content:"";position:fixed;inset:0;background:linear-gradient(90deg,transparent calc(50% - 261px),rgba(255,255,255,.035) calc(50% - 260px),rgba(255,255,255,.035) calc(50% + 260px),transparent calc(50% + 261px));pointer-events:none}.shell{border-left:1px solid rgba(255,255,255,.04);border-right:1px solid rgba(255,255,255,.04)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}.sceneHalo{filter:blur(18px)}}
@media(max-height:700px){
  .worldCanvas{width:min(82%,calc((100svh - 292px)*.75));max-height:calc(100svh - 292px)}
  .info{padding-top:0}.info h2{margin-bottom:5px}.phrase{line-height:1.28}.facts{gap:5px}.facts span{padding:4px 6px}.actions{gap:6px}.actions .primary{min-height:48px}.ghost{min-height:48px}
}
/* 3D renderer v2 */
.worldCanvas{touch-action:none;cursor:grab;filter:drop-shadow(0 34px 50px rgba(0,0,0,.35));}
.worldCanvas:active{cursor:grabbing}.sceneWrap{perspective:900px}.sceneHalo{filter:blur(42px);opacity:.72}.webglFail .sceneWrap:after{content:'WebGL 2 est nécessaire pour ce rendu 3D.';position:absolute;inset:40% 12% auto;padding:14px;border-radius:16px;background:#101718;color:#fff;text-align:center;z-index:5}
/* Diorama art pass */
:root{--scene-top:#31545e;--scene-bottom:#0b171c}
.topbar{height:48px}.topActions{margin-left:auto}.iconBtn{background:rgba(255,255,255,.075);backdrop-filter:blur(12px)}
.sceneWrap{margin:2px -4px 4px;border-radius:28px;overflow:hidden;background:radial-gradient(circle at 72% 18%,rgba(255,224,164,.16),transparent 28%),linear-gradient(180deg,var(--scene-top),var(--scene-bottom));box-shadow:inset 0 1px rgba(255,255,255,.08),0 24px 70px rgba(0,0,0,.22)}
.sceneWrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,rgba(3,8,10,.25) 100%);z-index:2}
.sceneHalo{inset:20% 12% 12%;background:radial-gradient(circle,rgba(255,216,143,.17),transparent 62%);filter:blur(45px)}
.worldCanvas{width:min(100%,calc((100svh - 280px)*.83));max-height:calc(100svh - 280px);aspect-ratio:3/4;filter:drop-shadow(0 28px 34px rgba(0,0,0,.34));z-index:1}
.birthLabel,.skip{z-index:4}
@media(max-height:700px){.worldCanvas{width:min(90%,calc((100svh - 252px)*.83));max-height:calc(100svh - 252px)}.sceneWrap{border-radius:22px}}
