/* POLYGATE — shared styles */
:root{
  --paper:#FBFAF7;
  --ink:#161412;
  --red:#E23D28;
  --stone:#8B8680;
  --line:#E5E1D8;
  --serif:'Bodoni Moda','Hiragino Mincho ProN','Yu Mincho',serif;
  --sans:'Karla',sans-serif;
  --max:1360px;
  --pad:clamp(20px,4vw,56px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
::selection{background:var(--red);color:var(--paper)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

h1,h2,h3,.serif{font-family:var(--serif);font-weight:500}
.display{font-size:clamp(2.5rem,6.2vw,5.8rem);line-height:1.02;letter-spacing:-.01em}
.display-md{font-size:clamp(2rem,4.4vw,3.8rem);line-height:1.08;letter-spacing:-.005em}
.muted{color:var(--stone)}
.red{color:var(--red)}

.btn{
  display:inline-block;padding:16px 38px;border:1.5px solid var(--ink);border-radius:2px;
  font-weight:600;font-size:.98rem;letter-spacing:.06em;text-align:center;
  transition:background .2s,color .2s,border-color .2s;
}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--red);border-color:var(--red)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-paper{border-color:var(--paper);color:var(--paper)}
.btn-paper:hover{background:var(--red);border-color:var(--red)}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;background:rgba(251,250,247,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);transition:transform .35s ease;
}
.header-hidden{transform:translateY(-100%)}
.header-inner{
  max-width:var(--max);margin:0 auto;padding:18px var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;font-size:1.28rem;letter-spacing:.16em}
.hanko{
  width:32px;height:32px;background:var(--red);color:var(--paper);flex:none;
  display:grid;place-items:center;font-family:var(--serif);font-size:1.1rem;border-radius:3px;
}
.main-nav{display:flex;gap:30px;font-size:.88rem;font-weight:600;letter-spacing:.14em}
.main-nav a{padding:4px 0;border-bottom:2px solid transparent;transition:border-color .2s}
.main-nav a:hover,.main-nav a[aria-current]{border-color:var(--red)}
.header-right{display:flex;align-items:center;gap:22px}
.drop-status{font-size:.8rem;letter-spacing:.12em;color:var(--stone);white-space:nowrap}
.drop-status b{color:var(--ink);font-weight:600}
.bag-btn{
  border:1.5px solid var(--ink);padding:9px 20px;border-radius:2px;font-weight:600;font-size:.88rem;letter-spacing:.1em;
  transition:background .2s,color .2s;
}
.bag-btn:hover{background:var(--ink);color:var(--paper)}
.menu-btn{display:none;flex-direction:column;gap:5px;padding:8px}
.menu-btn span{display:block;width:24px;height:2px;background:var(--ink);transition:transform .25s,opacity .25s}
.mobile-nav{
  display:none;flex-direction:column;border-top:1px solid var(--line);
  padding:12px var(--pad) 20px;gap:2px;background:var(--paper);
}
.mobile-nav a{padding:12px 0;font-weight:600;letter-spacing:.12em;font-size:.95rem;border-bottom:1px solid var(--line)}
.mobile-nav a:last-child{border-bottom:none}
.nav-open .mobile-nav{display:flex}
.nav-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .menu-btn span:nth-child(2){opacity:0}
.nav-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- layout helpers ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
section{padding-top:clamp(80px,10vw,150px);padding-bottom:clamp(80px,10vw,150px)}
.img-slot{position:relative;overflow:hidden;background:#EDEAE3}
.img-slot img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
a .img-slot:hover img{transform:scale(1.03)}
.img-credit{position:absolute;bottom:10px;right:12px;font-size:.7rem;letter-spacing:.08em;color:rgba(255,255,255,.75)}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:92vh;border-bottom:1px solid var(--line)}
.hero-copy{
  display:flex;flex-direction:column;justify-content:center;gap:34px;
  padding:clamp(56px,7vw,120px) var(--pad);
}
.hero-kicker{font-size:.85rem;letter-spacing:.3em;color:var(--stone);font-weight:600}
.hero-copy p{max-width:42ch;font-size:1.08rem;color:var(--stone)}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.hero-media{position:relative}
.hero-media .img-slot{position:absolute;inset:0}
.hero-image-slot img{object-position:50% 14%}

/* ---------- drop feature ---------- */
.drop-feature{background:var(--ink);color:var(--paper)}
.drop-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,90px);align-items:center}
.drop-media{display:grid;grid-template-columns:1fr;gap:16px}
.drop-media .primary{aspect-ratio:5/6}
.drop-media .detail{aspect-ratio:5/2}
.drop-label{font-size:.85rem;letter-spacing:.32em;color:var(--red);font-weight:600;margin-bottom:18px}
.drop-copy h2{margin-bottom:24px}
.drop-copy>p{color:#B8B3AC;max-width:46ch;margin-bottom:36px;font-size:1.05rem}
.edition-line{font-family:var(--serif);font-size:1.25rem;margin-bottom:10px}
.inv-note{font-size:.85rem;color:#8B8680;margin-bottom:8px}
.inv-bar{height:3px;background:#33302C;border-radius:2px;overflow:hidden;margin-bottom:34px;max-width:380px}
.inv-bar span{display:block;height:100%;background:var(--red);width:0;transition:width .8s ease}
.drop-price{font-size:1.6rem;font-family:var(--serif);margin-bottom:30px}
.drop-facts{display:flex;flex-direction:column;gap:10px;margin:34px 0 0;color:#B8B3AC;font-size:.95rem;list-style:none}
.drop-facts li{padding-left:22px;position:relative}
.drop-facts li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--red)}

/* ---------- editorial ---------- */
.editorial{padding:0;border-bottom:1px solid var(--line)}
.editorial-inner{display:grid;grid-template-columns:1fr 1fr;min-height:82vh}
.editorial .img-slot{min-height:420px}
.editorial-copy{display:flex;flex-direction:column;justify-content:center;gap:26px;padding:clamp(56px,7vw,110px) var(--pad)}
.editorial-copy p{max-width:40ch;color:var(--stone);font-size:1.05rem}

/* ---------- shop ---------- */
.sec-head{margin-bottom:clamp(40px,5vw,64px)}
.sec-head h2{display:inline-block;vertical-align:baseline}
.sec-head .kana{display:inline-block;margin-left:22px;vertical-align:baseline}
.sec-head p{display:block;margin-top:18px;max-width:58ch}
.sec-head .kana{font-family:var(--serif);color:var(--red);font-size:1.05rem}
.sec-head p{color:var(--stone)}
.filter-row{display:flex;gap:10px;margin-bottom:44px;overflow-x:auto;padding-bottom:4px}
.chip{
  border:1px solid var(--line);padding:9px 24px;border-radius:99px;font-size:.85rem;font-weight:600;
  letter-spacing:.1em;color:var(--stone);white-space:nowrap;transition:all .2s;
}
.chip.active,.chip:hover{border-color:var(--ink);color:var(--ink)}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:56px 32px}
.p-card{display:flex;flex-direction:column;gap:16px}
.p-card .img-slot{aspect-ratio:3/4;display:grid;place-items:center;background:#fff;border:1px solid var(--line);transition:border-color .3s}
.p-card:hover .img-slot{border-color:var(--ink)}
.p-card .img-slot svg{width:76%;height:auto}
.p-card .img-slot.flat svg{width:86%}
.p-tag{position:absolute;top:14px;left:14px;background:var(--red);color:var(--paper);font-size:.72rem;font-weight:600;letter-spacing:.1em;padding:5px 11px;z-index:2}
.p-preorder{position:absolute;top:14px;right:14px;background:var(--ink);color:var(--paper);font-size:.72rem;font-weight:600;letter-spacing:.12em;padding:5px 11px;z-index:2}
.preorder-note{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:9px 16px;border:1px solid var(--ink);font-size:.8rem;font-weight:600;letter-spacing:.14em}
.preorder-note::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);flex:none}
.p-name{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:1.18rem}
.p-price{font-family:var(--sans);font-weight:600;font-size:1rem;white-space:nowrap}
.p-edition{color:var(--stone);font-size:.88rem;margin-top:-10px}
.p-link{font-weight:600;font-size:.88rem;letter-spacing:.12em;align-self:flex-start;border-bottom:2px solid var(--red);padding-bottom:3px}
.p-card:hover .p-link{color:var(--red)}

