/* ===== Scene 09 · Training Camp v2 · 每日训练空间 =====
   不是课程中心 2.0。是训练基地。
   首屏 = 今天 DAY X。用户一秒知道：这里练，不这里学。
   Visual Language v1.0: Less UI More Space */

* { margin:0; padding:0; box-sizing:border-box; }

:root{
  --bg:#05070A; --panel:#10131A; --panel2:#171B24;
  --gold:#FFD45A; --gold2:#FFF0A6; --gold-deep:#B87816;
  --text:#FFF6E3; --muted:#C9B98E; --dim:#7F7255;
  --green:#5a9a5a; --line:rgba(255,212,90,0.35);
  --font-lishu:"华文隶书","STLiti","LiSu","Source Han Serif SC","SimSun",serif;
  --font-songti:"Noto Serif SC","Source Han Serif SC","SimSun",serif;
}

body{background:var(--bg);color:var(--text);font-family:var(--font-songti);font-size:18px;line-height:2;overflow-x:hidden;}
.bg-glow{position:fixed;top:0;left:50%;width:80vw;height:60vh;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 40%,rgba(255,212,90,0.15),transparent 60%);pointer-events:none;z-index:0;}
.bg-vignette{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 50%,rgba(0,0,0,0.55) 100%);}
.camp{max-width:760px;margin:0 auto;padding:0 24px 80px;position:relative;z-index:1;}

/* ===== 今日训练（首屏 · 一秒入训练）===== */
.today{min-height:85vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 24px;}
.eyebrow{font-size:clamp(16px,2.4vw,20px);color:var(--gold);letter-spacing:.2em;font-weight:bold;margin-bottom:28px;font-family:var(--font-lishu);}
.today h1{font-family:var(--font-lishu);font-size:clamp(48px,7vw,80px);font-weight:400;letter-spacing:.1em;color:var(--gold2);line-height:1.2;text-shadow:0 0 24px rgba(255,212,90,.38);margin-bottom:0;}
.head-line{width:200px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:32px auto;}
.creed{font-size:clamp(18px,2.8vw,24px);color:var(--text);letter-spacing:4px;font-weight:300;margin-bottom:16px;}
.camp-name{font-size:clamp(14px,2vw,17px);color:var(--muted);letter-spacing:3px;font-family:var(--font-lishu);}

/* 今日进度条 */
.today-progress{margin-top:48px;width:100%;max-width:400px;}
.tp-bar{width:100%;height:14px;background:#232733;border:1px solid rgba(255,212,90,.25);border-radius:7px;overflow:hidden;margin-bottom:10px;}
.tp-fill{height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold2));box-shadow:0 0 20px rgba(255,212,90,.35);transition:width .6s ease;}
.tp-text{font-size:16px;color:var(--gold2);font-weight:bold;font-family:'JetBrains Mono',monospace;letter-spacing:2px;}

/* ===== Day Timeline（训练日历）===== */
.day-timeline{margin-top:72px;padding:28px;background:rgba(255,255,255,.025);border-left:4px solid var(--gold-deep);border-radius:0 4px 4px 0;}
.tl-track{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;}
.tl-node{display:flex;flex-direction:column;align-items:center;gap:6px;}
.tl-num{font-size:13px;color:var(--muted);letter-spacing:1px;font-family:'JetBrains Mono',monospace;}
.tl-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;border:2px solid;}
.tl-done .tl-dot{border-color:var(--green);color:var(--green);background:rgba(90,154,90,.15);}
.tl-done .tl-num{color:var(--green);}
.tl-current .tl-dot{border-color:var(--gold);color:var(--gold);background:rgba(255,212,90,.15);box-shadow:0 0 16px rgba(255,212,90,.3);}
.tl-current .tl-num{color:var(--gold2);font-weight:bold;}
.tl-future .tl-dot{border-color:var(--dim);color:var(--dim);}
.tl-future .tl-num{color:var(--dim);}
.tl-line{width:36px;height:2px;margin:0 4px;margin-bottom:22px;}
.tl-line-done{background:var(--green);}
.tl-line-future{background:var(--dim);opacity:0.3;}

