@charset "utf-8";

:root{--content-max-width:1200px;--pc-unit:min(1vw,12px);--gold:#80683c;--serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;--header-height:143px;--wall-floor-gap:46px;color-scheme:light;scroll-behavior:smooth;scrollbar-gutter:stable}
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}img{display:block;max-width:100%;height:auto}button{color:inherit}
body{color:var(--gold);background:#fdfcf9;font-family:var(--serif);font-weight:500;-webkit-font-smoothing:antialiased}
/* The lower molding is at y=1374 in the 1700px artwork. Anchor that line
   above the viewport bottom while keeping the wall's original aspect ratio. */
body::before{content:"";position:fixed;inset:var(--header-height) 0 0;z-index:-1;background:url('../img/wall-background.jpg') center top / auto calc((100% - var(--wall-floor-gap)) / .8082352941) repeat-x;opacity:.09;pointer-events:none}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;left:16px;top:12px;background:#fff;padding:12px;z-index:100}
/* Quiet ivory masthead, gold wordmark and carefully spaced navigation. */
.cherie-header{position:sticky;top:0;z-index:20;background:rgba(253,251,247,.97);border-top:2px solid #9c8254;border-bottom:1px solid #9c82543b;backdrop-filter:blur(12px);transition:box-shadow .25s}
.cherie-header.is-scrolled{box-shadow:0 5px 24px #4b39120b}
.cherie-masthead{position:relative;display:flex;align-items:center;justify-content:center;max-width:1200px;margin:auto;height:88px}
.cherie-brand{font-size:inherit;line-height:1}
.cherie-brand a{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none}
.cherie-brand img{width:100px;height:auto}
.brand-caption{font-family:Georgia,"Times New Roman",serif;font-size:8px;font-weight:400;letter-spacing:.28em;line-height:1.4;color:#8a7550}
.cherie-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;width:83%;max-width:996px;margin:auto;min-height:52px;border-top:1px solid #9c825426;font-size:13px;font-weight:400;letter-spacing:.12em}
.cherie-nav a{position:relative;text-decoration:none;white-space:nowrap;padding:16px 0;text-underline-offset:8px}
.cherie-nav a:hover,.cherie-nav a[aria-current="location"]{text-decoration:underline;text-decoration-thickness:1px}
.menu-toggle{display:none}
.menu-dialog{inset:0 0 0 auto;width:min(100%,480px);height:100dvh;max-width:100%;max-height:100dvh;margin:0;padding:0;overflow:auto;overscroll-behavior:contain;border:0;border-left:1px solid #9c825440;background:#fbf8f2;color:var(--gold);font-family:var(--serif);font-weight:400}
.menu-dialog::backdrop{background:#2f281b66;backdrop-filter:blur(5px)}
.menu-close{position:fixed;right:20px;top:calc(20px + env(safe-area-inset-top));display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:#fbf8f2;color:inherit;cursor:pointer}
.menu-close span{position:relative;width:24px;height:24px}
.menu-close span::before,.menu-close span::after{content:"";position:absolute;left:0;top:11px;width:24px;height:1px;background:currentColor;transform:rotate(45deg)}
.menu-close span::after{transform:rotate(-45deg)}
.menu-inner{width:calc(100% - 64px);max-width:360px;margin:auto;padding:calc(72px + env(safe-area-inset-top)) 0 48px}
.menu-logo{width:102px;margin:auto}
.menu-brand{margin-top:10px;text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:9px;letter-spacing:.24em}
.menu-title{margin:48px 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:10px;font-weight:400;letter-spacing:.28em;color:#9c8a6b}
.menu-links a{position:relative;display:grid;grid-template-columns:24px 1fr;align-items:center;gap:15px;padding:21px 24px 21px 0;border-top:1px solid #9c825433;text-decoration:none}
.menu-links a:last-child{border-bottom:1px solid #9c825433}
.menu-links a::after{content:"";position:absolute;right:3px;top:50%;width:6px;height:6px;border-right:1px solid #a18a60;border-top:1px solid #a18a60;transform:rotate(45deg)}
.menu-number{font-family:Georgia,"Times New Roman",serif;font-size:10px;color:#a28d69}
.menu-ja{display:block;font-size:16px;line-height:1.8;letter-spacing:.1em}
.menu-en{display:block;margin-top:5px;font-family:Georgia,"Times New Roman",serif;font-size:10px;line-height:1.6;letter-spacing:.1em;color:#a18a60}
main{max-width:var(--content-max-width);margin:auto}
section[id]{scroll-margin-top:calc(var(--header-height) + 24px)}
.about-section{text-align:center;position:relative;padding-top:clamp(70px,calc(var(--pc-unit) * 5.36),103px)}
.cherie-header::after{content:"";position:absolute;top:100%;left:0;right:0;height:min(calc(var(--pc-unit) * 7.14),137px);background:url('../img/lace.png') center top/auto 100% repeat-x;pointer-events:none}
.cherie-emblem{width:19.32%;max-width:371px;margin:auto}
.about-heading{margin-top:min(calc(var(--pc-unit) * 6.25),120px)}
.about-heading h2,.section-heading h2{font-size:clamp(25px,calc(var(--pc-unit) * 2.76),53px);font-weight:500;line-height:1.75}
.about-heading>p,.section-heading>p{font-family:var(--serif);font-size:clamp(15px,calc(var(--pc-unit) * 1.615),31px);line-height:1.8}
.section-copy{font-size:clamp(16px,calc(var(--pc-unit) * 1.563),30px);line-height:2.5;font-weight:600;text-align:center}
.about-section>.section-copy{margin:clamp(30px,calc(var(--pc-unit) * 4.17),80px) auto 0;max-width:95%}
.mobile-copy{display:none}
/* An invitation card for the House of MAYLA exhibition. */
.event-feature{width:min(calc(100% - 48px),740px);margin:clamp(42px,5vw,76px) auto 0}
.event-invitation{--event-wine:#762f40;position:relative;display:block;border:1px solid #b6a073;background:radial-gradient(ellipse at 52% 47%,#fffaf2 18%,#f8efdf 66%,#ecdbc2);color:#634d36;text-align:center;text-decoration:none;box-shadow:0 7px 20px #70533018}
.event-invitation::before{content:"";position:absolute;z-index:2;inset:5px;border:1px solid #c8b99a;pointer-events:none}
.event-illustration{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.event-illustration img{position:absolute;transform:translate(-50%,-50%)}
.event-illustration img:nth-child(1){top:15%;left:11%;width:min(37%,236px)}
.event-illustration img:nth-child(2){top:43%;left:91%;width:min(37%,234px)}
.event-illustration img:nth-child(3){top:86%;left:20%;width:min(33%,212px)}
.event-invitation-copy{position:relative;z-index:1;padding:54px 20px 42px}
.event-invitation-label,.event-invitation-details{font-family:Georgia,"Times New Roman",serif}
.event-invitation-label{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--event-wine);font-size:10px;line-height:1.4;letter-spacing:.22em;text-transform:uppercase}
.event-invitation-label::before,.event-invitation-label::after{content:"";width:20px;border-top:1px solid #a98b5c}
.event-invitation h2{margin:8px 0 0;color:var(--event-wine);font-size:clamp(25px,3.5vw,37px);font-weight:600;line-height:1.4;letter-spacing:.08em}
.event-invitation-tagline{margin:5px 0 0;font-size:14px;line-height:1.65}
.event-invitation-tagline span{white-space:nowrap}
.event-invitation-details{display:flex;flex-wrap:wrap;justify-content:center;column-gap:12px;row-gap:4px;margin:14px 0 0;font-size:13px;line-height:1.45;letter-spacing:.055em}
.event-invitation-details time{white-space:nowrap;color:var(--event-wine);font-weight:700}
.event-invitation-details span{white-space:nowrap}
.event-invitation-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;margin:17px 0 0;padding:8px 16px;background:var(--event-wine);color:#fff9ed;font-size:13px;font-weight:600;letter-spacing:.05em;transition:background-color .2s}
.event-invitation-cta svg{flex:none}
.event-invitation:hover .event-invitation-cta,.event-invitation:focus-visible .event-invitation-cta{background:#572131}
.event-feature+.house-section{padding-top:clamp(48px,5.2vw,74px)}
@media(max-width:560px){
  .event-feature{width:calc(100% - 36px)}
  .event-illustration img:nth-child(1){top:12%;left:9%;width:clamp(120px,43%,160px)}
  .event-illustration img:nth-child(2){top:45%;left:94%;width:clamp(128px,45%,174px)}
  .event-illustration img:nth-child(3){top:88%;left:12%;width:clamp(116px,43%,148px)}
  .event-invitation-copy{padding:53px 14px 43px}
  .event-invitation-label{gap:6px;font-size:9px;letter-spacing:.16em}
  .event-invitation-label::before,.event-invitation-label::after{width:14px}
  .event-invitation h2{margin-top:6px;font-size:clamp(20px,6vw,28px);letter-spacing:.045em}
  .event-invitation-tagline{font-size:11px}
  .event-invitation-details{column-gap:8px;margin-top:10px;font-size:11px;letter-spacing:.03em}
  .event-invitation-cta{gap:8px;margin-top:12px;padding-inline:11px;font-size:11px}
  .event-invitation-cta svg{width:16px}
}
.section-heading{position:relative;width:41.67%;max-width:800px;text-align:center;margin:0 auto;padding:0 9%}
.section-heading::before,.section-heading::after{content:"";position:absolute;top:50%;width:4.5%;height:76%;transform:translateY(-50%) scaleX(-1);background:center/contain no-repeat}
.section-heading::before{left:0;background-image:url('../img/heading-left.png')}
.section-heading::after{right:0;background-image:url('../img/heading-right.png')}
.section-heading h2,.section-heading>p{white-space:nowrap}
.cast-section{padding-top:min(calc(var(--pc-unit) * 12.5),240px)}
.generation{display:flex;align-items:center;justify-content:center;gap:25px;margin:min(calc(var(--pc-unit) * 2.08),40px) 0 min(calc(var(--pc-unit) * 3.75),72px);font-size:clamp(18px,calc(var(--pc-unit) * 2.03),39px);line-height:1.5}
.generation::before,.generation::after{content:"";width:46px;height:1px;background:var(--gold);opacity:.55}
.cast-list{--gap:min(calc(var(--pc-unit) * 4.375),84px);display:flex;flex-wrap:wrap;justify-content:center;column-gap:var(--gap);row-gap:min(calc(var(--pc-unit) * 5),96px);width:72%;max-width:1382px;margin:auto}
.cast-card{width:calc((100% - var(--gap) * 2)/3)}
.cast-button{display:flex;flex-direction:column;align-items:center;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:center;transition:opacity .2s,transform .2s}
.cast-button:hover{opacity:.78;transform:translateY(-3px)}
.cast-portrait{width:100%}
.cast-role{margin-top:min(calc(var(--pc-unit) * 1),19px);font-size:clamp(17px,calc(var(--pc-unit) * 1.823),35px);line-height:1.75}
.cast-divider{display:block;width:71%;height:min(calc(var(--pc-unit) * .47),9px);background:url('../img/name-ornament.png') center/100% 100% no-repeat}
.cast-name{font-size:clamp(19px,calc(var(--pc-unit) * 2.24),43px);line-height:1.8}
.cast-socials{display:flex;align-items:center;justify-content:center;gap:0;margin:10px auto 0}
.cast-socials a{display:flex;align-items:center;justify-content:center;width:36px;min-height:44px;text-decoration:none;transition:opacity .2s}
.cast-socials a:hover{opacity:.65}
.cast-socials img{width:22px;height:22px;object-fit:contain}
.uniform-section{padding-top:min(calc(var(--pc-unit) * 13.54),260px)}
.uniform-layout{display:flex;align-items:center;justify-content:space-between;gap:7%;width:72%;max-width:1382px;margin:min(calc(var(--pc-unit) * 6.77),130px) auto 0}
.uniform-image{width:31.6%;max-width:437px;flex-shrink:0}
.uniform-copy{flex:1}
.uniform-name{font-size:clamp(16px,calc(var(--pc-unit) * 1.563),30px);line-height:1.75;font-weight:600;text-align:center;margin-bottom:min(calc(var(--pc-unit) * 2.6),50px)}
.dame-section{padding-top:min(calc(var(--pc-unit) * 17.7),340px)}
.dame-cast{display:flex;justify-content:center;margin:min(calc(var(--pc-unit) * 6.25),120px) auto 0}
.dame-cast .cast-card{width:21.1%;max-width:405px}
.dame-layout{display:flex;align-items:center;justify-content:space-between;gap:4%;width:85%;max-width:1632px;margin:min(calc(var(--pc-unit) * 5.2),100px) auto 0}
.dame-layout .section-copy{flex:1}
.dame-layout .uniform-image{width:26.8%}
.house-section{padding:min(calc(var(--pc-unit) * 13.54),260px) 0 min(calc(var(--pc-unit) * 4.17),80px)}
.house-link{position:relative;display:block;width:52%;max-width:998px;margin:min(calc(var(--pc-unit) * 3.75),72px) auto 0;text-decoration:none;transition:opacity .2s}
.house-link:hover{opacity:.82}
/* Keep the frame and button centered. The original door is 28px right of
   the 1494px artwork center; crop the interior independently of the frame. */
.house-art{position:relative;display:block;aspect-ratio:1494/879;overflow:hidden;clip-path:polygon(5.62249% 0,94.37751% 0,100% 9.55631%,100% 90.44369%,94.37751% 100%,5.62249% 100%,0 90.44369%,0 9.55631%)}
.house-image{position:absolute;left:-6.024096%;top:-4%;width:108%;height:108%;max-width:none;object-fit:fill;transform:none}
.house-frame{position:absolute;inset:0;display:block;width:100%;height:100%;fill:none;stroke:#9b8961;stroke-width:3;pointer-events:none}
.house-frame path+path{stroke:#b3a182;stroke-width:2}
.house-button{position:absolute;bottom:4.8%;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:42.5%;aspect-ratio:636/167;background:url('../img/store-button.png') center/contain no-repeat;color:#fff;font-size:clamp(16px,calc(var(--pc-unit) * 1.927),37px);white-space:nowrap}
.cherie-footer{height:clamp(24px,calc(var(--pc-unit) * 2.92),56px);background:var(--gold)}
body.profile-open{position:fixed;top:var(--profile-scroll-top);width:100%;overflow:hidden}
.profile-dialog{position:fixed;inset:0;width:min(900px,90vw);max-height:88dvh;margin:auto;padding:0;overflow:auto;overscroll-behavior:contain;border:1px solid #a58b58;background:#fffdf8;color:var(--gold);box-shadow:0 20px 90px #21180b33;font-family:var(--serif)}
.profile-dialog::backdrop{background:rgba(40,32,19,.6);backdrop-filter:blur(3px)}
.profile-close{position:sticky;display:flex;justify-content:center;align-items:center;top:8px;margin:8px 8px -52px auto;z-index:2;width:44px;height:44px;border:0;background:#fffdf8;color:var(--gold);font-family:serif;font-size:36px;line-height:1;cursor:pointer}
.profile-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:42px;padding:64px 48px}
.profile-portrait{width:100%}
.profile-label{font-size:14px;letter-spacing:.2em;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid #80683c55}
.profile-role{font-size:19px;line-height:1.8}
.profile-name{font-size:34px;font-weight:500;line-height:1.8;overflow-wrap:anywhere}
.profile-generation{font-size:15px;line-height:2}
.profile-description{white-space:pre-line;font-size:15px;line-height:2.2;margin-top:24px;overflow-wrap:anywhere}
.profile-fields{font-size:14px;line-height:1.9;margin-top:20px}
.profile-fields>div{display:grid;grid-template-columns:1fr 2fr;gap:12px;border-bottom:1px solid #80683c33;padding:10px 0;overflow-wrap:anywhere}
.profile-fields dt{font-weight:600}.profile-fields dd{white-space:pre-line}
.profile-socials{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:24px;font-size:14px}
.profile-socials a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
/* Mobile type stays restrained instead of growing with every viewport. */
@media(max-width:767px){
  :root{--header-height:calc(85px + env(safe-area-inset-top));--wall-floor-gap:28px}
  body::before{opacity:.075}
  .cherie-masthead{height:calc(82px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
  .cherie-brand a{gap:7px}.cherie-brand img{width:88px}
  .brand-caption{font-size:7px;letter-spacing:.24em}
  .has-menu .menu-toggle{position:absolute;right:16px;top:calc(18px + env(safe-area-inset-top));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--gold);cursor:pointer}
  .menu-toggle-lines{position:relative;width:23px;height:9px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
  .menu-toggle-label{font-family:Georgia,"Times New Roman",serif;font-size:8px;line-height:1;letter-spacing:.16em}
  .cherie-nav{justify-content:center;flex-wrap:wrap;gap:0 18px;width:calc(100% - 40px);min-height:70px;padding:8px 0;font-size:11px;letter-spacing:.04em}
  .cherie-nav a{padding:6px 0}.has-menu .cherie-nav{display:none}
  section[id]{scroll-margin-top:calc(var(--header-height) + 24px)}
  .about-section{padding-top:52px}
  .cherie-header::after{height:50px;opacity:.65}
  .cherie-emblem{width:clamp(112px,29vw,154px);max-width:none}
  .about-heading{margin-top:28px}
  .about-heading h2,.section-heading h2{font-size:clamp(20px,5.2vw,24px);font-weight:400;line-height:1.85;letter-spacing:.09em}
  .about-heading>p,.section-heading>p{margin-top:6px;font-family:Georgia,"Times New Roman",serif;font-size:10px;font-weight:400;line-height:1.8;letter-spacing:.14em;color:#9a835a}
  .section-copy{font-size:clamp(12.5px,3.46vw,14.5px);font-weight:400;line-height:2.35;letter-spacing:.035em;color:#746044}
  .about-section>.section-copy{width:calc(100% - 36px);max-width:420px;margin-top:30px}
  .desktop-copy{display:none}.mobile-copy{display:block}
  .section-heading{width:calc(100% - 56px);max-width:400px;padding:0 26px;margin:auto}
  .section-heading::before,.section-heading::after{width:12px;height:32px;opacity:.78}
  .cast-section{padding-top:96px}
  .generation{margin:24px 0 34px;gap:16px;font-size:12px;font-weight:400;letter-spacing:.15em;line-height:2}
  .generation::before,.generation::after{width:26px;opacity:.4}
  .cast-list{--gap:22px;width:calc(100% - 48px);max-width:420px;column-gap:var(--gap);row-gap:40px}
  .cast-card{width:calc((100% - var(--gap))/2)}
  .cast-role{font-family:Georgia,"Times New Roman",serif;font-size:12px;font-weight:400;letter-spacing:.08em;line-height:1.8;margin-top:14px}
  .cast-divider{height:4px;width:65%;margin:5px auto}
  .cast-name{font-size:15px;font-weight:400;letter-spacing:.12em;line-height:1.9}
  .cast-socials{margin-top:8px}
  .cast-socials a{width:40px}
  .cast-socials img{width:20px;height:20px}
  .uniform-section{padding-top:104px}
  .uniform-layout{display:flex;flex-direction:column;gap:0;width:100%;margin-top:40px}
  .uniform-image{width:51%;max-width:260px}
  .uniform-copy{width:calc(100% - 32px);max-width:440px;margin-top:30px}
  .uniform-name{font-size:13px;font-weight:400;letter-spacing:.07em;line-height:2;margin-bottom:24px}
  .uniform-copy>.section-copy{font-size:clamp(12px,3.4vw,14px)}
  .dame-section{padding-top:104px}
  .dame-cast{margin-top:40px}
  .dame-cast .cast-card{width:40.25%;max-width:200px}
  .dame-layout{flex-direction:column;width:calc(100% - 36px);max-width:440px;gap:0;margin-top:38px}
  .dame-layout .section-copy{font-size:clamp(12.5px,3.46vw,14.5px)}
  .dame-layout .uniform-image{order:-1;width:57%;max-width:260px;margin:0 0 34px}
  .house-section{padding:104px 0 48px}
  .house-link{width:calc(100% - 48px);max-width:420px;margin-top:40px}
  .house-image{transform:none}
  .house-button{font-size:13px;font-weight:400;letter-spacing:.1em;width:50.5%;bottom:5.8%}
  .cherie-footer{height:8px;min-height:8px}
  .profile-dialog{width:90vw;max-height:90dvh;background:#fdfaf5}
  .profile-inner{grid-template-columns:1fr;gap:28px;padding:50px 24px 34px}
  .profile-portrait{width:62%;max-width:260px;margin:auto}
  .profile-content{text-align:center;width:100%}
  .profile-label{font-family:Georgia,"Times New Roman",serif;font-size:11px;font-weight:400;letter-spacing:.22em;margin-bottom:20px;padding-bottom:16px}
  .profile-name{font-size:25px;font-weight:400;letter-spacing:.12em}.profile-role{font-size:13px;letter-spacing:.08em}.profile-generation{font-size:12px}
  .profile-fields,.profile-description{text-align:left;font-size:13px;font-weight:400;line-height:2.2}.profile-socials{justify-content:center}
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.cast-button:hover{transform:none}}

/* 20261022 text layout: build-page emits the exact lines for each mode.
   These final rules prohibit incidental wrapping and hide the inactive copy. */
.page-text-line{display:block;white-space:nowrap;overflow-wrap:normal;word-break:normal;text-align:center}
[data-page-copy].desktop-copy{display:block}
[data-page-copy].mobile-copy{display:none}
@media(max-width:1023px){
 [data-page-copy].desktop-copy{display:none}
 [data-page-copy].mobile-copy{display:block}
 .section-copy[data-page-copy]{font-size:clamp(12.5px,3.46vw,14.5px);letter-spacing:.035em}
 .uniform-copy>.section-copy[data-page-copy]{font-size:clamp(12.5px,3.4vw,14px)}
}
@media(min-width:768px) and (max-width:1023px){
 /* Tablet copy uses the same fixed mobile lines; stacked sections give them
    the same generous measure as a phone without altering the PC layout. */
 .uniform-layout,.dame-layout{flex-direction:column;gap:0}
 .uniform-copy{flex:none;width:calc(100% - 36px);max-width:440px;margin-top:30px}
 .dame-layout .section-copy{flex:none}
 .dame-layout .uniform-image{order:-1;margin-bottom:34px}
 .uniform-name{font-size:13px}
}
