/* Kurimu クリーム — editorial design system (storefront).
   Matches the editorial homepage: cream paper, ink, hairlines, mono micro-labels,
   Metropolis display / Be Vietnam body, outline/solid pill buttons. Monochrome
   with restrained pastel washes. All motion respects prefers-reduced-motion. */
@font-face{font-family:Metropolis;src:url(../fonts/metropolis-regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Metropolis;src:url(../fonts/metropolis-medium.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Metropolis;src:url(../fonts/metropolis-bold.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url(../fonts/bevietnam-regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url(../fonts/bevietnam-medium.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url(../fonts/bevietnam-bold.woff2) format('woff2');font-weight:700;font-display:swap}

:root{
  --cream:#FBF8F2;--cream-2:#F2ECDF;--ink:#262320;--ink-soft:#57524A;--mist:#8B8478;
  --sage:#E4E7DB;--sage-deep:#B7BBA8;--sage-tint:#ECE7DA;
  --taupe:#8A8378;--btn:#262320;--white:#fff;
  --line:rgba(38,35,32,.14);--line-2:rgba(38,35,32,.24);--line-soft:rgba(38,35,32,.08);
  --accent:#262320;--accent-soft:rgba(38,35,32,.08);--danger:#a4442f;--ok:#4c6b4f;
  --r:2px;--r-sm:2px;--r-pill:999px;
  --sh-1:0 1px 0 rgba(38,35,32,.05);--sh-2:0 24px 55px -32px rgba(38,35,32,.3);
  --ease:cubic-bezier(.22,1,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --shell:min(1220px,92vw);
  --disp:Metropolis,sans-serif;--body:'Be Vietnam Pro',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--body);background:var(--cream);color:var(--ink);font-size:15px;line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
/* fine film grain — tactile, printed feel */
body::before{content:'';position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.4;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E")}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--cream)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--shell);margin:0 auto;padding:0 22px}
.section{padding:clamp(52px,7vw,96px) 0}
h1,h2,h3,.h-track{font-family:var(--disp);font-weight:500;text-wrap:balance}
.h-track{letter-spacing:.32em;text-transform:uppercase}
/* mono micro-label (eyebrow) */
.eyebrow{display:inline-flex;align-items:center;gap:.8em;letter-spacing:.3em;text-transform:uppercase;font-size:10.5px;color:var(--mist);font-family:var(--disp);font-weight:500}
.eyebrow::before{content:'';width:28px;height:1px;background:currentColor;opacity:.7}
/* section title — hairline flanks + mono caps */
.sec-head{text-align:center;margin-bottom:clamp(32px,5vw,52px)}
.sec-title{display:flex;align-items:center;justify-content:center;gap:1em;width:fit-content;max-width:100%;margin:0 auto clamp(32px,5vw,50px);letter-spacing:.28em;text-transform:uppercase;font-size:clamp(16px,2.2vw,22px);font-weight:500}
.sec-head .sec-title{margin-bottom:0}
.sec-title::before,.sec-title::after{content:'';width:clamp(24px,6vw,64px);height:1px;background:var(--line-2)}
.lead{color:var(--ink-soft);max-width:56ch;margin:0 auto}
.hairline{border-top:1px solid var(--line)}

/* buttons — editorial pills. .btn = solid ink, .btn-ghost = outline, .btn-light = on dark */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;background:var(--ink);color:var(--cream);border:1px solid var(--ink);padding:13px 28px;font-family:var(--disp);letter-spacing:.22em;text-transform:uppercase;font-size:11px;font-weight:500;cursor:pointer;border-radius:var(--r-pill);transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.btn:hover{background:transparent;color:var(--ink);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream)}
.btn-light{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn-light:hover{background:transparent;color:var(--cream)}
.btn-sm{padding:10px 18px;font-size:10px;letter-spacing:.2em}

/* header — translucent cream, mono nav with ink underline */
header.site{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--cream) 80%,transparent);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid var(--line-soft);transition:.4s var(--ease)}
header.site.scrolled{background:color-mix(in srgb,var(--cream) 92%,transparent);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;gap:30px;padding:12px 22px;max-width:var(--shell);margin:0 auto;transition:padding .4s var(--ease)}
header.site.scrolled .nav{padding:8px 22px}
.nav .logo img{height:48px;width:auto;transition:height .4s var(--ease)}
header.site.scrolled .nav .logo img{height:40px}
.nav nav{display:flex;gap:28px;flex:1;justify-content:center}
.nav nav>div{position:relative}
.nav a.top{position:relative;font-family:var(--disp);letter-spacing:.26em;font-size:10.5px;text-transform:uppercase;color:var(--ink-soft);padding:8px 0;transition:color .3s var(--ease)}
.nav a.top:hover{color:var(--ink)}
.nav a.top::after{content:'';position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--ink);transition:right .4s var(--ease)}
.nav nav>div:hover a.top::after,.nav a.top:hover::after{right:0}
.dropdown{display:none;position:absolute;top:100%;left:-16px;background:color-mix(in srgb,var(--cream) 98%,transparent);border:1px solid var(--line);border-radius:var(--r-sm);min-width:180px;padding:8px 0;box-shadow:var(--sh-2);backdrop-filter:blur(6px)}
.nav nav>div:hover .dropdown{display:block;animation:pop .3s var(--ease) both}
@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dropdown a{display:block;padding:10px 20px;font-family:var(--disp);letter-spacing:.18em;font-size:10.5px;text-transform:uppercase;color:var(--ink-soft);transition:.25s var(--ease)}
.dropdown a:hover{background:var(--cream-2);padding-left:26px;color:var(--ink)}
.nav .icons{display:flex;gap:18px;align-items:center}
.nav .icons a{position:relative;display:flex;transition:transform .3s var(--ease),color .3s var(--ease)}
.nav .icons a:hover{transform:translateY(-2px)}
.cart-badge{position:absolute;top:-8px;right:-10px;background:var(--ink);color:var(--cream);border-radius:50%;font-size:9.5px;min-width:17px;height:17px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-family:var(--disp)}
.burger{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink)}
@media(max-width:900px){.nav nav{display:none;position:fixed;inset:73px 0 0 0;background:var(--cream);flex-direction:column;padding:28px;gap:6px;overflow:auto;justify-content:flex-start}
.nav nav.open{display:flex}.nav nav>div{width:100%}.nav a.top{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.nav a.top::after{display:none}
.dropdown{display:block;position:static;border:none;box-shadow:none;background:transparent;padding-left:12px}.burger{display:block}}

/* hero (used on marketing pages / legacy) */
.hero{position:relative;min-height:clamp(72vh,84vh,880px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;isolation:isolate}
.hero video,.hero img.bg,.hero .slide-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:kenburns 22s var(--ease) infinite alternate}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 100% at 50% 15%,rgba(30,26,22,.12),rgba(24,21,18,.5) 75%),linear-gradient(rgba(30,27,23,.2),rgba(24,21,18,.3))}
.hero::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:26%;z-index:-1;background:linear-gradient(rgba(251,248,242,0),var(--cream))}
.hero .inner{position:relative;z-index:2;padding:40px 22px;max-width:900px}
.hero h1{font-size:clamp(30px,5.4vw,60px);letter-spacing:.1em;text-transform:uppercase;font-weight:500;line-height:1.16;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.hero p{margin:22px auto 32px;font-size:clamp(15px,1.6vw,17px);max-width:44ch;opacity:.96;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.hero .scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:9px;font-family:var(--disp);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;opacity:.85}
.hero .scroll-cue span{width:1px;height:44px;background:linear-gradient(#fff,transparent);animation:cue 1.9s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.5}50%{transform:scaleY(1);opacity:1}}
.hero .dots{position:absolute;bottom:24px;right:26px;display:flex;gap:9px;z-index:3}
.hero .dots button{width:9px;height:9px;border-radius:50%;border:1px solid rgba(255,255,255,.85);background:transparent;cursor:pointer;padding:0;transition:.3s var(--ease)}
.hero .dots button.on{background:#fff}

/* values band — quiet hairline strip */
.marquee{background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px}
.marquee-track{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;row-gap:12px;max-width:var(--shell);margin:0 auto}
.marquee span{position:relative;display:flex;align-items:center;justify-content:center;padding:2px clamp(22px,4vw,52px);white-space:nowrap;font-family:var(--disp);font-weight:500;font-size:10.5px;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:var(--ink-soft)}
.marquee span+span::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);height:16px;width:1px;background:var(--line-2)}
@media(max-width:700px){.marquee span+span::before{display:none}.marquee span{padding:2px 14px}}

/* product cards — hairline-framed gallery plates */
.grid{display:grid;gap:1px;background:var(--line)}
.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}
.card{background:var(--cream);padding:26px 20px 22px;text-align:center;position:relative;transition:background .5s var(--ease)}
.card:hover{background:var(--white)}
.card .ph{position:relative;height:210px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;overflow:hidden}
.card .ph::before{content:'';position:absolute;inset:auto 0 0 0;height:70%;border-radius:50%;background:radial-gradient(60% 100% at 50% 100%,var(--sage-tint),transparent 72%);transform:scale(.9);opacity:0;transition:.5s var(--ease)}
.card:hover .ph::before{opacity:1;transform:scale(1)}
.card .ph img{position:relative;max-height:100%;width:auto;filter:drop-shadow(0 16px 18px rgba(38,35,32,.16));transition:transform .55s var(--ease)}
.card:hover .ph img{transform:scale(1.06) translateY(-3px)}
.card h3{font-family:var(--disp);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500}
.card .price{color:var(--ink-soft);font-size:12.5px;margin:7px 0 15px;font-family:var(--disp);letter-spacing:.06em}
.card .btn{width:100%}
.badge{position:absolute;top:14px;left:14px;background:transparent;color:var(--ink-soft);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;padding:4px 10px;font-family:var(--disp);border:1px solid var(--line-2);border-radius:var(--r-pill);z-index:2}
.badge.vegan{color:var(--ok);border-color:var(--ok)}
.wish{position:absolute;top:12px;right:14px;background:none;border:none;width:30px;height:30px;font-size:16px;line-height:1;cursor:pointer;color:var(--mist);z-index:2;display:flex;align-items:center;justify-content:center;transition:.3s var(--ease)}
.wish:hover{color:var(--danger);transform:scale(1.14)}
.wish.on{color:var(--danger)}
.band{background:var(--cream-2)}
.band-white{background:var(--white)}

/* feature split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.split .txt{padding:clamp(40px,6vw,80px) clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:center;gap:20px}
.split .txt h2{letter-spacing:.04em;text-transform:uppercase;font-size:clamp(22px,3.2vw,36px);font-weight:500;line-height:1.2}
.split .txt p{color:var(--ink-soft);max-width:46ch}
.split .media{position:relative;overflow:hidden}
.split .media img,.split .media video{width:100%;height:100%;object-fit:cover;min-height:400px;transition:transform 1.1s var(--ease)}
.split:hover .media img,.split:hover .media video{transform:scale(1.04)}
@media(max-width:820px){.split{grid-template-columns:1fr}.split .media img,.split .media video{min-height:300px}}

/* trio */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 clamp(0px,3vw,26px)}
.trio .cell{position:relative;min-height:440px;display:flex;align-items:flex-end;color:#fff;border-radius:var(--r);overflow:hidden}
.trio .cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.trio .cell:hover img{transform:scale(1.06)}
.trio .cell::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(30,28,25,.03) 35%,rgba(24,21,18,.76))}
.trio .cin{position:relative;z-index:2;padding:30px;transform:translateY(6px);transition:transform .5s var(--ease)}
.trio .cell:hover .cin{transform:translateY(0)}
.trio h3{letter-spacing:.2em;text-transform:uppercase;font-size:17px;margin-bottom:9px;font-weight:500}
.trio p{font-size:13px;opacity:.94;margin-bottom:16px;max-width:34ch}
@media(max-width:820px){.trio{grid-template-columns:1fr}.trio .cell{min-height:320px}}