/* ===== Today's Insight ===== */
.insight{margin-top:72px;padding:32px;background:rgba(255,212,90,.04);border-left:4px solid var(--gold);border-radius:0 4px 4px 0;}
.insight-prompt{font-size:19px;color:var(--gold2);letter-spacing:2px;font-weight:300;margin-bottom:20px;font-style:italic;}
.insight-input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);font-family:inherit;font-size:18px;padding:16px;border-radius:4px;resize:none;line-height:2;}
.insight-input:focus{outline:none;border-color:var(--gold);}
.insight-input::placeholder{color:var(--dim);}
.insight-save{margin-top:16px;padding:10px 24px;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:16px;letter-spacing:3px;cursor:pointer;font-family:inherit;transition:all .3s;border-radius:2px;}
.insight-save:hover{background:var(--gold);color:var(--bg);}
.insight-saved{margin-top:12px;font-size:16px;color:var(--green);letter-spacing:2px;}

/* ===== Graduation（毕业仪式）===== */
.graduation{margin-top:72px;padding:80px 40px;text-align:center;background:linear-gradient(145deg,rgba(255,212,90,.06),rgba(90,154,90,.04));border:1px solid rgba(255,212,90,.3);border-radius:8px;position:relative;overflow:hidden;}
.grad-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,212,90,.15),transparent 60%);pointer-events:none;}
.grad-label{color:var(--gold);font-size:16px;letter-spacing:.2em;font-weight:bold;font-family:'JetBrains Mono',monospace;margin-bottom:24px;position:relative;}
.grad-title{font-family:var(--font-lishu);font-size:clamp(48px,7vw,80px);font-weight:400;color:var(--gold2);letter-spacing:.2em;text-shadow:0 0 30px rgba(255,212,90,.4);position:relative;}
.grad-line{width:180px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:32px auto;position:relative;}
.grad-camp-name{font-size:clamp(20px,3vw,28px);color:var(--text);letter-spacing:4px;font-family:var(--font-lishu);margin-bottom:20px;position:relative;}
.grad-complete{font-size:24px;color:var(--green);font-weight:bold;letter-spacing:3px;font-family:'JetBrains Mono',monospace;margin-bottom:32px;position:relative;}
.grad-message{font-size:clamp(18px,2.6vw,22px);color:var(--gold-soft);letter-spacing:3px;font-weight:300;line-height:2.2;margin-bottom:40px;position:relative;white-space:nowrap;}
.grad-badge{display:inline-block;padding:16px 40px;border:2px solid var(--gold);background:rgba(255,212,90,.1);color:var(--gold2);font-size:22px;letter-spacing:4px;font-family:var(--font-lishu);border-radius:4px;margin-bottom:40px;position:relative;box-shadow:0 0 28px rgba(255,212,90,.2);}
.grad-next{font-size:18px;color:var(--gold);letter-spacing:4px;font-weight:300;position:relative;}

/* ===== 训练任务 ===== */
.tasks{padding:20px 0;}
.hall-label{display:block;font-size:15px;color:var(--gold);letter-spacing:.16em;font-weight:bold;margin-bottom:16px;font-family:'JetBrains Mono',monospace;}

.task-item{padding:32px;background:linear-gradient(145deg,var(--panel2),#080A0F);border:1px solid rgba(255,212,90,.15);margin-bottom:28px;transition:all .4s;opacity:0.5;}
.task-item.done{opacity:1;border-color:rgba(90,154,90,.3);background:linear-gradient(145deg,rgba(90,154,90,.06),#080A0F);}
/* 第一个任务默认 active */
.task-item:first-child{opacity:1;border-color:rgba(255,212,90,.35);box-shadow:0 0 20px rgba(255,212,90,.06);}
.task-item:first-child.done{border-color:rgba(90,154,90,.3);box-shadow:none;}
/* 后续任务：前一个完成后才亮 */
.task-item.done + .task-item{opacity:1;border-color:rgba(255,212,90,.35);box-shadow:0 0 20px rgba(255,212,90,.06);}

.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,212,90,.1);}
.task-label{font-size:16px;color:var(--gold);letter-spacing:.14em;font-weight:bold;font-family:'JetBrains Mono',monospace;}
.task-time{font-size:14px;color:var(--muted);letter-spacing:1px;}
.task-text{font-size:19px;color:var(--text);letter-spacing:1px;font-weight:300;line-height:2;margin-bottom:24px;}
.task-check{padding:10px 24px;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:16px;letter-spacing:4px;cursor:pointer;font-family:inherit;transition:all .3s;border-radius:2px;}
.task-check:hover:not(:disabled){background:var(--gold);color:var(--bg);}
.task-check:disabled{background:rgba(90,154,90,.15);border-color:var(--green);color:var(--green);cursor:default;}

/* ===== 复盘 ===== */
.reflection{margin-top:72px;padding:32px;background:rgba(255,255,255,.025);border-left:4px solid var(--gold);border-radius:0 4px 4px 0;}
.reflect-prompt{font-size:18px;color:var(--text);letter-spacing:2px;font-weight:300;margin-bottom:20px;}
.reflect-input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--text);font-family:inherit;font-size:17px;padding:16px;border-radius:4px;resize:vertical;line-height:2;}
.reflect-input:focus{outline:none;border-color:var(--gold);}
.reflect-input::placeholder{color:var(--dim);}
.reflect-save{margin-top:16px;padding:10px 24px;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:16px;letter-spacing:3px;cursor:pointer;font-family:inherit;transition:all .3s;border-radius:2px;}
.reflect-save:hover{background:var(--gold);color:var(--bg);}
.reflect-saved{margin-top:12px;font-size:16px;color:var(--green);letter-spacing:2px;}

