:root{--bg:#121212;--surface-0:#181818;--surface-1:#1f1f1f;--surface-2:#252525;--surface-alt:#272727;--accent:#1ed760;--accent-pressed:#1db954;--accent-glow:#1ed76059;--brand:var(--accent);--brand-dim:var(--accent-pressed);--brand-glow:var(--accent-glow);--text-main:#fff;--text-dim:#b3b3b3;--text-muted:#b3b3b3;--text-emphasis:#fdfdfd;--text-negative:#f3727f;--text-warning:#ffa42b;--text-announcement:#539df5;--danger:#f3727f;--success:var(--accent);--warning:#ffa42b;--border-strong:#4d4d4d;--border-muted:#7c7c7c;--border:1px solid #4d4d4d99;--border-focus:1px solid #000;--shadow-inset-input:#121212 0px 1px 0px, #7c7c7c 0px 0px 0px 1px inset;--radius-card:8px;--radius-pill:9999px;--radius-pill-lg:500px;--radius-sm:6px;--radius-md:8px;--radius-lg:8px;--shadow-elevated:#0000004d 0px 8px 8px;--shadow-dialog:#00000080 0px 8px 24px;--shadow-sm:var(--shadow-elevated);--shadow-md:var(--shadow-elevated);--glass:blur(14px);--glass-bg:#181818d9;--sidebar-left-width:275px;--sidebar-right-width:350px;--container-max:100%;--header-height:4.5rem;--font-title:"Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic", sans-serif;--font-body:var(--font-title);--font-heading:var(--font-title);--font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);background-color:var(--bg);color:var(--text-main);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.4}body{background:var(--bg);min-height:100vh;line-height:1.4}a{color:var(--text-dim);text-decoration:none;transition:color .15s,opacity .15s}a:hover{color:var(--text-main)}button{cursor:pointer;border:none;font-family:inherit}.app-shell{justify-content:stretch;width:100%;min-height:100vh;display:flex}.app-container{grid-template-columns:var(--sidebar-left-width) minmax(0, 1fr) var(--sidebar-right-width);width:100%;max-width:var(--container-max);gap:0;min-width:0;display:grid}.app-sidebar-left{border-right:var(--border);background:var(--bg);flex-direction:column;height:100vh;padding:1rem 2rem 1rem 1rem;display:flex;position:sticky;top:0}.app-main-content{border-right:var(--border);background:var(--bg);min-width:0;min-height:100vh}.app-sidebar-right{background:var(--bg);flex-direction:column;gap:1.5rem;height:100vh;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.app-main{width:100%;padding:1rem 1.5rem}.site-header{display:none}.site-brand{font-family:var(--font-title);color:var(--accent);-webkit-text-fill-color:var(--accent);letter-spacing:-.02em;font-size:1.5rem;font-weight:700;text-decoration:none}.nav-pills{gap:.5rem;display:flex}.nav-pill{border-radius:var(--radius-pill);color:var(--text-dim);padding:.5rem 1rem;font-size:.875rem;font-weight:400;transition:background .15s,color .15s}.nav-pill:hover{color:var(--text-main);background:var(--surface-1)}.nav-pill--active{color:var(--text-main);background:0 0;font-weight:700}.h1{font-family:var(--font-title);margin-bottom:.5rem;font-size:1.5rem;font-weight:700;line-height:1.2}.h2{font-family:var(--font-body);margin-bottom:1rem;font-size:1.125rem;font-weight:600;line-height:1.3}.lead{color:var(--text-dim);margin-bottom:1.5rem;font-size:1rem;font-weight:400;line-height:1.45}.card{background:var(--surface-0);border-radius:var(--radius-card);box-shadow:none;border:none;padding:1.5rem;transition:background .15s,box-shadow .15s}.card:hover{box-shadow:var(--shadow-elevated);background:#1e1e1e}.card+.card{margin-top:1rem}.card--announcement{border:1px dashed var(--text-announcement);background:#539df514}.card--announcement-muted{background:var(--surface-1);border:1px dashed var(--border-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.stack>*{animation:.4s ease-out both fadeIn}.stack>:first-child{animation-delay:50ms}.stack>:nth-child(2){animation-delay:.1s}.stack>:nth-child(3){animation-delay:.15s}.stack>:nth-child(4){animation-delay:.2s}.btn{border-radius:var(--radius-pill);letter-spacing:.14px;background:var(--surface-1);color:var(--text-main);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:700;transition:background .15s,color .15s,transform .15s;display:inline-flex}.btn--primary{background:var(--accent);color:#000;box-shadow:none;text-transform:uppercase;letter-spacing:1.4px;font-weight:700}.btn--primary:hover{background:var(--accent-pressed);transform:scale(1.02)}.btn--ghost{color:var(--text-dim);background:0 0}.btn--ghost:hover{color:var(--text-main);background:var(--surface-1)}.btn--outline{color:var(--text-main);border:1px solid var(--border-muted);background:0 0}.btn--outline:hover{border-color:var(--text-dim);background:var(--surface-1)}.btn--sm{padding:.35rem .75rem;font-size:.75rem}.input,.textarea{background:var(--surface-1);box-shadow:var(--shadow-inset-input);color:var(--text-main);border-radius:var(--radius-pill-lg);border:none;width:100%;padding:.75rem 1rem;font-size:.875rem;transition:box-shadow .15s,outline .15s}.textarea{border-radius:var(--radius-md);resize:vertical;min-height:6rem}.input:focus,.textarea:focus{outline-offset:0;box-shadow:var(--shadow-inset-input), 0 0 0 1px #000;outline:1px solid #000}select.input{border-radius:var(--radius-sm);cursor:pointer}a.btn{text-decoration:none}.form-label{color:var(--text-dim);margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-error{color:var(--text-negative);font-size:.875rem}.post-author-link{color:var(--text-main);font-weight:700}.post-meta{color:var(--text-muted);font-size:.875rem}.post-body{color:var(--text-main);margin:.75rem 0;font-size:1rem;line-height:1.45}.post-image{border-radius:var(--radius-md);border:none;max-width:100%;margin-top:1rem}.pill-tabs{background:var(--surface-0);border-radius:var(--radius-pill);gap:.25rem;width:fit-content;margin-bottom:1.5rem;padding:.25rem;display:flex}.pill-tabs .btn{border-radius:var(--radius-pill);color:var(--text-dim);text-transform:none;letter-spacing:normal;background:0 0;font-weight:600}.pill-tabs .btn--primary{background:var(--surface-1);color:var(--text-main);box-shadow:none}.text-announcement{color:var(--text-announcement)}.text-negative{color:var(--text-negative)}.surface-search{background:var(--surface-1);border-radius:var(--radius-pill)}@media (width<=640px){.site-header__inner{flex-direction:column;gap:1rem;height:auto;padding:1rem}.h1{font-size:1.35rem}}
