:root{color-scheme:light;--ink:#262c26;--muted:#586158;--green:#214d3d;--line:#e5e2d7;--paper:#f6f3ec}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,"Hiragino Sans","Yu Gothic",sans-serif}
header{position:sticky;top:0;z-index:1;background:#fffdf7;border-bottom:1px solid var(--line)}
.bar{max-width:490px;margin:auto;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand{font-size:15px;color:var(--ink);text-decoration:none;font-weight:800;letter-spacing:.06em}
.line,button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:9px;padding:10px 17px;background:var(--green);color:white;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}
.line{background:#0b7a46;font-size:13px;border-radius:999px;white-space:nowrap}
main{width:min(490px,100%);margin:auto;padding:14px 14px 34px}
.layout{display:grid;gap:14px}
.intro{position:relative;isolation:isolate;min-height:308px;display:flex;align-items:end;overflow:hidden;border-radius:19px;color:#fff9ec;background:#403228}
.intro img,.intro::after{position:absolute;inset:0;width:100%;height:100%}
.intro img{object-fit:cover;object-position:center 52%;z-index:-2}
.intro::after{content:"";z-index:-1;background:linear-gradient(180deg,#21150e0a 12%,#20130b45 42%,#20130bf0 100%)}
.intro-copy{padding:24px 22px 22px}
.eyebrow{color:#426051;letter-spacing:.17em;font-size:11px;font-weight:850}
.intro .eyebrow{color:#ffe1ac}
h1,h2,p{margin-top:0}
h1{font-size:clamp(29px,8vw,40px);line-height:1.25;letter-spacing:-.025em;margin:6px 0 9px}
h2{font-size:23px;margin:3px 0 2px}
.intro p{margin:0;font-size:13px;color:#fff2de}
.entry-link{display:inline-flex;align-items:center;gap:12px;min-height:40px;margin-top:13px;padding:7px 13px;border:1px solid #f2dec2aa;border-radius:999px;color:#fff9ec;font-size:13px;font-weight:750;text-decoration:none}
.stories{padding:10px 2px 3px}
.stories h2{margin-top:1px}
.story-disclosure{font-size:11px;color:var(--muted);margin:2px 0 10px}
.story-feature{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fffdfa}
.story-photo{aspect-ratio:3/2;background:#c6b69a url('/story-ref-seaside.webp') center / cover no-repeat}
.story-photo-anniversary{background-image:url('/story-ref-anniversary.webp')}
.story-photo-sakura{background-image:url('/story-ref-sakura.webp')}
.story-photo-park{background-image:url('/story-ref-park.webp')}
.story-copy{min-width:0;padding:12px 14px 15px}
.story-tag{display:inline-block;border-radius:20px;background:#edf1e8;color:#385749;font-size:10px;padding:2px 7px}
.story h3{margin:5px 0 0;font-size:15px;line-height:1.5}
.story-feature h3{font-size:19px}
.story p{margin:7px 0 0;font-size:13px;line-height:1.65;color:var(--muted)}
.story-list{margin-top:4px}
.story-list .story{display:grid;grid-template-columns:clamp(93px,29vw,129px) minmax(0,1fr);align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.story-list .story:last-child{border-bottom:0}
.story-list .story-photo{border-radius:10px}
.story-list .story-copy{padding:0}
#apply{scroll-margin-top:76px}
.line-panel .muted{margin:6px 0 14px}
.line-panel .line{width:100%}
.panel{background:#fffdfa;border:1px solid var(--line);border-radius:19px;padding:20px;box-shadow:0 8px 25px #392b1408}
.muted{color:var(--muted)}
form{display:grid;gap:13px}
label{display:grid;gap:7px;font-size:14px;font-weight:700}
input:not([type=checkbox]){width:100%;height:46px;border:1px solid #a6b9ad;border-radius:7px;padding:8px 11px;font:inherit;color:inherit;background:#fff}
input:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #167453;outline-offset:3px}
.check{display:flex;align-items:flex-start;font-weight:500}
.check input{margin:5px 3px 0 0;accent-color:var(--green)}
details{font-size:13px;color:var(--muted)}
summary{cursor:pointer;font-weight:700}
details p{margin:7px 0 0}
.error{color:#8b2125}
.done{max-width:720px;margin:auto}
.done h1,.admin h1{font-size:clamp(26px,6vw,35px)}
.admin{display:grid;gap:20px}
.table{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left}
td,th{padding:10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
@media(max-width:355px){.brand{font-size:13px}.line{font-size:12px;padding-inline:12px}.intro-copy{padding-inline:17px}.panel{padding:17px}}