/* ===== 完成今日 ===== */
.complete-day{margin-top:56px;text-align:center;}
.complete-btn{width:100%;padding:20px 30px;border:0;border-radius:2px;font-size:21px;font-weight:bold;letter-spacing:.14em;cursor:pointer;font-family:inherit;transition:all .4s;background:linear-gradient(180deg,var(--gold2),var(--gold));color:#05070A;box-shadow:0 0 42px rgba(255,212,90,.32);}
.complete-btn:hover:not(:disabled){box-shadow:0 0 60px rgba(255,212,90,.5);transform:translateY(-2px);}
.complete-btn:disabled{opacity:0.3;cursor:not-allowed;transform:none;box-shadow:none;}
.complete-hint{margin-top:14px;font-size:15px;color:var(--dim);letter-spacing:2px;}

/* ===== 明日预告 ===== */
.tomorrow{margin-top:72px;padding:28px;background:rgba(255,255,255,.025);border-left:4px solid var(--gold-deep);border-radius:0 4px 4px 0;}
.tomorrow .hall-label{color:var(--gold-deep);}
.tomorrow-text{font-size:20px;color:var(--muted);letter-spacing:2px;font-weight:300;}

/* ===== 训练营切换（极简 · 底部）===== */
.camp-switch{margin-top:72px;text-align:center;}
.cs-label{display:block;font-size:15px;color:var(--muted);letter-spacing:3px;margin-bottom:16px;font-family:var(--font-lishu);}
.cs-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.cs-btn{padding:8px 18px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:14px;letter-spacing:2px;cursor:pointer;font-family:var(--font-lishu);border-radius:2px;transition:all .3s;}
.cs-btn:hover{border-color:var(--gold);color:var(--gold2);}
.cs-btn.active{border-color:var(--gold);color:#05070A;background:var(--gold);}

/* ===== Roadmap ===== */
.roadmap{text-align:center;padding:56px 24px;border-top:1px solid var(--line);margin-top:56px;}
.roadmap-flow{display:flex;align-items:center;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:24px;}
.rf-node{padding:8px 18px;border:1px solid var(--line);color:var(--muted);font-size:14px;letter-spacing:3px;border-radius:2px;font-family:var(--font-lishu);text-decoration:none;transition:all .3s;}
.rf-node:hover{border-color:var(--gold);}
.rf-current{border-color:var(--gold);color:#05070A;background:linear-gradient(180deg,var(--gold2),var(--gold));font-weight:bold;}
.rf-future{opacity:0.4;}
.rf-arrow{color:var(--gold-deep);font-size:14px;}
.roadmap-text{color:var(--gold2);font-size:clamp(16px,2.4vw,20px);letter-spacing:4px;font-weight:300;}
.foot-link{color:var(--gold2);text-decoration:none;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:2px;}
.foot-sep{color:var(--dim);margin:0 10px;}

@media(max-width:600px){
  .camp{padding:0 16px 60px;}
  .today h1{letter-spacing:.06em;}
  .task-item{padding:24px 20px;}
  .complete-btn{font-size:18px;padding:16px;}
}
