/* CORNER / training expansion: lightweight CSS depth, no rendering engine. */
#sidebar{padding-top:24px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#424c36 transparent}.brand{margin-bottom:26px;flex-shrink:0}.sidebar-label{flex-shrink:0}#navigation{flex:0 0 auto}.nav-button{min-height:38px;padding-top:8px;padding-bottom:8px;font-size:12px}.sidebar-note{margin-top:25px;flex-shrink:0}.athlete-card{margin-top:22px;flex-shrink:0}.app-shell{background:radial-gradient(ellipse at 100% 0,#26351b44,transparent 40%)}.lab-hero{position:relative;display:grid;grid-template-columns:1.1fr 1fr;min-height:310px;margin:12px 0 28px;padding:36px 40px;overflow:hidden;border:1px solid #4a5c3555;border-radius:18px;background:radial-gradient(ellipse at 85% 30%,#5e76242b,transparent 60%),linear-gradient(120deg,#22291b,#121710 72%);box-shadow:0 22px 50px #0003,inset 0 1px #ffffff0c}.lab-hero:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#b7d88605 1px,transparent 1px),linear-gradient(90deg,#b7d88605 1px,transparent 1px);background-size:42px 42px}.lab-hero-copy{position:relative;z-index:2}.lab-hero .eyebrow{font-size:9px;letter-spacing:2px}.lab-hero h2{font-family:'Barlow Condensed',sans-serif;font-size:64px;line-height:.98;letter-spacing:-.5px;margin:20px 0 16px}.lab-hero h2 em{font-style:normal;color:var(--lime)}.lab-hero p{font-size:12px;color:#aeb7a4;max-width:350px}.hero-metrics{display:flex;gap:28px;margin-top:25px}.hero-metrics span{font-size:8px;letter-spacing:1px;color:var(--muted)}.hero-metrics b{display:block;font-family:'Space Grotesk',sans-serif;font-size:23px;letter-spacing:-1px;color:var(--text);line-height:1.3}.ring-scene{position:relative;min-width:0;min-height:260px;perspective:800px;pointer-events:none;isolation:isolate}.training-ring{position:absolute;left:50%;top:48%;width:220px;height:220px;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(57deg) rotateZ(-32deg);animation:ring-breathe 9s ease-in-out infinite}.ring-canvas{position:absolute;inset:0;border:3px solid #9ab75e;background:repeating-linear-gradient(0deg,transparent 0 27px,#a8c85b13 28px 29px),repeating-linear-gradient(90deg,#263320 0 27px,#a8c85b13 28px 29px);box-shadow:12px 18px 0 #131a0f,15px 23px 0 #3d4b2c,35px 60px 35px #0008,inset 0 0 60px #b1d65c18;display:grid;place-items:center;transform-style:preserve-3d}.ring-canvas>span{font:700 25px 'Space Grotesk',sans-serif;color:#d5f38c44;letter-spacing:1px;transform:rotate(90deg)}.ring-rope{position:absolute;inset:-1px;border:2px solid #d4fb75bb;box-shadow:0 0 8px #d4fb751c;transform:translateZ(24px);pointer-events:none}.rope-two{transform:translateZ(44px);border-color:#b1c88caa}.rope-three{transform:translateZ(64px)}.ring-post{position:absolute;width:6px;height:68px;background:linear-gradient(90deg,#768a53,#dbefb8,#7b9254);transform-origin:bottom;transform:rotateX(-90deg);top:-66px;left:0;box-shadow:0 0 8px #b4dd5b33}.post-b{left:214px}.post-c{top:148px}.post-d{top:148px;left:214px}.ring-foot{position:absolute;width:19px;height:43px;border:1px solid #e2ff9f;border-radius:60% 45% 35% 40%;background:#d4fb75aa;box-shadow:0 0 24px #d4fb7555;transform:rotate(30deg)}.ring-foot.lead{left:75px;top:61px}.ring-foot.rear{left:125px;top:120px;transform:rotate(60deg);opacity:.65}.ring-orbit{position:absolute;left:50%;top:50%;width:320px;height:230px;border:1px dashed #b2d36c26;border-radius:50%;transform:translate(-50%,-50%) rotate(-25deg)}.scene-caption{position:absolute;bottom:0;left:0;width:100%;text-align:center;font-size:8px;letter-spacing:3px;color:#a1b77a}.lab-defense,.lab-counters{background:radial-gradient(ellipse at 85% 30%,#466d8a30,transparent 60%),linear-gradient(120deg,#1e2828,#111711 72%)}.lab-ko{background:radial-gradient(ellipse at 85% 30%,#865c392e,transparent 60%),linear-gradient(120deg,#29231b,#151510 72%)}
.library-tools{padding:20px;background:#1b2018b8;border:1px solid var(--line);border-radius:12px;margin:20px 0 14px}.search-wrap{display:flex;align-items:center;gap:12px}.search-wrap>.icon{color:var(--lime)}.search-wrap input{background:transparent;border:0;padding:8px 0;box-shadow:none;width:100%;min-width:0}.library-selects{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding-top:14px;margin-top:10px;border-top:1px solid var(--line)}.library-selects label{margin:0;min-width:150px;flex:1;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.library-selects select{margin-top:5px;text-transform:none;letter-spacing:0}.library-count{font-size:12px;color:var(--lime);margin:20px 0}.library-count span{color:var(--muted)}.training-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.technique-card{position:relative;background:linear-gradient(135deg,#242b1d55,#1a1e17);border:1px solid #343d2b;border-radius:13px;overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;min-width:0;display:flex;flex-direction:column;box-shadow:0 5px 0 #080b0766,0 12px 22px #0002}.technique-art{min-height:147px;position:relative;padding:17px 18px 33px;background:radial-gradient(ellipse at 70% 10%,#89ac2b17,transparent 80%),linear-gradient(150deg,#242e1d,#151a12);border-bottom:1px solid #38442b80;display:flex;align-items:center;justify-content:center;overflow:hidden}.catalog-index{position:absolute;left:17px;top:13px;font-size:8px;letter-spacing:1.6px;text-transform:uppercase;color:#adb89d;max-width:90%}.level-chip{position:absolute;bottom:12px;left:17px;font-size:8px;letter-spacing:1.3px;color:#c7d7a8;text-transform:uppercase}.level-intermediate{color:var(--blue)}.level-advanced{color:var(--orange)}.level-expert{color:var(--purple)}.technique-emblem{transform:perspective(300px) rotateY(-18deg) rotateZ(-12deg);display:grid;place-items:center;width:65px;height:65px;margin:20px 0 0;color:#d4fb75ba;border:1px solid #a1bd6d55;background:linear-gradient(135deg,#45562e,#1c2617);box-shadow:5px 6px 0 #0d1409,8px 9px 0 #3d4d2a,12px 15px 15px #0004;border-radius:16px}.technique-emblem .icon{width:32px;height:32px}.technique-copy{padding:20px;display:flex;flex-direction:column;flex:1}.technique-copy h3{font-size:17px;font-weight:600;letter-spacing:-.35px;margin-bottom:9px}.technique-copy>p:not(.athlete-credit){font-size:12px;color:var(--muted);margin-bottom:24px}.technique-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:auto;border-top:1px solid var(--line);padding-top:15px;flex-wrap:wrap}.technique-actions .text-link{font-size:11px}.technique-actions .tiny{font-size:8px;letter-spacing:1px}.favorite-button{font-size:9px!important;padding:6px 8px!important}.is-favorite{color:var(--lime)!important;border-color:#b1d36988!important;background:#b1d36912!important}.athlete-credit{font-size:10px!important;color:var(--lime)!important;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}.pagination{display:flex;gap:20px;align-items:center;justify-content:center;padding:30px 0;font-size:12px}.number-key{border:1px solid #465435;background:linear-gradient(130deg,#29331e55,#1a1e16);border-radius:12px;padding:16px 20px;margin:20px 0}.number-key summary{cursor:pointer;color:var(--lime);font-size:11px;letter-spacing:1px}.number-key summary span{float:right;font-size:10px;color:var(--muted);letter-spacing:0}.number-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:20px}.number-grid>div{border:1px solid var(--line);padding:10px;border-radius:8px;background:#11160d}.number-grid b{display:block;font:600 26px 'Barlow Condensed',sans-serif;color:var(--lime)}.number-grid span{font-size:10px}.number-key p{font-size:12px;color:var(--muted);margin-top:16px}.punch-chain{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;max-width:100%;padding:22px 0 7px}.punch-token{min-width:36px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #697e46;background:linear-gradient(145deg,#39442b,#20291a);color:#e0f4bb;border-radius:7px;box-shadow:2px 4px 0 #0d1308;font:600 25px 'Barlow Condensed',sans-serif;padding:0 8px;transition:transform .2s,background .2s;flex-shrink:0}.chain-link{font-size:16px;color:#8f9b7d}.technique-art .punch-chain{gap:4px}.technique-art .punch-token{min-width:27px;height:33px;font-size:20px;padding:0 6px}.technique-art .chain-link{font-size:11px}.study-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px;margin-top:24px}.study-layout>*{min-width:0}.instruction-panel h2,.reference-panel h2{margin:10px 0 20px}.instruction-panel .steps{margin-top:22px}.threat-label{font-size:12px;color:var(--muted);padding:12px;background:#252e1d;border-radius:8px}.detail-actions{margin-top:22px}.counter-link{margin-top:25px}.reference-panel{padding:24px}.reference-panel .btn{font-size:11px;text-align:center;white-space:normal}.related-video{margin-top:20px}.related-video summary{cursor:pointer;font-size:12px;color:var(--lime);padding:12px 0}.related-video .video-frame{margin-top:14px}.sequence-player{border:1px solid #586b3b;border-radius:14px;background:radial-gradient(ellipse at 50% 0,#384f252e,transparent),#161c12;padding:25px;margin:20px 0}.sequence-player .punch-chain{justify-content:flex-start;padding:15px 0}.punch-token.current{background:var(--lime);color:#1b2410;border-color:#e0ffaa;transform:translateY(-5px);box-shadow:0 0 25px #c5f66b55}.cue-stage{display:flex;align-items:center;gap:20px;min-height:105px;padding:15px 0;border-top:1px solid #3b492e;margin:15px 0}.cue-stage>span{font:600 38px 'Barlow Condensed',sans-serif;color:var(--lime);min-width:72px;line-height:1}.cue-stage>strong{font-size:14px;font-weight:500;color:#bec8b0;overflow-wrap:anywhere}.cue-speed{font-size:10px;margin:0;display:flex;align-items:center;gap:8px}.cue-speed select{max-width:140px;font-size:11px}.sequence-player .field-help{margin-top:17px}.counter-reveal{padding-top:25px;border-top:1px solid var(--line);margin-top:25px}.counter-reveal [hidden]{display:none}.counter-reveal .eyebrow{display:block;margin:24px 0 10px}.counter-reveal p{color:var(--muted);font-size:13px;margin-top:12px}.counter-reveal .sequence-player{padding:15px}.fight-evidence{padding:20px;border:1px solid #69563b;background:#33291b44;border-radius:12px;margin:22px 0}.fight-evidence h3{margin:10px 0}.fight-evidence p{font-size:12px;color:var(--muted);margin:14px 0}.style-explainer{padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:25px}.style-explainer h2{margin:12px 0}.style-explainer p{font-size:13px;color:#b0b9a5;line-height:1.85;margin:12px 0 20px}.stance-section{margin-top:30px}.stance-section>.section-note{max-width:850px;margin-bottom:22px}.stance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stance-card{padding:24px;border:1px solid #3c482e;background:linear-gradient(135deg,#27321e55,#1b2116);border-radius:12px;box-shadow:0 5px 0 #0b0e08}.stance-glyph{display:block;color:var(--lime);margin-bottom:14px}.stance-card p{font-size:12px;color:var(--muted);margin:14px 0}.stance-cue{font-size:11px;border-top:1px solid var(--line);padding-top:14px;color:#bccc9f}.stance-cue strong{color:var(--lime)}.position-card{border:1px solid var(--line);border-radius:12px;background:radial-gradient(#3b4c2422,#151a11);padding:10px 20px 20px;margin-bottom:20px;overflow:hidden}.position-card .ring-scene{min-height:280px}.position-card p{font-size:10px;color:var(--muted);text-align:center}.sequence-decoded{color:var(--lime);font-size:12px;margin:10px 0}.number-hint{font-size:11px;color:var(--muted);padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:15px}#custom-training-form label{margin-top:16px}#custom-notes{min-height:125px}.training-shortcuts{margin:25px 0}.shortcut-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.training-shortcut{text-align:left;color:var(--text);border:1px solid #465334;background:linear-gradient(130deg,#2c381f,#1b2116);border-radius:10px;padding:17px;position:relative;box-shadow:0 4px 0 #080d05;transition:transform .2s}.training-shortcut strong{display:block;font-size:13px;margin:8px 0 3px}.training-shortcut span{font-size:10px;color:var(--muted)}.training-shortcut .icon{color:var(--lime)}.training-shortcuts .section-heading{margin-bottom:15px}.style-card{box-shadow:0 5px 0 #090d06,0 15px 25px #0002}.style-card .style-top{background:radial-gradient(ellipse at 80% 0,#7e9f2733,transparent 80%),linear-gradient(140deg,#2a341e,#151b10)}
@keyframes ring-breathe{0%,100%{transform:translate(-50%,-50%) rotateX(57deg) rotateZ(-32deg)}50%{transform:translate(-50%,-54%) rotateX(55deg) rotateZ(-25deg)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.technique-card:hover{transform:perspective(1000px) translateY(-5px) rotateX(1.5deg);border-color:#8ea95a;box-shadow:0 8px 0 #080b0766,0 22px 35px #0004}.training-shortcut:hover{transform:translateY(-3px);border-color:var(--lime)}}
@media(min-width:1550px){.training-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1150px){.training-grid,.stance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-hero{padding:30px}.lab-hero h2{font-size:54px}.hero-metrics{gap:16px}.training-ring{width:190px;height:190px}.post-b,.post-d{left:184px}.post-c,.post-d{top:118px}.ring-orbit{width:260px}.number-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.study-layout{grid-template-columns:1fr}.shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#sidebar{padding-top:24px}.lab-hero{padding:25px;min-height:290px;grid-template-columns:1fr}.lab-hero h2{font-size:55px;max-width:100%;position:relative;z-index:2}.lab-hero-copy{max-width:100%}.lab-hero p{max-width:250px;font-size:11px}.lab-hero>.ring-scene{position:absolute;right:-90px;top:25px;width:260px;opacity:.23;z-index:0}.lab-hero .eyebrow{font-size:7px}.hero-metrics{gap:24px}.hero-metrics span{font-size:7px}.hero-metrics b{font-size:21px}.training-grid,.stance-grid{gap:14px}.library-tools{padding:15px}.library-selects label{min-width:110px}.library-selects .btn{font-size:10px;flex:1}.library-count span{display:block;font-size:10px}.number-key{padding:14px}.number-key summary{font-size:9px}.number-key summary span{float:none;display:block;font-size:9px;margin-top:6px}.sequence-player{padding:17px}.sequence-player .section-heading{gap:10px;align-items:start;flex-direction:column}.sequence-player .actions{gap:8px}.sequence-player .btn{font-size:11px;padding:9px 12px}.cue-stage{gap:10px}.cue-stage>span{font-size:30px;min-width:62px}.cue-stage>strong{font-size:12px}.reference-panel{padding:20px}.stance-card{padding:20px}.technique-copy{padding:17px}.technique-copy h3{font-size:16px}.technique-copy>p:not(.athlete-credit){font-size:11px}.study-layout{gap:18px}.instruction-panel .steps{padding-left:0}.detail-actions .btn{font-size:11px}.page-heading{gap:12px}.number-grid{gap:7px}.number-grid>div{padding:8px}.number-grid span{font-size:9px}}
@media(max-width:520px){.training-grid,.stance-grid{grid-template-columns:1fr}.technique-art{min-height:130px}.technique-art .punch-token{font-size:24px;min-width:32px;height:38px}.technique-copy>p:not(.athlete-credit){margin-bottom:18px;font-size:12px}.technique-actions .text-link{font-size:12px}.shortcut-grid{gap:10px}.training-shortcut{padding:14px}.training-shortcut strong{font-size:12px}.training-shortcuts .section-heading h2{font-size:16px}.training-shortcuts .tag{font-size:8px}.page-heading .actions{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.training-ring{animation:none}.technique-card,.training-shortcut,.punch-token{transition:none}html{scroll-behavior:auto}}

/* ===== Checkpoint 4: sequence builder pad, defensive-move chips, custom KO ===== */
.move-token{border-color:#4f6f9d;background:linear-gradient(145deg,#2f4565,#1c2a40);color:#b9d6ff;font-size:19px;letter-spacing:.5px;min-width:38px}
.technique-art .move-token{font-size:14px;min-width:29px}
.punch-token.is-body{border-color:#a8744f;background:linear-gradient(145deg,#5a3d2b,#33241a);color:#ffd2ae}
.punch-token.move-token.current{background:#8fb9f5;color:#10213a;border-color:#d7e8ff;box-shadow:0 0 25px #8fb9f566}
.punch-token.is-body.current{background:#f0b585;color:#2d1a0b;border-color:#ffe0c4;box-shadow:0 0 25px #f0b58566}
.move-grid{margin-top:10px}
.move-grid>div.is-move{border-color:#3b5170;background:#101823}
.move-grid b{color:#9cc4ff}
.number-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.seq-builder{margin-bottom:6px}
.seq-hint{margin:8px 0 14px}
.seq-pad{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.pad-key{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:62px;padding:6px 3px;border-radius:8px;border:1px solid #4e613c;background:#26331d;color:#dcf4bc;cursor:pointer;font-family:inherit;transition:transform .12s,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.pad-key b{font:700 24px/1 'Barlow Condensed',sans-serif;letter-spacing:.5px}
.pad-key small{font-size:9px;line-height:1.1;color:#aebb9c;text-align:center}
.pad-key:hover{border-color:var(--lime);background:#2f3f23}
.pad-key:active{transform:scale(.94)}
.pad-key:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.pad-punch b{color:#c5f66b}
.pad-body{background:#3f3026;border-color:#7d5b42}
.pad-body b{color:#ffc9a0}
.pad-move{background:#25324a;border-color:#4f6f9d}
.pad-move b{color:#9cc4ff}
.pad-move:hover{background:#2c3c59;border-color:#8fb9f5}
.pad-undo{background:#161b12;border-color:#3c4930}
.pad-undo b{color:#e0ead5;font-size:22px}
.pad-clear{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;min-height:44px;border-radius:8px;border:1px solid #3c4930;background:#161b12;color:#cfdcc0;font:inherit;font-size:12px;cursor:pointer}
.pad-clear:hover{border-color:#a56a5a;color:#ffd0c4}
.pad-clear svg{width:16px;height:16px}
.seq-preview{margin-top:14px;min-height:76px;padding:12px;border:1px dashed #3c4930;border-radius:10px;background:#12170f;text-align:center}
.seq-preview .punch-chain{padding:6px 0 2px}
.seq-empty{display:block;padding:18px 0;color:var(--muted);font-size:14px}
.seq-decoded{color:var(--lime);font-size:12px;margin-top:8px}
.seq-count{color:var(--muted);font-size:10px;margin-top:4px}
.seq-warning{color:#ffb4a0;font-size:12px;margin-top:8px}
.link-ok{color:#b9f08a}
.link-bad{color:#ffb4a0}
#custom-training-form .seq-builder .seq-input{font:600 15px 'DM Sans',sans-serif;letter-spacing:.5px}
dialog:has(.seq-builder){width:min(640px,calc(100% - 24px))}
@media(max-width:520px){.seq-pad{grid-template-columns:repeat(4,minmax(0,1fr))}.pad-key{min-height:58px}.number-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
