/* One header and predictable motion across the training platform. */
body>.site-header{display:block!important;height:auto!important;padding:0 0 22px!important;background:#111;isolation:isolate}.site-header .site-header-row{min-height:48px}.site-header .site-header-link{min-height:48px;position:relative;transition:color .18s,background-color .18s!important}.site-header .site-header-link::before,.site-header .site-header-link::after{content:none!important}.site-header .site-header-news-arrow{transition:transform .2s ease!important}.site-header .site-header-link:hover .site-header-news-arrow,.site-header .site-header-link:focus-visible .site-header-news-arrow{transform:translate(2px,-2px)}
html .site-header .site-header-pixels{position:absolute;inset:auto 0 0;display:grid;grid-template-columns:repeat(48,minmax(0,1fr));align-items:end;height:22px;background:#111!important;background-image:none!important;animation:none!important;transform:none!important;filter:none!important;opacity:1!important;overflow:hidden;pointer-events:none}.site-header-pixels::before,.site-header-pixels::after{content:none!important}.site-header-pixels i{display:block;height:var(--pixel-height);background:var(--paper,#ececec);transition:background-color .18s ease}.site-header-pixels i.is-lit{background:#b8ff38}
body.is-workspace{padding-top:var(--site-fixed-header-height)!important}.ctf-practice-route .workspace-header{display:none!important}.workspace-shell{min-height:0!important}.ctf-practice-route .workspace-main{padding:30px 21px 48px!important}.ctf-practice-route .workspace-overview{min-height:0!important;padding:10px 0 26px!important}.ctf-practice-route .workspace-overview-copy>p{margin:18px 0 0;max-width:680px;font:15px/1.5 Apparat,Arial,sans-serif}.ctf-practice-route .workspace-metrics{display:none!important}.practice-tools{position:relative;display:flex;justify-content:flex-end;margin-bottom:14px}.practice-tools>button{background:transparent;color:var(--ink);border:0;padding:10px 0;font:13px Apparat,Arial,sans-serif;cursor:pointer}.practice-tools .workspace-account-panel{top:40px;right:0;z-index:95}.workspace-shell.practice-entering :is(.workspace-overview,.workspace-metrics,.workspace-cases-section){animation:none!important}
.training-tabs{display:flex;gap:0;border-bottom:1px solid var(--ctf-rule);margin-bottom:28px}.training-tabs a{position:relative;padding:14px 26px;color:var(--ctf-muted);font:15px/1.4 Apparat,Arial,sans-serif;text-decoration:none}.training-tabs a:first-child{padding-left:0}.training-tabs a::after{content:'';position:absolute;left:0;right:24px;bottom:-1px;height:2px;background:var(--ctf-accent);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.2,.7,.2,1)}.training-tabs a[aria-current=page]{color:var(--ink)}.training-tabs a[aria-current=page]::after,.training-tabs a:hover::after,.training-tabs a:focus-visible::after{transform:scaleX(1)}
.training-hero .ctf-eyebrow{display:none}.journal-reader .training-tabs{display:none}.training-logos{display:none!important}.training-source{min-height:56px}.training-card-content{min-height:510px}.journal-main .training-accordion,.training-card{min-height:510px}.training-card.is-active{flex:3.25 1 0}.training-card.is-active .training-card-content{animation:training-card-reveal .18s .34s both}.training-card-open{position:relative;min-height:46px;padding:12px 0;box-sizing:border-box}.training-card-open::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ctf-accent);transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.2,.7,.2,1)}.training-card-open:hover::after,.training-card-open:focus-visible::after{transform:scaleX(1)}.training-card-open span{transition:transform .2s}.training-card-open:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.training-card-content a{position:relative;z-index:3}
@keyframes training-card-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
/* Exercise cards: columns share a useful height without fixed text boxes. */
.ctf-practice-route .workspace-cases-section{padding-top:12px!important}.ctf-practice-route .workspace-case-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;border-top:1px solid var(--ctf-rule);border-left:1px solid var(--ctf-rule)}.ctf-practice-route .workspace-case{position:relative;display:flex;flex-direction:column;min-width:0;min-height:330px!important;padding:22px!important;border:0;border-right:1px solid var(--ctf-rule);border-bottom:1px solid var(--ctf-rule);background:var(--ctf-panel)}.ctf-practice-route .workspace-case::before,.ctf-practice-route .workspace-case::after{content:none!important}.ctf-practice-route .workspace-case-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.ctf-practice-route .workspace-case-index{font:300 34px/1 Apparat,Arial,sans-serif}.ctf-practice-route .workspace-case h3{min-height:0!important;margin:25px 0 14px!important;font:300 27px/1.15 Apparat,Arial,sans-serif!important;word-break:normal;overflow-wrap:normal;text-wrap:balance}.ctf-practice-route .workspace-case>p{min-height:0;margin:0 0 22px!important;font:14px/1.55 Apparat,Arial,sans-serif!important}.ctf-practice-route .workspace-case-progress{margin-top:auto;height:2px;overflow:hidden;background:var(--ctf-rule)}.ctf-practice-route .workspace-case-progress span{display:block;height:100%;background:var(--ctf-accent);transition:width .35s ease}.ctf-practice-route .workspace-case-meta{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:12px}.ctf-practice-route .workspace-case-meta>span{font:12px/1.4 Apparat,Arial,sans-serif}.ctf-practice-route .workspace-case-meta button{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:46px;padding:12px 14px;box-sizing:border-box;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;font:14px/1.4 Apparat,Arial,sans-serif}.ctf-practice-route .workspace-case-meta button:hover{background:var(--ctf-accent);border-color:var(--ctf-accent);color:#111}.ctf-practice-route .workspace-case-meta button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* Case result: the task and attached output form one compact workspace. */
.training-evidence{display:grid;grid-template-columns:minmax(230px,.42fr) minmax(0,1fr);gap:32px;padding:28px!important;align-items:start}.training-evidence form{max-width:none;width:100%}.training-evidence .result-task h2{font:300 28px/1.15 Apparat,Arial,sans-serif!important;margin-bottom:18px}.result-task>p{font:15px/1.55 Apparat,Arial,sans-serif!important;max-width:480px}.result-task pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:var(--journal-code,#111);color:var(--journal-code-ink,#eee);font:12px/1.7 'Fragment Mono',monospace;margin:20px 0 0}.result-task>button{display:flex;width:100%;justify-content:space-between;padding:12px 0;border:0;border-bottom:1px solid var(--ctf-rule);background:none;color:var(--ink);font:13px Apparat,Arial,sans-serif;cursor:pointer}.result-task .result-note{font:12px/1.5 Apparat,Arial,sans-serif!important;color:var(--ctf-muted);margin-top:16px}.training-evidence .evidence-fields{padding-top:0;border-top:0}.evidence-output-field{grid-column:1/-1}.evidence-output-field textarea{min-height:170px;font:12px/1.65 'Fragment Mono',monospace}.evidence-primary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.4fr);gap:12px;grid-column:1/-1}.evidence-extra{margin:0 0 18px;border-top:1px solid var(--ctf-rule);border-bottom:1px solid var(--ctf-rule)}.evidence-extra>summary{display:flex;justify-content:space-between;align-items:center;list-style:none;padding:15px 0;cursor:pointer;font:14px/1.4 Apparat,Arial,sans-serif}.evidence-extra>summary::-webkit-details-marker{display:none}.evidence-extra>summary span{transition:transform .2s}.evidence-extra[open]>summary span{transform:rotate(45deg)}.evidence-extra>.evidence-fields{padding:0 0 18px}.evidence-extra .evidence-meta-grid{grid-template-columns:1fr 1fr}.training-evidence .evidence-intro{grid-template-columns:1fr;gap:8px}.training-evidence .evidence-intro p{max-width:none}.evidence-answer-row button{min-width:160px}.training-evidence .ctf-eyebrow{display:none}
@media(min-width:1650px){.ctf-practice-route .workspace-case-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media(max-width:1050px){.training-evidence{grid-template-columns:1fr;gap:24px}.result-task{max-width:none}.result-task>p{max-width:850px}.result-task pre{max-width:850px}.result-task>button{max-width:850px}.training-card{min-height:76px}.training-card-content{min-height:460px}.training-card.is-active .training-card-content{animation:training-card-reveal .18s both}.journal-main .training-accordion{min-height:0}.ctf-practice-route .workspace-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){.ctf-practice-route .workspace-main{padding:22px 14px 36px!important}.ctf-practice-route .workspace-case-grid{grid-template-columns:1fr!important}.ctf-practice-route .workspace-case{min-height:300px!important}.training-evidence{padding:22px 16px!important}.evidence-primary-grid{grid-template-columns:1fr}.training-tabs a{padding:14px 22px}.site-header .site-header-link-index{display:none}.site-header .site-header-news-arrow{display:none}.site-header .site-header-row{flex-wrap:wrap}.site-header .site-header-language{min-height:36px}.training-source{min-height:40px}.training-card-content{min-height:440px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
html body.is-workspace>.site-header{display:block!important}html body.is-workspace{padding-top:var(--site-fixed-header-height,70px)!important}
.journal-reader .training-accordion,.journal-reader .training-progress{display:none!important}html[data-site-theme=dark] .site-header-pixels i{background:#292929}html[data-site-theme=dark] .site-header-pixels i.is-lit{background:#b8ff38}
