@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Serif+JP:wght@300;400;500&display=swap");
/* ───────── Mochi Mori · washi editorial ───────── */
:root{
  --paper:#f4efe6;--paper-2:#efe7d9;--card:#fffcf6;--ink:#2a2723;--ink-soft:#4a453e;
  --matcha:#5f7048;--moss:#7a8b5a;--beni:#b5483a;--blush:#e9c3bf;--sakura:#f3d6d4;
  --line:#e2d8c5;--line-soft:rgba(120,100,70,.14);--muted:#7b7466;
  --serif:"Cormorant Garamond","Noto Serif JP","Hiragino Mincho ProN",Georgia,serif;
  --jp:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  --ui:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --shadow:0 1px 2px rgba(60,45,25,.05),0 10px 30px -18px rgba(60,45,25,.28);
  --shadow-lift:0 2px 4px rgba(60,45,25,.06),0 22px 44px -22px rgba(60,45,25,.38);
  --wrap:1160px;
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{
  margin:0;color:var(--ink);font:300 16.5px/1.75 var(--jp);-webkit-font-smoothing:antialiased;
  background-color:var(--paper);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .18 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    repeating-linear-gradient(115deg,transparent 0 46px,rgba(150,125,90,.028) 46px 47px),
    radial-gradient(ellipse 70% 45% at 12% 8%,rgba(122,139,90,.13),transparent 70%),
    radial-gradient(ellipse 60% 40% at 92% 22%,rgba(233,195,191,.32),transparent 70%),
    radial-gradient(ellipse 80% 50% at 50% 100%,rgba(122,139,90,.08),transparent 70%);
  background-attachment:scroll,fixed,fixed,fixed,fixed;
}
::selection{background:var(--sakura);color:var(--ink)}
a{color:var(--matcha)}
main{max-width:var(--wrap);margin:0 auto;padding:0 28px 80px}
h1,h2,h3{font-weight:400;font-family:var(--serif);letter-spacing:.01em}
h2{font-size:30px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-top:64px}

/* notice + header */
.notice{background:#3f4a30;color:#efe9dc;text-align:center;font:400 12px/2.4 var(--ui);letter-spacing:.06em;padding:0 16px}
header.site{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;max-width:var(--wrap);margin:0 auto;padding:22px 28px;border-bottom:1px solid var(--line-soft)}
.brand{display:flex;align-items:center;gap:12px;font:500 25px/1 var(--serif);color:var(--ink);text-decoration:none;letter-spacing:.06em}
.brand span{font:300 12px var(--jp);color:var(--muted);letter-spacing:.18em}
.brand img{border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--line),0 6px 14px -8px rgba(60,45,25,.4)}
nav{display:flex;flex-wrap:wrap;gap:6px 22px;font:400 13px/1.6 var(--ui);letter-spacing:.04em}
nav a{color:var(--ink-soft);text-decoration:none;position:relative;padding:4px 0}
nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--beni);transition:right .35s ease}
nav a:hover{color:var(--beni)}nav a:hover::after{right:0}
.cart{border:1px solid var(--ink);padding:2px 12px;border-radius:20px}

/* generic hero (other pages) */
.hero{padding:80px 0 50px;text-align:center}
.hero h1{font-size:48px;line-height:1.15;font-weight:400;margin:.2em 0}
.hero p{max-width:580px;margin:0 auto 24px;color:var(--muted)}
.kicker{font:500 11.5px var(--ui);letter-spacing:.28em;text-transform:uppercase;color:var(--beni)}

/* buttons */
.btn{display:inline-block;background:var(--ink);color:var(--paper);padding:13px 30px;border-radius:1px;text-decoration:none;border:0;font:400 13.5px var(--ui);letter-spacing:.12em;cursor:pointer;transition:background .3s,transform .3s,box-shadow .3s;box-shadow:0 10px 24px -14px rgba(40,30,20,.6)}
.btn:hover{background:var(--matcha);transform:translateY(-1px)}
.btn.buy{background:var(--beni)}.btn.buy:hover{background:var(--matcha)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border-bottom:1px solid var(--ink);padding:13px 4px;border-radius:0}
.btn.ghost:hover{color:var(--beni);border-color:var(--beni);background:transparent}

/* grids + cards */
.grid4{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:28px}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px}
.card,.catcard{display:block;color:var(--ink);text-decoration:none;background:var(--card);border:1px solid var(--line-soft);padding:12px 12px 16px;border-radius:3px;box-shadow:var(--shadow);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,border-color .45s}
.card:hover,.catcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:rgba(122,139,90,.35)}
.card h3,.catcard h3{margin:.75em 0 .15em;font-size:20px;line-height:1.3}
.catcard p{font-size:14px;color:var(--muted);margin:0}
.ph{aspect-ratio:1;display:grid;place-items:center;background:hsl(var(--h) 25% 88%);background-image:radial-gradient(circle at 30% 30%,hsl(var(--h) 30% 94%),transparent 60%);font-size:28px;color:hsl(var(--h) 25% 40%)}
.phimg{aspect-ratio:1;overflow:hidden;background:var(--paper-2);border-radius:2px}
.phimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.card:hover .phimg img,.catcard:hover .phimg img{transform:scale(1.045)}
.product .phimg{max-width:100%}
.price{font:500 14px var(--ui);letter-spacing:.04em;margin:0}.price.big{font-size:22px}
.muted{color:var(--muted);font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}.chips li{border:1px solid var(--line);border-radius:20px;padding:2px 12px;font:13px var(--ui)}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:50px}
.product{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-top:44px}
.prose{max-width:720px}details{border-bottom:1px solid var(--line);padding:10px 0}summary{cursor:pointer}
.contact{display:grid;gap:12px;max-width:480px}.contact input,.contact textarea{width:100%;padding:10px;border:1px solid var(--line);background:var(--card);font:inherit}
.buyrow{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}

/* footer */
footer.site{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;max-width:var(--wrap);margin:0 auto;padding:44px 28px 70px;border-top:1px solid var(--line);font:400 13.5px/1.9 var(--ui);color:var(--ink-soft)}
footer.site strong{font:500 22px var(--serif);letter-spacing:.05em;color:var(--ink)}
footer a{display:block;color:var(--ink-soft);text-decoration:none}footer a:hover{color:var(--beni)}
@media(max-width:700px){.product{grid-template-columns:1fr}.hero h1{font-size:34px}}

