
:root {
  --ivory:#f8f5f1; --nude:#e9d9d2; --rose:#cfa8aa; --gold:#b89b72; --ink:#292625;
  --muted:#68615c; --line:#d9cec6; --surface-primary:var(--ivory); --surface-secondary:#eee7df;
  --surface-soft:#f2ece6; --border-subtle:#b89b723b; --gold-ink:#806749;
  --serif:'Cormorant Garamond','Noto Serif JP',serif; --sans:Inter,'Noto Sans JP',sans-serif;
  --font-display:clamp(32px,3.5vw,46px); --font-body:clamp(13px,1.1vw,14px); --font-small:11px;
  --space-xs:8px; --space-sm:16px; --space-md:24px; --space-lg:32px; --space-xl:48px;
  --space-section:clamp(52px,6vw,80px); --gutter:clamp(20px,4vw,48px); --max:1200px;
  --radius:3px; --transition:240ms ease; --shadow:0 12px 35px #29262509;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:100px}
body {margin:0;background:var(--surface-primary);color:var(--ink);font:var(--font-body)/1.85 var(--sans);-webkit-font-smoothing:antialiased}
a {color:inherit;text-decoration:none}
button,select {font:inherit;color:inherit}
button,a,select {-webkit-tap-highlight-color:transparent}
button {cursor:pointer}
button:disabled {cursor:default}
img {display:block;width:100%;height:auto}
figure,dl,dd {margin:0}
svg {display:block;flex-shrink:0}
[hidden] {display:none!important}
:is(a,button,select):focus-visible {outline:2px solid var(--gold-ink);outline-offset:5px}
h1,h2,h3,p {margin-top:0}
h1[tabindex="-1"]:focus {outline:none}
h2 {font:500 var(--font-display)/1.12 var(--serif);letter-spacing:-.025em;margin-bottom:var(--space-md);text-wrap:balance}
h3 {font:500 23px/1.3 var(--serif)}
p {color:var(--muted);margin-bottom:var(--space-sm)}
.section {max-width:var(--max);margin-inline:auto;padding:var(--space-section) var(--gutter)}
.section-heading {margin-bottom:var(--space-md)}
.section-heading h2 {margin-bottom:0}
.eyebrow {display:block;font-size:10px;line-height:1.6;letter-spacing:.17em;color:var(--gold-ink);margin-bottom:var(--space-sm)}
.fine {font-size:var(--font-small);line-height:1.8;color:var(--muted)}
.button {display:inline-flex;justify-content:center;align-items:center;gap:var(--space-md);min-height:48px;padding:12px 22px;border:1px solid var(--border-subtle);border-radius:var(--radius);background:transparent;font-size:12px;line-height:1.5;transition:background var(--transition),border-color var(--transition),transform var(--transition)}
.button>span {margin-left:auto}
.button.line {background:var(--nude);border-color:#c4a79c;color:var(--ink)}
.button:disabled {color:var(--muted);border-style:solid;background:var(--surface-soft)}
.button.line:disabled {background:#e9dfd5;border-color:#c9b9a6}
.unavailable-mark {font-size:10px;opacity:.65}
.button.dark {background:var(--ink);border-color:var(--ink);color:var(--ivory)}
.button.small {min-height:42px;padding:9px 18px;font-size:11px}
.actions {display:flex;gap:12px;flex-wrap:wrap;margin:var(--space-md) 0 var(--space-sm)}
.text-link {position:relative;display:inline-flex;align-items:center;gap:var(--space-md);min-height:44px;padding:8px 0;font-size:12px}
.text-link::after {content:'';position:absolute;bottom:5px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(.35);transform-origin:left;transition:transform var(--transition)}
.quiet-link {color:var(--muted)}
.quiet-link::after {background:var(--border-subtle)}
.brand {display:block;font:500 32px/1 var(--serif);letter-spacing:-.035em;white-space:nowrap}
.brand small {display:block;font:9px/1.5 var(--sans);letter-spacing:.26em;margin-top:7px;text-align:center}
.skip {position:fixed;top:-100px;background:var(--ink);color:var(--ivory);z-index:100;padding:12px}
.skip:focus {top:0}

/* Navigation */
header {position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:18px max(var(--gutter),calc((100vw - 1320px)/2));background:var(--ivory);border-bottom:1px solid transparent;transition:background var(--transition),box-shadow var(--transition),border-color var(--transition)}
header.scrolled {background:#f8f5f1f2;border-color:var(--border-subtle);box-shadow:0 3px 14px #29262505;backdrop-filter:blur(8px)}
nav {display:flex;gap:clamp(14px,1.6vw,24px);font-size:11px}
nav a {position:relative;display:flex;align-items:center;min-height:44px;white-space:nowrap}
nav a::after {content:'';position:absolute;bottom:5px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform var(--transition)}
nav a[aria-current="location"]::after {transform:scaleX(.45)}
nav a[aria-current="location"] {color:var(--gold-ink)}
.header-tools {display:flex;align-items:center;gap:var(--space-sm)}
.language {border:0;border-radius:var(--radius);background:transparent;padding:10px 3px;max-width:112px;font-size:11px;min-height:44px}
#menu {display:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;padding:10px;border:0;background:transparent}
#menu span {display:block;width:20px;height:1px;background:var(--ink);transition:transform var(--transition)}
#menu[aria-expanded="true"] span:first-child {transform:translateY(3.5px) rotate(45deg)}
#menu[aria-expanded="true"] span:last-child {transform:translateY(-3.5px) rotate(-45deg)}

/* Shared layout utilities. */
.headline-phrase {display:inline-block;max-width:100%}
.trust {display:flex;justify-content:center;gap:clamp(20px,5vw,76px);padding:20px var(--gutter);border-block:1px solid var(--border-subtle);font-size:11px}
.trust>span {display:flex;align-items:center;gap:12px}
.trust i {font:24px var(--serif);color:var(--gold-ink)}

/* Story and service menu */
.about {display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(40px,7vw,96px);align-items:center}
.portrait {width:100%;max-width:335px;justify-self:center}
.portrait-frame {position:relative;padding:10px;border:1px solid var(--border-subtle);background:var(--surface-soft)}
.portrait img {aspect-ratio:317/540;object-fit:cover;object-position:center 15%;border-radius:2px 2px 60px 2px}
.portrait figcaption {padding:var(--space-sm) 0 0;border-bottom:1px solid var(--border-subtle)}
.portrait figcaption strong {display:block;font:500 26px var(--serif)}
.portrait figcaption span {display:block;font-size:9px;letter-spacing:.1em;padding:5px 0 var(--space-sm);color:var(--muted)}
.about-copy p {font-size:13px;max-width:570px}
.about-copy .lead {font-size:15px;color:var(--ink);line-height:1.8}
.signature {font:italic 44px/1 var(--serif);color:var(--gold-ink);margin-top:var(--space-md)}
.differences {padding-top:0}
.differences .section-heading {max-width:620px}
.difference-grid {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-md)}
.difference-grid article {border-top:1px solid var(--border-subtle);padding-top:var(--space-sm)}
.number {font:italic 23px var(--serif);color:var(--gold-ink)}
.difference-grid h3 {font-size:22px;margin:10px 0}
.difference-grid p {font-size:12px;margin-bottom:0}
.services {background:var(--surface-secondary)}
.service-layout {display:grid;grid-template-columns:.9fr 1.3fr;gap:clamp(40px,7vw,96px);align-items:start}
.service-intro {padding-top:8px}
.service-intro h2 {max-width:310px}
.service-image {width:230px;margin-top:var(--space-lg);padding-left:var(--space-sm);border-left:1px solid var(--gold)}
.service-photo {aspect-ratio:207/265;object-fit:contain;border-radius:90px 90px 2px 2px}
.service-image figcaption {font:italic 20px/1.35 var(--serif);margin-top:var(--space-sm);color:var(--muted)}
.menu-group {font:500 10px/1.5 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 8px}
.price-list dl {margin-bottom:var(--space-md)}
.price-row {display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:15px 0;border-bottom:1px solid #b89b7240;transition:background var(--transition),padding var(--transition)}
.price-row dt {font-size:13px;line-height:1.7}
.price-row dd {display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}
.price-row strong {font:500 28px/1.2 var(--serif);white-space:nowrap;font-variant-numeric:tabular-nums}
.price-row small {font:9px/1.5 var(--sans);color:var(--muted)}
.service-booking {display:flex;gap:var(--space-md);align-items:center;justify-content:space-between}
.service-booking p {max-width:300px;margin:0}
.service-booking .button {flex-shrink:0}

/* Gallery: natural image proportions, alternating scale and baseline. */
.gallery-section {padding-bottom:var(--space-xl)}
.gallery-intro {display:flex;gap:var(--space-xl);justify-content:space-between;align-items:end}
.gallery-intro .section-heading {max-width:570px;margin:0}
.gallery-intro>p {max-width:300px;font-size:13px;margin-bottom:0}
.filters {display:flex;flex-wrap:wrap;gap:8px;margin:var(--space-lg) 0 var(--space-md)}
.filters button {min-height:44px;padding:9px 17px;border:1px solid var(--border-subtle);border-radius:30px;background:transparent;font-size:11px;transition:background var(--transition),border-color var(--transition)}
.filters button[aria-pressed="true"] {background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.gallery-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md) var(--space-sm);align-items:start}
.gallery-item {display:block;min-width:0;width:100%;padding:0;border:0;background:transparent;text-align:left}
.gallery-item:nth-child(4n+2) {width:88%;justify-self:center;margin-top:var(--space-xl)}
.gallery-item:nth-child(4n+4) {margin-top:var(--space-md)}
.gallery-photo {position:relative;display:block;overflow:hidden;border-radius:2px}
.gallery-photo>img {aspect-ratio:207/265;object-fit:contain;transition:transform 320ms ease}
.gallery-overlay {position:absolute;inset:0;display:flex;align-items:end;justify-content:space-between;padding:var(--space-sm);color:var(--ivory);background:linear-gradient(transparent 45%,#292625c9);opacity:0;transition:opacity var(--transition);font-size:11px}
.gallery-caption {display:flex;justify-content:space-between;gap:8px;padding:10px 0 0;font-size:10px;color:var(--muted)}
.gallery-caption>span:last-child {font-size:9px;color:var(--gold-ink)}
.gallery-grid.is-filtered .gallery-item {width:100%;margin-top:0}
.gallery-section>.text-link {margin-top:var(--space-md)}
.quote {padding:var(--space-xl) var(--gutter);text-align:center;background:var(--surface-soft);border-block:1px solid var(--border-subtle)}
.quote .eyebrow {margin-bottom:var(--space-sm)}
.quote blockquote {max-width:780px;margin:0 auto var(--space-sm);font:400 clamp(30px,3.5vw,45px)/1.18 var(--serif);text-wrap:balance}
.quote i {display:inline-flex;align-items:center;gap:var(--space-sm);font:italic 21px var(--serif);color:var(--gold-ink)}
.quote i::before {content:'';width:32px;height:1px;background:var(--gold)}

/* Professional training and studio experience */
.certification-layout {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:center;padding-bottom:var(--space-xl)}
.certificate-grid {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);align-items:start}
.certificate-grid>button {padding:0;border:0;background:transparent;text-align:left}
.certificate-grid>button:last-child {margin-top:var(--space-lg)}
.certificate-frame {position:relative;display:flex;align-items:center;justify-content:center;height:260px;padding:12px;background:var(--surface-soft);border:1px solid var(--border-subtle);box-shadow:var(--shadow)}
.certificate-frame img {max-height:100%;object-fit:contain}
.expand-mark {position:absolute;right:6px;bottom:6px;background:var(--ivory);padding:6px;color:var(--gold-ink)}
.certificate-caption {display:block;font-size:10px;line-height:1.7;margin-top:12px;color:var(--muted)}
.experience {display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--space-xl);align-items:center;margin-inline:auto;background:var(--surface-secondary);max-width:calc(var(--max) - 2 * var(--gutter));padding:var(--space-xl);border-radius:2px}
.experience-art {position:relative;width:240px;max-width:100%;justify-self:center;padding:0 12px 12px 0}
.experience-art::before {content:'';position:absolute;inset:12px 0 0 12px;border:1px solid var(--gold)}
.experience-art img {position:relative;aspect-ratio:207/265;object-fit:contain;border-radius:2px 70px 2px 2px}
.experience-art>span {position:absolute;right:-20px;bottom:var(--space-lg);background:var(--surface-secondary);font:36px var(--serif);color:var(--gold-ink);padding:8px}
.experience-copy {max-width:550px}
.experience-ending {padding-left:var(--space-sm);border-left:1px solid var(--gold);font:italic 23px/1.35 var(--serif);color:var(--ink);margin:var(--space-md) 0 0}
.location {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:center}
.location .section-heading {margin:0}
.location-info {display:flex;gap:var(--space-md);align-items:center}
.location h3 {font-size:27px;margin-bottom:12px}
.location p {margin-bottom:8px}
.location .fine {max-width:360px;margin:0}

/* Booking and the continuation of the portfolio */
.contact {background:var(--ink);color:var(--ivory);padding:var(--space-section) var(--gutter)}
.contact-inner {max-width:calc(var(--max) - 2 * var(--gutter));margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,7vw,96px);align-items:center}
.contact .eyebrow {color:var(--nude)}
.contact h2 {font-size:clamp(36px,4vw,52px);max-width:570px}
.contact p {color:#e1d7ce;margin-bottom:0}
.contact-options {border-left:1px solid #b89b724d;padding-left:var(--space-xl)}
.contact .actions {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:var(--space-sm) 0}
.contact .button {color:var(--ivory);border-color:#b89b7280}
.contact .button:disabled {color:#c1b5aa;background:transparent;border-color:#b89b724d}
.contact .button.line:disabled {background:#e9dfd514;border-color:#b89b7280}
.contact .button.line:not(:disabled) {background:var(--nude);color:var(--ink)}
.contact .instagram-channel {grid-column:1/-1;justify-self:start;border:0;padding:8px 0;min-height:44px;border-bottom:1px solid var(--gold);border-radius:0}
.contact .fine {font-size:11px;color:#c1b5aa;max-width:420px}
.instagram {display:grid;grid-template-columns:1fr 1.15fr;gap:var(--space-xl);align-items:center}
footer {max-width:1320px;margin:auto;padding:var(--space-xl) var(--gutter) var(--space-md);border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:1fr 1fr auto;gap:var(--space-md);align-items:center}
footer p {font-size:11px;margin:var(--space-sm) 0 0}
.footer-links {display:flex;align-items:center;justify-content:center;gap:var(--space-md);font-size:11px}
.footer-links .button {border:0;background:transparent;padding:5px;min-height:44px;font-size:11px;gap:8px}
.footer-links .unavailable-mark {display:none}
.footer-links>a {min-height:44px;display:flex;align-items:center;gap:8px}
.footer-bottom {grid-column:1/-1;border-top:1px solid var(--border-subtle);padding-top:var(--space-md);display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}
.mobile-cta {display:none}

/* Native dialog keeps keyboard focus inside the enlarged image. */
dialog {border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--ivory);padding:52px 28px 20px;max-width:min(90vw,920px);max-height:92dvh;box-shadow:var(--shadow)}
dialog::backdrop {background:#211d1be8}
dialog img {width:auto;max-width:100%;max-height:72dvh;object-fit:contain;margin:auto}
dialog[data-kind="nail"] img {width:min(65vw,340px)}
dialog[data-resolution="small"] img {width:min(65vw,300px)}
dialog p {text-align:center;margin:var(--space-sm) 0 0;font-size:12px;max-width:65ch}
dialog .close {position:absolute;right:7px;top:5px;width:44px;height:44px;border:0;background:transparent;font-size:28px}
.modal-open {overflow:hidden}
.back-to-top {position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:16;display:inline-flex;align-items:center;justify-content:center;gap:0;min-width:48px;min-height:48px;padding:13px;border:1px solid var(--border-subtle);border-radius:24px;background:var(--ivory);color:var(--ink);box-shadow:var(--shadow);font-size:11px;transition:background var(--transition),gap var(--transition),transform var(--transition)}
.back-to-top>span {max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width 280ms ease,opacity var(--transition)}
.back-to-top:focus-visible {gap:8px}
.back-to-top:focus-visible>span {max-width:150px;opacity:1}
.reveal-in {animation:reveal 320ms ease both}
@keyframes reveal {from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}
:lang(ja) h2 {font-size:clamp(25px,2.7vw,34px);line-height:1.6;letter-spacing:.015em;line-break:strict;word-break:normal}
:lang(ja) h3 {font-size:17px;line-height:1.7}
:lang(ja) .menu-group {font-size:10px}
:lang(ja) p {line-height:2}
:lang(ja) .quote blockquote {font-size:clamp(23px,2.7vw,33px);line-height:1.65;max-width:850px}
:lang(ja) .experience-ending {font-size:18px;line-height:1.8;font-style:normal}
:lang(ja) .contact h2 {font-size:clamp(27px,2.9vw,38px)}

@media(hover:hover) and (pointer:fine) {
  .button:not(:disabled):hover {background:var(--nude);border-color:var(--gold);transform:translateY(-1px)}
  .button.dark:hover {background:#443c37;color:var(--ivory)}
  .text-link:hover::after,nav a:hover::after {transform:scaleX(1)}
  .price-row:hover {background:#f8f5f180;padding-inline:8px}
  .filters button:not([aria-pressed="true"]):hover {background:var(--surface-secondary)}
  .gallery-item:hover img,.feed a:hover img {transform:scale(1.02)}
  .gallery-item:hover .gallery-overlay {opacity:1}
  .contact .button:not(:disabled):hover {color:var(--ink)}
  .contact .instagram-channel:hover {background:transparent;color:var(--ivory)}
  .back-to-top:hover {gap:8px;background:var(--surface-soft);transform:translateY(-2px)}
  .back-to-top:hover>span {max-width:150px;opacity:1}
}
.gallery-item:focus-visible .gallery-overlay {opacity:1}

@media(max-width:1100px) {
  header {gap:var(--space-sm)}
  .desktop {display:none}
  .header-tools {gap:8px}
  .difference-grid {gap:var(--space-sm)}
  .service-booking {align-items:start;flex-direction:column;gap:var(--space-sm)}
  .certificate-grid {gap:var(--space-sm)}
  .certificate-frame {height:225px}
  .contact-options {padding-left:var(--space-lg)}
}
@media(max-width:900px) {
  #menu {display:flex}
  nav {display:none;position:absolute;top:100%;left:0;right:0;background:var(--ivory);border-bottom:1px solid var(--border-subtle);padding:var(--space-sm) var(--gutter)}
  .menu-open nav {display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  nav a {padding:8px}
  nav a::after {left:8px;width:30px}
  .trust {gap:var(--space-md);font-size:10px}
  .trust>span {gap:8px}
  .about {gap:var(--space-lg)}
  .difference-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
  .gallery-intro {gap:var(--space-md)}
  .gallery-intro>p {max-width:240px}
  .gallery-grid {grid-template-columns:repeat(4,minmax(0,1fr))}
  .gallery-overlay {font-size:9px;padding:8px}
  .certification-layout {grid-template-columns:1fr;gap:var(--space-lg)}
  .certificate-grid {max-width:480px;width:100%;justify-self:center}
  .certificate-frame {height:260px}
  .experience {padding:var(--space-lg);gap:var(--space-lg)}
  .contact-inner {gap:var(--space-lg)}
  .contact .actions {grid-template-columns:1fr}
  .contact .button {justify-content:space-between}
  .instagram {grid-template-columns:1fr 1fr;gap:var(--space-lg)}
  .footer-links {gap:12px}
}
@media(max-width:760px) {
  :root {--gutter:24px;--font-display:clamp(31px,8.4vw,38px);--space-section:56px;--space-xl:36px}
  html {scroll-padding-top:88px}
  header {padding:14px var(--gutter);gap:8px}
  .brand {font-size:29px}
  .brand small {font-size:8px}
  .header-tools {gap:3px}
  .language {font-size:10px;max-width:100px}
  .menu-open nav {grid-template-columns:1fr 1fr}
  .trust {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);padding:20px var(--gutter);font-size:9px}
  .trust i {font-size:21px}
  .about {grid-template-columns:1fr;gap:var(--space-lg)}
  .portrait {max-width:280px}
  .portrait img {aspect-ratio:317/540}
  .portrait figcaption strong {font-size:25px}
  .about-copy .lead {font-size:14px}
  .about-copy p {font-size:13px}
  .difference-grid {grid-template-columns:1fr 1fr;gap:var(--space-md) var(--space-sm)}
  .difference-grid article:last-child {grid-column:1/-1}
  .difference-grid h3 {font-size:21px}
  .service-layout {grid-template-columns:1fr;gap:var(--space-lg)}
  .service-intro {display:grid;grid-template-columns:1fr 110px;gap:var(--space-sm);align-items:center;padding:0}
  .service-intro .section-heading {margin-bottom:0}
  .service-intro h2 {font-size:30px}
  .service-image {width:110px;margin:0;padding-left:8px}
  .service-image figcaption {font-size:15px;margin-top:8px}
  .price-row {padding:14px 0}
  .price-row dt {font-size:12px}
  .price-row strong {font-size:26px}
  .service-booking {flex-direction:row;gap:var(--space-sm);align-items:center}
  .service-booking .button {padding:12px 16px;gap:12px}
  .gallery-intro {display:block}
  .gallery-intro>p {max-width:400px;margin-top:var(--space-sm)}
  .filters {gap:7px;margin:var(--space-md) 0}
  .filters button {font-size:10px;padding:8px 13px}
  .gallery-grid {grid-template-columns:1fr 1fr;gap:20px 12px}
  .gallery-item:nth-child(4n+2) {width:94%;margin-top:24px;justify-self:end}
  .gallery-item:nth-child(4n+4) {margin-top:16px}
  .gallery-caption {font-size:9px;gap:4px;padding-top:8px}
  .gallery-overlay {display:none}
  .quote {padding:var(--space-lg) var(--gutter)}
  .quote blockquote {font-size:32px}
  .quote i {font-size:20px}
  .certificate-grid {gap:12px;max-width:420px}
  .certificate-frame {height:220px;padding:8px}
  .certificate-caption {font-size:9px}
  .experience {grid-template-columns:110px minmax(0,1fr);gap:20px;margin:0 var(--gutter);padding:var(--space-lg) 20px;max-width:none;align-items:center}
  .experience-art {width:110px;padding:0 7px 7px 0}
  .experience-art>span {font-size:23px;right:-13px;bottom:10px;padding:4px}
  .experience-copy {display:contents}
  .experience-copy .section-heading {grid-column:2;grid-row:1;margin:0}
  .experience-copy .eyebrow {font-size:8px}
  .experience-copy h2 {font-size:29px}
  .experience-copy p {grid-column:1/-1;font-size:12px;margin:0}
  .experience-copy .experience-ending {font-size:20px;line-height:1.45}
  .location {grid-template-columns:1fr;gap:var(--space-md)}
  .location-info {gap:var(--space-sm)}
  .location h3 {font-size:25px}
  .contact-inner {grid-template-columns:1fr;gap:var(--space-md)}
  .contact h2 {font-size:38px;max-width:400px}
  .contact-options {border-left:0;border-top:1px solid #b89b724d;padding:var(--space-md) 0 0}
  .contact .actions {grid-template-columns:1fr 1fr;margin-top:0}
  .contact .button {padding:12px 18px}
  .contact .instagram-channel {padding:8px 0}
  .instagram {grid-template-columns:1fr;gap:var(--space-md)}
  footer {grid-template-columns:1fr auto;padding-bottom:calc(100px + env(safe-area-inset-bottom));gap:var(--space-sm)}
  .footer-links {grid-column:1/-1;grid-row:2;justify-content:start;gap:var(--space-md)}
  .footer-bottom {gap:12px;font-size:8px;padding-top:var(--space-sm)}
  .mobile-cta {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f8f5f1f5;border-top:1px solid var(--border-subtle);backdrop-filter:blur(8px);z-index:15;gap:8px}
  .mobile-cta .button {padding:8px;gap:6px;font-size:10px;min-height:45px}
  .mobile-cta .unavailable-mark {display:none}
  .back-to-top {right:max(16px,env(safe-area-inset-right));bottom:calc(var(--mobile-cta-height,72px) + 16px);width:48px;height:48px;gap:0;padding:13px}
  .back-to-top>span {display:none}
  dialog {width:calc(100vw - 24px);max-width:none;padding:48px 12px 16px}
  dialog img {max-height:68dvh}
  dialog p {font-size:11px}
  :lang(ja) h2 {font-size:25px;line-height:1.6;letter-spacing:0}
  :lang(ja) .service-intro h2 {font-size:24px}
  :lang(ja) .quote blockquote {font-size:24px;line-height:1.7}
  :lang(ja) .experience-copy h2 {font-size:23px}
  :lang(ja) .experience-ending {font-size:16px}
  :lang(ja) .contact h2 {font-size:29px}
}
@media(max-width:374px) {
  :root {--gutter:18px}
  header {padding:12px 14px}
  .brand {font-size:26px}
  .language {font-size:9px;max-width:90px}
  .service-intro {grid-template-columns:1fr 90px;gap:12px}
  .service-image {width:90px}
  .service-intro h2 {font-size:28px}
  .service-booking {flex-direction:column;align-items:start}
  .certificate-frame {height:185px}
  .experience {grid-template-columns:90px minmax(0,1fr);padding:20px;gap:16px}
  .experience-art {width:90px;justify-self:start}
  .experience-copy h2 {font-size:25px}
  .contact h2 {font-size:34px}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {transition:none!important;animation:none!important}
  .button:not(:disabled):hover,.back-to-top:hover,.gallery-item:hover img,.feed a:hover img {transform:none}
}
