:root{--color-primary: #15803d;--color-primary-hover: #166534;--color-secondary: #5f6368;--color-background: #ffffff;--color-surface: #f6f8f6;--color-error: #d93025;--color-text-primary: #1b1f1c;--color-text-secondary: #5f6368;--color-accent-log: #0f172a;--color-border: #c9d3ca;--font-body: system-ui, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--rounded-sm: 4px;--rounded-md: 8px;--rounded-lg: 16px;--rounded-pill: 999px;--shadow-bubble: 0 1px 2px rgba(0, 0, 0, .07), 0 2px 6px rgba(0, 0, 0, .06)}body{margin:0;font-family:var(--font-body);color:var(--color-text-primary);background:var(--color-background);line-height:1.7}.container{max-width:40rem;margin:0 auto;padding:var(--space-md)}h1{font-size:28px;line-height:1.3}.app-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--color-primary);margin:0 calc(-1 * var(--space-md)) var(--space-md);padding:var(--space-md);border-radius:0 0 var(--rounded-lg) var(--rounded-lg);box-shadow:var(--shadow-bubble)}.app-bar h1{margin:0;color:#fff}.sub{color:var(--color-text-secondary);font-size:14px}.mono{font-family:var(--font-mono);font-size:14px}.log-band{background:var(--color-accent-log);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--rounded-sm)}.guide-box{background:var(--color-surface);border-radius:var(--rounded-sm);padding:var(--space-md);margin-bottom:var(--space-xl)}.guide-box ul{margin:var(--space-sm) 0 0;padding-left:var(--space-lg)}.guide-box li{margin-bottom:var(--space-sm)}.post-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--rounded-lg);border-bottom-left-radius:var(--rounded-sm);box-shadow:var(--shadow-bubble);padding:var(--space-md);margin-bottom:var(--space-md);white-space:pre-wrap;overflow-wrap:anywhere}.post-meta{padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px dashed var(--color-border)}button.primary{background:var(--color-primary);color:#fff;border:0;border-radius:var(--rounded-pill);padding:var(--space-sm) var(--space-lg);font-size:16px;font-weight:600;cursor:pointer}button.primary:hover{background:var(--color-primary-hover)}button.primary:disabled{opacity:.5;cursor:not-allowed}textarea{width:100%;box-sizing:border-box;background:var(--color-background);border:1px solid var(--color-secondary);color:var(--color-text-primary);font-family:var(--font-body);font-size:16px;padding:var(--space-sm) var(--space-md);border-radius:var(--rounded-md)}.countdown{font-size:40px;line-height:1.1;letter-spacing:.05em;font-variant-numeric:tabular-nums;color:var(--color-accent-log);padding:var(--space-sm) 0}.countdown[data-imminent=true]{color:var(--color-primary)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-sm);margin:var(--space-md) 0}.stat{background:var(--color-surface);border-radius:var(--rounded-md);padding:var(--space-sm) var(--space-md)}.stat-num{font-family:var(--font-mono);font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums}.stat-num.loop{color:var(--color-primary)}.stat-num.fail{color:var(--color-error)}.stat-label{font-size:12px;color:var(--color-text-secondary)}.legend{display:flex;flex-wrap:wrap;gap:var(--space-md);font-size:12px;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:baseline}.legend .lg-dialogue:before{background:var(--color-accent-log)}.legend .lg-loop:before{background:var(--color-primary)}.legend .lg-fail:before{background:var(--color-error)}.timeline{position:relative;margin:var(--space-md) 0;padding:0;list-style:none}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--color-border);transform:translate(-1px)}.tl-item{position:relative;width:46%;margin-bottom:var(--space-md);background:var(--color-surface);border-radius:var(--rounded-md);padding:var(--space-sm) var(--space-md);border-left:4px solid var(--color-accent-log)}.tl-item.lane-dialogue{margin-right:auto}.tl-item.lane-loop{margin-left:auto;border-left-color:var(--color-primary)}.tl-item.is-fail{border-left-color:var(--color-error)}.tl-item:after{content:"";position:absolute;top:18px;width:11px;height:11px;border-radius:50%;background:var(--color-accent-log);border:2px solid var(--color-background)}.tl-item.lane-dialogue:after{right:-8.5%}.tl-item.lane-loop:after{left:-8.5%;background:var(--color-primary)}.tl-item.is-fail:after{background:var(--color-error)}.tl-when{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary)}.tl-tag{display:inline-block;font-size:11px;padding:1px var(--space-sm);border-radius:var(--rounded-sm);background:var(--color-background);color:var(--color-text-secondary);margin-right:6px}.tl-title{font-size:14px;margin:4px 0}@media (max-width: 640px){.timeline:before{left:6px}.tl-item{width:auto;margin-left:var(--space-lg)}.tl-item.lane-dialogue,.tl-item.lane-loop{margin-right:0;margin-left:var(--space-lg)}.tl-item.lane-dialogue:after,.tl-item.lane-loop:after{left:calc(-1 * var(--space-lg) - 3px);right:auto}}html[data-theme=retro]{--color-primary: #22c55e;--color-primary-hover: #16a34a;--color-background: #000000;--color-surface: #001a06;--color-text-primary: #22ff66;--color-text-secondary: #16a34a;--color-accent-log: #003b12;--color-border: #145214;--font-body: var(--font-mono)}html[data-theme=retro] .post-item,html[data-theme=retro] .guide-box,html[data-theme=retro] .stat,html[data-theme=retro] .tl-item,html[data-theme=retro] .app-bar{border:1px dashed var(--color-primary)}html[data-theme=retro] textarea{background:#000}html[data-theme=retro] h1:after{content:"_";animation:retro-blink 1s steps(1) infinite}@keyframes retro-blink{50%{opacity:0}}.lane-heads{display:none}@media (min-width: 641px){.lane-heads{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-bottom:var(--space-sm);font-size:12px;font-weight:600}.lane-heads .lh-dialogue{text-align:right;color:var(--color-accent-log)}.lane-heads .lh-loop{color:var(--color-primary)}}