/* ---------- value ---------- */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.value-cell{background:var(--paper);padding:34px 30px}
.value-cell b{display:block;font-family:var(--serif);font-weight:500;font-size:1.6rem;color:var(--red);margin-bottom:10px}
.value-cell p{color:var(--stone);font-size:.95rem}
.value-final{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);margin-top:44px}

/* ---------- manifesto ---------- */
.manifesto{background:var(--ink);color:var(--paper)}
.manifesto-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,100px);align-items:center}
.manifesto .img-slot{aspect-ratio:4/5}
.manifesto-copy p{color:#B8B3AC;max-width:42ch;font-size:1.12rem;margin-top:26px;font-family:var(--serif);line-height:1.7}
.manifesto-copy p+p{margin-top:16px}

/* ---------- custom ---------- */
.custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.custom-intro .img-slot{aspect-ratio:2/3;max-width:420px;margin-top:36px}
.steps{counter-reset:step;display:flex;flex-direction:column;margin-top:8px}
.step{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:baseline}
.step:last-child{border-bottom:none}
.step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--serif);font-size:1.4rem;color:var(--red);
}
.step h3{font-size:1.15rem;margin-bottom:6px}
.step p{color:var(--stone);font-size:.95rem;max-width:46ch}
.privacy-block{border:1px solid var(--ink);padding:36px 34px;margin-top:44px}
.privacy-block h3{font-size:1.3rem;margin-bottom:12px}
.privacy-block>p{color:var(--stone);max-width:52ch}
.privacy-tags{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.privacy-tags span{border:1.5px solid var(--red);color:var(--red);font-weight:600;font-size:.8rem;letter-spacing:.14em;padding:8px 16px}

/* ---------- forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);padding:clamp(28px,3.5vw,44px);display:flex;flex-direction:column;gap:20px}
.form-card label{font-weight:600;font-size:.9rem;display:block;margin-bottom:8px}
.form-card input,.form-card textarea,.form-card select{
  font:inherit;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:2px;background:var(--paper);
}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{outline:2px solid var(--red);outline-offset:-1px}
.form-card textarea{min-height:130px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-note{font-size:.85rem;color:var(--stone)}

/* ---------- journal ---------- */
.journal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.journal-card{background:var(--paper);padding:32px 28px;display:flex;flex-direction:column;gap:14px;min-height:210px;transition:background .2s}
.journal-card:hover{background:#fff}
.journal-card small{color:var(--red);font-weight:600;letter-spacing:.16em;font-size:.72rem}
.journal-card h3{font-size:1.25rem;line-height:1.35}
.journal-card span{margin-top:auto;font-size:.85rem;font-weight:600;letter-spacing:.1em;color:var(--stone)}

/* ---------- about / trust ---------- */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px)}
.about-copy p{color:var(--stone);max-width:56ch;margin-bottom:18px}
.about-copy strong{color:var(--ink)}
.trust-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);height:fit-content}
.trust-cell{background:#fff;padding:24px 28px}
.trust-cell h4{font-family:var(--serif);font-weight:500;margin-bottom:4px}
.trust-cell p{font-size:.92rem;color:var(--stone)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:clamp(56px,7vw,90px) 0 40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px}
.footer-grid p{color:var(--stone);font-size:.92rem;max-width:34ch;margin-top:16px}
.site-footer h4{font-family:var(--serif);font-weight:500;margin-bottom:16px}
.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:10px;font-size:.95rem}
.site-footer ul a:hover{color:var(--red)}
.footer-bottom{
  border-top:1px solid var(--line);margin-top:56px;padding-top:24px;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--stone);font-size:.85rem;
}

