/* Accueil : reprise du canvas */
main h1,main h2,main h3,main p,main ul{margin:0}
main ul{padding:0;list-style:none}
main a{color:#B03A62}main a:hover{color:#8A2A4C}


/* accessibilité */

/* boutons et flèches */
[data-btn]{transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
a[data-btn="primary"]:hover{background:#8A2A4C !important;transform:translateY(-2px);box-shadow:0 10px 24px rgba(176,58,98,.28)}
a[data-btn="ghost"]:hover{background:#FFF0F4 !important;transform:translateY(-2px)}
[data-arrow]{display:inline-block;transition:transform .3s ease}
a:hover [data-arrow]{transform:translateX(6px)}
[data-ring]{animation:ring 3.4s ease-out 2.5s infinite}

/* menu principal */

/* cartes */
[data-kanji]{display:inline-block;transition:color .35s ease,transform .5s cubic-bezier(.2,1.4,.4,1)}
a[data-door]{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s ease,box-shadow .35s ease}
a[data-door]:hover{background:#F7CAD6 !important;transform:translateY(-8px);box-shadow:0 18px 40px rgba(176,58,98,.16)}
a[data-door]:hover [data-kanji]{color:#FFFFFF !important;transform:scale(1.1) rotate(-5deg)}
a[data-door]:hover [data-cta]{color:#3B2430 !important}
a[data-door]:hover [data-badge]{background:#FFFFFF !important;transform:rotate(-8deg) scale(1.08)}
[data-badge]{transition:transform .4s cubic-bezier(.2,1.4,.4,1),background .3s ease}
a[data-lift]{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease}
a[data-lift]:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(176,58,98,.16);border-color:#EFA6BB !important}
a[data-lift]:hover [data-kanji]{color:#B03A62 !important;transform:scale(1.06)}
[data-row]{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
[data-row]:hover{transform:translateX(8px)}
[data-row] svg{transition:transform .5s cubic-bezier(.2,1.4,.4,1)}
[data-row]:hover svg{transform:rotate(90deg)}
a[data-fl]{color:#3B2430;text-decoration:none;transition:transform .25s ease,color .25s ease}
a[data-fl]:hover{transform:translateX(5px);color:#B03A62}

/* bandeau et branche */
[data-marquee]:hover{animation-play-state:paused}
[data-b]>use{transition:transform .45s cubic-bezier(.2,1.4,.4,1);transform-origin:0 0}
[data-b]:hover>use{transform:scale(1.3) rotate(25deg)}

@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes panelin{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes landin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}


@keyframes inkin{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes itemin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes dropin{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes bloom{from{opacity:0;transform:scale(0) rotate(-70deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes sway{0%,100%{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.1) translate(-1.5%,-1.5%)}}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(8deg)}}
@keyframes fall{0%{transform:translate3d(0,-60px,0);opacity:0}10%{opacity:.95}85%{opacity:.95}100%{transform:translate3d(0,820px,0);opacity:0}}
@keyframes drift{0%,100%{transform:translateX(-20px) rotate(-30deg)}50%{transform:translateX(24px) rotate(40deg)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes stamp{0%{opacity:0;transform:scale(1.8) rotate(-18deg)}60%{opacity:1;transform:scale(.92) rotate(-6deg)}100%{opacity:1;transform:scale(1) rotate(-6deg)}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(176,58,98,.35)}70%,100%{box-shadow:0 0 0 14px rgba(176,58,98,0)}}
@keyframes reveal{from{opacity:.25;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@supports (animation-timeline:view()){[data-reveal]{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 45%}}
@supports (animation-timeline:scroll()){[data-progress]{animation:progress linear both;animation-timeline:scroll(root)}}

@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none !important;transition:none !important}
[data-fall]{display:none !important}
}

@keyframes panelin{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes landin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes bloom{from{opacity:0;transform:scale(0) rotate(-70deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(176,58,98,.35)}70%,100%{box-shadow:0 0 0 14px rgba(176,58,98,0)}}
/* carte du Japon */
[data-pin]{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;z-index:2}
[data-pin][data-minor]{width:28px;height:28px;margin:-14px 0 0 -14px}
[data-pin]:hover{z-index:4}
[data-pin][data-sel="true"]{z-index:5}
[data-pin]:focus-visible{outline:3px solid #B03A62;outline-offset:2px}
[data-dot]{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#B03A62;border:2.5px solid #FFFFFF;box-sizing:border-box;box-shadow:0 2px 6px rgba(59,36,48,.25);transition:transform .35s cubic-bezier(.2,1.4,.4,1),background .25s ease,border-color .25s ease}
[data-pin][data-minor] [data-dot]{width:12px;height:12px;margin:-6px 0 0 -6px;border-width:2px}
[data-pin]:hover [data-dot]{transform:scale(1.4)}
[data-pin][data-sel="true"] [data-dot]{background:#FFFFFF;border:4px solid #B03A62;transform:scale(1.55);animation:ring 1.8s ease-out infinite}
[data-lbl]{position:absolute;left:22px;top:50%;transform:translateY(-50%);white-space:nowrap;padding:1px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#3B2430;font-size:13px;font-weight:700;line-height:1.6;pointer-events:none;transition:background .25s ease,color .25s ease}
[data-pin][data-side="l"] [data-lbl]{left:auto;right:22px}
[data-pin][data-side="t"] [data-lbl]{left:50%;top:auto;bottom:24px;transform:translateX(-50%)}
[data-pin][data-side="b"] [data-lbl]{left:50%;top:100%;transform:translateX(-50%)}
[data-pin][data-side="tr"] [data-lbl]{left:16px;top:auto;bottom:22px;transform:none}
[data-pin][data-side="br"] [data-lbl]{left:16px;top:22px;transform:none}
[data-pin]:hover [data-lbl]{background:#FFFFFF}
[data-pin][data-sel="true"] [data-lbl],[data-pin][data-sel="true"]:hover [data-lbl]{background:#B03A62;color:#FFFFFF}
[data-chip]{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1.5px solid #F3D5DE;border-radius:999px;background:#FFFFFF;color:#3B2430;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
[data-chip]:hover{border-color:#B03A62;transform:translateY(-2px)}
[data-chip][data-sel="true"]{background:#B03A62;border-color:#B03A62;color:#FFFFFF}
[data-chip] span{font-family:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',serif;font-size:13px;opacity:.8}
[data-chip]:focus-visible{outline:3px solid #B03A62;outline-offset:3px}
@supports (animation-timeline:view()){
[data-pin]{animation:bloom linear both;animation-timeline:view();animation-range:entry 10% entry 70%}
[data-land]{animation:landin linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
}
@media (max-width:600px){[data-lbl]{display:none}[data-pin][data-sel="true"] [data-lbl]{display:block}}
a[data-chip]{text-decoration:none}
a[data-pin]{display:block;text-decoration:none}
.city-map{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.city-map .frame{flex:1.1 1 420px;min-width:0;max-width:620px;width:100%;box-sizing:border-box;margin:0 auto;padding:12px;border-radius:28px;background:#FFF5F7;border:1px solid #F3D5DE}
.city-map .canvas{position:relative;width:100%;aspect-ratio:600/711;overflow:hidden;border-radius:18px}
.city-map .canvas>svg{position:absolute;top:0;left:0;width:100%;height:100%;display:block}
.city-map .petals-map{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.city-panel-wrap{flex:1 1 340px;min-width:0;display:flex;flex-direction:column}
.city-panel{box-sizing:border-box;min-height:440px;padding:36px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;border-radius:28px;background:#F7CAD6;color:#3B2430;animation:panelin .55s cubic-bezier(.2,.9,.3,1) both}
.city-panel .cp-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.city-panel .cp-region{padding:4px 14px;border-radius:999px;background:#FFFFFF;font-size:13px;font-weight:500;letter-spacing:.06em}
.city-panel .cp-kanji{font-family:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',serif;font-size:clamp(72px,9vw,128px);line-height:1;font-weight:700;color:#FFFFFF}
.city-panel h3{margin:0 0 12px;font-family:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',serif;font-size:clamp(34px,4vw,48px);line-height:1.15;font-weight:700}
.city-panel p{max-width:460px;margin:0}
.city-panel .cp-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid rgba(59,36,48,.22)}
.city-panel .cp-foot span.l{display:block;font-size:13px;color:#6B4A58}
.city-panel .cp-foot strong{font-size:20px;font-weight:700}
.city-panel.again{animation:none}
