:root{--kaolin:#F7F3EC;--stoneware:#E7DCC9;--celadon:#5F7A66;--celadon-pale:#AEC2B2;--iron:#33291F;--tenmoku:#221B15;--maxw:1080px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--kaolin);color:var(--iron);font-family:'Newsreader',Georgia,serif;font-size:1.06rem;line-height:1.65;font-weight:400}
h1,h2,h3{font-family:'Young Serif',Georgia,serif;font-weight:400;line-height:1.12;letter-spacing:-.01em}
a{color:var(--celadon)}
a:focus-visible,button:focus-visible{outline:3px solid var(--celadon);outline-offset:3px}
img{max-width:100%;height:auto}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.4rem}
.eyebrow{font-style:italic;color:var(--celadon);font-size:1rem;letter-spacing:.04em}
.skip{position:absolute;left:-999px;top:0;background:var(--iron);color:var(--kaolin);padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
header.site{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--kaolin) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--iron) 14%,transparent)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.4rem;max-width:var(--maxw);margin:0 auto;flex-wrap:wrap}
.brand{font-family:'Young Serif',serif;font-size:1.05rem;color:var(--iron);text-decoration:none}
.brand small{display:block;font-style:italic;font-size:.72rem;color:var(--celadon);letter-spacing:.06em}
nav.main ul{display:flex;gap:1.4rem;list-style:none;flex-wrap:wrap}
nav.main a{color:var(--iron);text-decoration:none;font-size:.95rem}
nav.main a:hover{color:var(--celadon)}
nav.main a[aria-current=page]{color:var(--celadon);border-bottom:2px solid var(--celadon)}
@media(max-width:680px){nav.main ul{gap:.9rem;font-size:.88rem}}
.btn{display:inline-block;text-decoration:none;padding:.7rem 1.5rem;border-radius:2rem;font-size:1rem}
.btn-solid{background:var(--celadon);color:var(--kaolin)}.btn-solid:hover{background:var(--iron)}
.btn-ghost{border:1.5px solid var(--iron);color:var(--iron)}.btn-ghost:hover{border-color:var(--celadon);color:var(--celadon)}
.dip{display:block;width:100%;height:52px}.dip path{fill:var(--celadon)}.dip.rev path{fill:var(--kaolin)}
/* page header band (subpages) */
.pagehead{background:var(--celadon);color:var(--kaolin);padding:3.2rem 0 2.2rem}
.pagehead h1{font-size:clamp(2rem,4.5vw,3rem);color:var(--kaolin)}
.pagehead p{max-width:56ch;font-weight:300;margin-top:.7rem;opacity:.94}
.pagehead .eyebrow{color:var(--kaolin);opacity:.85}
/* hero */
.hero{position:relative;overflow:hidden;padding:5.5rem 0 0}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:end}
@media(max-width:820px){.hero .wrap{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2.6rem,6vw,4.4rem);max-width:12ch}
.hero p.lede{margin-top:1.4rem;font-size:1.2rem;max-width:42ch;font-weight:300}
.hero .cta-row{margin:2rem 0 4rem;display:flex;gap:1rem;flex-wrap:wrap}
.vessel-stage{position:relative;height:380px;display:flex;justify-content:center;align-items:flex-end}
@media(max-width:820px){.vessel-stage{height:300px}}
.vessel{position:relative;width:min(240px,60%);height:92%;background:linear-gradient(180deg,var(--stoneware) 0 46%,var(--celadon) 46.5% 100%);border-radius:48% 48% 42% 42%/12% 12% 58% 58%;box-shadow:inset -22px -8px 34px color-mix(in srgb,var(--tenmoku) 22%,transparent),inset 16px 10px 26px color-mix(in srgb,#fff 55%,transparent)}
.vessel::before{content:"";position:absolute;top:-9%;left:50%;transform:translateX(-50%);width:46%;height:14%;background:var(--stoneware);border-radius:38% 38% 20% 20%/60% 60% 20% 20%;box-shadow:inset -10px -4px 14px color-mix(in srgb,var(--tenmoku) 18%,transparent)}
.vessel::after{content:"";position:absolute;left:0;right:0;top:43.2%;height:14px;background:radial-gradient(12px 10px at 12% 100%,var(--celadon) 60%,transparent 61%),radial-gradient(16px 12px at 34% 100%,var(--celadon) 60%,transparent 61%),radial-gradient(10px 14px at 55% 100%,var(--celadon) 60%,transparent 61%),radial-gradient(18px 9px at 78% 100%,var(--celadon) 60%,transparent 61%),radial-gradient(11px 12px at 94% 100%,var(--celadon) 60%,transparent 61%)}
.vessel-caption{position:absolute;bottom:-.4rem;right:0;font-style:italic;font-size:.85rem;color:color-mix(in srgb,var(--iron) 60%,transparent)}
/* sections */
section.plain{padding:4.5rem 0}
section.plain h2,.band h2{font-size:clamp(1.8rem,3.4vw,2.5rem)}
.band{background:var(--celadon);color:var(--kaolin);padding:3.5rem 0 4.5rem}
.band h2{color:var(--kaolin)}.band .eyebrow{color:var(--kaolin);opacity:.8}.band a{color:var(--kaolin)}
.marks{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.2rem}
@media(max-width:720px){.marks{grid-template-columns:1fr}}
.mark h3{font-size:1.15rem;margin-bottom:.5rem}.mark p{font-weight:300;opacity:.92}
/* cards (shop) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2rem}
@media(max-width:820px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.cards{grid-template-columns:1fr}}
.card{border:1px solid color-mix(in srgb,var(--iron) 14%,transparent);border-radius:.5rem;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.card .ph,.card img{aspect-ratio:1/1;width:100%;object-fit:cover;display:block}
.card .ph{background:repeating-linear-gradient(115deg,color-mix(in srgb,var(--stoneware) 70%,var(--kaolin)) 0 14px,var(--stoneware) 14px 28px);display:flex;align-items:center;justify-content:center;font-style:italic;font-size:.85rem;color:color-mix(in srgb,var(--iron) 55%,transparent)}
.card .body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.card h3{font-size:1.08rem}
.card .cat{font-style:italic;font-size:.82rem;color:var(--celadon)}
.card .blurb{font-size:.92rem;font-weight:300;flex:1}
.card .row{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem}
.price{font-family:'Young Serif',serif;font-size:1.05rem}
.badge-sold{font-style:italic;color:color-mix(in srgb,var(--iron) 55%,transparent)}
.btn-buy{background:var(--celadon);color:var(--kaolin);border:none;cursor:pointer;font-family:inherit;font-size:.95rem;padding:.5rem 1.15rem;border-radius:2rem;text-decoration:none}
.btn-buy:hover{background:var(--iron)}
.chips{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.6rem}
.chip{border:1.5px solid var(--celadon);color:var(--celadon);background:transparent;border-radius:2rem;padding:.35rem 1rem;font-family:inherit;font-size:.9rem;cursor:pointer}
.chip[aria-pressed=true]{background:var(--celadon);color:var(--kaolin)}
/* gallery */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2rem}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.grid{grid-template-columns:1fr}}
.tile{border-radius:.4rem;overflow:hidden;position:relative;border:1px solid color-mix(in srgb,var(--iron) 12%,transparent);background:var(--stoneware)}
.tile img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.tile figcaption{padding:.6rem .8rem;font-size:.85rem;font-style:italic;background:color-mix(in srgb,var(--kaolin) 92%,transparent)}
/* about / prose */
.about{background:var(--stoneware);padding:4.5rem 0}
.about .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:center}
@media(max-width:820px){.about .wrap{grid-template-columns:1fr}}
.portrait{aspect-ratio:3/4;border-radius:50% 50% .5rem .5rem/38% 38% .5rem .5rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--iron) 14%,transparent)}
.portrait img{width:100%;height:100%;object-fit:cover}
.prose{max-width:64ch}.prose p+p{margin-top:1rem}.prose h2{margin:2.4rem 0 .8rem;font-size:1.6rem}
.steps{counter-reset:s;margin-top:1.6rem}
.step{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.1rem 0;border-top:1px solid color-mix(in srgb,var(--iron) 16%,transparent)}
.step::before{counter-increment:s;content:counter(s);font-family:'Young Serif',serif;font-size:1.6rem;color:var(--celadon)}
.step h3{font-size:1.1rem;margin-bottom:.25rem}.step p{font-weight:300}
/* contact */
.contactband{background:var(--tenmoku);color:var(--kaolin);padding:5rem 0 4rem}
.contactband h2{color:var(--kaolin);font-size:clamp(1.9rem,3.6vw,2.7rem)}
.contactband p{max-width:52ch;font-weight:300;margin-top:1rem;opacity:.94}
.contactband a{color:var(--celadon-pale)}
.contactband .cta-row{margin-top:2rem;display:flex;gap:1rem;flex-wrap:wrap}
.contactband .btn-solid{background:var(--celadon-pale);color:var(--tenmoku)}
.contactband .btn-solid:hover{background:var(--kaolin)}
footer.site{background:var(--tenmoku);color:color-mix(in srgb,var(--kaolin) 62%,transparent);padding:2rem 0 2.4rem;font-size:.9rem}
footer.site .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
@media(max-width:680px){footer.site .wrap{grid-template-columns:1fr}}
footer.site a{color:color-mix(in srgb,var(--kaolin) 78%,transparent);text-decoration:none}
footer.site a:hover{color:var(--kaolin)}
footer.site ul{list-style:none}
footer.site h3{color:var(--kaolin);font-size:.95rem;margin-bottom:.6rem}
.note{margin-top:1.4rem;font-size:.92rem;font-style:italic;color:color-mix(in srgb,var(--iron) 65%,transparent)}