/* ---------- cart drawer ---------- */
.cart-overlay{position:fixed;inset:0;background:rgba(22,20,18,.4);opacity:0;pointer-events:none;transition:opacity .3s;z-index:80}
.cart-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(440px,100%);background:var(--paper);z-index:90;
  transform:translateX(100%);transition:transform .35s ease;display:flex;flex-direction:column;
  border-left:1px solid var(--line);
}
.cart-open .cart-overlay{opacity:1;pointer-events:auto}
.cart-open .cart-drawer{transform:none}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}
.cart-head h2{font-size:1.3rem}
.cart-close{font-size:1.6rem;line-height:1;padding:4px 8px}
.cart-items{flex:1;overflow-y:auto;padding:8px 24px 8px 28px}
.cart-empty{color:var(--stone);padding:40px 0;text-align:center}
.cart-item{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:6px 14px;padding:20px 0;border-bottom:1px solid var(--line)}
.cart-item h3{font-size:1.05rem}
.cart-item .ci-meta{color:var(--stone);font-size:.85rem;grid-column:1}
.cart-item .ci-price{font-weight:600}
.ci-controls{display:flex;align-items:center;gap:12px;grid-column:1/-1;margin-top:6px;flex-wrap:wrap}
.ci-controls button{border:1px solid var(--line);width:30px;height:30px;border-radius:2px;font-size:1rem}
.ci-controls button:hover{border-color:var(--ink)}
.ci-remove{margin-left:auto;font-size:.82rem;color:var(--stone);text-decoration:underline}
.cart-foot{padding:24px 28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:16px}
.cart-subtotal{display:flex;justify-content:space-between;font-weight:600;font-size:1.05rem}
.cart-note{font-size:.82rem;color:var(--stone)}

