:root{font-family:Inter,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;color:#352d29;background:#fffaf5;font-synthesis:none;line-height:1.5;--accent: #df6042;--accent-dark: #a93b25;--surface: #fff;--soft: #fff0e5;--line: #eaded6;--danger: #b42318}*{box-sizing:border-box}html{min-width:320px;background:#fffaf5}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:.55rem .85rem;color:inherit;background:var(--surface);cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #287bc1;outline-offset:2px}a{color:var(--accent-dark)}img{display:block;max-width:100%}label{display:grid;gap:.4rem;font-weight:650}input,textarea,select{width:100%;min-height:48px;padding:.7rem .8rem;border:1px solid #bcaea6;border-radius:10px;background:#fff;color:#352d29}textarea{resize:vertical}h1,h2,p{overflow-wrap:anywhere}h1{font-size:clamp(1.45rem,6vw,2.1rem)}h2{font-size:1.08rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.primary-button{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:750}.primary-button:disabled{opacity:.55}.danger-button{color:#fff;background:var(--danger);border-color:var(--danger)}.danger-link{color:var(--danger);background:transparent;border:0}.link-button{min-height:44px;padding:.3rem;color:var(--accent-dark);background:transparent;border:0}.error-message{color:var(--danger);padding:.7rem;border-left:4px solid var(--danger);background:#fff0ef}.notice{padding:.7rem;background:#edf8ef;border-left:4px solid #34834a}.busy{min-height:40vh;display:flex;align-items:center;justify-content:center;gap:.75rem}.busy span{width:1.2rem;height:1.2rem;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-panel,.empty-state{max-width:36rem;min-height:70vh;margin:auto;padding:3rem 1.25rem;display:grid;align-content:center;justify-items:center;text-align:center}.auth-page{min-height:100vh;padding:max(1.5rem,env(safe-area-inset-top)) 1rem;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#ffe2cf,transparent 45%),#fffaf5}.auth-card{width:min(100%,28rem);padding:1.5rem;background:#fffffff0;border:1px solid var(--line);border-radius:24px;box-shadow:0 18px 60px #5a36231f}.auth-card h1{margin:0 0 1.4rem;font-size:2.5rem;letter-spacing:.05em}.auth-card form,.stack-form{display:grid;gap:1rem}.eyebrow{margin:0;color:var(--accent-dark);font-weight:750}.help-text{margin:1.5rem 0 0;color:#71645d;font-size:.9rem}.app-shell{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.app-header{position:sticky;z-index:20;top:0;height:56px;padding:0 1rem;display:flex;align-items:center;justify-content:space-between;background:#fffaf5f0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.logout-control{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.logout-error{max-width:15rem;color:var(--danger);font-size:.75rem;line-height:1.25}.brand{color:#352d29;text-decoration:none;font-size:1.2rem;font-weight:850;letter-spacing:.06em}.app-main{width:min(100%,52rem);margin:auto}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding:4px max(.3rem,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(.3rem,env(safe-area-inset-right));display:grid;grid-template-columns:repeat(5,1fr);background:#fffffff7;border-top:1px solid var(--line)}.bottom-nav a{min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#655852;font-size:.68rem;text-decoration:none;border-radius:12px}.bottom-nav a span{font-size:1.25rem;line-height:1}.bottom-nav a.active{color:var(--accent-dark);background:var(--soft);font-weight:750}.bottom-nav .primary-nav span{width:34px;height:34px;display:grid;place-items:center;color:#fff;background:var(--accent);border-radius:50%}.timeline-heading{position:sticky;z-index:10;top:56px;background:#fffaf5;border-bottom:1px solid var(--line)}.timeline-heading h1{margin:0;padding:.8rem 1rem .4rem;font-size:1.3rem}.month-tabs{display:flex;gap:.35rem;padding:.35rem .75rem .65rem;overflow-x:auto;scrollbar-width:none}.month-tabs button{flex:0 0 auto;min-height:44px;border:0;background:transparent}.month-tabs button[aria-selected=true]{color:#fff;background:var(--accent);font-weight:750}.timeline-post{margin-bottom:3px;background:var(--surface)}.collage{display:grid;gap:3px;background:var(--line);overflow:hidden}.collage a{min-height:0;background:#e6ddd7;overflow:hidden}.collage img{width:100%;height:100%;object-fit:cover;aspect-ratio:1}.collage.one{grid-template-columns:1fr}.collage.one img{max-height:min(80vh,45rem);aspect-ratio:auto;object-fit:contain;background:#eee6e0}.collage.two{grid-template-columns:repeat(2,1fr)}.collage.three{grid-template-columns:1.4fr 1fr;grid-template-rows:repeat(2,1fr)}.collage.three a:first-child{grid-row:1 / span 2}.collage.many{grid-template-columns:repeat(3,1fr)}.post-meta{min-height:44px;padding:.4rem .8rem;display:flex;align-items:center;justify-content:flex-end;gap:.65rem;color:#62554e;text-decoration:none;font-size:.82rem}.unread-dot{width:9px;height:9px;margin-right:auto;border-radius:50%;background:#2684c7}.load-more{display:block;min-width:12rem;margin:2rem auto}.form-page,.list-page,.admin-page{padding:1rem 1rem 3rem}.form-page{display:grid;gap:1rem}.file-picker{min-height:108px;place-items:center;padding:1rem;color:var(--accent-dark);background:var(--soft);border:2px dashed #d6987f;border-radius:16px}.file-picker input{max-width:100%;border:0;background:transparent}.confirmation{display:grid;grid-template-columns:auto 1fr;gap:.8rem 1rem;padding:1rem;background:#fff;border-radius:16px}.confirmation dt{color:#71645d}.confirmation dd{margin:0;font-weight:750}.audience-confirm{color:var(--accent-dark);font-size:1.15rem}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.upload-progress{padding:1rem;background:#fff;border-radius:16px}.upload-progress progress{width:100%;height:1rem;accent-color:var(--accent)}.detail-header{min-height:56px;display:flex;align-items:center;justify-content:space-between;padding:.3rem .6rem}.detail-header h1{margin:0;font-size:1.15rem}.post-date{margin:0;padding:.45rem .8rem;color:#62554e;background:#fff;font-size:.88rem}.post-date time{margin-left:.35rem;font-weight:650}.caption{margin:0;padding:1rem;white-space:pre-wrap;background:#fff}.reactions{padding:.8rem;display:flex;gap:.5rem;background:#fff;border-top:1px solid var(--line)}.reactions button[aria-pressed=true]{background:var(--soft);border-color:var(--accent)}.comments{padding:.8rem;background:#fff;border-top:1px solid var(--line)}.comment{padding:.8rem 0;border-bottom:1px solid var(--line)}.comment p{margin:.3rem 0;white-space:pre-wrap}.comment.reply{margin-left:2rem;padding-left:.75rem;border-left:3px solid var(--line)}.comments form{margin-top:1rem}.reply-notice{padding:.4rem .6rem;background:var(--soft)}.form-footer{margin-top:.4rem;display:flex;align-items:center;justify-content:space-between;color:#71645d;font-size:.85rem}.viewer-open{overflow:hidden}.viewer{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;background:#000;overflow:hidden;touch-action:pan-y pinch-zoom}.viewer .busy{color:#fff}.viewer-image{max-width:100vw;max-height:100vh;object-fit:contain;transition:transform .16s ease}.viewer-controls{position:absolute;z-index:3;top:0;left:0;right:0;min-height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) .75rem 0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#000b,transparent)}.viewer-controls button,.viewer-controls a{min-width:54px;color:#fff;background:#222b;border:0;border-radius:10px;text-align:center;text-decoration:none;padding:.7rem}.viewer-thumbs{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));display:flex;gap:.4rem;overflow-x:auto;background:linear-gradient(transparent,#000c)}.viewer-thumbs button{flex:0 0 58px;width:58px;height:58px;min-height:58px;padding:2px;overflow:hidden;background:#222;border:2px solid transparent;border-radius:7px}.viewer-thumbs button[aria-current=true]{border-color:#fff}.viewer-thumbs img{width:100%;height:100%;object-fit:cover}.inline-form{display:grid;grid-template-columns:1fr auto;gap:.5rem}.card-list{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem}.card-list li{min-height:64px;padding:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:14px}.card-list li div{min-width:0;display:grid;gap:.2rem}.card-list small{color:#71645d}.card-list code{display:block;max-width:100%;padding:.3rem;overflow-x:auto;background:#f6f1ed}.invitation-result{margin-top:1rem;padding:1rem;background:var(--soft);border:1px solid var(--accent);border-radius:14px}.invitation-result p{margin:.5rem 0}.invitation-url{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.invitation-actions{margin-top:.7rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.admin-link{display:block;margin-top:2rem;padding:1rem;text-align:center;font-weight:750;background:var(--soft);border-radius:14px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.metric-grid article{min-height:110px;padding:.7rem;display:grid;place-content:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:14px}.metric-grid strong{font-size:1.5rem}.metric-grid span{color:#71645d;font-size:.75rem}.metric-grid .warning{background:#fff5cc;border-color:#d4a817}.metric-grid .critical{background:#ffebe8;border-color:var(--danger)}@media (min-width: 53rem){.bottom-nav{left:50%;width:52rem;transform:translate(-50%);border-left:1px solid var(--line);border-right:1px solid var(--line)}.app-main{border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:calc(100vh - 56px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
