/* Manastudio — Belle Époque sombre. Polices hébergées localement (sous-ensemble latin) : aucune requête vers un service tiers. */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/Playfair-700.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/Playfair-500-italic.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:700;font-display:swap;src:url(fonts/Playfair-700-italic.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/Cormorant-500.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/Cormorant-600.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/Cormorant-500-italic.woff2) format('woff2')}
@font-face{font-family:'Poiret One';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/PoiretOne-400.woff2) format('woff2')}
*{box-sizing:border-box}
body{margin:0;background:#0D0C0E}
a{color:#E8DEC8}
a:hover{color:#fff}
.b-petal{position:absolute;top:-40px;background:var(--c1);border-radius:0 100% 0 100%;animation-name:b-fall;animation-timing-function:linear;animation-iteration-count:infinite;pointer-events:none}
.b-card{transition:transform .3s ease, box-shadow .3s ease}
.b-card:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,.7), 0 0 0 1px var(--c1)}
.b-btn{transition:background .25s ease, color .25s ease, border-color .25s ease}
.b-btn:hover{background:var(--c1);border-color:var(--c1);color:#fff}
.b-sway{animation:b-sway 9s ease-in-out infinite alternate}
.b-wave{animation:b-wave 6s linear infinite}
.b-wave2{animation:b-wave2 9s linear infinite}
.b-bob{animation:b-bob 3.6s ease-in-out infinite alternate}
.b-bub{animation-name:b-rise;animation-timing-function:ease-in;animation-iteration-count:infinite}
.b-halo{animation:b-glow 5s ease-in-out infinite alternate}
.b-twink{animation:b-twink 3.2s ease-in-out infinite alternate}
@keyframes b-fall {
  0% { transform: translate3d(0,0,0) rotate(0deg); opacity: 0; }
  10% { opacity: .9; }
  90% { opacity: .8; }
  100% { transform: translate3d(120px,860px,0) rotate(540deg); opacity: 0; }
}
@keyframes b-wave { from { transform: translateX(0); } to { transform: translateX(-50px); } }
@keyframes b-wave2 { from { transform: translateX(0); } to { transform: translateX(50px); } }
@keyframes b-bob { from { transform: translateY(0); } to { transform: translateY(-1.8px); } }
@keyframes b-rise {
  0% { transform: translate(0,0); opacity: 0; }
  15% { opacity: .95; }
  80% { opacity: .8; }
  100% { transform: translate(2px,-26px); opacity: 0; }
}
@keyframes b-glow { from { opacity: .7; } to { opacity: 1; } }
@keyframes b-twink { from { opacity: .25; } to { opacity: 1; } }
@keyframes b-sway {
  from { transform: translateY(0); }
  to { transform: translateY(-8px); }
}
@media (prefers-reduced-motion:reduce){
  .b-root{transition:none}
  .b-burst{display:none}
  .b-shake,.b-life .b-heart{animation:none}
  .b-petal,.b-sway,.b-wave,.b-wave2,.b-bob,.b-bub,.b-halo,.b-twink{animation:none}
  .b-card,.b-btn{transition:none}
}
@property --c1 { syntax: '<color>'; inherits: true; initial-value: #2E6FE0; }
@property --c2 { syntax: '<color>'; inherits: true; initial-value: #6FB3FF; }
@property --c3 { syntax: '<color>'; inherits: true; initial-value: #1E4BA8; }
@property --c4 { syntax: '<color>'; inherits: true; initial-value: #4C93FF; }
@property --c5 { syntax: '<color>'; inherits: true; initial-value: #1F4FB8; }
@property --c6 { syntax: '<color>'; inherits: true; initial-value: #5F8FE8; }
@property --c7 { syntax: '<color>'; inherits: true; initial-value: #8CC8FF; }
@property --c8 { syntax: '<color>'; inherits: true; initial-value: #3B82F6; }
@property --c9 { syntax: '<color>'; inherits: true; initial-value: #1E3FA8; }
@property --c10 { syntax: '<color>'; inherits: true; initial-value: #D8ECFF; }
@property --glow { syntax: '<color>'; inherits: true; initial-value: rgba(46,111,224,.28); }
@property --sparkA { syntax: '<number>'; inherits: true; initial-value: 1; }
@property --heartA { syntax: '<number>'; inherits: true; initial-value: 0; }
.b-root{--c1:#2E6FE0;--c2:#6FB3FF;--c3:#1E4BA8;--c4:#4C93FF;--c5:#1F4FB8;--c6:#5F8FE8;--c7:#8CC8FF;--c8:#3B82F6;--c9:#1E3FA8;--c10:#D8ECFF;--glow:rgba(46,111,224,.28);--sparkA:1;--heartA:0;transition: --c1 .9s ease, --c2 .9s ease, --c3 .9s ease, --c4 .9s ease, --c5 .9s ease, --c6 .9s ease, --c7 .9s ease, --c8 .9s ease, --c9 .9s ease, --c10 .9s ease, --glow .9s ease, --sparkA .9s ease, --heartA .9s ease}
.b-life{--c1:#B3262B;--c2:#E5534B;--c3:#8F1E22;--c4:#D8403F;--c5:#9E1F24;--c6:#C94A4C;--c7:#FF9A7B;--c8:#E0443A;--c9:#7A1519;--c10:#FFD8D2;--glow:rgba(179,38,43,.26);--sparkA:0;--heartA:1;}
.b-wrap{transform-origin:50% 55%}
.b-shake{animation:b-shake .7s ease-in-out}
.b-burst{position:absolute;inset:0;pointer-events:none;z-index:4}
.b-flash{position:absolute;left:50%;top:55%;width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;background:radial-gradient(circle, rgba(255,255,255,.85), var(--c2) 35%, transparent 70%);opacity:0;animation:b-flash 1s ease-out forwards}
.b-ring{position:absolute;left:50%;top:55%;width:80px;height:80px;margin:-40px 0 0 -40px;border:3px solid var(--c2);border-radius:50%;opacity:0;animation:b-ring 1.2s ease-out forwards}
.b-ring2{border-color:#E7C468;animation-delay:.18s}
.b-spark{position:absolute;left:50%;top:55%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#E7C468;opacity:0;animation:b-spark 1.1s ease-out forwards}
.b-s1{--tx:-150px;--ty:-190px}
.b-s2{--tx:160px;--ty:-170px}
.b-s3{--tx:-190px;--ty:-40px}
.b-s4{--tx:200px;--ty:-20px}
.b-s5{--tx:-170px;--ty:120px}
.b-s6{--tx:180px;--ty:130px}
.b-s7{--tx:-60px;--ty:-230px}
.b-s8{--tx:70px;--ty:200px}
.b-flaskbtn{position:absolute;left:28%;top:28%;width:44%;height:56%;z-index:3;padding:0;border:0;background:transparent;cursor:pointer;border-radius:40% 40% 50% 50%}
.b-flaskbtn:focus-visible{outline:2px solid #E7C468;outline-offset:4px}
.b-life .b-heart{transform-box:fill-box;transform-origin:50% 50%;animation:b-beat 1.2s ease-in-out infinite}
@keyframes b-shake { 0%,100% { transform: scale(1) rotate(0deg); } 15% { transform: scale(1.03) rotate(-1.6deg); } 35% { transform: scale(1.06) rotate(1.6deg); } 55% { transform: scale(1.04) rotate(-1deg); } 75% { transform: scale(1.02) rotate(.6deg); } }
@keyframes b-flash { 0% { opacity: 0; transform: scale(.3); } 25% { opacity: .9; } 100% { opacity: 0; transform: scale(1.5); } }
@keyframes b-ring { 0% { opacity: .9; transform: scale(.4); } 100% { opacity: 0; transform: scale(5); } }
@keyframes b-spark { 0% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(var(--tx),var(--ty)) scale(.3); } }
@keyframes b-beat { 0%,100% { transform: scale(1); } 50% { transform: scale(1.18); } }
