/* ===== Mawiyah — nuit de concert & papier plié ===== */
@property --fold { syntax: "<length>"; inherits: false; initial-value: 30px; }

:root{
  --night:#120726; --night2:#1d0d3a; --paper:#fff4fb; --muted:#c7b6e6;
  --pink:#ff3ea5; --violet:#9d5cff; --cyan:#4de8ff; --gold:#ffd166;
  --line:rgba(255,244,251,.12);
  --display:"Dela Gothic One","Arial Black",Impact,system-ui,sans-serif;
  --body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Segoe UI",system-ui,sans-serif;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{
  font-family:var(--body);font-size:1.0625rem;line-height:1.7;color:var(--paper);
  background:var(--night);min-height:100vh;overflow-x:hidden;
  background-image:
    radial-gradient(70vw 55vw at -10% -10%,rgba(255,62,165,.22),transparent 60%),
    radial-gradient(60vw 50vw at 110% 15%,rgba(157,92,255,.25),transparent 60%),
    radial-gradient(70vw 50vw at 50% 120%,rgba(77,232,255,.14),transparent 60%);
  background-attachment:fixed;
}
.sky{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1140px,92vw);margin-inline:auto}
.muted{color:var(--muted)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--night);padding:.6rem 1rem;z-index:100;font-weight:700}
.skip:focus{left:1rem;top:1rem}

/* ----- barre du haut ----- */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem clamp(1rem,4vw,2.5rem);background:rgba(18,7,38,.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--display);font-size:1.3rem;text-decoration:none;display:flex;align-items:center;gap:.45rem;
  background:linear-gradient(90deg,var(--pink),var(--violet) 55%,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.logo-star{color:var(--gold);-webkit-text-fill-color:var(--gold);display:inline-block}
.nav{display:flex;gap:.25rem}
.nav a{text-decoration:none;padding:.45rem .9rem;border-radius:999px;font-weight:700;font-size:.95rem;color:var(--muted);transition:color .2s,background .2s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--paper);background:rgba(255,62,165,.16)}
.nav-toggle{display:none}

/* ----- hero ----- */
.hero{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:2rem;min-height:calc(100vh - 72px);padding:3rem 0 4rem}
.hero-kicker{color:var(--gold);font-weight:700;font-size:1.05rem}
.neon-title{font-family:var(--display);font-weight:400;font-size:clamp(3.6rem,12vw,9.5rem);line-height:1.1;letter-spacing:-.01em;margin:.2rem 0 .1rem;padding:0 .05em .12em 0;
  background:linear-gradient(100deg,#fff 0%,#ffd1ec 18%,var(--pink) 40%,var(--violet) 70%,var(--cyan) 100%);background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px rgba(255,62,165,.6)) drop-shadow(0 0 42px rgba(157,92,255,.45))}
.hero-scripts{display:flex;gap:1.4rem;font-size:clamp(1.4rem,3.4vw,2.3rem);font-weight:900;color:transparent;
  -webkit-text-stroke:1.2px rgba(255,244,251,.55);letter-spacing:.08em;margin-bottom:1.6rem}
.hero-quote{font-size:clamp(1.1rem,2vw,1.35rem);color:var(--muted);max-width:32ch;padding-left:1rem;border-left:3px solid var(--pink)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.emblem{background:none;border:0;cursor:pointer;justify-self:center;width:100%;max-width:430px;border-radius:50%}
.emblem svg{width:100%;height:auto;filter:drop-shadow(0 0 26px rgba(255,62,165,.45)) drop-shadow(0 0 60px rgba(157,92,255,.35))}
.emblem .ring,.emblem .star{transform-origin:150px 150px;transform-box:view-box}

/* orchestration d'arrivée : une seule séquence */
.js .hero-text>*{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-text>*:nth-child(2){animation-delay:.12s}
.js .hero-text>*:nth-child(3){animation-delay:.3s}
.js .hero-text>*:nth-child(4){animation-delay:.42s}
.js .hero-text>*:nth-child(5){animation-delay:.54s}
.js .neon-title{animation:rise .8s .12s cubic-bezier(.2,.7,.2,1) forwards, shine 7s 1s linear infinite !important}
.js .emblem .star{animation:unfold 1.3s .2s cubic-bezier(.2,.8,.2,1) both}
.emblem .ring{animation:spin 40s linear infinite}
.emblem.pop .star{animation:pop .6s ease}

/* ----- boutons ----- */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:999px;font-weight:700;text-decoration:none;
  color:#fff;background:linear-gradient(95deg,var(--pink),var(--violet));box-shadow:0 8px 26px -8px rgba(255,62,165,.7);
  transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px -8px rgba(255,62,165,.9)}
.btn-ghost{background:transparent;border:1.5px solid rgba(255,244,251,.35);box-shadow:none}
.btn-ghost:hover{background:rgba(255,244,251,.08);box-shadow:none}

/* ----- bandeau bienvenue ----- */
.marquee{overflow:hidden;border-block:1px solid var(--line);background:rgba(255,62,165,.07);padding:.9rem 0}
.marquee-track{display:flex;gap:1.6rem;width:max-content;animation:scroll 40s linear infinite;font-family:var(--display);font-size:1.25rem;white-space:nowrap}
.marquee-track i{color:var(--gold);font-style:normal}

/* ----- sections ----- */
.section{padding:clamp(3.5rem,8vw,6rem) 0 0}
.section-title{font-family:var(--display);font-weight:400;font-size:clamp(2rem,5vw,3.2rem);line-height:1.1;margin-bottom:.8rem}
.section-title.small{font-size:clamp(1.6rem,3.6vw,2.2rem)}
.lead{font-size:clamp(1.1rem,2vw,1.3rem);color:var(--muted);max-width:60ch}

/* ----- bento des univers : cartes pliées ----- */
.bento{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,auto);gap:1.1rem;margin-top:2.2rem}
.card{--fold:30px;position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.6rem;text-decoration:none;overflow:hidden;
  border-radius:20px;
  background:
    linear-gradient(160deg,color-mix(in srgb,var(--accent) 24%,transparent),transparent 55%),
    linear-gradient(var(--night2),var(--night2));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent);
  clip-path:polygon(0 0,calc(100% - var(--fold)) 0,100% var(--fold),100% 100%,0 100%);
  transition:--fold .35s cubic-bezier(.2,.8,.2,1),transform .35s}
.card::after{content:"";position:absolute;top:0;right:0;width:var(--fold);height:var(--fold);
  background:linear-gradient(225deg,transparent 50%,var(--accent2) 50%);border-bottom-left-radius:6px;
  box-shadow:-4px 4px 10px rgba(0,0,0,.35);transition:width .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1)}