/* ---------- toast ---------- */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translate(-50%,16px);opacity:0;pointer-events:none;
  background:var(--ink);color:var(--paper);padding:14px 26px;border-radius:3px;font-size:.95rem;z-index:99;transition:all .3s;
  max-width:calc(100% - 40px);text-align:center;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- product page ---------- */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,90px);align-items:start}
.pdp-gallery{display:grid;gap:16px}
.pdp-gallery .img-slot{aspect-ratio:3/4;display:grid;place-items:center;background:#fff;border:1px solid var(--line);position:relative}
.pdp-gallery>.img-slot:first-child::after{content:"門";position:absolute;right:18px;bottom:18px;width:44px;height:44px;background:var(--red);color:var(--paper);font-family:var(--serif);font-size:1.4rem;display:grid;place-items:center;border-radius:3px}
.pdp-gallery .img-slot svg{width:72%}
.pdp-gallery .texture{aspect-ratio:3/2}
.pdp-info{position:sticky;top:110px;border-top:3px solid var(--ink);padding-top:30px}
.pdp-kicker{font-size:.78rem;letter-spacing:.34em;color:var(--red);font-weight:600;margin-bottom:16px}
.pdp-info h1{font-size:clamp(2.8rem,4.8vw,4.4rem);margin-bottom:10px;letter-spacing:-.01em;line-height:1.02}
.pdp-price{font-family:var(--serif);font-size:1.7rem;margin:24px 0 28px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between}
.pdp-lede{color:var(--stone);max-width:46ch;margin-bottom:30px}
.pdp-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}
.pdp-options label{font-weight:600;font-size:.88rem;display:block;margin-bottom:8px}
.pdp-options select{
  font:inherit;font-weight:600;letter-spacing:.08em;width:100%;padding:15px 44px 15px 16px;
  border:1.5px solid var(--ink);background:#fff;border-radius:0;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23161412' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}
.pdp-options label{letter-spacing:.16em;text-transform:uppercase;font-size:.72rem!important}
.pdp-cta{width:100%;margin-bottom:14px;padding:19px 34px;letter-spacing:.2em;font-size:.92rem}
.pdp-ship{font-size:.82rem;color:var(--stone);margin-bottom:36px;letter-spacing:.04em}
.pdp-details{border-top:1px solid var(--line)}
.pdp-details details{border-bottom:1px solid var(--line)}
.pdp-details summary{
  padding:19px 0;font-weight:600;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}
.pdp-details summary::after{content:"+";font-size:1.2rem;color:var(--stone)}
.pdp-details details[open] summary::after{content:"−"}
.pdp-details .dd-body{padding:0 0 20px;color:var(--stone);font-size:.95rem;max-width:52ch}
.pdp-details .dd-body ul{padding-left:18px;display:flex;flex-direction:column;gap:6px}
.related{margin-top:clamp(70px,8vw,120px)}
.related h2{margin-bottom:36px}

.breadcrumb{font-size:.72rem;color:var(--stone);margin-bottom:44px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.breadcrumb a:hover{color:var(--red)}

/* ---------- page hero (subpages) ---------- */
.page-hero{padding-top:clamp(60px,7vw,100px);padding-bottom:clamp(40px,5vw,70px)}
.page-hero p{color:var(--stone);max-width:54ch;margin-top:20px;font-size:1.05rem}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-media{min-height:70vh}
  .hero-media .img-slot{position:relative;height:100%;min-height:70vh}
  .drop-grid,.manifesto-grid,.custom-grid,.about-grid,.pdp{grid-template-columns:1fr}
  .editorial-inner{grid-template-columns:1fr}
  .editorial-copy{order:2}
  .value-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .pdp-info{position:static}
  .drop-status{display:none}
}
@media(max-width:760px){
  .main-nav{display:none}
  .menu-btn{display:flex}
  .value-grid{grid-template-columns:1fr}
  .form-row,.pdp-options{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .product-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:44px 20px}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
  .img-slot img{transition:none}
}

/* ================= MOTION & DISTINCTIVE LAYER ================= */

/* hero load sequence */
.hero-copy .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hero-copy .line>span{display:inline-block;transform:translateY(112%)}
.js .hero-copy .line>span{animation:pg-rise .9s cubic-bezier(.19,.74,.22,1) forwards}
.js .hero-copy .line:nth-child(2)>span{animation-delay:.12s}
.js .hero-kicker,.js .hero-copy>p,.js .hero-ctas{opacity:0;transform:translateY(14px);animation:pg-fade .8s ease forwards}
.js .hero-kicker{animation-delay:.05s}
.js .hero-copy>p{animation-delay:.5s}
.js .hero-ctas{animation-delay:.62s}
.hero-image-slot{position:relative}
.hero-image-slot img{transform:scale(1.06)}
.js .hero-image-slot img{animation:pg-settle 1.4s .25s cubic-bezier(.19,.74,.22,1) forwards}
.hero-image-slot::after{content:"";position:absolute;inset:0;background:var(--red);transform-origin:left;transform:scaleX(0);pointer-events:none}
.js .hero-image-slot::after{animation:pg-wipe 1.15s .1s cubic-bezier(.65,0,.35,1) forwards}
@keyframes pg-rise{to{transform:translateY(0)}}
@keyframes pg-fade{to{opacity:1;transform:none}}
@keyframes pg-settle{to{transform:scale(1)}}
@keyframes pg-wipe{0%{transform:scaleX(0);transform-origin:left}49%{transform:scaleX(1);transform-origin:left}51%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ticker */
.ticker{border-bottom:1px solid var(--line);overflow:hidden;padding:20px 0;background:var(--paper)}
.ticker-track{display:flex;gap:56px;width:max-content;animation:pg-ticker 36s linear infinite}
.ticker-track span{font-family:var(--serif);font-size:1.05rem;letter-spacing:.3em;white-space:nowrap}
.ticker-track i{font-style:normal;color:var(--red);font-family:var(--serif)}
@keyframes pg-ticker{to{transform:translateX(-50%)}}

/* scroll reveals */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.19,.74,.22,1)}
.reveal.in-view{opacity:1;transform:none}
.product-grid .p-card.reveal:nth-child(2),.value-grid .value-cell.reveal:nth-child(2),.journal-grid .journal-card.reveal:nth-child(2){transition-delay:.08s}
.product-grid .p-card.reveal:nth-child(3),.value-grid .value-cell.reveal:nth-child(3),.journal-grid .journal-card.reveal:nth-child(3){transition-delay:.16s}
.product-grid .p-card.reveal:nth-child(4),.value-grid .value-cell.reveal:nth-child(n+4),.journal-grid .journal-card.reveal:nth-child(n+4){transition-delay:.24s}
.steps .step.reveal:nth-child(2){transition-delay:.07s}
.steps .step.reveal:nth-child(3){transition-delay:.14s}
.steps .step.reveal:nth-child(4){transition-delay:.21s}
.steps .step.reveal:nth-child(5){transition-delay:.28s}

