:root{color:#18201d;background:#f7f4ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}main{min-height:100vh}.hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);min-height:78vh;background:#e8ede5}.hero__copy{align-self:center;padding:clamp(32px,7vw,96px)}.eyebrow{margin:0 0 12px;color:#0c6b57;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1{max-width:760px;margin:0;font-size:clamp(2.5rem,4.8rem,5.2rem);line-height:.98}.hero__copy>p:not(.eyebrow){max-width:620px;margin:24px 0 0;color:#40504a;font-size:1.1rem;line-height:1.8}.actions{display:grid;gap:12px;margin-top:32px}.actions__row{display:flex;flex-wrap:wrap;gap:12px}.actions a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid #18201d;border-radius:8px;padding:0 18px;background:#18201d;color:#fff;font-weight:800;text-decoration:none}.hero__image{width:100%;height:100%;min-height:420px;object-fit:cover}.section{padding:clamp(40px,7vw,92px)}.section__header{max-width:720px}.section__header h2{margin:0;font-size:clamp(2rem,3.2rem,3.5rem);line-height:1.08}.stream-grid,.streamer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.stream-card,.streamer-card{min-height:270px;border:1px solid #d5d9d1;border-radius:8px;padding:22px;background:#fff}.stream-card p{margin:0;color:#0c6b57;font-weight:800}.stream-card h3{margin:14px 0 20px;font-size:1.45rem;line-height:1.25}dl{display:grid;gap:12px;margin:0}dl div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px}dt{color:#6f7b75;font-size:.82rem;font-weight:800}dd{margin:0}.streamer-card{display:grid;align-content:start;gap:18px}.streamer-card__header{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:14px}.streamer-card__avatar{display:grid;width:68px;height:68px;place-items:center;overflow:hidden;border:1px solid #c9d1c8;border-radius:8px;background:#e8ede5;color:#0c6b57;font-size:1.6rem;font-weight:800}.streamer-card h3{margin:0;font-size:1.45rem;line-height:1.25}.streamer-card h3 span{display:block;margin-top:4px;color:#0c6b57;font-size:.88rem;font-weight:800}.streamer-card__avatar img{width:100%;height:100%;object-fit:cover}.streamer-card p{margin:0;color:#40504a;line-height:1.7}.streamer-card__group{display:inline-flex;width:fit-content;margin:0 0 4px;color:#0c6b57;font-size:.9rem;font-weight:800;line-height:1.3;text-decoration:none}.streamer-card a{display:inline-flex;width:fit-content;color:#0c6b57;font-weight:800}.album-shell{min-height:100vh;background:#f3faf6}.album-nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:18px clamp(20px,6vw,72px);background:#13231d;color:#fff}.album-nav a{font-weight:800;text-decoration:none}.album-index-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:28px;align-items:center;padding:44px clamp(20px,6vw,72px);background:#dcefe7}.album-index-header h1,.album-detail-header h1,.album-not-found h1{margin:0;font-size:3rem;line-height:1.06}.album-index-header p:not(.eyebrow),.album-detail-header p:not(.eyebrow),.album-not-found p:not(.eyebrow){max-width:640px;margin:16px 0 0;color:#40504a;line-height:1.75}.album-index-header img{width:100%;height:300px;border-radius:8px;object-fit:cover}.group-index-header{background:#e5eee9}.album-section{padding:42px clamp(20px,6vw,72px)}.album-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.album-card{display:grid;align-content:start;gap:18px;min-height:360px;border:1px solid #cbded4;border-radius:8px;padding:22px;background:#fff}.album-card__identity{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px}.album-card__avatar,.album-detail-header__avatar{display:grid;place-items:center;overflow:hidden;border:1px solid #bfd3c8;border-radius:8px;background:#e2f1ea;color:#0c6b57;font-weight:800}.album-card__avatar{width:72px;height:72px;font-size:1.7rem}.album-card__avatar img,.album-detail-header__avatar img{width:100%;height:100%;object-fit:cover}.album-card__group{display:inline-flex;width:fit-content;margin:0 0 4px;color:#0c6b57;font-size:.88rem;font-weight:800;text-decoration:none}.album-group-link{display:inline-flex;width:fit-content;text-decoration:none}.album-card h3{margin:0;font-size:1.45rem;line-height:1.25}.album-card__identity p:not(.album-card__group),.album-card>p{margin:0;color:#40504a;line-height:1.65}.album-card>a,.album-detail-header__links a,.album-not-found a,.album-stream a,.group-card__footer a{display:inline-flex;width:fit-content;min-height:40px;align-items:center;border:1px solid #0c6b57;border-radius:8px;padding:0 14px;color:#0c6b57;font-weight:800;text-decoration:none}.album-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px clamp(20px,6vw,72px) 0}.album-card .album-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.album-stats div{display:grid;grid-template-columns:1fr;gap:6px;min-height:82px;border:1px solid #d6e5dd;border-radius:8px;padding:14px;background:#fbfefd}.album-stats dt{color:#66736d;font-size:.82rem}.album-stats dd{color:#13231d;font-size:1.1rem;font-weight:800}.group-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.group-card{display:grid;align-content:start;gap:18px;min-height:400px;border:1px solid #cbded4;border-radius:8px;padding:22px;background:#fff}.group-card__slug{margin:0 0 6px;color:#0c6b57;font-size:.88rem;font-weight:800}.group-card h3{margin:0;font-size:1.7rem;line-height:1.2}.group-card p{margin:12px 0 0;color:#40504a;line-height:1.65}.group-avatar-stack{display:flex;min-height:56px;align-items:center;padding-left:8px}.group-avatar-stack__item{display:grid;width:56px;height:56px;place-items:center;overflow:hidden;border:2px solid #fff;border-radius:8px;margin-left:-8px;background:#e2f1ea;color:#0c6b57;font-size:1.2rem;font-weight:800}.group-avatar-stack__item img{width:100%;height:100%;object-fit:cover}.group-card__empty-members{min-height:56px;margin:0;color:#66736d;font-weight:800}.group-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.group-stats div{display:grid;grid-template-columns:1fr;gap:6px;min-height:78px;border:1px solid #d6e5dd;border-radius:8px;padding:14px;background:#fbfefd}.group-stats dt{color:#66736d;font-size:.82rem}.group-stats dd{color:#13231d;font-size:1.1rem;font-weight:800}.group-card__footer{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:auto}.group-card__footer p{margin:0;color:#40504a;font-size:.94rem;font-weight:800}.group-detail-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);gap:24px;align-items:center;padding:42px clamp(20px,6vw,72px) 18px}.group-detail-header h1{margin:0;font-size:3rem;line-height:1.06}.group-detail-header p:not(.eyebrow){max-width:640px;margin:16px 0 0;color:#40504a;line-height:1.75}.group-detail-header .group-avatar-stack{justify-content:flex-end}.group-detail-header .group-avatar-stack__item{width:72px;height:72px;font-size:1.7rem}.group-detail-stats{margin:24px clamp(20px,6vw,72px) 0}.group-detail-stats .group-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.album-state,.album-empty{margin:28px clamp(20px,6vw,72px);color:#40504a;font-weight:800}.album-detail-header{display:grid;grid-template-columns:132px minmax(0,1fr);gap:24px;align-items:center;padding:42px clamp(20px,6vw,72px) 18px}.album-detail-header__avatar{width:132px;height:132px;font-size:3rem}.album-detail-header__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.album-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,220px) minmax(180px,220px) auto;gap:12px;align-items:end;padding:28px clamp(20px,6vw,72px) 0}.memory-shell{min-height:100vh;background:#f4f7f5;color:#18201d}.memory-shell--embedded{min-height:auto;overflow:hidden;margin:34px clamp(20px,6vw,72px) 0;border:1px solid #cbded4;border-radius:8px;background:#fff}.memory-nav{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:18px 72px;background:#18201d;color:#fff}.memory-nav a{font-weight:800;text-decoration:none}.memory-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(520px,.8fr);gap:28px;align-items:end;border-bottom:1px solid #d6dfd8;padding:44px 72px 34px;background:#fff}.memory-shell--embedded .memory-hero{padding:30px 28px 24px;background:#fbfefd}.memory-hero h1{max-width:860px;margin:0;font-size:3.45rem;line-height:1.05}.memory-shell--embedded .memory-hero h1{font-size:2.45rem}.memory-hero p:not(.eyebrow){max-width:760px;margin:18px 0 0;color:#40504a;line-height:1.8}.memory-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.memory-stats div{display:grid;gap:8px;min-height:88px;border:1px solid #d6dfd8;border-radius:8px;padding:16px;background:#f8fbf9}.memory-stats dd{color:#0c6b57;font-size:1.45rem;font-weight:800}.memory-shell>.notice{margin:18px 72px 0}.memory-shell--embedded>.notice{margin:18px 24px 0}.memory-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:22px;padding:32px 72px}.memory-workspace--readonly{grid-template-columns:1fr}.memory-shell--embedded .memory-workspace{padding:24px}.memory-map-panel,.memory-form{border:1px solid #d6dfd8;border-radius:8px;background:#fff}.memory-map-panel{padding:24px}.memory-japan-map-panel{overflow-x:auto;margin-top:22px;border:1px solid #d6dfd8;border-radius:8px;padding:10px;background:#f8fbf9}.memory-japan-map-panel__header{margin-bottom:14px}.memory-japan-map-panel__header h3{margin:0;font-size:1.15rem}.memory-japan-map-panel__header p{margin:8px 0 0;color:#40504a;line-height:1.6}.memory-japan-map{position:relative;isolation:isolate;width:100%;min-width:760px;aspect-ratio:1000 / 889;margin:0 auto;border:1px solid #d6dfd8;border-radius:8px;background:linear-gradient(180deg,#fafafa,#f7faf8)}.memory-japan-map__prefecture{position:absolute;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;border:2px solid #18201d;border-radius:6px;padding:0 4px;background:#f1f3f2;color:#33413b;box-shadow:0 4px 10px #18201d1f;font-weight:800;font-size:.86rem;text-align:center;transition:box-shadow .18s ease,filter .18s ease,transform .18s ease}.memory-japan-map__prefecture:hover{z-index:2;box-shadow:0 8px 18px #18201d2e;filter:brightness(1.04);transform:translateY(-2px) scale(1.03)}.memory-japan-map__prefecture--wide{padding-right:8px;padding-left:8px}.memory-japan-map__prefecture--wide span{font-size:.92rem}.memory-japan-map__prefecture--vertical{writing-mode:horizontal-tb}.memory-japan-map__prefecture--vertical span{writing-mode:vertical-rl;text-orientation:upright}.memory-japan-map__prefecture--island{border-radius:8px}.memory-japan-map__prefecture--region-hokkaido{background:#86c5f4;color:#13231d}.memory-japan-map__prefecture--region-tohoku{background:#aaa2ff;color:#13231d}.memory-japan-map__prefecture--region-kanto{background:#c6eeee;color:#13231d}.memory-japan-map__prefecture--region-chubu{background:#95dd71;color:#13231d}.memory-japan-map__prefecture--region-kinki{background:#d7ff12;color:#13231d}.memory-japan-map__prefecture--region-chugoku{background:#f09af1;color:#13231d}.memory-japan-map__prefecture--region-shikoku{background:#f4a900;color:#13231d}.memory-japan-map__prefecture--region-kyushu{background:#ff7377;color:#13231d}.memory-japan-map__prefecture--low strong{border-color:#a9d2bf;background:#e8f6ef;color:#0c6b57}.memory-japan-map__prefecture--mid strong{border-color:#6cb391;background:#cdeedc;color:#084f40}.memory-japan-map__prefecture--high strong{border-color:#0c6b57;background:#0c6b57;color:#fff}.memory-japan-map__prefecture span{line-height:1.1;overflow-wrap:anywhere}.memory-japan-map__prefecture strong{display:inline-grid;flex:0 0 auto;place-items:center;min-width:20px;height:16px;border-radius:8px;border:1px solid rgba(24,32,29,.12);background:#ffffffe6;color:#18201d;font-size:.72rem;line-height:1}.memory-japan-map__prefecture--active{outline:3px solid #e2694f;outline-offset:2px;z-index:3}.memory-ranking{margin-top:24px;border-top:1px solid #e2e8e4;padding-top:20px}.memory-ranking h3{margin:0 0 12px;font-size:1.15rem}.memory-ranking p{margin:0;color:#40504a}.memory-ranking ol{display:grid;gap:8px;margin:0;padding-left:20px}.memory-ranking button{display:inline-flex;min-height:36px;align-items:center;justify-content:space-between;gap:12px;width:100%;border-color:#d6dfd8;background:#fbfcfb;color:#18201d}.memory-ranking span{color:#0c6b57;font-weight:800}.memory-form{align-content:start;padding:24px}.memory-form h2,.memory-records h2{margin:0;font-size:1.7rem;line-height:1.18}.memory-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,220px) minmax(180px,240px) auto;gap:12px;align-items:end;border-top:1px solid #d6dfd8;border-bottom:1px solid #d6dfd8;padding:22px 72px;background:#fff}.memory-shell--embedded .memory-filter-bar{padding:20px 24px}.memory-records{padding:36px 72px 64px}.memory-shell--embedded .memory-records{padding:28px 24px 32px}.memory-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}.memory-shell--embedded .memory-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-card{display:grid;overflow:hidden;border:1px solid #d6dfd8;border-radius:8px;background:#fff}.memory-card>img{width:100%;aspect-ratio:16 / 10;object-fit:cover}.memory-card__body{display:grid;gap:14px;padding:18px}.memory-card__meta,.memory-card__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.memory-card__meta{justify-content:space-between;color:#66736d;font-size:.86rem;font-weight:800}.memory-card__meta span{border-radius:8px;padding:5px 9px;background:#e8f6ef;color:#0c6b57}.memory-card h3{margin:0;font-size:1.35rem;line-height:1.28}.memory-card dl{gap:9px}.memory-card dl div{grid-template-columns:76px minmax(0,1fr);gap:10px}.memory-card p{margin:0;color:#40504a;line-height:1.7}.memory-card__actions a{display:inline-flex;min-height:40px;align-items:center;border:1px solid #0c6b57;border-radius:8px;padding:0 14px;color:#0c6b57;font-weight:800;text-decoration:none}.memory-card__actions button{min-height:40px}.memory-empty{margin:24px 0 0;color:#40504a;font-weight:800}.album-stream-list{display:grid;gap:14px;margin-top:24px}.album-stream{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;border:1px solid #cbded4;border-radius:8px;padding:18px;background:#fff}.album-stream time{color:#0c6b57;font-weight:800;line-height:1.5}.album-stream h3{margin:0 0 14px;font-size:1.35rem;line-height:1.3}.album-stream dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.album-stream dl div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px}.album-stream p{margin:14px 0 0;color:#40504a;line-height:1.7}.album-stream a{margin-top:16px}.album-not-found{padding:52px clamp(20px,6vw,72px)}.album-not-found a{margin-top:24px}.admin-shell{min-height:100vh;padding:clamp(24px,5vw,64px);background:#f5f7f1}.login-panel{width:min(100%,520px);margin:8vh auto 0;border:1px solid #d5d9d1;border-radius:8px;padding:clamp(24px,4vw,40px);background:#fff}.login-panel h1,.admin-header h1{margin:0;font-size:clamp(2rem,3rem,3.4rem);line-height:1.05}.login-panel p:not(.eyebrow){margin:16px 0 24px;color:#40504a;line-height:1.7}.google-login{min-height:44px;margin-top:20px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-form{display:grid;align-content:start;gap:16px;border:1px solid #d5d9d1;border-radius:8px;padding:clamp(20px,3vw,28px);background:#fff}.admin-form h2,.admin-lists h2{margin:0;font-size:1.5rem}.admin-form--wide{grid-column:1 / -1}form{display:grid;gap:16px}label{display:grid;gap:8px;color:#40504a;font-size:.9rem;font-weight:800}input,select,textarea{width:100%;border:1px solid #c8cec5;border-radius:8px;padding:12px 13px;background:#fff;color:#18201d}textarea{resize:vertical}button{min-height:44px;border:1px solid #18201d;border-radius:8px;padding:0 18px;background:#18201d;color:#fff;font-weight:800}button:disabled{border-color:#9ca69f;background:#9ca69f;cursor:not-allowed}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.button-secondary{background:transparent;color:#18201d}.button-danger{border-color:#8a1f1f;background:#8a1f1f;color:#fff}.notice{margin:0 0 20px;border:1px solid #9fcabf;border-radius:8px;padding:14px 16px;background:#e7f4f0;color:#0c4f40;font-weight:800}.notice--error{border-color:#e5a4a4;background:#fff0f0;color:#8a1f1f}.import-meta{margin:0;color:#40504a;line-height:1.6}.admin-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.admin-lists>div{border:1px solid #d5d9d1;border-radius:8px;padding:clamp(20px,3vw,28px);background:#fff}.table-list{display:grid;gap:10px;margin-top:16px}.table-list article,.table-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;border:1px solid #e0e4dc;border-radius:8px;padding:14px;background:#fbfcf9;color:#18201d;text-align:left}.table-list__item{min-height:auto;width:100%}.table-list__select{min-height:auto;border:0;padding:0;background:transparent;color:#18201d;text-align:left}.table-list__select:hover{color:#0c6b57}.table-list__delete{min-height:36px;padding:0 12px}.table-list__item:hover,.table-list__item--active{border-color:#0c6b57;background:#e7f4f0}.table-list span{grid-column:1 / -1;color:#66736d;overflow-wrap:anywhere}@media(max-width:860px){.hero,.stream-grid,.streamer-grid,.album-index-header,.album-card-grid,.group-card-grid,.group-detail-header,.group-detail-stats .group-stats,.album-stats,.album-detail-header,.album-filters,.memory-hero,.memory-stats,.memory-workspace,.memory-filter-bar,.memory-card-grid,.album-stream,.admin-grid,.admin-lists{grid-template-columns:1fr}.admin-header{align-items:flex-start;flex-direction:column}.hero{min-height:auto}.hero__image{min-height:260px;max-height:360px}.album-index-header h1,.album-detail-header h1,.album-not-found h1,.memory-hero h1{font-size:2.35rem}.memory-nav,.memory-hero,.memory-workspace,.memory-filter-bar,.memory-records{padding-right:20px;padding-left:20px}.memory-shell--embedded{margin-right:20px;margin-left:20px}.memory-shell--embedded .memory-card-grid{grid-template-columns:1fr}.memory-shell>.notice{margin-right:20px;margin-left:20px}.album-detail-header__avatar{width:104px;height:104px;font-size:2.4rem}.album-stream dl{grid-template-columns:1fr}}