/* forms */
.frm{display:grid;gap:16px}
.frm .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.frm .two{grid-template-columns:1fr}}
input,textarea,select{width:100%;padding:13px 15px;border:1px solid var(--line-2);background:var(--white);font-family:inherit;font-size:14.5px;color:var(--ink);border-radius:var(--r-sm);transition:.25s var(--ease)}
input::placeholder,textarea::placeholder{color:var(--mist)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--accent-soft)}
label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--disp);color:var(--ink-soft)}
.flash{padding:14px 20px;margin:18px auto;max-width:var(--shell);border-radius:var(--r-sm);font-size:14px;border:1px solid var(--line)}
.flash.ok{background:#eef1e6;color:#3c4a33;border-color:#d6ddc7}.flash.err{background:#f6e6df;color:#7c3222;border-color:#e6c9bd}

/* tables */
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-family:var(--disp);letter-spacing:.16em;text-transform:uppercase;font-size:10.5px;text-align:left;padding:13px 12px;border-bottom:1px solid var(--ink);color:var(--ink-soft)}
.tbl td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr{transition:background .2s var(--ease)}
.tbl tbody tr:hover{background:var(--cream-2)}
.pill{display:inline-block;padding:4px 13px;border-radius:var(--r-pill);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-family:var(--disp);border:1px solid var(--line-2);color:var(--ink-soft)}
.pill.pending,.pill.open{border-color:#c9ad6a;color:#7a6428}
.pill.payment_pending{border-color:#d6a488;color:#8a4a2c}
.pill.processing,.pill.answered{border-color:#8aa6c4;color:#2f5578}
.pill.completed{border-color:#a9bd8a;color:#3c4a33}
.pill.cancelled,.pill.closed{border-color:var(--line-2);color:#777}

/* footer — ink base, wordmark, hairline columns */
footer.site{background:var(--ink);color:#cfc9bd;margin-top:0;position:relative;overflow:hidden}
footer.site .wordmark{display:flex;justify-content:center;padding:48px 22px 6px}
footer.site .wordmark img{height:clamp(84px,11vw,120px);width:auto;filter:brightness(0) invert(1);opacity:.92}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:38px;padding:52px 0;max-width:var(--shell);margin:0 auto}
footer h4{color:#fff;letter-spacing:.22em;text-transform:uppercase;font-size:11px;margin-bottom:18px;font-family:var(--disp)}
footer a{display:inline-block;padding:4px 0;font-size:13px;position:relative;transition:color .3s var(--ease),padding .3s var(--ease)}
footer .cols>div>a{display:block;width:fit-content}
footer .cols>div>a:hover{color:#fff;padding-left:8px}
footer a:hover{color:#fff}
footer .base{border-top:1px solid #46423b;padding:20px 0;font-size:11.5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#9a948a;max-width:var(--shell);margin:0 auto;font-family:var(--disp);letter-spacing:.08em}
@media(max-width:820px){footer .cols{grid-template-columns:1fr 1fr}}

/* misc */
.qty{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-pill);align-items:center;overflow:hidden;background:var(--white)}
.qty button{background:none;border:none;width:36px;height:40px;font-size:16px;cursor:pointer;transition:.2s var(--ease)}
.qty button:hover{background:var(--cream-2)}
.qty input{width:44px;border:none;text-align:center;padding:0;background:transparent}
.qty input:focus{box-shadow:none}
.timeline{list-style:none;border-left:1px solid var(--line-2);padding-left:22px;display:grid;gap:16px}
.timeline li{position:relative}
.timeline li::before{content:'';position:absolute;left:-27px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--ink)}
.muted{color:var(--mist);font-size:13px}
.stars{color:#c9a24b;letter-spacing:2px}
.prose p{margin-bottom:15px}
.prose h2{letter-spacing:.14em;text-transform:uppercase;font-size:19px;margin:38px 0 14px;font-weight:500}
.faq-item{border-bottom:1px solid var(--line);padding:24px 0;transition:.3s var(--ease)}
.faq-item:hover{border-color:var(--line-2)}
.faq-item h3{font-size:16px;margin-bottom:10px;font-weight:500}
.acct-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.acct-nav a{border:1px solid var(--line-2);padding:9px 20px;font-family:var(--disp);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;border-radius:var(--r-pill);color:var(--ink-soft);transition:.3s var(--ease)}
.acct-nav a:hover{border-color:var(--ink);color:var(--ink)}
.acct-nav a.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.notice{background:var(--white);border:1px solid var(--line);padding:20px 24px;border-radius:var(--r);font-size:14px}
.share-row{display:flex;gap:10px;flex-wrap:wrap}

/* scroll-reveal — progressive, no-JS, Chromium/modern */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .card,.split .txt,.split .media,.trio .cell,.sec-head,.sec-title,.prose > *{
      animation:reveal both;animation-timeline:view();animation-range:entry 0% cover 26%}
  }
}
@keyframes reveal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