.card:hover,.card:focus-visible{--fold:58px}
.card:hover::after,.card:focus-visible::after{width:58px;height:58px}
.card-kanji{position:absolute;right:1rem;bottom:-.6rem;font-size:5.5rem;font-weight:900;line-height:1;color:var(--accent);opacity:.13;pointer-events:none;white-space:nowrap}
.card-icon{width:52px;height:52px;color:var(--accent);filter:drop-shadow(0 0 10px var(--accent))}
.card h3{font-family:var(--display);font-weight:400;font-size:1.45rem;line-height:1.2;margin-top:auto}
.card p{color:var(--muted);max-width:40ch}
.card-go{font-weight:700;color:var(--accent);margin-top:.3rem;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.card.wide{grid-column:span 2}
.card.tall{grid-row:span 2}
.card.big{grid-column:span 2;grid-row:span 2}
.card.big h3{font-size:2.1rem}
.card.big .card-icon{width:80px;height:80px}
.card.big .card-kanji{font-size:9rem}

/* ----- à propos ----- */
.about{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:start}
.about-text p{max-width:62ch;margin-bottom:1rem}
.langs{padding:1.6rem;border-radius:20px;background:rgba(255,244,251,.04);border:1px dashed rgba(255,244,251,.25)}
.langs h3{font-size:1.1rem;margin-bottom:1rem;color:var(--gold)}
.langs ul{list-style:none;display:grid;gap:.7rem}
.langs li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.langs li:last-child{border:0;padding:0}
.langs span{color:var(--muted)}

/* ----- méthode (vraie séquence) ----- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2rem;counter-reset:s}
.steps li{position:relative;padding:1.6rem 1.4rem 1.4rem;border-top:3px solid var(--pink)}
.steps li:nth-child(2){border-color:var(--violet)}
.steps li:nth-child(3){border-color:var(--cyan)}
.step-n{font-family:var(--display);font-size:3rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--paper);opacity:.6}
.steps h3{font-size:1.3rem;margin:.6rem 0 .3rem}
.steps p{color:var(--muted)}

/* ----- valeurs ----- */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.6rem}
.value{padding:1.4rem;border-radius:16px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.value h3{font-family:var(--display);font-weight:400;font-size:1.25rem;color:var(--accent);margin-bottom:.4rem}
.value p{color:var(--muted);font-size:.98rem}

/* ----- contact ----- */
.contact{text-align:center;padding:clamp(2rem,5vw,3.5rem);border-radius:28px;
  background:linear-gradient(135deg,rgba(255,62,165,.18),rgba(157,92,255,.18) 50%,rgba(77,232,255,.12));
  border:1px solid rgba(255,244,251,.18)}
.contact p{max-width:56ch;margin:0 auto 1.6rem;color:var(--muted)}

/* ----- pages univers ----- */
.page-hero{padding:2.5rem 0 1rem}
.back{display:inline-block;color:var(--muted);text-decoration:none;font-weight:700;margin-bottom:2rem}
.back::before{content:"‹ "}
.back:hover{color:var(--accent)}
.page-hero-in{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.page-icon{width:clamp(88px,14vw,130px);aspect-ratio:1;display:grid;place-items:center;border-radius:28px;color:var(--accent);
  background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:0 0 50px -10px var(--accent),inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}
.page-icon svg{width:60%;height:60%}
.page-title{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,7vw,4.8rem);line-height:1.15;padding-bottom:.1em;
  background:linear-gradient(95deg,#fff,var(--accent2) 30%,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent) 55%,transparent))}
.kanji-line{display:flex;align-items:baseline;gap:1rem;margin-top:.6rem;color:var(--muted);flex-wrap:wrap}
.kanji{font-size:1.9rem;font-weight:900;color:var(--accent)}
.page-hero .lead{margin-top:1.6rem}
.prose p{max-width:66ch;margin-bottom:1rem}
.safety{border-left:4px solid var(--gold);background:rgba(255,209,102,.1);padding:1rem 1.2rem;border-radius:0 12px 12px 0;font-weight:700;max-width:66ch}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.4rem}
.shot{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;display:grid;place-items:center;gap:.4rem;
  background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,transparent) 0 14px,transparent 14px 28px),var(--night2);
  border:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent)}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shot-icon{width:64px;height:64px;color:var(--accent);opacity:.8}
