:root{--red: #E8181A;--red-dim: #9c0f10;--black: #0A0A0A;--dark: #111111;--card: #161616;--border: #242424;--text: #E8E8E8;--muted: #666;--done: #1a9c3e;--done-bg: #0d2318;--accent: #ff4d00}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;height:auto}body{background:var(--black);color:var(--text);font-family:DM Sans,sans-serif;min-height:100vh;position:relative}header{position:relative;padding:48px 24px 36px;text-align:center;border-bottom:1px solid var(--border);overflow:hidden}header:before{content:"";position:absolute;top:-60px;left:50%;transform:translate(-50%);width:600px;height:200px;background:radial-gradient(ellipse,rgba(232,24,26,.18) 0%,transparent 70%);pointer-events:none}.label{font-family:Space Mono,monospace;font-size:11px;letter-spacing:.25em;color:var(--red);text-transform:uppercase;margin-bottom:10px}h1{font-family:Bebas Neue,sans-serif;font-size:clamp(52px,10vw,96px);line-height:.9;letter-spacing:.04em;color:var(--text)}h1 span{color:var(--red)}.subtitle{margin-top:14px;font-size:13px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:Space Mono,monospace}.tab-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 16px;margin-top:24px;padding:0 20px}.tab-btn{font-family:Space Mono,monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--border);padding:8px 16px;border-radius:4px;cursor:pointer;transition:all .2s}.tab-btn:hover{color:var(--text);border-color:#444}.tab-btn.active{color:#fff;border-color:var(--red);background:#e8181a1a}.progress-wrap{max-width:860px;margin:32px auto 0;padding:0 24px}.progress-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.progress-meta .done-count{font-family:Bebas Neue,sans-serif;font-size:28px;color:var(--red)}.progress-meta .total-label{font-family:Space Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.1em}.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--red),var(--accent));border-radius:2px;transition:width .4s ease}main{max-width:860px;margin:0 auto;padding:40px 20px 120px}.exercise{margin-bottom:32px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);transition:border-color .3s}.exercise.all-done{border-color:var(--done)}.exercise-header{display:flex;align-items:center;gap:16px;padding:20px 24px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.exercise-header:hover{background:#ffffff05}.ex-number{font-family:Bebas Neue,sans-serif;font-size:36px;line-height:1;color:var(--border);min-width:44px;transition:color .3s}.exercise.all-done .ex-number{color:var(--done)}.ex-info{flex:1}.ex-name{font-family:Bebas Neue,sans-serif;font-size:22px;letter-spacing:.06em;color:var(--text);line-height:1}.ex-progress{margin-top:4px;font-family:Space Mono,monospace;font-size:10px;color:var(--muted);letter-spacing:.1em}.chevron{width:20px;height:20px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease;flex-shrink:0}.exercise-header[aria-expanded=true] .chevron{transform:rotate(180deg)}.exercise-body{display:none;padding:0 24px 28px}.exercise-body.open{display:block}.script-block{background:#ffffff08;border:1px solid var(--border);border-radius:8px;padding:16px 18px;margin-bottom:20px}.script-label{font-family:Space Mono,monospace;font-size:9px;letter-spacing:.2em;color:var(--red);text-transform:uppercase;margin-bottom:10px}.script-steps{list-style:none;display:flex;flex-direction:column;gap:6px}.script-steps li{font-size:13.5px;color:#aaa;padding-left:16px;position:relative;line-height:1.5}.script-steps li:before{content:"›";position:absolute;left:0;color:var(--red-dim);font-size:16px;line-height:1.2}.shots-label{font-family:Space Mono,monospace;font-size:9px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;margin-bottom:12px}.shot-item{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;border-radius:8px;margin-bottom:8px;border:1px solid var(--border);background:#0000004d;cursor:pointer;transition:background .2s,border-color .2s;outline:none}.shot-item:hover{background:#ffffff08;border-color:#333}.shot-item.checked{background:var(--done-bg);border-color:var(--done)}.check-box{width:20px;height:20px;border-radius:5px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:border-color .2s,background .2s}.shot-item.checked .check-box{border-color:var(--done);background:var(--done)}.check-box svg{display:none}.shot-item.checked .check-box svg{display:block}.shot-text{flex:1;font-size:13.5px;color:#ccc;line-height:1.5;transition:color .2s}.shot-item.checked .shot-text{color:#5fcf7e;text-decoration:line-through;text-decoration-color:#5fcf7e66}.ref-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.ref-label{font-family:Space Mono,monospace;font-size:9px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:10px}.ref-label:after{content:"";flex:1;height:1px;background:var(--border)}.ref-images{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ref-img-card{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:#0e0e0e;aspect-ratio:16 / 9;cursor:pointer;transition:border-color .2s,transform .15s}.ref-img-card:hover{border-color:#555;transform:scale(1.015)}.ref-img-card img{width:100%;height:100%;object-fit:contain;display:block}.ref-caption{position:absolute;bottom:0;left:0;right:0;padding:18px 10px 7px;background:linear-gradient(transparent,#000000d9);font-family:Space Mono,monospace;font-size:8.5px;color:#999;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.exercise.hero .exercise-header{background:linear-gradient(135deg,rgba(232,24,26,.12),transparent);border-bottom:1px solid rgba(232,24,26,.2)}.exercise.hero .ex-number{color:var(--red)}.exercise.hero{border-color:#e8181a59}.exercise.hero.all-done{border-color:var(--done)}.hero-badge{font-family:Space Mono,monospace;font-size:9px;background:var(--red);color:#fff;padding:2px 8px;border-radius:20px;letter-spacing:.1em;text-transform:uppercase;margin-left:auto;margin-right:12px;flex-shrink:0}.reset-wrap{text-align:center;margin-top:40px}.reset-btn{font-family:Space Mono,monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);background:transparent;padding:10px 24px;border-radius:6px;cursor:pointer;transition:color .2s,border-color .2s}.reset-btn:hover{color:var(--text);border-color:#555}.completion-banner{display:none;text-align:center;padding:32px 24px;margin:24px 0;border:1px solid var(--done);border-radius:12px;background:var(--done-bg)}.completion-banner.show{display:block}.completion-banner h2{font-family:Bebas Neue,sans-serif;font-size:48px;color:#5fcf7e;letter-spacing:.08em}.completion-banner p{font-family:Space Mono,monospace;font-size:11px;color:#5fcf7e;opacity:.6;margin-top:6px;letter-spacing:.1em}.lightbox{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000f0;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}.lightbox.open{display:flex}.lightbox-inner{position:relative;max-width:900px;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 30px 80px #000000e6;cursor:default}.lightbox-inner img{width:100%;display:block;max-height:80vh;object-fit:contain;background:#111}.lightbox-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:#000000bf;border:1px solid #555;color:#ccc;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1}.lightbox-cap{background:#111;padding:10px 16px;font-family:Space Mono,monospace;font-size:10px;color:#555;letter-spacing:.08em;text-transform:uppercase}@media (max-width: 600px){header{padding:36px 16px 28px}main{padding:28px 14px 64px}.exercise-header{padding:16px;gap:12px}.exercise-body{padding:0 16px 22px}.ex-name{font-size:19px}.ex-number{font-size:30px;min-width:36px}.ref-images{grid-template-columns:1fr 1fr;gap:8px}}
