:root{--paper:#fcf8ef;--ink:#343c36;--muted:#646a60;--coral:#a84432;--green:#285d55;--line:#d7d5c8;--serif:"Noto Serif CJK JP",serif;--sans:"Noto Sans CJK JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--coral)}a:focus-visible{outline:3px solid var(--green);outline-offset:5px}img{display:block;width:100%;height:auto}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:.03em;line-height:1.5}h1{font-size:54px}h2{font-size:36px}h3{font-size:36px}.wrap{width:calc(100% - 112px);max-width:1296px;margin-inline:auto}.skip{position:fixed;left:16px;top:-100px;background:var(--green);color:white;padding:12px 20px;z-index:10}.skip:focus{top:16px}.private-note{padding:5px 20px;background:#e8eee5;text-align:center;color:#43584b;font-size:11px;letter-spacing:.07em}.site-header{min-height:111px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:flex;align-items:center;gap:14px;min-height:44px}.wordmark-jp{font-size:13px;letter-spacing:.2em}.wordmark-name{font-family:Georgia,serif;font-size:40px;line-height:1.1;letter-spacing:-.025em}.wordmark-dot{color:var(--coral)}.site-header nav{display:flex;gap:31px}.site-header nav a,.header-social{font-size:13px;min-height:44px;display:inline-flex;align-items:center;gap:9px}.site-header nav a{border-bottom:1px solid transparent}.site-header nav a:hover{border-bottom-color:var(--coral)}.hero{display:grid;grid-template-columns:.8fr 1.5fr;align-items:center;gap:40px;padding-top:13px}.hero-copy{padding:30px 0}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--green)}.hero h1{margin:21px 0 25px;white-space:nowrap}.hero-intro{font-size:15px;line-height:2.1}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:46px;font-size:14px;border-bottom:1px solid var(--ink)}.text-link span{font-size:20px;line-height:1}.hero-link{margin-top:24px;min-width:168px}.hero-photo{height:563px;border-radius:42% 42% 2px 2px / 12% 12% 2px 2px;overflow:hidden}.hero-photo img{height:100%;object-fit:cover;object-position:57% 50%}.concept-note{font-size:11px;line-height:1.75;color:#5b6057;margin-top:12px;max-width:100%}.section-space{padding-top:110px;padding-bottom:110px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}.section-heading h2{margin-top:10px}.fabric-story{display:grid;grid-template-columns:1.08fr 1fr;gap:0;background:#edf0e6}.fabric-story figure{padding:0}.fabric-story img{height:530px;object-fit:cover}.fabric-story figcaption{padding:0 16px 15px}.fabric-copy{padding:63px 64px}.fabric-copy h3,.vessel-copy h3{margin:20px 0 25px}.fabric-copy>p{margin-bottom:22px}.small-note{font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px}.fabric-copy .text-link{font-size:13px;gap:12px}.vessel-story{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center;margin-top:76px}.vessel-copy{padding-left:62px}.vessel-copy .text-link{margin-top:22px}.visit{display:grid;grid-template-columns:1fr 1fr;gap:100px}.visit h2{margin:15px 0 24px}.visit-heading>p:not(.eyebrow){font-size:14px}.social-button{border:1px solid var(--green);color:var(--green);display:inline-flex;align-items:center;justify-content:space-between;gap:50px;padding:12px 23px;margin-top:26px;font-size:14px}.social-button:hover{background:#e8eee5}.visit-details{padding-top:16px}.visit-name{font-family:var(--serif);font-size:23px}.visit-name span{font-family:var(--sans);font-size:11px;margin-left:12px;color:var(--muted)}dl{margin:24px 0}dl>div{display:grid;grid-template-columns:78px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}dt{font-size:12px;color:var(--muted)}dd{margin:0;font-size:15px}dd a{min-height:44px;display:inline-flex;align-items:center;margin-top:-8px;margin-bottom:-8px}.phone-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:58px;padding:14px 22px;background:var(--green);color:white;font-size:14px}.phone-cta:hover{background:#1e4942;color:white}.visit-details .text-link{margin-top:22px}.site-footer{background:#e9eee5;padding:35px 0}.site-footer>.wrap{display:flex;gap:35px;justify-content:space-between;align-items:center}.footer-brand{font-size:12px;white-space:nowrap}.footer-brand span{font-family:Georgia,serif;font-size:30px;margin-left:10px}.site-footer p:not(.footer-brand){font-size:11px;line-height:1.8}.site-footer a{font-size:11px;min-height:44px;display:flex;align-items:center;white-space:nowrap}
@media(min-width:1500px){.hero-photo{height:590px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.site-header{gap:20px}.header-social{display:none}.hero{grid-template-columns:.83fr 1.2fr;gap:24px}.hero h1{font-size:40px}.hero-photo{height:470px}.hero-intro{font-size:14px}.fabric-copy{padding:40px 36px}h3{font-size:30px}.fabric-story img{height:500px}.vessel-story{gap:45px}.vessel-copy{padding-left:0}.visit{gap:55px}.site-footer>.wrap{gap:25px}}
@media(max-width:800px){.site-header{min-height:104px}.wordmark{gap:10px}.wordmark-name{font-size:34px}.site-header nav{gap:18px}.site-header nav a{font-size:12px}.hero{grid-template-columns:1fr;gap:24px;padding-top:28px}.hero-copy{padding:0;position:relative}.hero h1{font-size:48px;margin:18px 0}.hero-intro{font-size:15px}.hero-link{margin-top:14px}.hero-photo{height:430px;border-radius:34px 34px 2px 2px}.hero-photo img{object-position:50% 50%}.concept-note{font-size:12px}.section-space{padding-top:80px;padding-bottom:80px}.section-heading{display:block;margin-bottom:32px}.fabric-story{grid-template-columns:1fr 1fr}.fabric-story img{height:475px}.fabric-copy{padding:32px 24px}h3{font-size:27px}.fabric-copy>p{font-size:13px}.fabric-copy .text-link{font-size:12px}.vessel-story{grid-template-columns:1fr 1fr;gap:32px;margin-top:55px}.vessel-copy>p{font-size:13px}.vessel-copy .text-link{font-size:12px;gap:10px}.visit{gap:36px}.visit h2{font-size:33px}.social-button{padding:10px 18px;gap:24px}.visit-details{padding-top:5px}.visit-name{font-size:20px}.phone-cta{font-size:12px;padding:12px 15px;gap:10px}.site-footer>.wrap{flex-wrap:wrap;align-items:flex-start}.site-footer a{margin-left:auto}.site-footer p:not(.footer-brand){flex-basis:100%;order:3}}
@media(max-width:560px){body{font-size:14px}.wrap{width:calc(100% - 40px)}.private-note{font-size:9px;letter-spacing:.03em;padding:5px 8px}.site-header{flex-wrap:wrap;gap:0;padding-top:17px;padding-bottom:11px;min-height:0}.wordmark{width:100%;justify-content:center;gap:11px}.wordmark-name{font-size:35px}.wordmark-jp{font-size:11px}.site-header nav{width:100%;justify-content:center;gap:25px;margin-top:9px}.site-header nav a{min-height:44px;min-width:44px;font-size:11px}.hero{padding-top:26px;gap:27px}.hero h1{font-size:35px;margin:15px 0 20px}.hero .eyebrow{font-size:11px}.hero-intro{font-size:13px;line-height:2}.hero-link{font-size:13px;min-width:151px;margin-top:13px}.hero-photo{height:300px;border-radius:24px 24px 2px 2px}.hero-photo img{object-position:60% 50%}.concept-note{font-size:11px;line-height:1.85;margin-top:10px}.section-space{padding-top:58px;padding-bottom:58px}.section-heading h2{font-size:28px}.fabric-story{display:flex;flex-direction:column}.fabric-story img{height:340px}.fabric-story figcaption{padding-inline:16px;padding-bottom:16px}.fabric-copy{padding:26px 25px 33px}.fabric-copy h3,.vessel-copy h3{font-size:30px;margin:16px 0 22px}.fabric-copy>p{font-size:14px;line-height:2}.fabric-copy .text-link{font-size:13px}.vessel-story{display:flex;flex-direction:column-reverse;gap:28px;margin-top:48px}.vessel-copy{width:100%;padding-inline:5px}.vessel-copy>p{font-size:14px;line-height:2}.vessel-copy .text-link{font-size:13px;margin-top:16px}.desktop-break{display:none}.visit{display:block}.visit h2{font-size:29px}.visit-heading>p:not(.eyebrow){font-size:13px;line-height:2}.social-button{font-size:13px;min-height:50px;padding:11px 20px;margin-top:23px}.visit-details{margin-top:40px;padding:30px 0 0;border-top:1px solid var(--line)}.visit-name{font-size:23px}dl>div{grid-template-columns:62px 1fr;gap:10px}dd{font-size:14px}.phone-cta{min-height:58px;font-size:13px;padding:14px 20px}.visit-details .small-note{font-size:11px}.site-footer{padding:27px 0}.site-footer>.wrap{gap:15px}.footer-brand span{font-size:26px}.site-footer a{font-size:10px}.site-footer p:not(.footer-brand){font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Meaningful revision polish: immediate discovery, material-led close-up, legible disclosure. */
.site-header nav a{min-width:44px;justify-content:center}.hero-actions{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-top:28px}.discovery-button{display:inline-flex;align-items:center;gap:24px;min-height:50px;background:var(--coral);color:white;padding:12px 20px;font-size:13px}.discovery-button:hover{background:#8c382a;color:white}.hero-actions .hero-link{margin:0;min-width:140px}.concept-note{font-size:13px;line-height:1.8}.fabric-story img{height:565px;object-position:50% 42%}.fabric-copy h3{color:var(--coral)}
@media(max-width:1100px){.hero-actions{gap:10px;margin-top:22px}.discovery-button{padding:10px 16px;font-size:12px}.hero-actions .hero-link{font-size:12px;min-width:130px}.fabric-story img{height:540px}}
@media(max-width:800px){.hero-actions{gap:16px;margin-top:20px}.fabric-story img{height:525px}.concept-note{font-size:12px}.fabric-story figcaption{padding:0 13px 15px}}
@media(max-width:560px){.hero{gap:23px}.hero-actions{gap:12px;margin-top:19px}.discovery-button{font-size:12px;padding:10px 15px;gap:15px}.hero-actions .hero-link{font-size:12px;min-width:132px}.concept-note{font-size:12px;line-height:1.85}.fabric-story img{height:370px;object-position:48% 42%}.private-note{font-size:10px}.site-footer p:not(.footer-brand){font-size:11px}}

@media(max-width:560px){.hero{padding-top:16px;gap:16px}.hero h1{font-size:32px;margin:12px 0 14px}.hero-actions{margin-top:14px}.hero-photo{height:265px}}

/* Private review revision: keep the editorial layout and clarify the routes. */
.wrap { margin-left: auto; margin-right: auto; }

.private-note {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 14px;
  font-size: 12px;
}

.private-note strong { font-weight: 600; }
.site-header nav a, .header-social { font-size: 14px; }
.hero h1 { white-space: normal; }
.hero-intro { max-width: 25em; font-size: 16px; line-height: 1.9; }
.hero-actions .hero-link, .discovery-button { font-size: 14px; }
.concept-note { color: #4a534b; font-size: 13px; line-height: 1.7; }

.collection-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 28px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.collection-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  min-height: 60px;
  padding: 12px 20px;
  color: var(--green);
  font-size: 15px;
}

.collection-links a + a { border-left: 1px solid var(--line); }
.collection-links a:hover { background: #e8eee5; }
.collection-links a:focus-visible { outline-offset: -4px; }

.collection.section-space { padding-top: clamp(56px, 7vw, 92px); }
.section-heading { margin-bottom: clamp(24px, 4vw, 38px); }
.section-heading h2 { margin-top: 0; }
.fabric-copy { align-self: center; }
.fabric-copy h3, .vessel-copy h3 {
  margin: 0 0 18px;
  font-size: clamp(26px, 3vw, 36px);
}
.fabric-copy > p, .vessel-copy > p {
  max-width: 28em;
  font-size: 16px;
  line-height: 1.9;
}

.fabric-copy .text-link, .vessel-copy .text-link,
.about .text-link, .visit-details .text-link { font-size: 14px; }

.vessel-story {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .62fr);
  gap: clamp(28px, 7vw, 112px);
  margin-top: clamp(28px, 5vw, 66px);
  padding: clamp(28px, 5vw, 70px);
  background: #f3e8d6;
}

.vessel-copy { padding: 0; }
.vessel-copy .text-link { margin-top: 16px; }
.vessel-visit { padding-left: clamp(24px, 4vw, 54px); border-left: 1px solid #c6b89d; }
.vessel-visit p { margin-bottom: 7px; font-size: 16px; }
.vessel-visit .text-link { color: var(--green); }
.visit-heading > p:not(.eyebrow) { font-size: 15px; }
.site-footer p:not(.footer-brand), .site-footer a { font-size: 12px; }

@media (max-width: 800px) {
  .fabric-copy > p, .vessel-copy > p { font-size: 15px; }
  .collection-links a { padding-inline: 12px; font-size: 14px; }
}

@media (max-width: 560px) {
  body { font-size: 15px; }
  .private-note { font-size: 11px; }
  .site-header { padding: 12px 0 7px; }
  .site-header nav { gap: 17px; margin-top: 5px; }
  .site-header nav a { font-size: 13px; }
  .hero-intro { font-size: 15px; line-height: 1.78; }
  .hero-actions .hero-link, .discovery-button { font-size: 13px; }
  .hero-actions .hero-link { min-width: 0; gap: 9px; }
  .discovery-button { padding-left: 10px; padding-right: 10px; gap: 9px; }
  .collection-links { grid-template-columns: 1fr; margin-top: 21px; }
  .collection-links a { min-height: 46px; padding: 8px 10px; }
  .collection-links a + a { border-left: 0; border-top: 1px solid var(--line); }
  .fabric-copy, .vessel-story { padding: 24px; }
  .vessel-story { grid-template-columns: 1fr; gap: 20px; }
  .vessel-visit { padding: 16px 0 0; border: 0; border-top: 1px solid #c6b89d; }
}

@media (max-width: 350px) {
  .section-heading h2 { font-size: 23px; }
}

@supports not (margin-inline: auto) {
  .private-note strong { margin-right: 14px; }
  .wordmark-name { margin-left: 12px; }
  .site-header nav a + a { margin-left: 30px; }
  .header-social span, .discovery-button span { margin-left: 10px; }
  .hero-actions .hero-link { margin-left: 24px; }
  @media (max-width: 800px) {
    .site-header nav a + a, .hero-actions .hero-link { margin-left: 16px; }
  }
  @media (max-width: 560px) {
    .hero-actions .hero-link { margin-left: 12px; }
  }
}

/* The shop introduction sits inside a shallow, arched window. */
.about {
  padding-top: clamp(16px, 3vw, 42px);
  padding-bottom: clamp(30px, 5vw, 68px);
}

.about-window {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(48px, 6.1vw, 86px) clamp(22px, 6vw, 82px) clamp(38px, 5.4vw, 74px);
  border: 1px solid #d9bea0;
  border-radius: 50% 50% 19px 19px / 100px 100px 19px 19px;
  background: radial-gradient(ellipse at 49% 5%, #fff7eb 0%, #f7ebda 48%, #efddc5 100%);
  box-shadow: inset 0 0 0 8px #fdf2e4, 0 16px 34px rgba(78, 55, 33, .09);
}

.about-window::after {
  content: "";
  position: absolute;
  right: -12px;
  bottom: -3px;
  left: -12px;
  height: 7px;
  border: 1px solid #d0af8b;
  border-radius: 4px 4px 6px 6px;
  background: #e1c6a7;
  box-shadow: 0 5px 9px rgba(78, 55, 33, .09);
  pointer-events: none;
}

.about-inner { max-width: 540px; margin: 0 auto; text-align: center; }
.about-greeting { font-size: 13px; letter-spacing: .15em; }
.about-greeting span {
  display: inline-block;
  margin-left: 6px;
  color: var(--coral);
  font-size: 18px;
  line-height: 1;
  vertical-align: -1px;
}

.about h2 {
  margin: 15px 0 clamp(22px, 3vw, 31px);
  font-size: clamp(23px, 4.5vw, 38px);
}

.about-copy { max-width: 500px; margin: 0 auto; text-align: left; line-height: 1.95; }
.about-copy p + p { margin-top: 17px; }
.about-phrase { white-space: nowrap; }
.about-link { margin-top: clamp(15px, 2.6vw, 24px); gap: 0; }
.about-link span { margin-left: 16px; }

@media (max-width: 560px) {
  .about-window {
    padding: 41px 24px 35px;
    border-radius: 50% 50% 14px 14px / 42px 42px 14px 14px;
    box-shadow: inset 0 0 0 5px #fdf2e4, 0 9px 22px rgba(78, 55, 33, .08);
  }
  .about-window::after { right: -6px; left: -6px; height: 6px; }
  .about-greeting { font-size: 12px; }
  .about h2 { margin-top: 12px; }
}

@media (max-width: 350px) {
  .about-window { padding-right: 17px; padding-left: 17px; }
  .about h2 { font-size: 20px; }
}

.fabric-photo { overflow: hidden; }

@media (prefers-reduced-motion: no-preference) {
  .photo-pending img { opacity: 0; }
  .photo-entered img { animation: photo-appear 620ms cubic-bezier(.2, .65, .3, 1) both; }

  @keyframes photo-appear {
    from { opacity: 0; transform: translateY(12px) scale(1.02); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
}

@media (hover: hover) and (pointer: fine) {
  .discovery-button:hover, .social-button:hover, .phone-cta:hover {
    box-shadow: 0 5px 12px rgba(57, 42, 31, .15);
  }
  .text-link:hover { border-bottom-color: var(--coral); }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .discovery-button, .social-button, .phone-cta {
    transition: background-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
  }
  .discovery-button:hover, .social-button:hover, .phone-cta:hover { transform: translateY(-2px); }
  .text-link { transition: color 180ms ease, border-color 180ms ease; }
  .text-link span { transition: transform 200ms ease; }
  .text-link:hover span { transform: translate(3px, -2px); }
  .hero-link:hover span, .vessel-visit .text-link:hover span { transform: translateY(3px); }
}
