:root{--wine:#6c142c;--ink:#0c090a;--cream:#fff9ef;--gold:#d9ad57;--muted:#d5c5bf;--line:rgba(217,173,87,.35);}
*{box-sizing:border-box} body{margin:0;color:var(--cream);background:linear-gradient(rgba(9,5,7,.78),rgba(9,5,7,.9)),url('photo-neon-clean.png') center top/cover fixed;font-family:'Noto Sans JP',sans-serif;line-height:1.7}a{color:inherit}.page-header{min-height:330px;padding:24px clamp(24px,6vw,88px) 56px;background:linear-gradient(115deg,rgba(16,5,8,.92),rgba(88,15,40,.53)),url('photo-neon-clean.png') center/cover;border-bottom:1px solid var(--line)}.page-header.compact{min-height:230px}.page-header nav{display:flex;align-items:center;gap:22px;max-width:1120px;margin:auto;font-size:.82rem;letter-spacing:.12em}.page-header nav a{text-decoration:none}.brand{margin-right:auto;font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:600;letter-spacing:.15em}.page-header nav .active{color:var(--gold)}.page-title{max-width:1120px;margin:74px auto 0}.page-title p,.eyebrow,.section-heading p{margin:0 0 7px;color:var(--gold);font-family:'Playfair Display',serif;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase}.page-title h1{margin:0;font-family:'Playfair Display','Noto Sans JP',serif;font-size:clamp(2.35rem,5vw,4.5rem);line-height:1.15;font-weight:500}.page-title span{display:block;margin-top:14px;color:#eadbd5}main{max-width:1120px;margin:auto;padding:84px clamp(24px,6vw,88px)}h2{margin:0;font-family:'Playfair Display','Noto Sans JP',serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1.2;font-weight:500;color:#f6e8ca}.section-heading{margin-bottom:26px}.section-heading span{display:block;margin-top:12px;color:var(--muted)}.news-section,.calendar-section,.voice-list-section{margin-bottom:82px}.news-list{display:grid;gap:14px}.news-item,.comment-item{padding:25px;background:rgba(23,12,16,.92);border:1px solid var(--line)}.news-item time{color:var(--gold);font-size:.82rem;letter-spacing:.1em}.news-item h3{margin:7px 0 10px;font-size:1.22rem}.news-item p,.comment-item p{margin:0;color:#eadbd5;white-space:pre-wrap}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:26px;margin:26px 0 12px}.calendar-toolbar h3{min-width:170px;margin:0;text-align:center;font-family:'Playfair Display','Noto Sans JP',serif;font-size:1.45rem;font-weight:500}.calendar-toolbar button{width:40px;height:40px;border:1px solid var(--line);color:var(--gold);background:rgba(37,10,18,.8);font-size:1.8rem;line-height:1;cursor:pointer}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{padding:8px;text-align:center;color:var(--gold);font-size:.8rem}.calendar{border-left:1px solid var(--line);border-top:1px solid var(--line)}.day{position:relative;min-height:86px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(16,9,11,.8);color:#f6e8ca;text-align:left;font:inherit;cursor:pointer}.day.blank{cursor:default;background:rgba(16,9,11,.44)}.day.has-event{background:linear-gradient(145deg,rgba(132,29,58,.92),rgba(37,11,18,.92))}.day.has-event::after{content:'';position:absolute;right:9px;bottom:9px;width:7px;height:7px;border-radius:50%;background:var(--gold)}.day:focus-visible{outline:2px solid #fff}.event-detail{min-height:94px;margin-top:22px;padding:24px;background:rgba(24,12,16,.9);border-left:3px solid var(--gold)}.event-detail h3{margin:0 0 8px;color:#fff7e6}.event-detail p{margin:0;color:#e5d6d0;white-space:pre-wrap}.event-detail img{display:block;max-width:100%;max-height:520px;margin-top:18px;border:1px solid var(--line)}.voice-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;margin-bottom:84px}.voice-intro p:last-child{color:var(--muted)}.message-form,.login-panel,.admin-card{padding:30px;background:rgba(27,12,17,.92);border:1px solid var(--line)}label{display:block;margin-bottom:17px;color:#f9eddb;font-size:.9rem}input,textarea{display:block;width:100%;margin-top:6px;padding:12px;color:#211012;background:#fffaf2;border:1px solid #c9a86b;font:inherit}textarea{resize:vertical}button{padding:12px 19px;border:0;color:#1a0c0f;background:linear-gradient(135deg,#e5bd6a,#bd8433);font:700 .92rem 'Noto Sans JP',sans-serif;cursor:pointer}.secondary{color:#f9eddb;background:transparent;border:1px solid var(--line)}.honeypot{position:absolute!important;left:-9999px!important}.comment-list{display:grid;gap:14px}.comment-meta{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px;color:var(--gold);font-size:.82rem}.reply{margin-top:16px;padding:16px;border-left:2px solid var(--gold);background:rgba(115,27,51,.35)}.reply strong{display:block;margin-bottom:5px;color:var(--gold);font-size:.85rem}#form-status,#login-status,#event-status{min-height:1.4em;margin:12px 0 0;color:var(--gold);font-size:.88rem}.login-panel{max-width:460px;margin:auto}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.admin-card h3,.admin-section h3{margin:0 0 18px;color:var(--gold)}.admin-section{margin-top:48px}.admin-list{display:grid;gap:14px}.admin-comment{padding:22px;background:rgba(27,12,17,.92);border:1px solid var(--line)}.admin-comment header{display:flex;justify-content:space-between;gap:14px;color:var(--gold);font-size:.86rem}.admin-comment p{white-space:pre-wrap}.admin-comment textarea{margin-top:12px}.admin-actions{display:flex;gap:10px;margin-top:12px}footer{padding:28px;text-align:center;color:#d9c8be;background:rgba(5,4,5,.92);border-top:1px solid var(--line);font-size:.82rem}@media(max-width:720px){.page-header nav{gap:12px;font-size:.68rem}.page-header nav a:not(.brand){display:none}.page-header nav .active{display:block}.page-title{margin-top:56px}main{padding-top:58px;padding-bottom:58px}.voice-layout,.admin-grid{grid-template-columns:1fr;gap:28px}.news-section,.calendar-section,.voice-list-section,.voice-layout{margin-bottom:58px}.day{min-height:58px;padding:6px;font-size:.82rem}.weekdays span{padding:5px;font-size:.7rem}.event-detail{padding:20px}.admin-top{align-items:flex-start;flex-direction:column}.comment-meta{flex-direction:column;gap:2px}}
/* Calendar event label */
.day-number{position:absolute;top:9px;left:9px;display:block}.event-label{display:block;width:100%;margin-top:22px;color:#fff0cb;font-size:clamp(.46rem,1.08vw,1rem);font-weight:700;line-height:1.2;letter-spacing:-.04em;overflow-wrap:anywhere;white-space:normal;transform:none}@media(max-width:720px){.day-number{top:6px;left:6px}.event-label{width:100%;margin-top:17px;font-size:.42rem}}
