.hyakunin-hq-signup { max-width:760px; margin:0 auto; color:var(--ink,#171411); }
.hyakunin-hq-signup__form { display:grid; gap:18px; }
.hyakunin-hq-signup__form label,.hyakunin-hq-signup__form fieldset { display:grid; gap:7px; margin:0; border:0; padding:0; font-family:var(--serif-jp,serif); }
.hyakunin-hq-signup__form input:not([type="checkbox"]),.hyakunin-hq-signup__form textarea { width:100%; border:1px solid var(--line,#d9d0c7); border-radius:0; background:transparent; padding:12px 14px; font:inherit; }
.hyakunin-hq-signup__form textarea { resize:vertical; }
.hyakunin-hq-signup__form legend { margin-bottom:8px; }
.hyakunin-hq-signup__check,.hyakunin-hq-signup__consent { display:flex!important; grid-template-columns:none!important; flex-direction:row; align-items:flex-start; gap:9px!important; line-height:1.7; }
.hyakunin-hq-signup__form button { justify-self:start; border:1px solid currentColor; background:transparent; padding:13px 22px; color:inherit; font-family:var(--serif-lat,Georgia,serif); letter-spacing:.08em; cursor:pointer; }
.hyakunin-hq-signup__form button:hover { color:var(--vermilion,#9a3f2d); }
.hyakin-hq-signup__message,.hyakunin-hq-signup__message { border:1px solid var(--line,#d9d0c7); padding:18px; margin-bottom:22px; }
.hyakunin-hq-signup__message p { margin:0 0 5px; }
.hyakunin-hq-signup__message small { color:var(--ink-muted,#746a61); }
.hyakunin-hq-signup__message--ok { border-color:color-mix(in srgb,var(--vermilion,#9a3f2d) 40%,var(--line,#d9d0c7)); }
.hyakunin-hq-signup__message--error { color:#9a3f2d; }
.hyakunin-hq-signup__trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media (max-width: 520px) { .hyakunin-hq-signup__form button { width:100%; } }

/* Public membership portal */
.membership-page { padding-bottom: clamp(5rem,9vw,8rem); color: var(--ink,#171411); }
.membership-hero { max-width: 52rem; margin-inline: auto; padding: clamp(8rem,14vh,11rem) var(--gutter,24px) clamp(2.8rem,6vw,4.2rem); text-align: center; }
.membership-hero__rule { display:block; width:28px; height:1px; margin:0 auto 1.35rem; background:var(--vermilion,#9a3f2d); opacity:.5; }
.membership-hero__eyebrow { margin:0; font-family:var(--serif-lat,Georgia,serif); letter-spacing:.34em; text-transform:uppercase; font-size:.66rem; color:var(--vermilion,#9a3f2d); }
.membership-hero__title { margin:.95rem 0 0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.75rem,4vw,2.7rem); letter-spacing:.14em; line-height:1.55; }
.membership-hero__lead { margin:1.2rem auto 0; max-width:38rem; color:var(--ink-soft,#4b433c); line-height:2; font-family:var(--serif-jp,serif); letter-spacing:.04em; }
.membership-wrap { width:min(62rem, calc(100% - var(--gutter,24px) * 2)); margin-inline:auto; }
.membership-wrap--guest { width:min(70rem, calc(100% - var(--gutter,24px) * 2)); }
.membership-intro { max-width:42rem; margin:0 auto clamp(2rem,5vw,3.4rem); text-align:center; color:var(--ink-soft,#4b433c); line-height:2; }
.membership-sso { max-width:42rem; margin:0 auto clamp(2rem,5vw,3.2rem); padding:clamp(1.1rem,3vw,1.6rem) 0; border-top:1px solid var(--line,#d9d0c7); border-bottom:1px solid var(--line,#d9d0c7); text-align:center; }
.membership-sso__text { margin:0 auto 1rem; max-width:32rem; color:var(--ink-soft,#4b433c); line-height:1.9; letter-spacing:.03em; }
.membership-sso__button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:.75rem; border:1px solid currentColor; padding:.82rem 1.15rem; color:var(--ink,#171411); text-decoration:none; font-family:var(--serif-jp,serif); letter-spacing:.04em; }
.membership-sso__button span { width:1.65rem; height:1.65rem; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line,#d9d0c7); border-radius:50%; font-family:Arial,sans-serif; font-weight:700; letter-spacing:0; line-height:1; }
.membership-sso__button:hover { color:var(--vermilion,#9a3f2d); opacity:1; }
.membership-sso__note { margin:.85rem auto 0; max-width:34rem; color:var(--ink-faint,#746a61); font-size:.82rem; line-height:1.8; letter-spacing:.025em; }
.membership-columns { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(18rem,.72fr); gap:clamp(1.2rem,4vw,3rem); align-items:start; }
.membership-panel { border-top:1px solid var(--line,#d9d0c7); border-bottom:1px solid var(--line,#d9d0c7); padding:clamp(1.5rem,3.5vw,2.4rem) 0; }
.membership-panel--soft { background:color-mix(in srgb, var(--paper-warm,#f2ece3) 46%, transparent); padding-inline:clamp(1rem,3vw,1.8rem); }
.membership-panel h2 { margin:0 0 1.3rem; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.1rem,2vw,1.35rem); letter-spacing:.08em; }
.membership-link-form { display:grid; gap:1rem; }
.membership-link-form label { display:grid; gap:.45rem; font-family:var(--serif-jp,serif); }
.membership-link-form input { width:100%; border:1px solid var(--line,#d9d0c7); background:transparent; padding:12px 14px; font:inherit; }
.membership-link-form button { justify-self:start; border:1px solid currentColor; background:transparent; padding:12px 18px; color:inherit; font-family:var(--serif-lat,Georgia,serif); letter-spacing:.08em; cursor:pointer; }
.membership-notice { border:1px solid var(--line,#d9d0c7); padding:12px 14px; margin:0 0 1rem; line-height:1.7; }
.membership-notice--ok { border-color:color-mix(in srgb,var(--vermilion,#9a3f2d) 36%,var(--line,#d9d0c7)); }
.membership-notice--error { color:var(--vermilion,#9a3f2d); }
.membership-small { margin-top:1rem; color:var(--ink-faint,#746a61); font-size:.88rem; line-height:1.8; }
.membership-room-head { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1.2rem; border-bottom:1px solid var(--line,#d9d0c7); padding-bottom:1.2rem; }
.membership-room-head__label { margin:0 0 .55rem; color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.22em; text-transform:uppercase; font-size:.68rem; }
.membership-room-head h2 { margin:0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.25rem,2.6vw,1.8rem); letter-spacing:.08em; }
.membership-room-head a, .membership-entry__back a { color:var(--ink-faint,#746a61); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.12em; text-transform:uppercase; font-size:.78rem; border-bottom:1px solid currentColor; }
.membership-wrap--room { width:min(72rem, calc(100% - var(--gutter,24px) * 2)); }
.membership-room-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:clamp(1rem,4vw,3rem); margin:0 0 clamp(1.6rem,4vw,2.6rem); padding-bottom:clamp(1.2rem,3vw,1.8rem); border-bottom:1px solid var(--line,#d9d0c7); }
.membership-room-hero h2 { margin:0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.35rem,3vw,2.2rem); line-height:1.65; letter-spacing:.08em; }
.membership-room-hero p:not(.membership-room-head__label) { margin:.75rem 0 0; max-width:42rem; color:var(--ink-soft,#4b433c); line-height:2; letter-spacing:.035em; }
.membership-room-logout { min-height:44px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; border:1px solid var(--line,#d9d0c7); padding:.7rem 1rem; color:var(--ink-faint,#746a61); text-decoration:none; font-family:var(--serif-lat,Georgia,serif); letter-spacing:.12em; text-transform:uppercase; font-size:.72rem; }
.membership-room-dashboard { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(1rem,3vw,2rem); align-items:stretch; margin:0 0 clamp(1.5rem,4vw,2.4rem); }
.membership-room-pass,.membership-room-note { border-top:1px solid var(--line,#d9d0c7); border-bottom:1px solid var(--line,#d9d0c7); padding:clamp(1.2rem,3vw,1.8rem) 0; }
.membership-room-pass { background:linear-gradient(90deg, color-mix(in srgb,var(--paper-warm,#f2ece3) 56%,transparent), transparent); padding-inline:clamp(1rem,3vw,1.6rem); }
.membership-room-pass__kicker,.membership-room-note__kicker { margin:0 0 .75rem; color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.2em; text-transform:uppercase; font-size:.68rem; }
.membership-room-pass h3 { margin:0 0 1.1rem; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.25rem,2.3vw,1.65rem); line-height:1.6; letter-spacing:.07em; }
.membership-room-pass dl { display:grid; gap:.65rem; margin:0; }
.membership-room-pass dl div { display:grid; grid-template-columns:5rem minmax(0,1fr); gap:.8rem; align-items:baseline; }
.membership-room-pass dt { color:var(--ink-faint,#746a61); font-size:.8rem; letter-spacing:.08em; }
.membership-room-pass dd { margin:0; min-width:0; overflow-wrap:anywhere; line-height:1.65; }
.membership-room-note { display:grid; align-content:center; padding-inline:clamp(1rem,3vw,1.6rem); }
.membership-room-note p:not(.membership-room-note__kicker) { margin:0; font-family:var(--serif-jp,serif); font-size:clamp(1.05rem,2.2vw,1.35rem); line-height:2; letter-spacing:.06em; }
.membership-room-note small { display:block; margin-top:1rem; color:var(--ink-faint,#746a61); letter-spacing:.04em; }
.membership-room-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin:0 0 clamp(2rem,5vw,3rem); }
.membership-room-actions a { min-height:48px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line,#d9d0c7); color:var(--ink,#171411); text-decoration:none; font-family:var(--serif-jp,serif); letter-spacing:.06em; }
.membership-room-actions a:hover { color:var(--vermilion,#9a3f2d); opacity:1; }
.membership-room-section { margin-top:clamp(1.4rem,4vw,2.4rem); }
.membership-room-section__head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.membership-room-section__head h3 { margin:0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.15rem,2.2vw,1.45rem); line-height:1.6; letter-spacing:.08em; }
.membership-empty { padding:clamp(2rem,6vw,4rem) 0; text-align:center; color:var(--ink-faint,#746a61); line-height:1.9; }
.membership-empty p { margin:0; font-family:var(--serif-jp,serif); font-size:1.08rem; color:var(--ink,#171411); }
.membership-post-list { list-style:none; margin:0; padding:0; display:grid; }
.membership-post-list__item { border-bottom:1px solid var(--line,#d9d0c7); }
.membership-post-list__item:first-child { border-top:1px solid var(--line,#d9d0c7); }
.membership-post-list__item a { display:grid; gap:.55rem; padding:clamp(1.25rem,3vw,2rem) 0; color:inherit; text-decoration:none; }
.membership-post-list__date, .membership-entry__date { color:var(--ink-faint,#746a61); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.14em; font-size:.78rem; }
.membership-post-list__item strong { font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.05rem,2vw,1.32rem); line-height:1.75; letter-spacing:.05em; }
.membership-post-list__excerpt { color:var(--ink-soft,#4b433c); line-height:1.9; }
.membership-post-list__read { justify-self:start; color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.16em; text-transform:uppercase; font-size:.7rem; border-bottom:1px solid currentColor; }
.membership-entry { max-width:46rem; margin-inline:auto; }
.membership-entry__title { margin:.8rem 0 2rem; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.55rem,3.8vw,2.35rem); line-height:1.65; letter-spacing:.06em; }
.membership-entry__body { line-height:2.05; color:var(--ink-soft,#4b433c); }
.membership-entry__body p { margin:0 0 1.35rem; }
.membership-entry__event { margin-top:2.5rem; }
.membership-entry__event a { display:inline-block; border:1px solid currentColor; padding:.9rem 1.25rem; color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.08em; }
.membership-entry__back { margin-top:3rem; }
@media (max-width: 760px) { .membership-columns,.membership-room-dashboard,.membership-room-actions { grid-template-columns:1fr; } .membership-room-head,.membership-room-hero,.membership-room-section__head { align-items:flex-start; flex-direction:column; } .membership-room-logout,.membership-link-form button { width:100%; } .membership-room-pass dl div { grid-template-columns:1fr; gap:.15rem; } }
/* Membership thank-you page */
.membership-hero--thanks { padding-bottom: clamp(1.8rem, 4vw, 2.6rem); }
.membership-thanks { width: min(42rem, calc(100% - var(--gutter,24px) * 2)); margin: 0 auto; padding: clamp(2rem, 5vw, 3.4rem) clamp(1.2rem, 4vw, 2.8rem); border-top: 1px solid color-mix(in srgb, var(--vermilion,#9a3f2d) 48%, var(--line,#d9d0c7)); border-bottom: 1px solid var(--line,#d9d0c7); background: color-mix(in srgb, var(--paper-warm,#f2ece3) 42%, transparent); text-align: center; }
.membership-thanks__kicker { margin: 0 0 .85rem; color: var(--vermilion,#9a3f2d); font-family: var(--serif-lat,Georgia,serif); letter-spacing: .24em; text-transform: uppercase; font-size: .68rem; }
.membership-thanks h2 { margin: 0; font-family: var(--serif-jp,serif); font-weight: 500; font-size: clamp(1.25rem, 2.4vw, 1.7rem); line-height: 1.75; letter-spacing: .08em; }
.membership-thanks p { margin: 1.15rem auto 0; max-width: 34rem; color: var(--ink-soft,#4b433c); line-height: 2; letter-spacing: .035em; }
.membership-thanks__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem 1.2rem; margin-top: clamp(1.6rem, 4vw, 2.4rem); }
.membership-thanks__actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid currentColor; padding: .78rem 1.15rem; color: var(--ink,#171411); font-family: var(--serif-jp,serif); letter-spacing: .06em; text-decoration: none; }
.membership-thanks__actions a:hover { color: var(--vermilion,#9a3f2d); opacity: 1; }
@media (max-width: 520px) { .membership-sso { text-align:left; } .membership-sso__button { width:100%; } .membership-thanks { text-align: left; } .membership-thanks__actions { display: grid; } .membership-thanks__actions a { width: 100%; } }



/* Google-only membership entry */
.membership-wrap--google-only { width:min(48rem, calc(100% - var(--gutter,24px) * 2)); }
.membership-wrap--google-only .membership-intro { max-width:36rem; margin-bottom:clamp(1.25rem,3vw,2rem); font-size:.96rem; }
.membership-wrap--google-only .membership-sso { max-width:34rem; margin:0 auto; padding:clamp(1.4rem,4vw,2.2rem) clamp(1rem,4vw,2rem); border:1px solid var(--line,#d9d0c7); background:color-mix(in srgb, var(--paper-warm,#f2ece3) 32%, transparent); }
.membership-wrap--google-only .membership-sso__text { max-width:24rem; margin-bottom:1.1rem; font-size:.96rem; }
.membership-wrap--google-only .membership-sso__button { min-height:52px; padding:.92rem 1.55rem; background:color-mix(in srgb, #fff 54%, transparent); }
.membership-wrap--google-only .membership-sso__note { max-width:26rem; font-size:.78rem; }
.membership-sso--unavailable { color:var(--ink-faint,#746a61); }
@media (max-width: 520px) { .membership-wrap--google-only .membership-sso { text-align:center; } }
/* Member survey after Google sign-in */
.membership-wrap--survey { width:min(44rem, calc(100% - var(--gutter,24px) * 2)); }
.membership-survey { margin:0 auto; padding:clamp(1.8rem,5vw,3rem) clamp(1rem,4vw,2rem); border-top:1px solid color-mix(in srgb, var(--vermilion,#9a3f2d) 42%, var(--line,#d9d0c7)); border-bottom:1px solid var(--line,#d9d0c7); background:color-mix(in srgb, var(--paper-warm,#f2ece3) 34%, transparent); }
.membership-survey__kicker { margin:0 0 .8rem; color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.22em; text-transform:uppercase; font-size:.68rem; }
.membership-survey h2 { margin:0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.3rem,3vw,1.9rem); line-height:1.65; letter-spacing:.08em; }
.membership-survey p:not(.membership-survey__kicker) { margin:1rem 0 0; color:var(--ink-soft,#4b433c); line-height:2; letter-spacing:.035em; }
.membership-survey__form { display:grid; gap:1.2rem; margin-top:clamp(1.4rem,4vw,2rem); }
.membership-survey__form label,.membership-survey__form fieldset { display:grid; gap:.5rem; margin:0; border:0; padding:0; font-family:var(--serif-jp,serif); }
.membership-survey__form input:not([type="checkbox"]),.membership-survey__form textarea { width:100%; border:1px solid var(--line,#d9d0c7); background:color-mix(in srgb, #fff 48%, transparent); padding:12px 14px; font:inherit; }
.membership-survey__form textarea { resize:vertical; }
.membership-survey__checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem .9rem; }
.membership-survey__checks label { display:flex; align-items:flex-start; gap:.55rem; line-height:1.7; }
.membership-survey__actions { display:flex; align-items:center; flex-wrap:wrap; gap:.85rem 1.2rem; margin-top:.2rem; }
.membership-survey__actions button,.membership-survey__actions a { min-height:46px; display:inline-flex; align-items:center; justify-content:center; border:1px solid currentColor; background:transparent; padding:.78rem 1.1rem; color:var(--ink,#171411); font-family:var(--serif-jp,serif); letter-spacing:.06em; text-decoration:none; cursor:pointer; }
.membership-survey__actions a { color:var(--ink-faint,#746a61); }
.membership-survey__actions button:hover,.membership-survey__actions a:hover { color:var(--vermilion,#9a3f2d); opacity:1; }
@media (max-width: 620px) { .membership-survey__checks { grid-template-columns:1fr; } .membership-survey__actions { display:grid; } .membership-survey__actions button,.membership-survey__actions a { width:100%; } }
/* Split member room pages */
.membership-room-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin:0 0 clamp(1.8rem,4vw,2.6rem); }
.membership-room-nav a { min-height:46px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line,#d9d0c7); color:var(--ink-faint,#746a61); text-decoration:none; font-family:var(--serif-jp,serif); letter-spacing:.06em; }
.membership-room-nav a.is-current { color:var(--ink,#171411); border-color:color-mix(in srgb, var(--vermilion,#9a3f2d) 52%, var(--line,#d9d0c7)); background:color-mix(in srgb, var(--paper-warm,#f2ece3) 38%, transparent); }
.membership-room-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:clamp(1.5rem,4vw,2.4rem); }
.membership-room-summary a { display:grid; gap:.45rem; min-height:150px; padding:clamp(1.1rem,3vw,1.5rem); border-top:1px solid var(--line,#d9d0c7); border-bottom:1px solid var(--line,#d9d0c7); color:inherit; text-decoration:none; background:color-mix(in srgb, var(--paper-warm,#f2ece3) 24%, transparent); }
.membership-room-summary span { color:var(--vermilion,#9a3f2d); font-family:var(--serif-lat,Georgia,serif); letter-spacing:.2em; text-transform:uppercase; font-size:.68rem; }
.membership-room-summary strong { font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.1rem,2.2vw,1.45rem); letter-spacing:.07em; }
.membership-room-summary small { color:var(--ink-soft,#4b433c); line-height:1.9; letter-spacing:.035em; }
.membership-profile { max-width:48rem; margin-inline:auto; padding:clamp(1.5rem,4vw,2.4rem) 0 0; border-top:1px solid var(--line,#d9d0c7); }
.membership-profile__head h3 { margin:0; font-family:var(--serif-jp,serif); font-weight:500; font-size:clamp(1.25rem,2.8vw,1.8rem); line-height:1.6; letter-spacing:.08em; }
.membership-profile__head p:not(.membership-room-head__label) { margin:.75rem 0 0; color:var(--ink-soft,#4b433c); line-height:2; letter-spacing:.035em; }
.membership-profile__saved { margin:1.2rem 0 0; padding:.85rem 1rem; border:1px solid color-mix(in srgb, var(--vermilion,#9a3f2d) 36%, var(--line,#d9d0c7)); color:var(--vermilion,#9a3f2d); background:color-mix(in srgb, var(--paper-warm,#f2ece3) 38%, transparent); }
.membership-profile__form { display:grid; gap:1.2rem; margin-top:clamp(1.4rem,4vw,2rem); }
.membership-profile__form label,.membership-profile__form fieldset { display:grid; gap:.55rem; margin:0; border:0; padding:0; font-family:var(--serif-jp,serif); }
.membership-profile__form input:not([type="checkbox"]),.membership-profile__form textarea { width:100%; border:1px solid var(--line,#d9d0c7); background:color-mix(in srgb, #fff 48%, transparent); padding:12px 14px; font:inherit; }
.membership-profile__form textarea { resize:vertical; }
.membership-room-section--single { max-width:54rem; margin-inline:auto; }
@media (max-width: 760px) { .membership-room-nav,.membership-room-summary { grid-template-columns:1fr; } }