/* Seasonal side décor — left & right rails (curated, quiet) */
body{position:relative;min-height:100vh}
body::before,body::after{content:"";position:fixed;top:0;bottom:0;width:72px;pointer-events:none;z-index:0;background-repeat:repeat-y;background-position:top center;background-size:72px auto;opacity:.38;filter:saturate(.75);-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent)}
body::before{left:0}
body::after{right:0;transform:scaleX(-1)}
body.season-spring::before,body.season-spring::after{background-image:url(season-spring.svg)}
body.season-summer::before,body.season-summer::after{background-image:url(season-summer.svg)}
body.season-autumn::before,body.season-autumn::after{background-image:url(season-autumn.svg)}
body.season-winter::before,body.season-winter::after{background-image:url(season-winter.svg)}
.notice,header.site,main,footer.site{position:relative;z-index:1}
.season-tag{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:2;font:10.5px/1.4 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:rgba(244,239,230,.88);border:1px solid var(--line);padding:5px 14px;border-radius:20px;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
@media(max-width:900px){
  body::before,body::after{width:36px;background-size:36px auto;opacity:.28}
  main,header.site,footer.site{padding-left:28px;padding-right:28px}
}
@media(max-width:600px){body::before,body::after{display:none}.season-tag{display:none}main,header.site,footer.site{padding-left:20px;padding-right:20px}}

/* ikigai whispers */
.ikigai-whisper{position:absolute;z-index:1;max-width:160px;font:11px/1.45 var(--ui);letter-spacing:.04em;color:rgba(123,116,102,.28);transition:color .35s ease;pointer-events:auto;user-select:none}
.ikigai-whisper b{display:block;font-weight:500;font-size:12px;margin-bottom:2px;font-family:var(--jp)}
.ikigai-whisper:hover,.ikigai-whisper:focus{color:var(--muted);outline:none}
.ikigai-whisper::before{content:"·";display:block;color:var(--line);font-size:16px;line-height:1;margin-bottom:2px;opacity:.5}
.ikigai-whisper:hover::before,.ikigai-whisper:focus::before{color:var(--beni)}
.ikigai-a{top:120px;left:78px}.ikigai-b{top:42%;right:78px;text-align:right}.ikigai-c{bottom:90px;left:90px}
.ikigai-d{top:220px;right:86px;text-align:right}.ikigai-e{bottom:160px;right:80px;text-align:right}.ikigai-f{top:55%;left:82px}
@media(max-width:900px){.ikigai-a,.ikigai-c,.ikigai-f{left:40px}.ikigai-b,.ikigai-d,.ikigai-e{right:40px}}
@media(max-width:1280px){.ikigai-whisper{display:none}}

/* ───────── Landing only (.lp-*) ───────── */
.lp{--gold:#b39463;--gold-soft:rgba(179,148,99,.38);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .25 0 0 0 0 .18 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  --fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .09' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .3 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E")}
.lp-defs{position:absolute;width:0;height:0;overflow:hidden}

/* hero */
.lp-hero{position:relative;margin:34px 0 0;padding:clamp(56px,8.5vw,112px) clamp(24px,6vw,80px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:center;
  background:
    var(--fiber),
    radial-gradient(ellipse 55% 65% at 0% 0%,rgba(122,139,90,.18),transparent 70%),
    radial-gradient(ellipse 50% 60% at 100% 100%,rgba(233,195,191,.45),transparent 70%),
    radial-gradient(ellipse 40% 40% at 70% 20%,rgba(255,246,228,.9),transparent 70%),
    linear-gradient(180deg,#fcf8f0,#f4ecdf);
  border:1px solid var(--line-soft);box-shadow:var(--shadow-lift),inset 0 0 140px rgba(160,130,90,.10);overflow:hidden;isolation:isolate}
.lp-hero::before{content:"";position:absolute;inset:14px;border:1px solid var(--gold-soft);outline:1px solid rgba(179,148,99,.14);outline-offset:-6px;pointer-events:none;z-index:-1}
.lp-hero::after{content:"森";position:absolute;right:-.04em;bottom:-.3em;font:300 clamp(240px,32vw,460px)/1 var(--jp);color:rgba(95,112,72,.045);z-index:-1;pointer-events:none}
.lp-intro{position:relative;z-index:2}
.lp-kicker{display:flex;align-items:center;gap:14px;font:400 12px var(--ui);letter-spacing:.3em;text-transform:uppercase;color:var(--beni);margin:0 0 22px}
.lp-kicker::before{content:"";width:38px;height:1px;background:linear-gradient(90deg,var(--gold),var(--beni))}
.lp-kicker span{font:400 14px var(--jp);letter-spacing:.3em;text-transform:none;color:var(--ink-soft)}
.lp-hero h1{font:400 clamp(44px,5.8vw,80px)/1.02 var(--serif);letter-spacing:-.012em;margin:0 0 26px}
.lp-hero h1{text-wrap:balance}
@media(min-width:901px){.lp-hero h1{font-size:clamp(44px,5vw,70px)}}
.lp-hero h1 em{font-style:italic;color:var(--matcha);position:relative;white-space:nowrap}
.lp-hero h1 em::after{content:"";position:absolute;left:2%;right:4%;bottom:.06em;height:.16em;background:linear-gradient(90deg,rgba(233,195,191,.0),rgba(233,195,191,.75) 15%,rgba(233,195,191,.55) 85%,rgba(233,195,191,0));z-index:-1;border-radius:40%}
.lp-lede{font-size:17px;max-width:470px;color:var(--ink-soft);margin:0 0 34px}
.lp-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.lp-cta .btn:first-child{background:linear-gradient(135deg,#2f2b26,#3f4a30);box-shadow:0 14px 28px -16px rgba(40,30,20,.7),inset 0 0 0 1px rgba(179,148,99,.35)}
.lp-cta .btn:first-child:hover{background:linear-gradient(135deg,#4f5d3b,#5f7048)}
.lp-meta{margin:34px 0 0;font:400 11.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.lp-meta b{color:var(--beni);font-weight:400;margin:0 8px}

/* hero atmosphere: sparse floating sakura dots + mist */
.lp-air{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.lp-air i{position:absolute;top:-4%;width:7px;height:7px;border-radius:70% 0 70% 0;background:radial-gradient(circle at 30% 30%,#fff,#f3c0ca 60%,#e7a1b1);opacity:0;animation:lp-drift 18s linear infinite}
.lp-air i:nth-child(1){left:8%;animation-delay:-2s}
.lp-air i:nth-child(2){left:22%;animation-delay:-9s;animation-duration:22s;transform:scale(.7)}
.lp-air i:nth-child(3){left:37%;animation-delay:-14s;width:5px;height:5px}
.lp-air i:nth-child(4){left:51%;animation-delay:-5s;animation-duration:24s}
.lp-air i:nth-child(5){left:63%;animation-delay:-17s;width:9px;height:9px}
.lp-air i:nth-child(6){left:74%;animation-delay:-11s;animation-duration:20s}
.lp-air i:nth-child(7){left:86%;animation-delay:-3s;width:5px;height:5px}
.lp-air i:nth-child(8){left:93%;animation-delay:-19s;animation-duration:26s}
.lp-air i:nth-child(9){left:45%;animation-delay:-7s;animation-duration:28s;width:6px;height:6px}
@keyframes lp-drift{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}10%{opacity:.75}50%{transform:translate3d(-40px,52vh,0) rotate(220deg)}90%{opacity:.5}100%{transform:translate3d(30px,105vh,0) rotate(420deg);opacity:0}}
.lp-mist{position:absolute;left:-20%;right:-20%;bottom:-8%;height:42%;background:radial-gradient(ellipse 40% 60% at 30% 70%,rgba(255,251,244,.85),transparent 70%),radial-gradient(ellipse 35% 50% at 75% 80%,rgba(255,251,244,.7),transparent 70%);filter:blur(8px);animation:lp-mist 40s ease-in-out infinite alternate}
@keyframes lp-mist{to{transform:translateX(8%)}}

/* collage — scrapbook */
.lp-collage{position:relative;z-index:1;aspect-ratio:4/5;min-height:360px}
.lp-collage figure{position:absolute;margin:0;--pad:10px 10px 32px;padding:var(--pad);
  background:var(--fiber),linear-gradient(160deg,#fffdf8,#f7f0e3);
  border:1px solid rgba(140,115,80,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(60,45,25,.10),0 8px 14px -8px rgba(60,45,25,.25),0 30px 50px -26px rgba(60,45,25,.5);
  transition:transform .9s cubic-bezier(.2,.7,.2,1),box-shadow .9s}
.lp-collage figure>img,.lp-collage figure>svg{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.02) sepia(.06)}
.lp-collage figure::after{content:"";position:absolute;inset:var(--pad);background:var(--grain);background-size:160px;mix-blend-mode:multiply;opacity:.35;pointer-events:none;box-shadow:inset 0 0 22px rgba(60,40,20,.16)}
.lp-collage figcaption{position:absolute;left:12px;bottom:7px;font:400 11px var(--jp);letter-spacing:.2em;color:var(--muted)}
.lp-collage .f1{--pad:11px 11px 34px 12px;width:60%;height:56%;left:2%;top:1%;transform:rotate(-3deg)}
.lp-collage .f2{--pad:9px 12px 30px 10px;width:50%;height:44%;right:-1%;top:24%;transform:rotate(3.5deg);z-index:2}
.lp-collage .f3{--pad:12px 10px 36px 11px;width:46%;height:38%;left:9%;bottom:0;transform:rotate(-1.2deg);z-index:3}
.lp-collage .f4{--pad:8px 8px 26px 8px;width:31%;height:32%;right:5%;bottom:3%;transform:rotate(5deg);z-index:4}
.lp-collage .f4 figcaption{font-size:10px;letter-spacing:.14em;color:var(--matcha)}
.lp-collage:hover .f1{transform:rotate(-4deg) translate(-8px,-5px)}
.lp-collage:hover .f2{transform:rotate(4.5deg) translate(8px,-2px)}
.lp-collage:hover .f3{transform:rotate(-.4deg) translate(-2px,6px)}
.lp-collage:hover .f4{transform:rotate(7deg) translate(6px,4px)}
.lp-tape{position:absolute;z-index:5;width:86px;height:24px;top:-11px;left:50%;margin-left:-43px;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 4px,transparent 4px 9px),rgba(233,195,191,.72);
  clip-path:polygon(0 8%,4% 0,9% 10%,14% 0,100% 0,96% 14%,100% 30%,95% 48%,100% 66%,96% 84%,100% 100%,0 100%,4% 82%,0 64%,5% 46%,0 28%);
  box-shadow:0 1px 2px rgba(0,0,0,.06);mix-blend-mode:multiply}
.lp-tape.t-a{transform:rotate(-6deg);left:28%}
.lp-tape.t-b{background:repeating-linear-gradient(90deg,rgba(255,255,255,.4) 0 2px,transparent 2px 7px),rgba(160,178,135,.6);transform:rotate(8deg);left:auto;right:-26px;top:18px;width:70px}
.lp-tape.t-c{background:radial-gradient(circle,rgba(181,72,58,.35) 1.5px,transparent 2px) 0 0/8px 8px,rgba(232,214,180,.8);width:58px;margin-left:-29px;transform:rotate(-4deg)}
.lp-hanko{position:absolute;right:4%;top:2%;z-index:6;width:62px;height:62px;border-radius:7px 5px 8px 4px;background:var(--beni);color:#fbeee8;display:grid;place-items:center;font:500 15px/1.15 var(--jp);text-align:center;transform:rotate(7deg);box-shadow:0 8px 18px -10px rgba(120,30,20,.6),inset 0 0 0 3px var(--beni),inset 0 0 0 4.5px rgba(251,238,232,.75);opacity:.93}
.lp-note{position:absolute;left:-4%;bottom:-6%;z-index:6;font:italic 400 15px var(--serif);color:var(--ink-soft);transform:rotate(-2deg);background:rgba(255,252,246,.0);white-space:nowrap}
.lp-note::before{content:"";display:inline-block;width:26px;height:1px;background:var(--gold);vertical-align:middle;margin-right:10px}

/* gold rule */
.lp-rule{display:flex;align-items:center;gap:16px;max-width:520px;margin:64px auto -40px;color:var(--gold);font-size:9px}
.lp-rule::before,.lp-rule::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent)}

/* sections */
.lp-sec{margin-top:110px}
.lp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 34px;padding-bottom:16px;border-bottom:1px solid var(--line);position:relative}
.lp-head::after{content:"";position:absolute;left:0;bottom:-1px;width:84px;height:1px;background:var(--gold)}
.lp-head h2{margin:0;border:0;padding:0;font-size:clamp(30px,3.4vw,44px);line-height:1.1}
.lp-head h2 small{display:block;font:400 12px var(--ui);letter-spacing:.3em;text-transform:uppercase;color:var(--beni);margin-bottom:10px}
.lp-head a{font:400 13px var(--ui);letter-spacing:.1em;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;white-space:nowrap}
.lp-head a:hover{color:var(--beni);border-color:var(--beni)}

/* categories */
.lp-cats{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
.lp-cats .catcard{padding:0;overflow:hidden;position:relative;display:flex;flex-direction:column;background:var(--fiber),var(--card)}
.lp-cats .catcard::after{content:"";position:absolute;inset:8px;border:1px solid rgba(179,148,99,0);pointer-events:none;transition:border-color .5s}
.lp-cats .catcard:hover::after{border-color:rgba(179,148,99,.4)}
.lp-cats .catcard .phimg{aspect-ratio:4/5;border-radius:0;position:relative}
.lp-cats .catcard .phimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 26%);pointer-events:none}
.lp-cats .catcard:first-child .phimg{aspect-ratio:auto;flex:1;min-height:340px}
.lp-cats .catcard:first-child .phimg::after{background:none}
.lp-cattext{padding:18px 22px 22px}
.lp-cattext h3{margin:0 0 4px;font-size:24px}
.lp-cattext p{font-size:14px;color:var(--muted);margin:0}
.lp-cattext .jp{display:block;font:400 12px var(--jp);letter-spacing:.3em;color:var(--beni);margin-bottom:6px}
.lp-go{display:inline-block;margin-top:12px;font:400 11.5px var(--ui);letter-spacing:.16em;text-transform:uppercase;color:var(--matcha);border-bottom:1px solid transparent;transition:border-color .4s,letter-spacing .4s}
.catcard:hover .lp-go{border-color:var(--matcha);letter-spacing:.2em}
.lp-num{position:absolute;top:16px;left:18px;z-index:2;font:italic 400 18px var(--serif);color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.lp-badge{position:absolute;top:16px;right:16px;z-index:2;font:500 10.5px var(--ui);letter-spacing:.2em;text-transform:uppercase;background:rgba(255,252,246,.92);color:var(--beni);padding:5px 10px;border-radius:20px;box-shadow:0 4px 12px -6px rgba(120,60,40,.4)}
.lp-cats .catcard:first-child .lp-num{color:#fffaf2}
.lp .ikigai-whisper{display:none}
@media(min-width:1600px){.lp .ikigai-whisper{display:block}.lp .ikigai-a{top:180px;left:90px}.lp .ikigai-b{right:90px}}

/* Soft Toys panel — premium forest illustration until plush photos land */
.lp-plush{position:relative;background:#efe6d6}
.lp-plush>svg{position:absolute;inset:0;width:100%;height:100%;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.lp-plush::before{content:"";position:absolute;inset:0;z-index:1;background:var(--grain);background-size:160px;mix-blend-mode:multiply;opacity:.22;pointer-events:none}
.catcard:hover .lp-plush>svg{transform:scale(1.04)}
.lp-plush .jpbig{position:absolute;z-index:2;left:0;right:0;top:9%;text-align:center;font:300 clamp(16px,1.7vw,22px) var(--jp);letter-spacing:.6em;color:rgba(74,69,62,.5)}
.lp-mochi-g{transform-box:fill-box;transform-origin:50% 100%;animation:lp-breathe 5.5s ease-in-out infinite}
@keyframes lp-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.025,.975)}}

/* quote — washi scroll */
.lp-quote{margin:120px auto 0;max-width:820px;text-align:center;position:relative}
.lp-quote::before{content:"";display:block;width:1px;height:56px;background:linear-gradient(var(--gold),transparent);margin:0 auto 30px;opacity:.8}
.lp-scroll{position:relative;padding:46px clamp(26px,6vw,80px) 40px;
  background:var(--fiber),linear-gradient(180deg,rgba(243,214,212,.55),rgba(250,240,232,.7) 40%,rgba(243,214,212,.5));
  clip-path:polygon(0 3%,2% 0,6% 2%,11% 0,17% 1.5%,24% 0,32% 2%,41% 0,50% 1.5%,58% 0,66% 2%,74% 0,82% 1.5%,90% 0,96% 2%,100% 0,99% 50%,100% 100%,95% 98%,88% 100%,80% 98.5%,71% 100%,62% 98%,53% 100%,44% 98.5%,35% 100%,26% 98%,17% 100%,9% 98.5%,3% 100%,0 97%,1% 50%)}
.lp-scroll::before,.lp-scroll::after{content:"";position:absolute;top:0;bottom:0;width:10px;background:linear-gradient(90deg,rgba(95,112,72,.35),rgba(95,112,72,.12));}
.lp-scroll::before{left:3%}.lp-scroll::after{right:3%}
.lp-quote p{font:italic 400 clamp(26px,3vw,38px)/1.35 var(--serif);margin:0 0 16px;color:var(--ink)}
.lp-quote cite{font:400 12px var(--ui);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-style:normal}
.lp-qseal{display:inline-grid;place-items:center;width:40px;height:40px;margin-bottom:16px;border:1.5px solid var(--beni);border-radius:50%;color:var(--beni);font:500 18px var(--jp);transform:rotate(-8deg);box-shadow:inset 0 0 0 3px rgba(255,250,244,.6),inset 0 0 0 4px rgba(181,72,58,.5);opacity:.85}

/* featured — editorial mosaic */
.lp-feat{grid-template-columns:repeat(4,1fr);gap:34px 28px;grid-auto-flow:dense}
.lp-feat .card{background:transparent;border:0;box-shadow:none;padding:0;display:flex;flex-direction:column}
.lp-feat .card .phimg{box-shadow:var(--shadow);border-radius:2px;aspect-ratio:4/5;position:relative}
.lp-feat .card .phimg img{object-position:50% 45%}
.lp-feat .card .phimg::after{content:"";position:absolute;inset:0;background:var(--grain);background-size:160px;mix-blend-mode:multiply;opacity:.12;pointer-events:none}
.lp-feat .card:hover{transform:none;box-shadow:none}
.lp-feat .card:hover .phimg{box-shadow:var(--shadow-lift)}
.lp-feat .card h3{font-size:19px;margin:.9em 0 .1em;transition:color .4s}
.lp-feat .card:hover h3{color:var(--matcha)}
.lp-feat .card .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lp-feat .card .muted{font:400 11px var(--ui);letter-spacing:.16em;text-transform:uppercase;margin:0}
.lp-feat .lp-big{grid-column:span 2;grid-row:span 2}
.lp-feat .lp-wide{grid-column:span 2}
.lp-feat .lp-big,.lp-feat .lp-wide{position:relative}
.lp-feat .lp-big .phimg,.lp-feat .lp-wide .phimg{aspect-ratio:auto;flex:1;min-height:260px}
.lp-feat .lp-big .phimg img,.lp-feat .lp-wide .phimg img{position:absolute;inset:0}
.lp-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:70px 26px 22px;color:#fffaf2;background:linear-gradient(180deg,transparent,rgba(30,26,20,.28) 40%,rgba(30,26,20,.62));border-radius:0 0 2px 2px}
.lp-feat .lp-cap h3{color:#fffaf2;font-size:clamp(24px,2.4vw,32px);margin:.2em 0 .15em}
.lp-feat .card:hover .lp-cap h3{color:#fff}
.lp-feat .lp-cap .muted{color:rgba(255,250,242,.8)}
.lp-feat .lp-cap .price{color:#fffaf2}
.lp-pick{display:inline-block;font:500 10.5px var(--ui);letter-spacing:.22em;text-transform:uppercase;color:#f6dcd6;border-top:1px solid rgba(179,148,99,.8);padding-top:8px}

/* promise — hanko seals */
.lp-promise{margin-top:110px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:var(--fiber)}
.lp-promise::before{content:"";position:absolute;left:50%;top:-1px;width:120px;margin-left:-60px;height:1px;background:var(--gold)}
.lp-promise div{padding:40px 28px 36px;text-align:center}
.lp-promise div+div{border-left:1px solid var(--line)}
.lp-seal{display:inline-grid;place-items:center;width:56px;height:56px;margin-bottom:14px;background:var(--beni);color:#fdf1ec;font:500 26px var(--jp);border-radius:8px 6px 9px 5px;transform:rotate(-4deg);
  box-shadow:inset 0 0 0 3px var(--beni),inset 0 0 0 4.5px rgba(253,241,236,.7),0 10px 18px -12px rgba(120,30,20,.6);opacity:.9;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.lp-seal.s2{background:var(--matcha);box-shadow:inset 0 0 0 3px var(--matcha),inset 0 0 0 4.5px rgba(253,241,236,.7),0 10px 18px -12px rgba(40,60,20,.6);border-radius:50%;transform:rotate(3deg)}
.lp-seal.s3{transform:rotate(5deg);border-radius:5px 9px 6px 8px}
.lp-promise div:hover .lp-seal{transform:rotate(0) scale(1.06)}
.lp-promise h3{margin:0 0 6px;font-size:22px}
.lp-promise p{margin:0;font-size:14.5px;color:var(--muted)}

.lp-ronin{display:flex;align-items:center;gap:12px;margin-top:12px}
.lp-ronin img{width:28px;height:28px;border-radius:50%}

/* entrance + living motion */
@keyframes lp-up{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
@keyframes lp-stamp{0%{opacity:0;transform:rotate(18deg) scale(1.35)}55%{opacity:1;transform:rotate(7deg) scale(.92)}100%{opacity:.93;transform:rotate(7deg) scale(1)}}
@keyframes lp-float1{0%,100%{transform:rotate(-3deg) translate(0,0)}50%{transform:rotate(-4.2deg) translate(-4px,-7px)}}
@keyframes lp-float2{0%,100%{transform:rotate(3.5deg) translate(0,0)}50%{transform:rotate(4.8deg) translate(5px,-5px)}}
@keyframes lp-float3{0%,100%{transform:rotate(-1.2deg) translate(0,0)}50%{transform:rotate(-.2deg) translate(-3px,5px)}}
@keyframes lp-float4{0%,100%{transform:rotate(5deg) translate(0,0)}50%{transform:rotate(7deg) translate(4px,-4px)}}
@keyframes lp-shimmer{0%,100%{filter:brightness(1)}50%{filter:brightness(1.06)}}
@keyframes lp-kanji{0%,100%{opacity:.045;translate:0 0}50%{opacity:.07;translate:0 -12px}}
@keyframes lp-badge-pulse{0%,100%{box-shadow:0 4px 12px -6px rgba(120,60,40,.4)}50%{box-shadow:0 6px 18px -4px rgba(181,72,58,.45)}}

.lp-intro>*{animation:lp-up 1.05s cubic-bezier(.2,.7,.2,1) both}
.lp-intro>:nth-child(2){animation-delay:.1s}.lp-intro>:nth-child(3){animation-delay:.2s}.lp-intro>:nth-child(4){animation-delay:.3s}.lp-intro>:nth-child(5){animation-delay:.4s}

.lp-collage figure{opacity:0;animation:lp-up 1.15s cubic-bezier(.2,.7,.2,1) both}
.lp-collage .f1{animation-delay:.18s}.lp-collage .f2{animation-delay:.34s}.lp-collage .f3{animation-delay:.5s}.lp-collage .f4{animation-delay:.66s}
.lp-collage.is-alive figure{opacity:1}
.lp-collage.is-alive .f1{animation:lp-float1 9s ease-in-out .9s infinite}
.lp-collage.is-alive .f2{animation:lp-float2 10s ease-in-out 1.05s infinite}
.lp-collage.is-alive .f3{animation:lp-float3 8.5s ease-in-out 1.2s infinite}
.lp-collage.is-alive .f4{animation:lp-float4 11s ease-in-out 1.35s infinite}
.lp-collage .lp-hanko{opacity:0;animation:lp-stamp .9s cubic-bezier(.2,.8,.2,1.2) .85s both}
.lp-note{opacity:0;animation:lp-up 1s .95s both}
.lp-hero::after{animation:lp-kanji 14s ease-in-out infinite}
.lp-badge{animation:lp-badge-pulse 3.5s ease-in-out infinite}
.lp-plush>svg{animation:lp-shimmer 8s ease-in-out infinite}

/* scroll reveals (JS adds .is-in; CSS view() as progressive enhancement) */
.lp-in{opacity:0;translate:0 28px;transition:opacity .9s cubic-bezier(.2,.7,.2,1),translate .9s cubic-bezier(.2,.7,.2,1)}
.lp-in.is-in{opacity:1;translate:0 0}
.lp-in.is-in .catcard,.lp-in.is-in .card.lp-lcard,.lp-in.is-in .lp-feat>.card,.lp-in.is-in .lp-promise>div,.lp-in.is-in .lp-slot{
  opacity:0;animation:lp-up .85s cubic-bezier(.2,.7,.2,1) both}
.lp-in.is-in .catcard:nth-child(1),.lp-in.is-in .lp-feat>.card:nth-child(1),.lp-in.is-in .lp-promise>div:nth-child(1),.lp-in.is-in .lp-slot:nth-child(1){animation-delay:.05s}
.lp-in.is-in .catcard:nth-child(2),.lp-in.is-in .lp-feat>.card:nth-child(2),.lp-in.is-in .lp-promise>div:nth-child(2),.lp-in.is-in .lp-slot:nth-child(2){animation-delay:.14s}
.lp-in.is-in .catcard:nth-child(3),.lp-in.is-in .lp-feat>.card:nth-child(3),.lp-in.is-in .lp-promise>div:nth-child(3),.lp-in.is-in .lp-slot:nth-child(3){animation-delay:.23s}
.lp-in.is-in .lp-feat>.card:nth-child(4){animation-delay:.3s}
.lp-in.is-in .lp-feat>.card:nth-child(5){animation-delay:.36s}
.lp-in.is-in .lp-feat>.card:nth-child(6){animation-delay:.42s}
.lp-in.is-in .lp-feat>.card:nth-child(7){animation-delay:.48s}
.lp-in.is-in .lp-feat>.card:nth-child(8){animation-delay:.54s}
.lp-in.is-in .lp-lcard:nth-child(2){animation-delay:.12s}
.lp-in.is-in .lp-lcard:nth-child(3){animation-delay:.2s}
.lp-in.is-in .lp-lcard:nth-child(4){animation-delay:.28s}

.lp-hero{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.lp-parallax .lp-collage{will-change:transform;transition:transform .15s linear}

@media(max-width:900px){
  .lp-hero{grid-template-columns:1fr;text-align:left}
  .lp-collage{max-width:440px;width:100%;margin:10px auto 30px}
  .lp-cats{grid-template-columns:1fr 1fr}
  .lp-cats .catcard:first-child{grid-column:1/-1}
  .lp-cats .catcard:first-child .phimg{aspect-ratio:16/10;flex:none;min-height:0}
  .lp-feat{grid-template-columns:repeat(2,1fr)}
  .lp-feat .lp-big{grid-row:auto}
  .lp-feat .lp-big .phimg,.lp-feat .lp-wide .phimg{flex:none;aspect-ratio:16/11}
  .lp-promise{grid-template-columns:1fr}.lp-promise div+div{border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:560px){
  .lp-hero{margin-top:18px;padding:48px 22px 56px}
  .lp-hero::before{inset:8px}
  .lp-collage{min-height:0}
  .lp-collage .f4{width:36%}
  .lp-note{left:0;bottom:-8%;font-size:13.5px}
  .lp-cats{grid-template-columns:1fr}
  .lp-feat{gap:26px 16px}
  .lp-feat .lp-cap{padding:50px 16px 14px}
  .lp-head{flex-direction:column;align-items:flex-start}
  .lp-sec,.lp-promise{margin-top:80px}
  .lp-rule{margin:48px auto -30px}
}
/* ───────── Soft Layers · Japanese apparel (landing) ───────── */
.lp-layers-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;gap:28px;align-items:start}
.lp-layers-intro{position:relative;padding:34px 30px 30px;background:linear-gradient(160deg,rgba(255,252,246,.9),rgba(239,231,217,.75));border:1px solid var(--gold-soft);outline:1px solid rgba(179,148,99,.14);outline-offset:-7px;align-self:stretch;display:flex;flex-direction:column;gap:14px;overflow:hidden}
.lp-layers-intro p{margin:0;color:var(--ink-soft);font-size:15.5px;position:relative}
.lp-layers-intro .btn{align-self:flex-start;background:linear-gradient(135deg,#2f2b26,#3f4a30);box-shadow:0 14px 28px -16px rgba(40,30,20,.7),inset 0 0 0 1px rgba(179,148,99,.35)}
.lp-layers-kanji{font:300 64px/1 var(--jp);color:var(--beni);opacity:.14;position:absolute;right:-6px;bottom:4px;writing-mode:vertical-rl;letter-spacing:.1em;pointer-events:none}
.lp-layers-soon{margin-top:auto!important;padding-top:14px;border-top:1px solid var(--gold-soft);font:400 13px/1.6 var(--ui)!important;color:var(--muted)!important}
.lp-layers-soon span{display:block;font:500 10.5px var(--ui);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.lp-lcard{background:transparent;border:0;box-shadow:none;padding:0;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.lp-lcard .phimg{aspect-ratio:3/4;box-shadow:var(--shadow);border-radius:2px;position:relative;overflow:hidden;outline:1px solid rgba(179,148,99,.25);outline-offset:6px;transition:box-shadow .4s}
.lp-lcard .phimg img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.lp-lcard:hover{transform:none;box-shadow:none}
.lp-lcard:hover .phimg{box-shadow:var(--shadow-lift)}
.lp-lcard:hover .phimg img{transform:scale(1.04)}
.lp-lcard h3{font-size:19px;margin:1em 0 .1em;transition:color .4s}
.lp-lcard:hover h3{color:var(--matcha)}
.lp-lcard .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lp-lcard .muted{font:400 11px var(--ui);letter-spacing:.16em;text-transform:uppercase;margin:0}

/* ───────── Calm wellness teaser ───────── */
.lp-well-panel{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;padding:56px 56px;border:1px solid var(--gold-soft);outline:1px solid rgba(179,148,99,.14);outline-offset:-8px;background:
 radial-gradient(ellipse 60% 70% at 18% 40%,rgba(201,211,180,.55),transparent 70%),
 radial-gradient(ellipse 50% 60% at 90% 10%,rgba(243,214,212,.6),transparent 70%),
 linear-gradient(160deg,#fbf6ec,#f1ebdd);overflow:hidden}
.lp-well-panel::before{content:"";position:absolute;inset:0;background:var(--grain);background-size:160px;mix-blend-mode:multiply;opacity:.1;pointer-events:none}
.lp-well-art{position:relative;height:340px}
.lp-well-sun{position:absolute;left:12%;top:8%;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#f6e3d6,#e9c3bf 70%);opacity:.75}
.lp-well-bottle{position:absolute;left:18%;bottom:6px;height:290px;filter:drop-shadow(0 18px 18px rgba(60,45,25,.18));transform:rotate(-4deg)}
.lp-well-mat{position:absolute;left:46%;bottom:0;height:230px;filter:drop-shadow(0 18px 18px rgba(60,45,25,.16));transform:rotate(5deg)}
.lp-well-seal{right:6%!important;top:4%!important}
.lp-well-petal{position:absolute;width:16px;height:12px;background:#f3c9c4;border-radius:12px 1px 12px 1px;opacity:.85;animation:lp-wiggle 9s ease-in-out infinite}
.lp-well-petal.p1{left:8%;top:20%}.lp-well-petal.p2{left:70%;top:60%;animation-delay:-3s;transform:scale(.8)}
.lp-well-petal.p3{left:40%;top:6%;animation-delay:-5s}.lp-well-petal.p4{left:86%;top:30%;animation-delay:-7s;transform:scale(.7)}
@keyframes lp-wiggle{0%,100%{translate:0 0;rotate:0deg}50%{translate:10px 16px;rotate:40deg}}
.lp-well-sun{animation:lp-sun 12s ease-in-out infinite alternate}
@keyframes lp-sun{from{transform:scale(1);opacity:.7}to{transform:scale(1.08);opacity:.9}}
.lp-well-bottle{animation:lp-float-a 7s ease-in-out infinite}
.lp-well-mat{animation:lp-float-b 8.5s ease-in-out infinite}
@keyframes lp-float-a{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-8px)}}
@keyframes lp-float-b{0%,100%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}
.lp-well-text{position:relative}
.lp-well-text h2{margin:.3em 0 .4em;border:0;padding:0;font-size:clamp(30px,3.2vw,42px);line-height:1.12}
.lp-well-text>p{color:var(--ink-soft);margin:0 0 24px;max-width:46ch}
.lp-well-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 28px}
.lp-slot{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px 16px 14px;background:rgba(255,252,246,.72);border:1px dashed rgba(179,148,99,.55);border-radius:2px}
.lp-slot-k{font:400 22px/1.2 var(--jp);color:var(--matcha)}
.lp-slot b{font:500 15px var(--serif);font-size:18px}
.lp-slot small{font:400 10.5px var(--ui);letter-spacing:.2em;text-transform:uppercase;color:var(--beni)}
@media(max-width:900px){
  .lp-layers-grid{grid-template-columns:repeat(2,1fr)}
  .lp-layers-intro{grid-column:1/-1}
  .lp-well-panel{grid-template-columns:1fr;padding:40px 28px;gap:24px}
  .lp-well-art{height:260px}.lp-well-bottle{height:230px}.lp-well-mat{height:180px}
}
@media(max-width:560px){
  .lp-well-slots{grid-template-columns:1fr}
  .lp-layers-grid{gap:22px 16px}
}

/* Soft lounge music control */
.mm-ambient{position:fixed;right:18px;bottom:18px;z-index:45;display:inline-flex;align-items:center;gap:8px;padding:10px 14px 10px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,252,246,.92);color:var(--ink-soft);font:500 11.5px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .3s,color .3s,border-color .3s,transform .3s}
.mm-ambient:hover{color:var(--beni);border-color:rgba(181,72,58,.35);transform:translateY(-1px)}
.mm-ambient.is-on{background:linear-gradient(135deg,#3f4a30,#5f7048);color:#f6f1e6;border-color:transparent}
.mm-ambient-ico{font-size:14px;line-height:1;opacity:.9}
.mm-ambient.is-on .mm-ambient-ico{animation:mm-pulse 1.6s ease-in-out infinite}
@keyframes mm-pulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
@media(max-width:600px){.mm-ambient{right:12px;bottom:12px;padding:9px 12px}.mm-ambient-txt{letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){.mm-ambient{display:none!important}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  .lp-in,.lp-intro>*,.lp-collage figure,.lp-collage .lp-hanko,.lp-note{opacity:1!important;translate:none!important;transform:none!important}
}

.ronin-also a{display:inline;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}
.ronin-also a:hover{color:var(--beni);border-bottom-color:var(--beni)}
.wz-soft{font-weight:500;letter-spacing:.04em;color:var(--ink-soft)}
/* Ronin books shelf (Amazon deep-links only) */
.book-grid .book-card{display:flex;flex-direction:column}
.book-card .book-cover{display:block;aspect-ratio:2/3}
.book-card .book-cover img{object-fit:cover}
.book-card h3{font-size:18px}
.book-card>p.muted{flex:1;margin:.3em 0 .6em;font-size:14.5px;line-height:1.55}
.book-card .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.book-card .book-btn{margin-top:12px;text-align:center;padding:11px 18px}

/* ── Calm motion polish (site-wide, inner pages). Soft fades only; no loops. ── */
@keyframes mm-rise{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes mm-fade{from{opacity:0}to{opacity:1}}
body:not(.lp) main>h1,body:not(.lp) main>.kicker,body:not(.lp) main>p,body:not(.lp) main>.prose,body:not(.lp) main>.contact{animation:mm-rise .9s cubic-bezier(.2,.7,.2,1) backwards}
body:not(.lp) main>h1{animation-delay:.04s}
body:not(.lp) main>p{animation-delay:.12s}
body:not(.lp) main>.prose,body:not(.lp) main>.contact{animation-delay:.16s}
body:not(.lp) header.site{animation:mm-fade .8s ease backwards}
/* first rows of cards settle in on load, gently staggered */
body:not(.lp) main .grid4>.card,body:not(.lp) main .grid3>.card,body:not(.lp) main .grid4>.catcard,body:not(.lp) main .grid3>.catcard{animation:mm-rise .85s cubic-bezier(.2,.7,.2,1) backwards}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(1){animation-delay:.18s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(2){animation-delay:.25s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(3){animation-delay:.32s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(4){animation-delay:.39s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(5){animation-delay:.46s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(6){animation-delay:.52s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(7){animation-delay:.58s}
body:not(.lp) main :is(.grid4,.grid3)>:nth-child(8){animation-delay:.64s}
/* below-the-fold cards: motion.js marks them .mm-wait, then reveals on scroll */
.mm-wait{opacity:0!important;transform:translate3d(0,16px,0)!important;animation:none!important}
.mm-shown{animation:mm-rise .8s cubic-bezier(.2,.7,.2,1) backwards!important;animation-delay:var(--mm-d,0s)!important}
/* product detail: image eases in, details follow */
main.product>.phimg{animation:mm-fade 1.1s ease backwards}
main.product>.phimg img{animation:mm-settle 1.6s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes mm-settle{from{transform:scale(1.035)}to{transform:none}}
main.product>div:not(.phimg)>*{animation:mm-rise .85s cubic-bezier(.2,.7,.2,1) backwards}
main.product>div:not(.phimg)>:nth-child(2){animation-delay:.08s}
main.product>div:not(.phimg)>:nth-child(3){animation-delay:.14s}
main.product>div:not(.phimg)>:nth-child(n+4){animation-delay:.2s}
/* soft hover polish */
.card .price,.catcard h3{transition:color .4s ease}
.card:hover .price{color:var(--beni)}
.catcard:hover h3{color:var(--matcha)}
.btn:hover{transform:translateY(-1px)}
.card:focus-visible,.catcard:focus-visible{outline:2px solid rgba(122,139,90,.55);outline-offset:3px;transform:translateY(-4px);box-shadow:var(--shadow-lift)}
/* images fade in as they load */
.phimg img.mm-img{opacity:0;transition:opacity .7s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.phimg img.mm-img.is-loaded{opacity:1}
footer.site{animation:mm-fade 1s ease .2s backwards}
@media(prefers-reduced-motion:reduce){
  .mm-wait,.phimg img.mm-img{opacity:1!important;transform:none!important}
  body:not(.lp) main *,main.product *,header.site,footer.site{animation:none!important}
}

/* ───────── polish 2026-10-27 · full-width bright hero, trust strip, category accents ───────── */
body.lp{overflow-x:clip}
.mm-hero{position:relative;width:100vw;margin:0 0 0 calc(50% - 50vw);overflow:hidden;isolation:isolate;
  background:
    radial-gradient(ellipse 42% 62% at 74% 52%,#f7f3ea 0%,rgba(247,243,234,.92) 42%,rgba(247,243,234,0) 74%),
    radial-gradient(ellipse 60% 80% at 0% 0%,rgba(243,214,212,.75),transparent 70%),
    radial-gradient(ellipse 55% 70% at 100% 100%,rgba(214,232,244,.8),transparent 70%),
    linear-gradient(180deg,#fffaf6 0%,#fdf3ef 55%,#f4f8f2 100%)}
.mm-hero-inner{max-width:var(--wrap);margin:0 auto;padding:clamp(40px,6vw,88px) 28px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,64px);align-items:center;position:relative;z-index:1}
.mm-hero-kicker{margin:0 0 18px;font:400 12px var(--ui);letter-spacing:.3em;text-transform:uppercase;color:var(--beni)}
.mm-hero h1{font:400 clamp(40px,5.4vw,72px)/1.04 var(--serif);letter-spacing:-.01em;margin:0 0 32px;text-wrap:balance;color:var(--ink)}
.mm-hero h1 em{font-style:italic;color:var(--matcha)}
.mm-hero-cta{font-size:14px;padding:15px 36px;background:linear-gradient(135deg,#2f2b26,#3f4a30);box-shadow:0 14px 28px -16px rgba(40,30,20,.7)}
.mm-hero-cta:hover{background:linear-gradient(135deg,#4f5d3b,#5f7048)}
.mm-hero-img{margin:0;justify-self:center;width:min(100%,520px);aspect-ratio:1}
.mm-hero-img img{display:block;width:100%;height:100%;object-fit:contain;-webkit-mask-image:radial-gradient(circle closest-side at 50% 50%,#000 72%,transparent 100%);mask-image:radial-gradient(circle closest-side at 50% 50%,#000 72%,transparent 100%);animation:mm-bob 7s ease-in-out infinite}
@keyframes mm-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.mm-trust{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin:0 0 8px;padding:12px 16px;border-bottom:1px solid var(--line-soft);font:400 12px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.mm-trust b{color:var(--beni);font-weight:400}
@media(max-width:760px){.mm-hero-inner{grid-template-columns:1fr;text-align:center}.mm-hero-img{grid-row:1;width:min(78%,360px)}}
@media(prefers-reduced-motion:reduce){.mm-hero-img img{animation:none}}
/* light category accents — sakura / matcha / sky */
.catcard.acc-sakura{border-top:3px solid #f0c9cf;background:linear-gradient(180deg,rgba(243,214,212,.35),transparent 40%),var(--card)}
.catcard.acc-matcha{border-top:3px solid #c9d6b0;background:linear-gradient(180deg,rgba(201,214,176,.32),transparent 40%),var(--card)}
.catcard.acc-sky{border-top:3px solid #c6dcea;background:linear-gradient(180deg,rgba(198,220,234,.35),transparent 40%),var(--card)}
/* Soft Layers — present but quiet */
.lp-layers.lp-quiet{opacity:.94}
.lp-layers.lp-quiet .lp-layers-intro .btn{background:transparent;color:var(--ink);box-shadow:none}
.lp-layers.lp-quiet h2{font-size:.88em}
