:root{--bg:#f6f5ef;--ink:#1a1a18;--rust:#8b3a2a;--lime:#b5ec43;--forecast-green:#739e32;--lime-hi:#8bc34a;--steel:#1c1c1c;--track:#dce3cf;--muted:#5a6354;--warn:#c47a22;--pad:16px;--max:1120px}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;padding:var(--pad);max-width:var(--max);margin-inline:auto;background:var(--bg);color:var(--ink);font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;}
header.page-header,main,footer#contact{width:100%}
section.hero{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:40px;padding:8px 0 12px;align-items:start}
.status-panel{min-width:0}.play-panel{width:400px;max-width:100%;justify-self:end;font-size:14px}
.status-line{margin:0 0 6px}#headline{font-family:"Kaiti SC","STKaiti","KaiTi","楷体",serif;color:var(--rust);white-space:normal;margin:0 0 4px;}#headline-en{display:block;color:var(--muted);margin:0 0 8px}#fact-line{margin:0 0 8px;}a.hero-source{color:var(--ink);text-underline-offset:3px}
section#prediction{margin:8px 0 10px}#prediction .tu-meter{width:100%;height:10px;border-radius:6px;background:var(--track);overflow:hidden;margin:0}#prediction .tu-meter-fill{display:block;height:100%;width:0;background:#739e32;border-radius:6px;transition:width 1.2s cubic-bezier(.16,1,.3,1)}small.forecast-badge{display:inline-block;margin-top:6px;font-size:13px;color:var(--muted);background:transparent}
.elapsed-board{margin:8px 0 0}.elapsed-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 6px}.elapsed-digits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.elapsed-digits strong{display:block;font-variant-numeric:tabular-nums;line-height:1}.elapsed-digits small{font-size:14px;font-weight:600;color:#4d574e}#elapsed-at{font-size:13px;color:#5a6354;margin:6px 0 0}
.personal,.feedback-controls{margin-top:8px}
section#updates{margin:28px 0 16px}.section-head h2{margin:0}#tibo-updates .tu-health{font-size:14px;color:var(--muted);margin:8px 0}.tu-switch{display:flex;gap:8px;margin:8px 0 12px}.tu-switch button{min-height:44px;padding:8px 14px;background:var(--steel);color:var(--lime-hi);border:2px solid #111;border-radius:4px;font-family:inherit;cursor:pointer}#tibo-updates .tu-list{list-style:none;margin:0;padding:0}.tu-item{border-bottom:1px solid #c9cfc0;padding:20px 0}.tu-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--muted);margin:0 0 6px}.tu-sum{line-height:1.65;margin:0}.tu-scope{font-size:14px;color:#5a6354;margin:6px 0}.tu-cat{display:inline;color:#1e4d28;background:transparent;padding:0}.tu-review{color:#8a5a12}.tu-src>summary,.tu-more>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:14px}.tu-src>summary::-webkit-details-marker,.tu-more>summary::-webkit-details-marker{display:none}.tu-src>summary::before,.tu-more>summary::before{content:"▸";margin-right:6px;font-size:13px}details[open]>.tu-src>summary::before,details[open]>summary::before{content:"▾"}.tu-rawbox,.tu-raw,.tu-parent{white-space:pre-wrap;word-break:break-word;max-width:100%;line-height:1.6;font-size:14px}.tu-group-items{padding-left:16px;border-left:2px solid #c5ccb8;margin:8px 0;list-style:none}
footer#contact{margin-top:24px;padding-top:12px;font-size:16px}.contact-icon svg{fill:none;stroke:currentColor;stroke-width:1.6}
@media(max-width:950px) and (min-width:701px){section.hero{grid-template-columns:minmax(0,1fr) 350px;gap:28px}.play-panel{width:350px;max-width:100%}}
@media(max-width:700px){section.hero{grid-template-columns:1fr;gap:16px}.play-panel{width:100%;justify-self:stretch}.tu-item{padding:14px 0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}#prediction .tu-meter-fill{transition:none}}

#prediction .tu-meter{height:6px;max-width:none;margin-top:10px;background:rgba(32,38,34,.12);border-radius:999px}#prediction .tu-meter-fill{background:#739e32;border-radius:inherit}
#tibo-updates .tu-sum{line-height:1.65}#tibo-updates .tu-cat{font-size:14px;background:none;padding:0}#tibo-updates .tu-review{color:#87541b}#tibo-updates .tu-btn{background:transparent;color:#394331;border:1px solid #c7cebe;border-radius:6px;font-size:14px}#tibo-updates .tu-btn[aria-pressed="true"]{background:#253126;color:#eff6e4;border-color:#253126}
.elapsed-digits small span{display:none}.elapsed-board{padding-top:16px;margin-top:20px}.hero-source{margin-top:0;margin-bottom:8px}.play-panel .tally{padding-top:16px;margin-top:10px}.tally-label span{font-size:14px}.contact-icon svg *{fill:none}
@media(max-width:700px){.elapsed-board{padding-top:12px;margin-top:14px}.elapsed-label small{flex-basis:100%}}

#prediction .tu-forecast-detail{margin:0}#prediction summary.tu-pred{list-style:none;cursor:pointer;width:fit-content;min-height:44px}#prediction summary.tu-pred::-webkit-details-marker{display:none}#prediction summary.tu-pred::after{content:"ⓘ";font-family:system-ui,sans-serif;font-size:14px;color:#69785b;vertical-align:super;margin-left:10px;letter-spacing:0}#prediction .tu-forecast-context{font-size:14px;color:#596057;border-left:2px solid #c9d3bc;padding-left:12px;margin:8px 0}#prediction .tu-forecast-context p{margin:4px 0}

@media(max-width:700px){.status-panel .elapsed-board{display:block}.elapsed-digits{margin-top:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.elapsed-label small{flex-basis:auto}.elapsed-digits>span{min-width:0}.elapsed-label{gap:4px 8px}}

#tibo-updates .tu-src>summary:focus-visible,#tibo-updates .tu-more>summary:focus-visible{outline:3px solid #1e4d28;outline-offset:3px;border-radius:4px}
.header-end{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.header-contact{display:flex;align-items:center;gap:8px}
.header-contact .contact-icon{display:grid;place-items:center;width:36px;height:36px;color:#202622;border-radius:8px}
.header-contact .contact-icon:focus-visible{outline:3px solid #1e4d28;outline-offset:2px}
.header-contact .is-pending{opacity:.55;cursor:default}

#prediction .tu-meter-fill{background:#739e32}
.elapsed-digits strong{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em}
/* Every digit sits in the machine's own material: a dark flip card, one per digit, on the same
   shared box height, so the four cards sit on one line and the four labels stay aligned no
   matter what a card is doing. */
.elapsed-digits strong{display:flex;align-items:center;justify-content:center;height:1.32em;box-sizing:border-box}
.elapsed-digits strong{padding:0 .2em;gap:.05em;border-radius:.24em;background:#161a17;color:#f6f5ef;box-shadow:inset 0 0 0 1px rgba(246,245,239,.14)}
.elapsed-digits strong>.fc{position:relative;width:.6em;height:1em;perspective:180px;font-variant-numeric:tabular-nums}
.elapsed-digits strong>.fc-plain{display:flex;align-items:center;justify-content:center;width:auto;background:none}
.elapsed-digits strong .fc-half{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:linear-gradient(#242b25,#191f1a)}
.elapsed-digits strong .fc-half-top{top:0;border-radius:.16em .16em 0 0}
.elapsed-digits strong .fc-half-bottom{bottom:0;border-radius:0 0 .16em .16em}
.elapsed-digits strong .fc-top,.elapsed-digits strong .fc-bottom,.elapsed-digits strong .fc-glyph-front,.elapsed-digits strong .fc-glyph-back{position:absolute;left:0;width:100%;height:200%;display:flex;align-items:center;justify-content:center;line-height:1}
.elapsed-digits strong .fc-top,.elapsed-digits strong .fc-glyph-front{top:0}
.elapsed-digits strong .fc-bottom,.elapsed-digits strong .fc-glyph-back{top:-100%}
.elapsed-digits strong .fc-leaf{top:0;z-index:2;transform-origin:50% 100%;transform-style:preserve-3d;visibility:hidden;border-radius:.16em .16em 0 0;background:linear-gradient(#242b25,#1b211c)}
.elapsed-digits strong .fc-face{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;border-radius:.16em .16em 0 0}
.elapsed-digits strong .fc-face-back{transform:rotateX(180deg);border-radius:0 0 .16em .16em}
.elapsed-digits strong>.fc::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:rgba(246,245,239,.18);z-index:3;pointer-events:none}
.elapsed-digits strong>.fc.is-flip .fc-leaf{visibility:visible;animation:fc-fall .42s cubic-bezier(.55,.06,.4,.95) forwards}
@keyframes fc-fall{from{transform:rotateX(0)}to{transform:rotateX(-180deg)}}
@media(prefers-reduced-motion:reduce){.elapsed-digits strong>.fc.is-flip .fc-leaf{visibility:hidden;animation:none}}
#tibo-updates .tu-coverage{font-size:13px;color:#5a6354;margin:0 0 8px}
#tibo-updates .tu-coverage summary{cursor:pointer;min-height:44px;line-height:44px;font-size:13px;color:#5a6354}
#tibo-updates .tu-coverage p{margin:0 0 8px;font-size:13px;color:#4d574e;line-height:1.6}
#tibo-updates .tu-eng{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:6px 0 0;font-size:13px;color:#596057}
#tibo-updates .tu-eng-item{display:inline-flex;align-items:baseline;gap:5px}
#tibo-updates .tu-eng-k{font-size:13px;color:#596057}
#tibo-updates .tu-eng-v{font-variant-numeric:tabular-nums;font-weight:600;color:#394331}
.pacific-now{display:block;width:max-content;max-width:calc(100% - 96px);margin:31px auto 0;padding:4px 12px;border-radius:5px;background:#10140f;border:1px solid rgba(246,245,239,.16);box-shadow:inset 0 1px 3px rgba(0,0,0,.55);text-align:center;font:600 13px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;font-variant-numeric:tabular-nums;color:#dce7c8}
.key-cn{font-size:15px;font-weight:700;letter-spacing:0;max-width:100%;line-height:1.15;text-wrap:balance}
@media(max-width:700px){.page-header{flex-wrap:wrap}.brand{order:1;flex:1 1 auto}.header-end{display:contents}.header-contact{order:2}.header-end nav{order:3;width:100%}.key-cn{font-size:14px}}
/* TASK-010: the desktop grid carries the left stack (status → prediction → elapsed → next reset)
   beside the machine column, so the elapsed board hands straight over to #next-reset instead of
   waiting for the taller right column. Mobile keeps the shipped document order; no component is
   duplicated, hidden or absolutely placed. */
@media(min-width:701px){
  main{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,400px);column-gap:var(--hero-gutter);row-gap:32px;align-items:start}
  main>section.hero{display:contents}
  .status-panel{grid-column:1;grid-row:1}
  .play-panel{grid-column:2;grid-row:1/span 2}
  /* The server-rendered facts paragraph follows the hero in the document (mobile order); on the
     desktop grid it takes the left column of row 2, so 下次重置 moves one row down and the first
     screen keeps exactly the layout it had before. */
    #next-reset{grid-column:1;grid-row:2;margin:0 0 32px}
  section#updates{grid-column:1/-1;grid-row:3;margin:0}
  section#history{grid-column:1/-1;grid-row:4;margin:32px 0 0}
}
@media(min-width:951px){main{grid-template-columns:minmax(0,1fr) 400px;column-gap:var(--hero-gutter)}}
.clocks #clock-pt{color:#596057;font-weight:700}
@media(max-width:700px){
  .pacific-now{margin-top:32px;padding:3px 10px;font-size:13px;max-width:calc(100% - 56px)}
  .machine{height:268px}
  #tibo-updates .tu-btn{padding:8px 10px;font-size:14px;white-space:nowrap}
  
}
/* Release B: the record archive is one real, visible link from the homepage footer. */
.foot-link{margin:4px 0 0}
.foot-note{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--muted-ink)}
.foot-link a{color:inherit}
/* 概率区块 Phase 1（TASK-016）：口径与节奏常显，已预告时改显示确定性一行。 */
#prediction .tu-pred-scope,#prediction .tu-pred-cadence{font-size:13px;line-height:1.45;color:#596057;margin:6px 0 0;max-width:34rem}
@media(max-width:700px){
  #prediction .tu-pred-scope,#prediction .tu-pred-cadence
  #prediction .tu-pred-defer
  .status-panel #prediction .tu-pred-scope,.status-panel #prediction .tu-pred-cadence,.status-panel #prediction .tu-pred-defer{grid-column:1/-1}
}

#reset-key{font-size:16px} /* 显式声明：消除 button 继承 UA 默认 13.33px 的越阶假象（键帽文字都在子元素里，肉眼无变化） */
/* 标题与字体规格（TASK-017 + DESIGN.md）：全站唯一来源。
   文字层 h2 20/700 → h3 30/700 → h1 48/800；数据层 display 60/48/36/30（≤ h1×1.25）。
   旧声明已从 key/page/updates/refinement/reset-page 剥离（字号/字重/字色），只剩布局属性。
   品牌例外（图形元素，不参与字号阶）：#headline 楷体、#headline-en Georgia、.etch/.key-en/.key-cn 机器刻字。 */
:root{--font-cn:system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--font-num:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--muted-ink:#596057;--space-group:8px;--space-block:24px;--hero-gutter:48px}
html,body{font-family:var(--font-cn);font-size:16px;line-height:1.6}
#headline{font-size:48px;line-height:1.25;font-weight:700;letter-spacing:0}
#headline-en{font-size:16px}
#status-label,#prediction .tu-h,.tally-label,.elapsed-label,#next-reset .section-head h2{font-family:var(--font-cn);font-size:20px;font-weight:600;line-height:1.25;letter-spacing:0;color:var(--ink)}
#updates .section-head h2,#history .section-head h2,h2{font-family:var(--font-cn);font-size:30px;font-weight:600;line-height:1.25;letter-spacing:0;color:var(--ink)}
#status-en,#prediction .tu-h small,.tally-label span,.elapsed-label small,.section-head h2 small,h2 small{display:inline;font-family:var(--font-cn);font-size:14px;font-weight:500;letter-spacing:.03em;color:var(--muted-ink);margin-left:8px;line-height:inherit}
#elapsed-at,#history-coverage,#prediction .tu-pred-note,#prediction .tu-pred-scope{font-size:13px;font-weight:400;line-height:1.5;color:var(--muted-ink)}
#next-label{font-size:14px;font-weight:500;color:var(--muted-ink)}
#fact-line{font-size:16px;font-weight:600;line-height:1.6}
#hype-count,.tally strong,#clock-bj,#clock-pt,.elapsed-digits strong,#prediction .tu-pred{font-family:var(--font-num);font-variant-numeric:tabular-nums}
#clock-bj,#clock-pt{font-weight:700}
#hype-count,.tally strong{font-size:60px;font-weight:700;line-height:1}
#prediction .tu-pred{margin:8px 0;font-size:48px;font-weight:700;line-height:1;letter-spacing:-.055em;color:#c45a12}
#prediction .tu-pred-pending{font-size:20px;font-weight:600;line-height:1.4;letter-spacing:0}
#prediction .tu-pred-defer{margin:8px 0 0;font-size:16px;font-weight:600;color:var(--ink)}
.elapsed-digits strong{font-size:36px;font-weight:700}
#clock-bj{font-size:30px}#clock-pt{font-size:24px}
.tu-sum,#tibo-updates .tu-sum{font-size:16px}
/* TASK-018 · G2：五个区块「标签→内容」统一 8px。只给"承担间距的元素"加 margin，不给行内标签加（避免撑高同一行）。
   桌面区块之间由 @media(min-width:701px) 的 main 栅格 row-gap 统一；移动端由下面这条 margin 统一 24px。 */
.status-line,#prediction .tu-h,.tally-label,.elapsed-label{margin-bottom:var(--space-group)}
section#prediction,section.elapsed-board,.play-panel,#next-reset,section#updates,section#history{margin-top:var(--space-block);margin-bottom:0}
@media(min-width:701px){
/* 桌面：区块间距由栅格 row-gap 统一，清掉上面的 margin-top，避免"双重间距" */
section#prediction,section.elapsed-board,.play-panel,#next-reset,section#updates,section#history{margin-top:0;margin-bottom:0}
}
@media(max-width:700px){
#status-label,#prediction .tu-h,.tally-label,.elapsed-label,#next-reset .section-head h2{font-size:18px}
#updates .section-head h2,#history .section-head h2,h2{font-size:24px}
#headline{font-size:36px}
#headline-en{font-size:14px}
#hype-count,.tally strong{font-size:48px}
#prediction .tu-pred{font-size:36px}
.clocks #clock-bj,.clocks #clock-pt{font-size:24px}
#prediction .tu-pred-pending{font-size:20px}
.elapsed-digits strong{font-size:30px;font-weight:700}
#status-en,#prediction .tu-h small,.tally-label span,.elapsed-label small,.section-head h2 small,h2 small{font-size:14px;display:inline;margin-left:8px}
}
@supports not (display:contents){@media(max-width:700px){.brand{order:1}.header-end{order:2;display:flex;width:100%;justify-content:space-between}.header-contact{order:1}.header-end nav{order:2;width:auto}}}
/* TASK-012: hero 顶部社区视频小窗。深色机芯小屏语言（同翻页卡 #161a17 + 内嵌高光边），
   纸面页上独立成立；封面待机、点击才播放（无 autoplay），原生 controls 只在实际播放时出现，
   文件全部自托管（CSP media-src 'self' 不变）。 */
.hero-video{margin:0 0 14px;max-width:640px}
.hero-video-screen{position:relative;background:#161a17;border-radius:10px;padding:6px;box-shadow:inset 0 0 0 1px rgba(246,245,239,.14)}
.hero-video-screen video{display:block;width:100%;height:auto;border-radius:6px;background:#10140f}
.video-play{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;border-radius:6px;border:1px solid #10140f;background:#202622;color:#f6f5ef;font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:0 2px 0 #0b0e0b}
.video-play:active{transform:translateX(-50%) translateY(1px);box-shadow:0 1px 0 #0b0e0b}
.video-play:focus-visible{outline:3px solid #1e4d28;outline-offset:3px}
.video-play[hidden]{display:none}
.hero-video figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:6px 0 0;font-size:13px;color:#4c5548}
.hero-video figcaption a{color:inherit;text-underline-offset:3px}
@media(max-width:700px){.hero-video{max-width:none}}
