:root{color-scheme:light;--ink:#102b4c;--muted:#607287;--blue:#1456ed;--blue-dark:#1046c1;--line:#dce5f1;--surface:#fff;--wash:#f5f8fe;--soft:#eaf1ff;--shadow:0 20px 70px rgba(19,56,103,.13);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--wash);color:var(--ink);font-size:16px;line-height:1.65}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #75a3ff;outline-offset:3px}[hidden]{display:none!important}
.site-shell{min-height:100vh;padding-bottom:82px}.page-width{width:min(calc(100% - 36px),1060px);margin-inline:auto}.topbar{height:76px;padding:0 max(18px,calc((100vw - 1060px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.brand-mark{width:42px;height:42px;border-radius:13px;background:var(--blue);display:grid;place-items:center;color:white;font-weight:900;font-size:24px;line-height:1}.brand-type{display:grid;line-height:1.2;gap:3px}.brand-type strong{font-size:15px;letter-spacing:.055em}.brand-type small{font-size:12px;color:var(--muted);letter-spacing:.015em}.menu-button{height:42px;display:flex;align-items:center;gap:10px;padding:0 13px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:12px;font-weight:700;font-size:14px}.menu-lines{width:18px;display:grid;gap:4px}.menu-lines i{height:2px;background:currentColor;border-radius:4px}
.view{padding-top:33px;padding-bottom:55px}.page-intro{margin-bottom:27px}.eyebrow{margin:0 0 6px;color:var(--blue);font-weight:850;font-size:12px;letter-spacing:.16em}.page-intro h1{font-size:clamp(26px,5vw,39px);line-height:1.3;letter-spacing:-.04em;margin:0}.intro-copy{margin:9px 0 0;color:var(--muted);font-size:15px}.search-wrap{background:white;border:1px solid var(--line);border-radius:19px;padding:17px 18px;box-shadow:0 5px 22px rgba(18,51,98,.04)}.search-wrap label{display:block;font-size:14px;font-weight:750;margin-bottom:8px}.search-control{display:flex;align-items:center;gap:9px;background:#f4f7fc;border:1px solid #e6ecf5;border-radius:12px;padding:0 13px}.search-control span{font-size:23px;color:var(--muted);line-height:1}.search-control input{width:100%;min-height:46px;border:0;background:transparent;outline:none;font-size:16px;color:var(--ink)}.search-control input::placeholder{color:#8a99aa}.list-meta{display:flex;justify-content:space-between;align-items:center;margin:22px 0 13px;color:var(--muted);font-size:14px}.preview-tag{background:#e6efff;color:#315b9c;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.member-card{background:white;border:1px solid var(--line);border-radius:20px;padding:21px;min-width:0;box-shadow:0 8px 32px rgba(20,56,105,.045);display:flex;flex-direction:column;min-height:298px}.member-head{display:flex;gap:12px;align-items:center}.avatar{width:54px;height:54px;flex:none;border-radius:17px;background:var(--avatar-bg,#e7effe);color:var(--avatar-ink,#1e54ae);display:grid;place-items:center;font-size:19px;font-weight:800;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.member-head h2{margin:0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}.member-role{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.member-description{font-size:15px;color:#3f526a;margin:17px 0 12px;line-height:1.65;flex:1}.strength-pill{display:inline-flex;align-items:center;gap:5px;background:#ecf3ff;color:#2756a5;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;margin-bottom:17px;width:max-content;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strength-pill b{color:var(--blue)}.card-actions{display:flex;gap:8px}.button{appearance:none;border:1px solid transparent;border-radius:12px;padding:11px 14px;min-height:45px;font-weight:760;text-align:center;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:7px;line-height:1.2}.button-primary{background:var(--blue);color:white}.button-primary:hover{background:var(--blue-dark)}.button-secondary{background:#f2f6fe;color:#2355aa;border-color:#e1eaff}.button-secondary:hover{background:#e8f0ff}.card-actions .button{flex:1;font-size:15px;padding-inline:8px}.empty-state{background:white;border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--muted)}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:none;justify-content:space-around;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:8px 10px max(8px,env(safe-area-inset-bottom));z-index:30;backdrop-filter:blur(16px)}.bottom-nav a{flex:1;display:grid;justify-items:center;gap:1px;text-decoration:none;color:#71829a;font-size:14px;font-weight:700;padding:3px;border-radius:12px}.bottom-nav a[aria-current=page]{color:var(--blue)}.nav-icon{font-size:20px;line-height:1.2}
.menu-layer,.sheet-layer{position:fixed;inset:0;z-index:50}.menu-backdrop,.sheet-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(9,29,56,.43)}.menu-panel{position:absolute;right:0;top:0;bottom:0;background:#fff;width:min(85vw,370px);padding:25px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column}.menu-top{display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:800;margin-bottom:26px}.icon-button{border:0;background:#f1f5fb;color:var(--ink);font-size:26px;line-height:1;width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.menu-link{text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 7px;border-bottom:1px solid var(--line);font-weight:700}.menu-link:hover{color:var(--blue)}.menu-link span{font-size:12px;color:var(--muted);white-space:nowrap}.menu-separator{height:24px}
.bottom-sheet{position:absolute;left:50%;transform:translateX(-50%);bottom:0;background:#fff;width:min(100%,660px);max-height:min(90dvh,850px);border-radius:26px 26px 0 0;display:flex;flex-direction:column;box-shadow:var(--shadow)}.sheet-handle{width:37px;height:5px;border-radius:99px;background:#cbd5e2;align-self:center;margin:10px 0 3px}.sheet-header{min-height:62px;padding:7px 20px 11px;display:grid;grid-template-columns:64px 1fr 40px;align-items:center;border-bottom:1px solid var(--line)}.sheet-header h2{font-size:18px;line-height:1.35;text-align:center;margin:0}.text-button{border:0;background:transparent;color:var(--blue);font-size:14px;font-weight:800;padding:8px 0;text-align:left}.sheet-content{padding:24px 22px 28px;overflow:auto;overscroll-behavior:contain}.sheet-actions{border-top:1px solid var(--line);padding:12px 20px calc(14px + env(safe-area-inset-bottom));display:flex;gap:9px;background:#fff}.sheet-actions .button{flex:1}.detail-head{display:flex;align-items:center;gap:15px}.detail-head .avatar{width:66px;height:66px;border-radius:20px}.detail-head h3{font-size:22px;line-height:1.35;margin:0}.detail-head p{color:var(--muted);font-size:14px;margin:3px 0}.detail-section{padding:18px 0;border-bottom:1px solid var(--line)}.detail-section h4{font-size:14px;color:#56708d;margin:0 0 7px}.detail-section p{white-space:pre-wrap;margin:0;font-size:16px;overflow-wrap:anywhere}.detail-empty{color:var(--muted);font-size:14px;margin-top:22px}.detail-link{display:inline-block;color:var(--blue);font-weight:700;overflow-wrap:anywhere}
.toast{position:fixed;z-index:100;left:50%;bottom:calc(95px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#183759;color:white;border-radius:13px;padding:11px 16px;box-shadow:var(--shadow);font-size:14px;max-width:calc(100vw - 28px);text-align:center}
body.overlay-open{overflow:hidden}
@media(max-width:800px){.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.site-shell{padding-bottom:81px}.topbar{height:64px}.brand-mark{width:38px;height:38px;font-size:22px}.brand-type strong{font-size:13px}.brand-type small{font-size:11px}.menu-button{font-size:14px}.view{padding-top:29px;padding-bottom:35px}.page-width{width:min(calc(100% - 30px),500px)}.member-grid{grid-template-columns:1fr;gap:12px}.member-card{min-height:auto;padding:18px}.member-description{margin:14px 0 10px}.bottom-nav{display:flex}.bottom-sheet{max-height:92dvh}.sheet-content{padding-inline:18px}.card-actions .button{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.you-mark{display:inline-block;vertical-align:middle;margin-left:6px;background:#eaf1ff;color:#2457b0;border-radius:999px;font-size:11px;padding:2px 7px;font-weight:750}.closed-note{font-size:14px;color:var(--muted);margin:5px 0;text-align:center;width:100%}
.sheet-header #sheet-back{grid-column:1}.sheet-header h2{grid-column:2}.sheet-header #sheet-close{grid-column:3}
.sheet-person{display:flex;gap:11px;align-items:center;background:#f3f7ff;padding:11px;border-radius:14px;margin-bottom:16px}.sheet-person .avatar{width:40px;height:40px;border-radius:12px;font-size:16px}.sheet-person div{display:grid;line-height:1.4}.sheet-person strong{font-size:15px}.sheet-person span:not(.avatar){font-size:13px;color:var(--muted)}.form-intro{font-size:15px;color:var(--muted);margin:0 0 16px}.stack-form,.profile-form{display:grid;gap:19px}.field{display:grid;gap:7px;min-width:0;font-size:14px;font-weight:750}.field span{display:flex;align-items:center;gap:8px}.field span small{font-size:12px;color:var(--muted);font-weight:600}.field em{font-style:normal;background:#e9f1ff;color:#2458af;font-size:11px;border-radius:5px;padding:1px 5px}.field input,.field textarea{width:100%;border:1px solid #cad7e8;border-radius:12px;background:#fff;color:var(--ink);min-height:46px;padding:11px 12px;font-size:16px;outline:none;resize:vertical;font-weight:450;line-height:1.55}.field textarea{min-height:92px}.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #dce8ff}.field input::placeholder,.field textarea::placeholder{color:#8797aa}.field-help{font-size:12px;color:var(--muted);line-height:1.55;font-weight:500;margin:5px 0 0}.form-error{background:#fff0f0;color:#a52c32;padding:10px 12px;border-radius:10px;font-size:14px;margin:0}.choice-group{border:0;padding:0;margin:0;display:grid;gap:9px}.choice-group legend{font-weight:750;font-size:14px;margin-bottom:8px}.choice{border:1px solid var(--line);border-radius:13px;display:flex;align-items:center;gap:11px;padding:11px 12px;cursor:pointer}.choice:has(input:checked){border-color:#7fa9ff;background:#f1f6ff}.choice input{accent-color:var(--blue);width:18px;height:18px;flex:none}.choice span{display:grid;gap:1px}.choice b{font-size:14px}.choice small{font-size:12px;color:var(--muted)}.date-picker{display:grid;gap:11px;background:#f6f9fe;border:1px solid var(--line);border-radius:13px;padding:13px}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.date-picker .button{justify-self:start}.button:disabled{cursor:not-allowed;opacity:.5}.candidate-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.candidate-list li{display:flex;justify-content:space-between;gap:8px;align-items:center;background:white;border:1px solid var(--line);padding:7px 10px;border-radius:9px;font-size:14px}.candidate-list button{border:0;background:transparent;color:var(--blue);font-size:13px;font-weight:700}.notice-banner{background:#eaf2ff;border:1px solid #cfe0ff;padding:15px 17px;border-radius:15px;display:grid;gap:4px;color:#254572;margin-bottom:18px}.notice-banner b{font-size:14px;color:#1450b8}.notice-banner span{font-size:15px;line-height:1.6}.review-list{margin:0}.review-list div{padding:12px 0;border-bottom:1px solid var(--line)}.review-list dt{font-size:12px;color:var(--muted);font-weight:750}.review-list dd{margin:3px 0 0;font-size:16px;overflow-wrap:anywhere}.preview-explainer{font-size:14px;color:var(--muted);line-height:1.7}
.profile-form{gap:18px;max-width:760px}.form-panel{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;display:grid;gap:17px}.section-title{display:flex;align-items:flex-start;gap:11px;margin-bottom:3px}.section-number{width:34px;height:34px;flex:none;border-radius:10px;background:#eaf1ff;color:var(--blue);display:grid;place-items:center;font-size:13px;font-weight:850}.section-title h2{font-size:19px;line-height:1.4;margin:1px 0 2px}.section-title p{margin:0;font-size:13px;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.photo-row{display:flex;gap:14px;align-items:center;background:#f7f9fd;border-radius:13px;padding:12px}.photo-row .avatar{width:68px;height:68px;border-radius:19px}.photo-label{cursor:pointer;font-size:14px}.subtle-button{border:0;color:var(--blue);background:transparent;font-size:13px;font-weight:700;padding:8px;margin-left:3px}.toggle-row{display:flex;align-items:center;gap:13px;background:#f6f9fe;border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer}.toggle-row input{width:20px;height:20px;accent-color:var(--blue);flex:none}.toggle-row span{display:grid;gap:2px}.toggle-row b{font-size:15px}.toggle-row small{font-size:12px;color:var(--muted)}.save-bar{position:sticky;bottom:calc(9px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 7px 29px rgba(19,56,103,.12);z-index:5}.save-bar p{font-size:13px;color:var(--muted);margin:0}.save-bar .button{white-space:nowrap}
.venue-card{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;max-width:780px}.venue-heading{display:flex;align-items:flex-start;gap:13px}.venue-icon{width:42px;height:42px;border-radius:13px;background:#e8f0ff;color:var(--blue);display:grid;place-items:center;font-size:27px;flex:none}.venue-heading p{font-size:13px;color:var(--blue);font-weight:800;margin:0}.venue-heading h2{font-size:20px;line-height:1.45;margin:4px 0 0}.venue-address{font-size:15px;line-height:1.65;margin:16px 0 19px;color:#3a5068}.map-wrap{height:360px;border-radius:16px;overflow:hidden;background:#ebf0f7;border:1px solid var(--line)}.map-wrap iframe{width:100%;height:100%;border:0}.route-card{background:#eff5ff;border:1px solid #dbe7fb;border-radius:15px;margin-top:18px;padding:18px}.route-card h3{margin:0 0 6px;font-size:17px}.route-card p{margin:0 0 14px;font-size:15px;line-height:1.75}.map-link{display:inline-block;margin-top:16px;color:var(--blue);font-weight:750;font-size:14px}
@media(max-width:620px){.two-col{grid-template-columns:1fr}.form-panel{padding:19px 16px}.save-bar{display:grid;bottom:calc(79px + env(safe-area-inset-bottom));padding:12px}.save-bar .button{width:100%}.photo-row{align-items:flex-start}.venue-card{padding:17px}.venue-heading h2{font-size:18px}.map-wrap{height:310px}.date-fields{grid-template-columns:1fr 1fr}.card-actions .button{font-size:15px}}

/* Image-reference redesign: light blue canvas, portrait-led cards, and a generous bottom sheet. */
:root {
  --theme-bg:#eff9ff;
  --theme-glow:radial-gradient(circle at 78% 2%,#e1f5fc 0,transparent 34%);
  --theme-pattern-image:none;
  --theme-pattern-size:auto;
  --theme-pattern-ink:rgba(20,110,255,.12);
  --theme-accent:#146eff;
  --theme-accent-hover:#075cde;
  --theme-accent-ink:#fff;
  --theme-accent-hover-ink:#fff;
  --theme-link:#1457b5;
  --theme-soft:#e5f3ff;
  --theme-soft-ink:#225389;
  --theme-page-ink:#0b2057;
  --theme-page-muted:#516885;
  --ink:#0b2057;
  --muted:#516885;
  --blue:var(--theme-accent);
  --blue-dark:var(--theme-accent-hover);
  --line:#dce7f2;
  --wash:var(--theme-bg);
  --soft:var(--theme-soft);
  --shadow:0 12px 38px rgba(31,73,112,.09);
}
body {
  background:var(--theme-pattern-image),var(--theme-glow),var(--wash);
  background-size:var(--theme-pattern-size),auto,auto;
  color:var(--ink);
}
.site-shell { min-height:100dvh; padding-bottom:94px; }
.page-width { width:min(calc(100% - 48px),1060px); }
.topbar {
  height:82px;
  padding-inline:max(24px,calc((100vw - 1060px)/2));
  background:rgba(245,252,255,.9);
  border-bottom:0;
}
.brand-mark { display:none; }
.brand-type { line-height:1.13; gap:2px; }
.brand-type strong { font-size:15px; font-weight:850; letter-spacing:.015em; }
.brand-type small { font-size:13px; color:var(--ink); font-weight:650; }
.menu-button {
  min-height:43px; height:auto; padding:0 14px;
  border-color:#d4e3f0; border-radius:999px;
  font-size:13px; box-shadow:0 3px 12px rgba(33,83,135,.05);
}
.view { padding-block:40px 75px; }
.page-intro { margin-bottom:23px; }
.eyebrow,.intro-kicker { margin:0 0 9px; color:var(--blue); font-size:12px; font-weight:850; letter-spacing:.1em; }
.page-intro h1 { margin:0; font-size:clamp(31px,4.2vw,45px); font-weight:850; line-height:1.27; letter-spacing:-.045em; }
.intro-copy { margin-top:10px; font-size:15px; }
.intro-note { margin:6px 0 0; color:var(--muted); font-size:14px; }
.search-wrap { margin-bottom:13px; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.search-wrap label {
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.search-control {
  min-height:52px; padding:0 17px; gap:11px;
  border:1px solid #c9dbea; border-radius:999px; background:rgba(255,255,255,.7);
}
.search-control:focus-within { border-color:var(--blue); box-shadow:0 0 0 3px #d9eaff; background:#fff; }
.search-control span { color:#7890a7; font-size:27px; }
.search-control svg { width:21px; height:21px; flex:0 0 21px; color:#7890a7; }
.search-control input { min-height:48px; font-size:16px; }
.search-control input::placeholder { color:#8296aa; }
.filter-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 17px; }
.filter-tab {
  min-width:88px; min-height:41px; padding:7px 19px;
  border:1px solid #d7e7f1; border-radius:999px;
  background:#e7f4fc; color:var(--ink);
  font-weight:750; font-size:14px; line-height:1.2;
}
.filter-tab[aria-pressed="true"] {
  border-color:var(--blue); background:var(--blue); color:#fff;
  box-shadow:0 5px 13px rgba(20,110,255,.18);
}
.list-meta { margin:8px 0 14px; font-size:13px; }
.preview-tag,.member-label,.you-mark {
  display:inline-flex; align-items:center;
  padding:5px 9px; border-radius:999px;
  background:#e7f1fb; color:#426384;
  font-size:11px; font-weight:750; line-height:1.2;
}
.you-mark { margin-left:7px; vertical-align:middle; }
.member-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.member-card {
  min-height:0; padding:23px;
  border:1px solid #eaf1f7; border-radius:22px;
  background:#fff; box-shadow:var(--shadow);
}
.member-head { align-items:center; gap:17px; }
.member-photo-wrap {
  width:100px; height:100px; flex:0 0 100px;
  border-radius:50%; background:#e8eef4; overflow:hidden;
}
.member-photo,.member-head .avatar {
  display:block; width:100%; height:100%;
  border-radius:50%; object-fit:cover; object-position:center 34%;
}
.member-head > .avatar { width:100px; height:100px; flex:0 0 100px; }
.member-photo img,.member-head .avatar img { width:100%; height:100%; object-fit:cover; object-position:center 34%; }
.avatar { display:grid; place-items:center; font-size:30px; }
.member-info { min-width:0; }
.member-head h2 { font-size:clamp(20px,2.3vw,25px); font-weight:850; line-height:1.32; letter-spacing:-.02em; }
.member-role { margin-top:4px; color:var(--muted); font-size:14px; }
.member-label { margin-top:7px; }
.member-tags,.detail-chip-row { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 0; }
.topic-pill,.strength-pill,.detail-chip-row span {
  display:inline-flex; align-items:center; max-width:100%; min-height:27px;
  padding:4px 10px; border-radius:999px;
  background:#e4f3ff; color:#225389;
  font-size:12px; font-weight:700; line-height:1.25; overflow-wrap:anywhere;
}
.strength-pill { margin-top:10px; margin-bottom:0; white-space:normal; }
.strength-pill b { color:var(--blue); }
.member-description { margin:15px 0 19px; color:#3d5270; font-size:15px; line-height:1.6; }
.card-actions { flex-direction:column; gap:8px; margin-top:auto; }
.button {
  min-height:50px; padding:11px 17px;
  border-radius:14px; font-size:15px; font-weight:800;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.button:hover { transform:translateY(-1px); }
.button-primary { background:var(--blue); color:#fff; box-shadow:0 5px 13px rgba(20,110,255,.14); }
.button-primary:hover { background:var(--blue-dark); }
.button-secondary { background:#fff; color:var(--blue); border-color:var(--blue); }
.button-secondary:hover { background:#f2f8ff; }
.button:disabled { transform:none; box-shadow:none; }
.card-actions .button { width:100%; padding-inline:10px; font-size:16px; }
.card-actions .button-primary { order:-1; }
.empty-state { padding:30px; border-radius:18px; }
.bottom-nav {
  padding:9px 8px max(8px,env(safe-area-inset-bottom));
  border-color:#e3edf6; box-shadow:0 -7px 20px rgba(39,87,128,.04);
}
.bottom-nav a { font-size:13px; }
.nav-icon { display:grid; place-items:center; width:24px; height:24px; }
.nav-icon svg { width:23px; height:23px; }
.bottom-nav a[aria-current="page"] { color:var(--blue); }
.menu-backdrop,.sheet-backdrop { background:rgba(7,21,50,.52); }
.menu-panel { box-shadow:-18px 0 45px rgba(10,39,82,.17); }
.icon-button { border-radius:50%; }
.bottom-sheet {
  width:min(100%,670px); max-height:min(92dvh,900px);
  border-radius:28px 28px 0 0;
  box-shadow:0 -18px 55px rgba(8,31,68,.19);
}
.bottom-sheet:has(.detail-hero) { height:min(84dvh,800px); }
.bottom-sheet:has(#apply-form) { height:min(92dvh,900px); }
.sheet-handle { width:42px; margin:11px 0 2px; background:#a9b0b9; }
.sheet-header { min-height:60px; padding:4px 19px 7px; border-bottom:0; }
.sheet-header h2 { font-size:17px; font-weight:800; }
.sheet-content { padding:11px 25px 26px; }
.sheet-actions { padding:13px 20px calc(17px + env(safe-area-inset-bottom)); border-color:#e9eff5; }
.sheet-actions .button { min-height:52px; border-radius:999px; }
.detail-head { display:flex; align-items:center; gap:17px; }
.detail-hero { display:block; min-width:0; }
.detail-photo,.detail-head .avatar {
  width:100px; height:100px; flex:0 0 100px;
  border-radius:50%; overflow:hidden; object-fit:cover; object-position:center 34%;
}
.detail-photo .avatar { width:100%; height:100%; border-radius:50%; }
.detail-photo img,.detail-head .avatar img { width:100%; height:100%; object-fit:cover; object-position:center 34%; }
.detail-head h3,.detail-hero h3 { margin:0; font-size:26px; font-weight:850; line-height:1.35; }
.detail-head p,.detail-hero p { margin:4px 0 0; color:var(--muted); font-size:14px; }
.detail-chip-row { margin:16px 0 0; }
.detail-nav { position:sticky; top:0; z-index:2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:13px 0 6px; padding:8px 0 10px; background:#fff; }
.detail-nav button,.detail-nav a {
  display:grid; place-items:center; min-height:40px; padding:8px 6px;
  border:0; border-radius:999px; background:#e5f3ff; color:var(--ink);
  text-align:center; text-decoration:none; font-size:14px; font-weight:800;
}
.detail-nav button[aria-pressed="true"] { background:var(--blue); color:#fff; }
.detail-intro { color:#365070; line-height:1.72; }
.detail-section { padding:19px 0; border-color:#e2eaf3; scroll-margin-top:62px; }
.detail-section h4 { margin-bottom:8px; color:var(--ink); font-size:17px; font-weight:850; }
.detail-icon { display:inline-grid; place-items:center; width:24px; margin-right:7px; color:var(--blue); }
.detail-icon svg { width:22px; height:22px; }
.detail-section p { font-size:16px; line-height:1.72; }
.sheet-person { gap:14px; padding:14px; border-radius:17px; background:#eaf6ff; }
.sheet-person .avatar { width:60px; height:60px; border-radius:50%; font-size:19px; }
.sheet-person strong { font-size:17px; }
.field input,.field textarea { min-height:49px; border-radius:10px; }
.choice { border-radius:11px; }
.choice:has(input:checked) { border-color:var(--blue); background:#eef7ff; }
.notice-banner { background:#eaf6ff; border-color:#cfe4fa; }
.form-panel,.venue-card { border-color:#eaf1f7; border-radius:22px; box-shadow:var(--shadow); }
.photo-row { background:#f3f9ff; }
.photo-row .avatar { border-radius:50%; }
.venue-icon { background:#e6f3ff; }
.route-card { background:#eef7ff; border-color:#dbe9f9; }
@media(max-width:760px) {
  .member-grid { grid-template-columns:1fr; max-width:540px; }
}
@media(max-width:620px) {
  .site-shell { padding-bottom:79px; }
  .page-width { width:min(calc(100% - 30px),500px); }
  .topbar { height:74px; padding-inline:17px; }
  .brand-type strong { font-size:13px; }
  .brand-type small { font-size:12px; }
  .menu-button { min-height:38px; padding:0 11px; font-size:13px; }
  .view { padding-block:23px 44px; }
  .page-intro { margin-bottom:21px; }
  .page-intro h1 { font-size:clamp(29px,8vw,34px); }
  .intro-copy { font-size:14px; }
  .search-control { min-height:49px; }
  .filter-tab { min-width:0; flex:1; }
  .member-grid { gap:13px; }
  .member-card { padding:15px 15px 17px; border-radius:18px; }
  .member-head { gap:13px; }
  .member-photo-wrap,.member-head > .avatar { width:88px; height:88px; flex-basis:88px; }
  .member-head h2 { font-size:21px; }
  .member-role { font-size:14px; }
  .member-description { margin-block:11px 14px; font-size:14px; }
  .bottom-nav { display:flex; }
  .bottom-sheet { max-height:94dvh; }
  .bottom-sheet:has(.detail-hero) { height:86dvh; }
  .bottom-sheet:has(#apply-form) { height:94dvh; }
  .sheet-content { padding-inline:18px; }
  .detail-photo,.detail-head .avatar { width:84px; height:84px; flex-basis:84px; }
  .detail-head h3,.detail-hero h3 { font-size:23px; }
  .detail-section h4 { font-size:16px; }
  .photo-row .avatar { border-radius:50%; }
  .form-panel,.venue-card { padding:19px 16px; }
}
@media(max-width:360px) {
  .member-photo-wrap,.member-head > .avatar { width:78px; height:78px; flex-basis:78px; }
  .member-head h2 { font-size:19px; }
  .date-fields { grid-template-columns:1fr; }
}
@media(min-width:761px) {
  .bottom-sheet {
    top:50%; bottom:auto;
    width:min(670px, calc(100vw - 48px));
    max-height:calc(100dvh - 48px);
    transform:translate(-50%, -50%);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 24px 72px rgba(8,31,68,.25);
  }
  .bottom-sheet:has(.detail-hero) { height:min(760px, calc(100dvh - 48px)); }
  .bottom-sheet:has(#apply-form) { height:min(820px, calc(100dvh - 48px)); }
  .sheet-handle { display:none; }
  .sheet-header { padding:14px 24px; border-bottom:1px solid var(--line); }
  .sheet-content { min-height:0; padding-top:20px; overflow-y:auto; }
  .sheet-actions { flex-shrink:0; padding:15px 24px 18px; }
}
@media(prefers-reduced-motion:reduce) { .button { transition:none; } }

/* The visitor's color choice changes the canvas and action colors without
   reducing contrast on the white member cards and dialogs. */
.page-intro h1 { color:var(--theme-page-ink); }
.page-intro .eyebrow,.intro-kicker,.intro-copy,.intro-note,.list-meta { color:var(--theme-page-muted); }
.button-primary,.filter-tab[aria-pressed="true"],.detail-nav button[aria-pressed="true"] {
  background:var(--theme-accent);
  color:var(--theme-accent-ink);
}
.button-primary:hover { background:var(--theme-accent-hover); color:var(--theme-accent-hover-ink); }
.button-secondary { background:#fff; color:var(--theme-link); border-color:var(--theme-link); }
.button-secondary:hover { background:var(--theme-soft); }
.filter-tab,.topic-pill,.strength-pill,.detail-chip-row span,.detail-nav button,.detail-nav a {
  background:var(--theme-soft);
  color:var(--theme-soft-ink);
}
.filter-tab[aria-pressed="true"],.detail-nav button[aria-pressed="true"] {
  background:var(--theme-accent);
  color:var(--theme-accent-ink);
  border-color:var(--theme-accent);
}
.strength-pill b,.section-number,.venue-icon,.bottom-nav a[aria-current="page"] { color:var(--theme-soft-ink); }
.section-number,.venue-icon,.sheet-person,.choice:has(input:checked) { background:var(--theme-soft); }
.text-button,.detail-link,.map-link,.subtle-button,.candidate-list button,.venue-heading p,.menu-link:hover {
  color:var(--theme-link);
}
.detail-icon,.field em { color:var(--theme-soft-ink); }
.field em { background:var(--theme-soft); }
.menu-link[type="button"] {
  width:100%; border:0; border-bottom:1px solid var(--line);
  border-radius:0; background:transparent; color:var(--ink);
  text-align:left; font-size:inherit;
}
.menu-link[type="button"]:hover { color:var(--theme-link); }
.sheet-content { min-height:0; }
.bottom-sheet:has(.theme-panel) { height:min(86dvh,760px); }

.theme-panel { display:grid; gap:21px; }
.theme-panel h3 { margin:0; font-size:17px; line-height:1.4; }
.theme-panel p { margin:0; font-size:14px; line-height:1.65; color:var(--muted); }
.theme-presets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.theme-preset {
  display:flex; align-items:center; gap:7px;
  min-width:0; min-height:57px; padding:9px 12px;
  border:1px solid var(--line); border-radius:13px;
  background:#fff; color:var(--ink);
  text-align:left; font-size:14px; font-weight:750;
}
.theme-preset:hover { border-color:var(--theme-link); background:#f9fbff; }
.theme-preset[aria-pressed="true"] {
  border:2px solid var(--theme-link); padding:8px 11px;
  box-shadow:0 0 0 2px var(--theme-soft);
}
.theme-preset .theme-swatch:nth-last-child(2) { margin-left:auto; }
.theme-swatch {
  display:inline-block; width:22px; height:22px; flex:0 0 22px;
  border:1px solid rgba(16,43,76,.2); border-radius:50%;
  background:var(--swatch-color,#fff);
}
.theme-custom-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.theme-color-field {
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  min-width:0; min-height:55px; padding:8px 12px;
  border:1px solid var(--line); border-radius:13px;
  background:#fff; color:var(--ink); font-size:14px; font-weight:750;
}
.theme-color-field input[type="color"] {
  appearance:none; width:48px; height:38px; flex:0 0 48px;
  padding:3px; border:1px solid #b9c9dc; border-radius:9px;
  background:#fff; cursor:pointer;
}
.theme-color-field input[type="color"]::-webkit-color-swatch-wrapper { padding:0; }
.theme-color-field input[type="color"]::-webkit-color-swatch { border:0; border-radius:5px; }
.theme-color-field input[type="color"]::-moz-color-swatch { border:0; border-radius:5px; }
.theme-color-field > span:last-child { display:flex; align-items:center; gap:8px; }
.theme-color-field code { color:var(--muted); font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace; }
.theme-preview {
  padding:15px; border:1px solid var(--line); border-radius:16px;
  background:var(--theme-pattern-image),var(--theme-glow),var(--theme-bg);
  background-size:var(--theme-pattern-size),auto,auto;
}
.theme-preview-card {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:12px;
  min-height:68px; padding:12px 14px; border-radius:12px;
  background:#fff; color:var(--ink); box-shadow:0 4px 14px rgba(18,51,98,.08);
}
.theme-preview-card > span:first-child { grid-column:1; color:var(--muted); font-size:11px; }
.theme-preview-card > strong { grid-column:1; font-size:14px; line-height:1.35; }
.theme-preview-button {
  display:inline-grid; grid-column:2; grid-row:1 / span 2; place-items:center;
  min-height:39px; padding:8px 13px; border:0; border-radius:10px;
  background:var(--theme-accent); color:var(--theme-accent-ink);
  font-size:13px; font-weight:800;
}
.theme-status { min-height:20px; color:var(--muted); font-size:13px; line-height:1.5; }
.theme-pattern-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.theme-pattern-option {
  display:grid; gap:8px; min-width:0; min-height:112px; padding:9px;
  border:1px solid var(--line); border-radius:13px;
  background:#fff; color:var(--ink);
  text-align:center; font-size:13px; font-weight:750; line-height:1.35;
}
.theme-pattern-option:hover { border-color:var(--theme-link); background:#f9fbff; }
.theme-pattern-option[aria-pressed="true"] {
  border:2px solid var(--theme-link); padding:8px;
  box-shadow:0 0 0 2px var(--theme-soft);
}
.theme-pattern-thumb {
  display:block; width:100%; height:68px;
  border:1px solid rgba(16,43,76,.12); border-radius:8px;
  background:var(--sample-image,none),var(--theme-bg);
  background-size:var(--sample-size,auto),auto;
}
.theme-pattern-option span:last-child { overflow-wrap:anywhere; }
.theme-preset:focus-visible,.theme-pattern-option:focus-visible,.theme-color-field input[type="color"]:focus-visible {
  outline:3px solid var(--theme-link); outline-offset:3px;
}

.tamaka-promo {
  width:min(100%,520px);
  margin:52px auto 8px;
  text-align:center;
}
.sample-notice {
  margin:11px 0 0;
  color:var(--theme-link);
  font-size:14px;
  font-weight:700;
  line-height:1.6;
}
.tamaka-promo .tamaka-promo-copy {
  margin:0 0 13px;
  color:var(--theme-page-ink);
  font-size:15px;
  font-weight:750;
  line-height:1.7;
}
.tamaka-promo a {
  display:block;
  overflow:hidden;
  border:1px solid rgba(16,43,76,.14);
  border-radius:15px;
  box-shadow:0 10px 28px rgba(19,56,103,.14);
  transition:transform .2s ease,box-shadow .2s ease;
}
.tamaka-promo a:hover {
  transform:translateY(-2px);
  box-shadow:0 15px 32px rgba(19,56,103,.2);
}
.tamaka-promo img {
  display:block;
  width:100%;
  height:auto;
}
.tamaka-promo > p:not(.tamaka-promo-copy) {
  margin:9px 0 0;
  color:var(--theme-page-muted);
  font-size:12px;
  letter-spacing:.035em;
}
.tamaka-promo a:focus-visible {
  outline:3px solid var(--theme-link);
  outline-offset:4px;
}
@media(min-width:761px) {
  .bottom-sheet:has(.theme-panel) { height:min(730px,calc(100dvh - 48px)); }
}
@media(max-width:620px) {
  .theme-pattern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .theme-custom-grid { grid-template-columns:1fr; }
}
@media(max-width:420px) {
  .theme-pattern-grid { gap:8px; }
  .theme-pattern-option { min-height:104px; padding:7px; font-size:13px; }
  .theme-pattern-option[aria-pressed="true"] { padding:6px; }
  .theme-pattern-thumb { height:62px; }
  .theme-presets { gap:8px; }
  .theme-preset { min-height:55px; padding-inline:9px; font-size:13px; gap:5px; }
  .theme-preset[aria-pressed="true"] { padding-inline:8px; }
  .theme-swatch { width:19px; height:19px; flex-basis:19px; }
  .theme-custom-grid { gap:8px; }
  .theme-color-field { padding-inline:9px; font-size:13px; }
  .tamaka-promo { margin-top:38px; }
  .tamaka-promo .tamaka-promo-copy { font-size:14px; }
}


/* A deliberately unlabelled opt-out signal appears only when its owner chooses it. */
.avatar { position:relative; overflow:hidden; }
.game-optout-mark {
  position:absolute; right:7px; bottom:7px; width:4px; height:4px;
  border-radius:1px; background:rgba(11,32,87,.56);
  box-shadow:1px 1px 0 rgba(255,255,255,.72); transform:rotate(45deg);
  pointer-events:none; user-select:none;
}
.game-optout-toggle { margin-top:-6px; }
@media(max-width:620px) { .game-optout-mark { right:6px; bottom:6px; } }
