:root{--ink:#342b32;--sub:#695d66;--paper:#fcf8f4;--plum:#633b59;--line:#e8dcd9;--warm:#fffcf9;--gold:#e8bf94;color-scheme:light}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 system-ui,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif}
.wrap{width:min(100% - 40px,980px);margin-inline:auto}
a{color:var(--plum);text-underline-offset:4px}
h1,h2,h3,p{margin:0}
button,input,select{font:inherit}
:focus-visible{outline:3px solid #a36794;outline-offset:3px}
.skip{position:absolute;left:12px;top:-100px;background:white;z-index:10;padding:10px}.skip:focus{top:8px}
.site-header{background:#fffbf7}.head{height:74px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand strong{font:700 26px/1 Georgia,serif;letter-spacing:.19em}.brand small{display:block;font-size:10px;letter-spacing:.1em}.mark{color:#fff3e4;background:var(--plum);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:22px}
.member-tag,.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:750;color:var(--plum)}
.nav-wrap{position:sticky;top:0;background:#fcf8f4;border-block:1px solid var(--line);z-index:3}
nav{display:flex;gap:8px 23px;flex-wrap:wrap;padding:9px 0}
nav a{font-size:13px;text-decoration:none;font-weight:700;padding:3px 0}
nav a:hover{text-decoration:underline}
main{padding:27px 0 44px}
.hero,.section{scroll-margin-top:95px}
.hero{position:relative;isolation:isolate;background:linear-gradient(120deg,#352539,#643f5d 77%,#7d5066);border-radius:24px;padding:32px 40px;color:#fff8f3;overflow:hidden}
.hero-text{max-width:560px}
.hero .eyebrow,.hero .date{color:#eed0b3}.hero .eyebrow span{margin-inline:5px}
.hero h1{font-size:clamp(25px,5vw,39px);line-height:1.3;margin:7px 0}
.kin-line{display:flex;align-items:center;gap:13px;margin-top:9px}
.kin-line strong{font:700 clamp(41px,8vw,69px)/1.2 Georgia,serif}
.pill{display:inline-flex;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:750;background:#f1e5ee;color:#5a3551}
.hero h2{font-size:clamp(16px,4vw,23px)}
.hero #today-castle{color:#f2d9c8;font-size:13px}
.action-note{border-left:2px solid var(--gold);padding-left:13px;margin-top:16px}
.action-note span{font-size:12px;color:#f3d3b3;font-weight:700}
details{margin-top:12px}summary{cursor:pointer;font-size:13px;font-weight:700}details p{margin-top:8px}
.cosmos{position:absolute;z-index:-1;inset:50% 4% auto auto;transform:translateY(-50%);width:34%;max-width:310px;color:var(--gold);opacity:.66}
.cosmos svg{width:100%;stroke:currentColor;stroke-width:.8}
.section{margin-top:35px}
.section h2{font-size:clamp(23px,4vw,31px);margin:3px 0 10px}
.grid,.pair{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.card{border:1px solid var(--line);background:var(--warm);border-radius:15px;padding:19px 23px;min-width:0}
.card h3{font-size:17px;margin:7px 0}
.card time,.hint,.intro{color:var(--sub)}.intro{margin:-4px 0 13px}
.hint{font-size:12px;margin-top:8px}
.fields{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px;align-items:center}
label{display:block;font-size:13px;font-weight:700}
input,select{max-width:100%;min-height:43px;border:1px solid #cdbcc8;border-radius:8px;background:#fff;color:var(--ink);padding:7px 11px}
button{min-height:43px;border:1px solid var(--plum);border-radius:8px;background:var(--plum);color:white;font-weight:700;padding:6px 14px;cursor:pointer}
button:hover{background:#512e49}
button.subtle{border-color:transparent;background:transparent;color:var(--plum);text-decoration:underline;text-underline-offset:3px;padding-inline:1px}
.result{margin-top:15px;padding:14px;border-radius:10px;background:#f6edf3;overflow-wrap:anywhere}
.result h3{margin-top:0}.result h4{margin:12px 0 0}.result p+p{margin-top:7px}
fieldset{border:1px solid var(--line);border-radius:10px;min-width:0;margin:0;padding:9px 12px 12px}
legend{font-weight:750;color:var(--plum)}
fieldset input,fieldset select{display:block;width:100%;margin:4px 0 7px}
.pair{margin-bottom:13px}
footer{padding:13px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;color:var(--sub);font-size:12px}
footer a{text-decoration:none;font-weight:750}
@media(max-width:600px){.wrap{width:calc(100% - 26px)}.head{height:63px}nav{gap:5px 12px}nav a{font-size:12px}.hero{padding:23px 19px}.cosmos{width:55%;right:-10%;opacity:.22}.grid,.pair{grid-template-columns:1fr}.card{padding:15px}.section{margin-top:26px}}
.gathering{min-height:240px;display:flex;align-items:center}
.gathering .hero-text{max-width:490px}
.gathering p{margin-top:12px}
.hero-links,.jump-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}
.hero-links a,.jump-links a{display:inline-flex;align-items:center;min-height:40px;padding:5px 12px;border-radius:8px;border:1px solid currentColor;text-decoration:none;font-weight:700;font-size:13px}
.hero-links a{color:#fff6ea}
.hero-links a:first-child{color:#5b3651;background:#fff6ea;border-color:#fff6ea}
.archive-controls input{width:min(100%,350px);margin-top:4px}
.archive-list{display:grid;gap:10px;margin-top:9px}
.archive-list details{margin:0}
.archive-list summary{font-size:15px}
.archive-list summary strong{margin-left:8px}
.archive-list h3{margin:13px 0 3px}
.archive-list ul,.archive-list ol{margin:5px 0;padding-left:24px}
.archive-list .period{color:var(--sub);font-size:13px}
.archive-list a{display:inline-block;margin-top:9px}
.tools-heading{padding-top:20px;border-top:1px solid var(--line);margin-bottom:12px}
.daily{background:#56354e}
.daily h2{font-size:25px}
@media(max-width:600px){.gathering{min-height:220px}.archive-list summary{font-size:14px}.hero-links a,.jump-links a{font-size:12px}}
.membership{padding-bottom:22px}.membership h2{font-size:20px;margin:4px 0}.membership strong{color:var(--plum);font-size:21px}
#about p+p{margin-top:9px}
.about-guide>h3{margin:24px 0 8px;color:var(--plum)}
.about-rhythms,.about-castles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 0;padding:0}
.about-rhythms>div,.about-castles>li{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:12px 14px}
.about-rhythms dt,.about-castles h4{margin:0 0 4px;font-size:15px;font-weight:750;color:var(--plum)}
.about-rhythms dd{margin:0}
.about-castles{list-style:none}
.about-castles h4 span{display:block}
.about-kin-range{color:var(--sub);font-size:12px}
.about-practice{padding-inline-start:23px}
.about-practice li+li{margin-top:6px}
@media(max-width:600px){.about-rhythms,.about-castles{grid-template-columns:1fr}}
.reading-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.reading-block{background:var(--warm);border-radius:9px;padding:11px}
.reading-block h4{margin:0 0 4px;color:var(--plum)}
.relation-table{width:100%;border-collapse:collapse;text-align:left;margin:7px 0}
.relation-table th,.relation-table td{padding:6px;border-bottom:1px solid var(--line);font-size:13px}
.diary-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.diary-head h3{margin:0;text-align:center;min-width:105px}
.diary-head button{padding-inline:10px}
.diary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.diary-grid button{background:white;color:var(--plum);border-color:var(--line);padding:4px 0;font-size:13px}
.diary-grid button[aria-pressed=true]{background:var(--plum);color:white}
.diary-grid small{display:block;font-size:8px;line-height:1.1;height:9px}
.diary-grid>span{font-size:11px}
#diary-form{margin-top:13px}
#diary-form textarea{display:block;width:100%;resize:vertical;border:1px solid #cdbcc8;border-radius:8px;background:white;color:var(--ink);padding:9px 11px;font:inherit;margin:3px 0 9px}
#diary-form label[for=diary-plan]{margin-top:10px}
#diary-status{min-height:1.4em;color:var(--plum)}
@media(max-width:600px){.reading-blocks{grid-template-columns:1fr}.relation-table th,.relation-table td{font-size:11px;padding:5px 3px}}
#invite label{margin-top:10px}
#invite textarea{display:block;width:100%;resize:vertical;border:1px solid #cdbcc8;border-radius:8px;background:white;color:var(--ink);padding:9px 11px;font:inherit;margin:3px 0 9px}
.booking-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.booking-cards button{color:var(--ink);text-align:left}
.booking-cards button:hover{background:#f6edf3}
.booking-cards strong,.booking-cards span{display:block}
.booking-cards span{font-weight:400;color:var(--sub);font-size:13px;margin-top:4px}
.booking-form{margin-top:13px}
.booking-form label:not(.apply-consent){margin-top:10px}
.booking-form textarea{display:block;width:min(100%,560px);border:1px solid #cdbcc8;border-radius:8px;padding:8px;font:inherit}
.booking-form input:not([type=checkbox]),.booking-form select{width:min(100%,430px)}
.apply-consent{display:flex;align-items:start;gap:8px;margin-top:13px}
.apply-consent input{min-height:0;margin-top:5px;flex:none}
#apply-submit{margin-top:10px}
#application-rows p{overflow-wrap:anywhere;white-space:pre-wrap}
/* 月間カレンダー */
.diary-grid{gap:5px}
.diary-grid button{min-height:76px;padding:7px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative}
.diary-grid .calendar-date{display:flex;align-items:center;justify-content:center;gap:3px;font-size:18px;font-weight:750;line-height:1.2}
.diary-grid .calendar-kin{display:block;font-size:11px;font-weight:700;white-space:nowrap}
.diary-grid .black-kin-mark{font-size:10px;line-height:1}
.diary-grid button[aria-current=date]{border:2px solid var(--plum)}
.diary-grid button small{font-size:10px;height:10px}
.diary-grid button:hover{background:#f1e5ee}
.diary-grid button[aria-pressed=true]:hover{background:var(--plum)}
.diary-energy{margin:20px 0 24px;padding-top:18px;border-top:1px solid var(--line)}
.diary-energy>h3{font-size:20px;margin:8px 0}
.energy-summary{font-size:13px;color:var(--sub)}
.energy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 20px}
.energy-card{border:1px solid var(--line);background:white;border-radius:11px;padding:15px;min-width:0}
.energy-card h4{margin:0 0 8px;font-size:15px;color:var(--plum);line-height:1.55}
.energy-card p{font-size:14px;line-height:1.9}
.energy-card p+p{margin-top:9px}
.black-kin-guide{background:#eee9ed;border-left:4px solid #393039;margin-top:13px}
.diary-writing-title{border-top:1px solid var(--line);padding-top:15px}
@media(max-width:600px){
 .diary-grid{gap:3px}
 .diary-grid button{min-height:67px;padding:5px 1px}
 .diary-grid .calendar-date{font-size:15px;gap:1px}
 .diary-grid .calendar-kin{font-size:9px}
 .diary-grid .black-kin-mark{font-size:8px}
 .energy-grid{grid-template-columns:1fr}
 .energy-card{padding:13px}
 .diary-energy>h3{font-size:18px}
}
#match-role{display:block;margin:4px 0 13px;width:min(100%,380px)}
#match-result>h3{font-size:20px;margin:21px 0 11px;line-height:1.55}
#match-result>h3:first-child{margin-top:0}
.relationship-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:11px 0}
.relationship-card{background:var(--warm);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}
.relationship-card h4{font-size:15px;line-height:1.6;margin:0 0 8px;color:var(--plum)}
.relationship-card p,.relationship-intro,.relationship-role p{font-size:14px;line-height:1.95}
.relationship-card p+p,.relationship-role p+p{margin-top:9px}
.relationship-intro{margin-bottom:12px}
.relationship-contexts{display:grid;gap:10px}
.relationship-role,.relationship-extra{border:1px solid var(--line);border-radius:10px;background:var(--warm);padding:13px 15px;margin:10px 0}
.relationship-role summary,.relationship-extra summary{font-size:15px}
.relationship-role>p:first-of-type{margin-top:10px}
.relationship-role ol{padding-left:23px}
.relationship-role li+li{margin-top:9px}
.relationship-role h4{margin:15px 0 5px;color:var(--plum)}
.relationship-role .relationship-example{padding:11px;background:#f4eaf1;border-left:3px solid var(--plum);border-radius:6px}
.relationship-extra .relationship-card{margin-top:10px}
@media(max-width:600px){
 .relationship-grid{grid-template-columns:1fr}
 #match-result{padding:11px}
 #match-result>h3{font-size:18px}
 .relationship-card{padding:12px}
}

.relationship-needs{margin:0}.relationship-needs dt{font-weight:700;color:var(--plum,#694655);font-size:14px;margin-top:17px;line-height:1.6}.relationship-needs dd{margin:5px 0 0;font-size:14px;line-height:1.95;overflow-wrap:anywhere}.relationship-needs dt:first-child{margin-top:12px}

.profile-reading-section{margin:26px 0}.profile-reading-section>h3{font-size:19px;line-height:1.65;color:var(--plum,#694655);margin-bottom:6px}.profile-reading-subtitle{font-weight:600;line-height:1.8;margin:0 0 12px;overflow-wrap:anywhere}@media(max-width:600px){.profile-reading-section>h3{font-size:17px}}

.profile-mission{white-space:pre-line}

.release-panel{margin:14px 0;overflow-wrap:anywhere}
.release-panel p+p,.release-panel form{margin-top:10px}
.release-panel dd{margin:0 0 10px}
.legal-links a{display:inline-flex;align-items:center;min-height:44px;padding-inline:5px}
.member-search{margin:12px 0}
.member-row{overflow-wrap:anywhere;margin:8px 0}
.member-row form{margin-top:7px}
.release-error .card{margin-top:12px}