/* ============ MOTION LAYER (2026: scroll-driven, view transitions) ============ */
h1,h2,h3{text-wrap:balance}
/* Cross-document view transitions: crossfade pages, header persists */
@view-transition{navigation:auto}
header.site{view-transition-name:site-header}
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root){animation:vt-out .28s ease both}
  ::view-transition-new(root){animation:vt-in .34s ease both}
  @keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
  @keyframes vt-in{from{opacity:0;transform:translateY(10px)}}
}
@media (prefers-reduced-motion: no-preference){
  /* --- hero load sequence: the glaze dip --- */
  @property --glz{syntax:"<percentage>";inherits:false;initial-value:100%;}
  .vessel{background:linear-gradient(180deg,var(--stoneware) 0 var(--glz),var(--celadon) calc(var(--glz) + .5%) 100%);animation:glaze-fill 1.7s cubic-bezier(.33,.9,.35,1) .35s both}
  @keyframes glaze-fill{from{--glz:100%}to{--glz:46%}}
  .vessel::after{opacity:0;transform:scaleY(.2);transform-origin:top;animation:drip .8s cubic-bezier(.34,1.4,.5,1) 1.75s both}
  @keyframes drip{to{opacity:1;transform:scaleY(1)}}
  .vessel-caption{opacity:0;animation:fade-soft .9s ease 2.3s both}
  @keyframes fade-soft{to{opacity:1}}
  .hero .eyebrow,.hero h1,.hero .lede,.hero .cta-row{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.22,.9,.3,1) both}
  .hero .eyebrow{animation-delay:.1s}.hero h1{animation-delay:.22s}.hero .lede{animation-delay:.38s}.hero .cta-row{animation-delay:.54s}
  @keyframes rise{to{opacity:1;transform:none}}
  .pagehead .eyebrow,.pagehead h1,.pagehead p{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.22,.9,.3,1) both}
  .pagehead h1{animation-delay:.12s}.pagehead p{animation-delay:.24s}
  /* --- reading progress: the kiln line --- */
  @supports (animation-timeline: scroll()){
    body::before{content:"";position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--celadon),var(--celadon-pale));transform-origin:0 50%;transform:scaleX(0);z-index:200;animation:kiln-line linear both;animation-timeline:scroll(root block)}
    @keyframes kiln-line{to{transform:scaleX(1)}}
  }
  /* --- scroll reveals: pure CSS where supported --- */
  @supports (animation-timeline: view()){
    [data-reveal]{animation:reveal-rise .9s cubic-bezier(.22,.9,.3,1) both;animation-timeline:view();animation-range:entry 8% entry 42%}
    img[data-parallax]{animation:soft-zoom linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
    .vessel-stage{animation:drift linear both;animation-timeline:scroll(root block);animation-range:0vh 120vh}
  }
  @keyframes reveal-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  @keyframes soft-zoom{from{transform:scale(1.07)}to{transform:scale(1)}}
  @keyframes drift{to{transform:translateY(34px)}}
  /* --- IntersectionObserver fallback (motion.js adds .io + .in) --- */
  .io [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.22,.9,.3,1),transform .8s cubic-bezier(.22,.9,.3,1)}
  .io [data-reveal].in{opacity:1;transform:none}
  .io [data-reveal]:nth-child(2){transition-delay:.08s}.io [data-reveal]:nth-child(3){transition-delay:.16s}
  .io [data-reveal]:nth-child(4){transition-delay:.24s}.io [data-reveal]:nth-child(5){transition-delay:.32s}
  /* --- micro-interactions --- */
  .card{transition:transform .35s cubic-bezier(.22,.9,.3,1),box-shadow .35s ease;position:relative;overflow:hidden}
  .card:hover{transform:translateY(-6px);box-shadow:0 18px 34px -18px color-mix(in srgb,var(--tenmoku) 45%,transparent)}
  .card::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,color-mix(in srgb,#fff 34%,transparent) 50%,transparent 62%);transform:translateX(-120%);pointer-events:none}
  .card:hover::after{transition:transform .9s ease;transform:translateX(120%)}
  .tile{transition:transform .35s cubic-bezier(.22,.9,.3,1),box-shadow .35s ease}
  .tile:hover{transform:translateY(-4px) rotate(.35deg);box-shadow:0 16px 30px -18px color-mix(in srgb,var(--tenmoku) 40%,transparent)}
  .tile img{transition:transform .8s cubic-bezier(.22,.9,.3,1)}
  .tile:hover img{transform:scale(1.045)}
  .btn,.btn-buy,.chip{transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease}
  .btn:active,.btn-buy:active,.chip:active{transform:scale(.96)}
  nav.main a{position:relative;border-bottom:none!important;background:linear-gradient(var(--celadon),var(--celadon)) no-repeat 0 100%/0 2px;transition:background-size .3s ease,color .25s ease;padding-bottom:2px}
  nav.main a:hover,nav.main a[aria-current=page]{background-size:100% 2px}
}
/* lightbox (all motion settings) */
dialog.lightbox{border:none;padding:0;background:transparent;max-width:min(92vw,980px);width:auto}
dialog.lightbox::backdrop{background:color-mix(in srgb,var(--tenmoku) 88%,transparent);backdrop-filter:blur(4px)}
dialog.lightbox figure{margin:0;background:var(--kaolin);border-radius:.5rem;overflow:hidden}
dialog.lightbox img{display:block;max-height:78vh;width:auto;max-width:100%;margin:0 auto}
dialog.lightbox figcaption{padding:.8rem 1.1rem;font-style:italic;font-size:.95rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
dialog.lightbox button.close{border:1.5px solid var(--iron);background:transparent;border-radius:2rem;padding:.3rem 1rem;font-family:inherit;cursor:pointer}
dialog.lightbox button.close:hover{border-color:var(--celadon);color:var(--celadon)}
@media (prefers-reduced-motion: no-preference){
  dialog.lightbox[open]{animation:lb-in .3s cubic-bezier(.22,.9,.3,1)}
  @keyframes lb-in{from{opacity:0;transform:scale(.94)}}
}

/* ============ SHARE LAYER ============ */
.btn-share{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:50%;border:1.5px solid var(--celadon);background:transparent;color:var(--celadon);cursor:pointer;flex:none}
.btn-share:hover{background:var(--celadon);color:var(--kaolin)}
.btn-share svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.toast{position:fixed;left:50%;bottom:1.6rem;transform:translate(-50%,10px);background:var(--tenmoku);color:var(--kaolin);padding:.65rem 1.3rem;border-radius:2rem;font-size:.95rem;opacity:0;pointer-events:none;z-index:300;transition:opacity .3s ease,transform .3s ease}
.toast.show{opacity:1;transform:translate(-50%,0)}