.shot-hint{position:absolute;bottom:.8rem;font-size:.85rem;color:var(--muted)}
.shot-card h3{font-size:1.2rem;margin:.9rem 0 .2rem}
.shot-card p{color:var(--muted);font-size:.98rem}

.duo{display:grid;grid-template-columns:1.3fr 1fr;gap:2.5rem;align-items:start}
.checklist{list-style:none;display:grid;gap:.8rem;margin-top:1rem}
.checklist li{display:flex;gap:.8rem;align-items:flex-start;padding:.9rem 1.1rem;border-radius:14px;background:rgba(255,244,251,.04);border:1px solid var(--line)}
.checklist li::before{content:"✦";color:var(--accent);flex:none;line-height:1.7}
.fact{padding:1.8rem;border-radius:22px;background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--accent2) 8%,transparent));
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);margin-top:3.6rem}
.fact-label{font-family:var(--display);font-size:1.3rem;color:var(--accent);margin-bottom:.5rem}

.pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:5rem}
.pager a{text-decoration:none;padding:1.3rem 1.5rem;border-radius:18px;border:1px solid var(--line);display:grid;gap:.2rem;transition:background .2s,border-color .2s}
.pager a:hover{background:rgba(255,244,251,.05);border-color:var(--accent)}
.pager small{color:var(--muted)}
.pager span{font-family:var(--display);font-size:1.2rem}
.pager-next{text-align:right}

/* ----- pied de page ----- */
.footer{margin-top:6rem;border-top:1px solid var(--line);padding:3rem 0 2rem;background:rgba(18,7,38,.6)}
.footer-in{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.footer-logo{font-family:var(--display);font-size:1.6rem;margin-bottom:.3rem}
.footer-links{list-style:none;display:grid;grid-template-columns:repeat(2,auto);gap:.4rem 2rem}
.footer-links a{color:var(--muted);text-decoration:none}
.footer-links a:hover{color:var(--paper)}
.footer-legal{margin-top:2rem;font-size:.85rem;color:var(--muted)}

/* ----- étincelles au clic ----- */
.spark{position:fixed;pointer-events:none;z-index:200;font-size:1rem;transform:translate(-50%,-50%);animation:spark .9s ease-out forwards}

/* ----- animations ----- */
@keyframes rise{to{opacity:1;transform:none}}
@keyframes shine{to{background-position:220% center}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes scroll{to{transform:translateX(-50%)}}
@keyframes unfold{from{transform:rotate(-135deg) scale(.2);opacity:0}to{transform:none;opacity:1}}
@keyframes pop{50%{transform:scale(1.08) rotate(22.5deg)}}
@keyframes spark{to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.3);opacity:0}}

/* ----- responsive ----- */
@media (max-width:980px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .card.tall{grid-row:span 1}
  .values{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer}
  .nav-toggle span{width:22px;height:2px;background:var(--paper);border-radius:2px;transition:transform .25s,opacity .25s}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;padding:1rem;background:rgba(18,7,38,.97);border-bottom:1px solid var(--line);
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s}
  .nav.open{opacity:1;visibility:visible;transform:none}
  .hero{grid-template-columns:1fr;min-height:auto;text-align:center;padding-top:2rem}
  .emblem{order:-1;max-width:240px}
  .hero-scripts,.hero-cta{justify-content:center}
  .hero-quote{margin-inline:auto;border:0;padding:0}
  .about,.duo{grid-template-columns:1fr;gap:2rem}
  .steps{grid-template-columns:1fr}
  .fact{margin-top:0}
}
@media (max-width:560px){
  .bento,.gallery,.values{grid-template-columns:1fr}
  .card.wide,.card.big{grid-column:span 1}
  .card.big{grid-row:span 1}
  .card.big .card-kanji{font-size:6rem}
  .pager{grid-template-columns:1fr}
  .pager-next{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js .hero-text>*{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