/* grain on dark sections */
.drop-feature,.manifesto{position:relative;overflow:hidden}
.drop-feature::after,.manifesto::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;
  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'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* manifesto watermark */
.manifesto::before{
  content:"門";position:absolute;top:-10rem;right:-5rem;z-index:0;
  font-family:var(--serif);font-size:clamp(22rem,42vw,44rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(251,250,247,.08);pointer-events:none;
}
.manifesto-grid{position:relative;z-index:1}
.drop-grid{position:relative;z-index:1}

/* product card print hover */
.p-card .img-slot svg{transition:transform .6s cubic-bezier(.19,.74,.22,1)}
.p-card:hover .img-slot svg{transform:scale(1.05)}
.p-link{position:relative}
.p-link::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--ink);transition:width .35s ease}
.p-card:hover .p-link::after{width:100%}

/* button micro-interaction */
.btn{position:relative;overflow:hidden}
.btn:active{transform:translateY(1px)}

/* footer legal */
.footer-legal{color:var(--stone);font-size:.82rem;margin-top:10px;max-width:none}

@media(prefers-reduced-motion:reduce){
  .js .hero-copy .line>span,.js .hero-kicker,.js .hero-copy>p,.js .hero-ctas,.js .hero-image-slot img{animation:none!important;opacity:1!important;transform:none!important}
  .js .hero-image-slot::after{display:none}
  .ticker-track{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}

/* legal pages */
.legal-body{max-width:760px}
.legal-body h2{font-size:1.35rem;margin:38px 0 12px}
.legal-body p{color:var(--stone);margin-bottom:14px}
.legal-body p strong{color:var(--ink)}
.legal-body a{color:var(--red);font-weight:600}

/* pdp refinements */
.pdp-info .muted{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.pdp-price::after{content:"USD";font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;color:var(--stone)}
.pdp-lede{font-family:var(--serif);font-size:1.12rem;line-height:1.75;color:var(--ink);max-width:44ch}
.pdp-details .dd-body{font-size:.95rem}
@media(max-width:1020px){.pdp-info{border-top-width:3px}}


/* CJK glyph stack */
.hanko,.kana,.ticker-track i,.manifesto::before{font-family:'Hiragino Mincho ProN','Yu Mincho','Noto Serif JP','MS Mincho',serif}
.sec-head .kana{font-size:1rem;position:relative;top:-4px}
