/* The candidate experience is isolated from the operator dashboard. */
body.candidate{--ink:#153c30;--muted:#62756b;--line:#d9e3d3;background:#f6f5ec;color:var(--ink);min-height:100vh;display:flex;flex-direction:column;font-family:system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.55}
.candidate::before{content:'';position:fixed;width:34rem;height:34rem;right:-17rem;top:-20rem;border-radius:50%;background:#dcebbd;filter:blur(2px);pointer-events:none;z-index:-1}
.candidate header,.candidate main,.candidate footer{width:min(100% - 48px,1100px);max-width:none;padding-left:0;padding-right:0}
.candidate header{min-height:92px;border-color:#dbe3d5}.candidate .brand{font-size:25px;letter-spacing:-1.2px}.candidate .brand span{font-size:9px;letter-spacing:2px;color:#6e8073}.candidate .candidate-identity{font-size:13px;color:#486a55}.candidate .pill{background:#eaf1de;border:1px solid #d0dec0;color:#315a3b;font-weight:650}
.candidate main{flex:1;padding-top:40px;padding-bottom:32px}.candidate footer{margin-top:0;padding-top:18px;padding-bottom:24px;color:#688073;line-height:1.6}
.candidate #app{max-width:790px;margin:0 auto}.candidate h1{font:500 clamp(38px,5vw,60px)/1.04 Georgia,serif;letter-spacing:-1.8px;margin:13px 0 18px}.candidate h2{font:500 30px/1.15 Georgia,serif;letter-spacing:-.6px}.candidate p{line-height:1.6}.candidate .eyebrow{font-size:11px;letter-spacing:2px;color:#628260;font-weight:800}.candidate .card{border-radius:24px;padding:30px;background:#fffefa;border:1px solid #e0e8dc;box-shadow:0 14px 40px #2047330b}
.candidate button{background:#173f30;border:1px solid #173f30;border-radius:12px;padding:14px 21px;font-weight:750;box-shadow:0 4px 0 #a6c285;transition:transform .16s,box-shadow .16s,background .16s}.candidate button:hover:not(:disabled){background:#23533d;transform:translateY(-2px);box-shadow:0 6px 0 #a6c285}.candidate button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #a6c285}.candidate button.secondary{background:#f6f8f1;color:#284c36;border-color:#d9e5d3;box-shadow:none}
.candidate input:not([type=checkbox]),.candidate textarea{background:#fffefa;border:1px solid #cbdcc9;border-radius:12px;color:#173f30;font:16px/1.5 system-ui;padding:15px 16px}.candidate input:focus,.candidate textarea:focus{outline:3px solid #d5eaa9;border-color:#7caa62}.candidate label{font-size:13px;font-weight:700;color:#355740}.candidate input[type=checkbox]{accent-color:#315e3e}
.candidate[data-phase=signup] #app{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;min-height:540px}.candidate .signup-intro{max-width:500px}.candidate .signup-intro h1{font-size:clamp(48px,5.4vw,70px)}.candidate .signup-intro>p:not(.eyebrow){font-size:18px;color:#5a7466;max-width:420px}.candidate .facts{margin-top:28px}.candidate .tag{background:#eaf1df;border:1px solid #d7e4ca;padding:8px 12px;color:#385b43;font-weight:650}
.candidate .signup-card{margin:0;padding:32px;min-height:390px;display:flex;flex-direction:column}.candidate .signup-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;letter-spacing:1.3px;color:#739072}.candidate .signup-step{color:#335f40;font-variant-numeric:tabular-nums}.candidate .signup-progress{height:6px;border-radius:6px;background:#edf1e9;margin:13px 0 36px;overflow:hidden}.candidate .signup-progress span{display:block;width:50%;height:100%;border-radius:6px;background:#8cb85c;transition:width .35s}.candidate .signup-card h2{margin:0 0 8px;font-size:33px}.candidate .signup-subtitle{margin:0 0 25px;color:#6d8272}.candidate .signup-card label:not(.signup-consent){margin:0 0 20px}.candidate .signup-card label input:not([type=checkbox]){margin-top:9px}.candidate .signup-privacy{font-size:12px;color:#657a6c;line-height:1.5}.candidate .signup-consent{font-weight:500;font-size:12px;margin:12px 0 20px}.candidate .signup-actions{display:flex;gap:10px;margin-top:22px}.candidate .signup-actions button:last-child{margin-left:auto}.candidate .signup-hint{font-size:12px;color:#819184;margin:auto 0 0;padding-top:25px}
.candidate .journey{background:#fffefa;border-color:#dce7d8;padding:22px 26px;border-radius:22px}.candidate .journey-bar{height:10px}.candidate .journey-bar::-webkit-progress-value{background:#86b95a}.candidate .journey-bar::-moz-progress-bar{background:#86b95a}.candidate .journey-marker{width:36px;height:36px;font-size:13px}.candidate .journey-node.active .journey-marker{background:#174633;box-shadow:0 0 0 6px #dcecc5}.candidate .journey-name{font-size:12px}.candidate .journey-step-label{font-size:13px}
.candidate .transcript{max-height:460px;padding:20px;border-radius:22px;background:#eaf0e4;border:1px solid #dbe7d5}.candidate .bubble{padding:17px 20px;border:1px solid #e2ebdd;border-radius:18px 18px 18px 5px;box-shadow:0 4px 12px #173f3008}.candidate .bubble.candidate{background:#dcecbc;border-color:#d2e6b1;border-radius:18px 18px 5px 18px}.candidate .speaker{color:#597865;font-size:10px;letter-spacing:1.1px}.candidate .notice{border-radius:14px;background:#e9f1df;color:#375740}.candidate details{border-radius:12px}.candidate summary{color:#3c6548;font-size:14px}.candidate #reply{min-height:120px;box-shadow:0 8px 25px #163d2e08}.candidate #reply+div{justify-content:flex-end}.candidate .typing-card{border-radius:24px;background:#fffefa;box-shadow:0 14px 40px #2047330b}.candidate .interest-option{padding:16px;border:1px solid #dce7d7;border-radius:14px;margin:9px 0;background:#f8faf4}.candidate .interest-option:has(input:checked){background:#e8f2dc;border-color:#9ec380}
@media(max-width:760px){.candidate header,.candidate main,.candidate footer{width:calc(100% - 36px)}.candidate header{min-height:76px}.candidate main{padding-top:26px}.candidate[data-phase=signup] #app{display:block;min-height:0}.candidate .signup-intro h1{font-size:46px}.candidate .signup-intro>p:not(.eyebrow){font-size:16px}.candidate .facts{margin:20px 0 28px}.candidate .signup-card{padding:24px;min-height:340px}.candidate .signup-progress{margin-bottom:26px}.candidate .signup-card h2{font-size:29px}.candidate .card{padding:22px}.candidate .journey{padding:18px 15px}.candidate .journey-name{font-size:10px}.candidate .transcript{padding:12px}.candidate .bubble{max-width:96%}.candidate .candidate-identity{grid-column:1 / -1;grid-row:2;text-align:left}.candidate .pill{display:none}}
@media(prefers-reduced-motion:reduce){.candidate *, .candidate *::before,.candidate *::after{animation:none!important;transition:none!important}}

/* Four visible stages; keep the final typing screen compact before the active input. */
.candidate .journey-path{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Higher contrast, with a dark introduction and distinct interactive surfaces. */
body.candidate{background:#edf1f0;color:#10382c}
.candidate::before{background:#c7d7f6}
.candidate header{border-color:#bdccca}.candidate .brand span,.candidate footer{color:#4f6b61}
.candidate .signup-intro{max-width:none;background:#103f32;color:#fff;border-radius:26px;padding:42px;box-shadow:0 18px 45px #102e2830}
.candidate .signup-intro h1{color:#fffdf3}.candidate .signup-intro .eyebrow{color:#d1ed96}.candidate .signup-intro>p:not(.eyebrow){color:#dbece1}
.candidate .signup-intro .tag{background:#285b47;border-color:#4d8067;color:#f2f9e8}
.candidate .card,.candidate .journey,.candidate .typing-card{background:#fff;border-color:#bbcfc7;box-shadow:0 12px 32px #0f362515}
.candidate .signup-kicker,.candidate .journey-kicker{color:#416d50}.candidate .signup-subtitle,.candidate .signup-privacy,.candidate .signup-hint{color:#435f51}
.candidate .signup-progress,.candidate .journey-bar{background:#d7e5dc}.candidate .signup-progress span,.candidate .journey-bar::-webkit-progress-value{background:#509640}
.candidate .tag{background:#dcece0;color:#204b30;border-color:#b4d0b8}
.candidate .notice{background:#d7e9df;color:#183f2d}.candidate .transcript{background:#cbded4;border-color:#a9c5b7}
.candidate .bubble{border-color:#9fbbad;color:#142f25}.candidate .bubble.candidate{background:#dcd6f5;border-color:#b8a9df;color:#262044}
.candidate input:not([type=checkbox]),.candidate textarea{background:#fff;border-color:#85a69a;color:#102f23}
.candidate .consent-note{font-size:13px;line-height:1.5;color:#365b49;max-width:610px;margin:22px 0 14px}
.candidate button.secondary{background:#e3ede8;border-color:#a8c4b4;color:#163e2c}
@media(max-width:760px){.candidate .signup-intro{padding:26px;margin-bottom:20px;border-radius:22px}.candidate .signup-intro h1{font-size:42px}.candidate .signup-intro .facts{margin-bottom:0}.candidate .signup-card{padding:24px}}

/* Round transitions show progress rather than performance. */
.candidate[data-phase=round-intro] #app{max-width:680px}.candidate .round-intro{text-align:center;position:relative;padding:32px 34px 40px;border-radius:28px;background:#fff;border:1px solid #bacdc2;box-shadow:0 18px 50px #173e2d14;overflow:hidden;animation:round-enter .45s ease both}.candidate .round-trail{display:flex;justify-content:center;align-items:center;gap:44px;margin:0 auto 24px}.candidate .round-trail-node{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e5ece6;border:1px solid #bdcec2;color:#557064;font-weight:800;font-size:13px}.candidate .round-trail-node:not(:last-child)::after{content:'';position:absolute;left:33px;width:45px;height:2px;background:#c7d8ca}.candidate .round-trail-node.done{background:#d8edc1;border-color:#9bc480;color:#235a36}.candidate .round-trail-node.active{background:#154a35;color:#fff;border-color:#154a35;box-shadow:0 0 0 6px #dcecca}
.candidate .round-recap{text-align:left;background:#eef4ee;border:1px solid #d1e1d4;border-radius:16px;padding:15px 18px;margin:0 0 26px}.candidate .round-recap-label{font-size:10px;letter-spacing:1.2px;font-weight:800;color:#55705e}.candidate .round-recap p{margin:7px 0 0;font-size:14px;color:#214534}.candidate .round-badge{display:grid;place-items:center;width:86px;height:86px;margin:4px auto 21px;background:#d6ed9b;color:#123e2c;border:5px solid #eef7d7;border-radius:27px;box-shadow:0 9px 0 #a5c679,0 16px 30px #49804125;transform:rotate(-7deg);animation:badge-pop .55s cubic-bezier(.2,1.4,.4,1) both}.candidate .round-badge span{font:700 42px/1 Georgia,serif;transform:rotate(7deg)}.candidate .round-eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#568457;margin:0}.candidate .round-intro h1{margin:12px 0}.candidate .round-description{font-size:17px;color:#476657;max-width:410px;margin:0 auto}.candidate .round-hint{font-size:12px;color:#587563;margin:20px auto 16px}.candidate .round-intro button{min-width:205px}.candidate[data-phase=round-intro] main{display:grid;align-items:center}
@keyframes round-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes badge-pop{from{opacity:0;transform:scale(.7) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-7deg)}}
@media(max-width:760px){.candidate .round-intro{padding:24px 18px 28px}.candidate .round-intro h1{font-size:37px}.candidate .round-recap{margin-bottom:18px}.candidate .round-trail{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.candidate .round-intro,.candidate .round-badge{animation:none!important}}
.candidate .journey-timer{margin-left:auto;padding:6px 11px;border-radius:10px;background:#153f30;color:#fff;font:700 15px/1 ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums;letter-spacing:.04em}.candidate .journey-timer.over{background:#8a3f27}.candidate .journey-timer-note{font-size:11px;color:#506d5b}.candidate .journey-count{white-space:nowrap}@media(max-width:600px){.candidate .journey-top{gap:7px}.candidate .journey-timer{font-size:13px}.candidate .journey-timer-note{font-size:10px;text-align:right}.candidate .journey-foot{flex-wrap:wrap}.candidate .journey-dots{margin-left:auto}}
.candidate .journey-timer{position:fixed;z-index:20;top:16px;right:max(18px,calc((100vw - 1100px)/2));padding:11px 14px;box-shadow:0 5px 20px #123a2b30}.candidate[data-phase=running] .candidate-header .pill{visibility:hidden}

/* One aligned layer for the prompt and the editable text. */
.candidate .typing-game{position:relative;overflow:hidden;padding:30px;background:#fff;border:1px solid #bfd1c6;box-shadow:0 18px 48px #123a2617}.candidate .typing-top{color:#285740}.candidate .typing-clock{background:#e5f2d2;border-radius:10px;padding:8px 12px;color:#164c30}.candidate .typing-progress{height:6px;background:#e4ede6;border-radius:9px;margin:18px 0 22px;overflow:hidden}.candidate .typing-progress span{display:block;height:100%;width:0;background:#76a84c;border-radius:9px;transition:width .15s ease}
.candidate .typing-context{max-width:760px;line-height:1.55;margin:10px 0;color:#315849}
.candidate .typing-intro{position:relative;text-align:center;padding:24px 20px 28px;animation:typing-appear .35s ease both}.candidate .typing-intro-icon{display:grid;place-items:center;margin:0 auto 15px;width:54px;height:54px;border-radius:18px;background:#d9eea7;color:#205536;font-size:28px;animation:typing-float 2.8s ease-in-out infinite}.candidate .typing-intro h2{margin:0 0 10px}.candidate .typing-intro p{margin:8px auto;max-width:440px;color:#486757}.candidate .typing-intro .typing-intro-note{font-size:13px;color:#5e7969}.candidate .typing-intro button{margin-top:18px;min-width:190px}
.candidate .typing-board{position:relative;border-radius:17px;background:#f2f6ee;border:1px solid #c9dccb;overflow:hidden;transition:border-color .2s,box-shadow .2s}.candidate .typing-board:focus-within{border-color:#79aa6d;box-shadow:0 0 0 4px #dbeecb}.candidate .typing-board.locked{max-height:115px;opacity:.5;pointer-events:none;mask-image:linear-gradient(#000,transparent)}
.candidate .typing-board .typing-sample,.candidate .typing-board textarea.typing-input{box-sizing:border-box;margin:0!important;padding:22px!important;width:100%!important;min-height:0!important;border:0!important;font:500 clamp(17px,2.1vw,23px)/1.8 ui-monospace,SFMono-Regular,Menlo,monospace!important;letter-spacing:0!important;white-space:pre-wrap!important;overflow-wrap:break-word!important;word-break:normal!important;tab-size:8!important}.candidate .typing-board .typing-sample{position:relative;display:block;color:#92a69a;pointer-events:none}.candidate .typing-board .typing-sample .correct{color:#164b32}.candidate .typing-board .typing-sample .incorrect{color:#a52e34;background:#f9dada;border-radius:2px}
.candidate .typing-board textarea.typing-input{position:absolute!important;inset:0!important;height:100%!important;resize:none!important;outline:0!important;box-shadow:none!important;color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:#147047!important;background:transparent!important;overflow:hidden!important;z-index:1}.candidate .typing-board textarea.typing-input::selection{background:#9ec7b277;color:transparent}
.candidate .typing-lower{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}.candidate .typing-count,.candidate .typing-status,.candidate .typing-recovery{font-size:12px;color:#587463}.candidate .typing-status{margin:0}.candidate .typing-finish{margin-left:auto;margin-top:0!important}.candidate .typing-recovery{margin:18px 0 0;line-height:1.5}.candidate .typing-game #typing-reference{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes typing-appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-5px) rotate(5deg)}}
@media(max-width:600px){.candidate .typing-game{padding:20px}.candidate .typing-board .typing-sample,.candidate .typing-board textarea.typing-input{padding:16px!important;font-size:17px!important;line-height:1.75!important}.candidate .typing-intro{padding:18px 4px 24px}.candidate .typing-finish{width:100%}}
@media(prefers-reduced-motion:reduce){.candidate .typing-intro,.candidate .typing-intro-icon{animation:none!important}.candidate .typing-progress span{transition:none!important}}

/* Interest choices are preferences, not advertised vacancies. */
.candidate[data-phase=final-interests] #app{max-width:960px}.candidate[data-phase=final-interests] #app>h1{max-width:720px}.candidate .interest-card{padding:28px}.candidate .interest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.candidate .interest-tile{position:relative;display:flex;align-items:center;gap:15px;min-height:88px;margin:0;padding:15px 17px;border:1px solid #cbded2;border-radius:16px;background:#f7faf5;cursor:pointer;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}.candidate .interest-tile:hover{transform:translateY(-2px);border-color:#8cb69a;box-shadow:0 7px 18px #244a3010}.candidate .interest-tile input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.candidate .interest-tile:focus-within{outline:3px solid #9cc584;outline-offset:2px}.candidate .interest-tile:has(input:checked){background:#e4f3d8;border-color:#75a86e;box-shadow:0 0 0 1px #75a86e}.candidate .interest-icon{display:grid;place-items:center;flex:none;width:49px;height:49px;border-radius:14px;background:#e7eddf;font-size:25px}.candidate .interest-tile:nth-child(3n+2) .interest-icon{background:#e7e1f8}.candidate .interest-tile:nth-child(3n) .interest-icon{background:#f8ead3}.candidate .interest-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.candidate .interest-copy strong{font-size:15px;color:#173e2d}.candidate .interest-copy>span{font-size:12px;font-weight:400;color:#5c7565;line-height:1.35}.candidate .interest-check{display:grid;place-items:center;margin-left:auto;width:23px;height:23px;flex:none;border-radius:50%;border:1px solid #bed0c3;color:transparent;background:white;font-size:14px;font-weight:800}.candidate .interest-tile:has(input:checked) .interest-check{background:#20593c;color:white;border-color:#20593c}.candidate .interest-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:22px}.candidate .interest-hint{font-size:12px;color:#5c7565}
@media(max-width:600px){.candidate .interest-card{padding:18px}.candidate .interest-grid{grid-template-columns:1fr;gap:9px}.candidate .interest-tile{min-height:72px;padding:11px 13px}.candidate .interest-icon{width:44px;height:44px;font-size:23px}.candidate .interest-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.candidate .interest-tile{transition:none!important}}
.candidate .interest-step-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.candidate .interest-step-top .eyebrow{margin-bottom:10px}.candidate .interest-step-count{font-size:13px;font-weight:750;color:#416b52}.candidate .interest-step-progress{height:7px;border-radius:999px;background:#dce8dd;overflow:hidden}.candidate .interest-step-progress span{display:block;height:100%;background:linear-gradient(90deg,#6a9a64,#a0c86d);border-radius:999px;transition:width .25s ease}.candidate .interest-question{margin-top:24px}.candidate .interest-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0;padding:0;margin:0}.candidate .interest-games-label{display:block;margin:28px 0 0;font-weight:700}.candidate .interest-games-label textarea{display:block;margin-top:10px;min-height:85px;font-weight:400}.candidate .interest-step-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid #dce7dd}.candidate .interest-step-actions button{min-width:145px}.candidate .interest-step-actions button:first-child:not(:last-child){margin-right:auto}
@media(max-width:600px){.candidate .interest-choice-grid{grid-template-columns:1fr}.candidate .interest-step-actions button{flex:1 1 100%}}

/* Numbers round: select an estimate, then explain the reasoning. */
.candidate .numbers-challenge{margin:20px 0;padding:26px;border:1px solid #c5d8c8;border-radius:22px;background:#fff;box-shadow:0 12px 32px #103e2910;animation:round-enter .35s ease both}.candidate .numbers-kicker{margin:0 0 10px;font-size:11px;letter-spacing:1.4px;font-weight:800;color:#55804f}.candidate .numbers-challenge h2{margin:0 0 7px}.candidate .numbers-description{margin:0 0 18px;color:#456557;font-size:14px}.candidate .numbers-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;margin:0;border:0}.candidate .numbers-options legend{margin:0 0 10px;font-size:13px;font-weight:750;color:#355740}.candidate .number-option{display:flex;align-items:center;gap:12px;position:relative;min-width:0;margin:0;padding:13px;border:1px solid #c7d8cc;border-radius:14px;background:#f7faf5;cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.candidate .number-option:hover{transform:translateY(-2px);border-color:#79a982}.candidate .number-option:has(input:checked){background:#e3f1d4;border-color:#6d9f6b;box-shadow:0 0 0 1px #6d9f6b}.candidate .number-option:focus-within{outline:3px solid #9ec681;outline-offset:2px}.candidate .number-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.candidate .number-letter{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:#e4ebdf;color:#386345;font-size:12px;font-weight:800}.candidate .number-label{font-weight:750;font-size:15px;color:#173e2d}.candidate .number-check{margin-left:auto;color:transparent;font-weight:800}.candidate .number-option:has(input:checked) .number-check{color:#205d3a}.candidate .numbers-label{display:block;margin:22px 0 8px;font-weight:750}.candidate .numbers-challenge textarea{min-height:112px}.candidate .numbers-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:15px}.candidate .numbers-hint{font-size:12px;color:#577366;margin:0}.candidate .numbers-actions button{margin-left:auto}
@media(max-width:600px){.candidate .numbers-challenge{padding:19px}.candidate .numbers-options{grid-template-columns:1fr 1fr}.candidate .number-option{padding:10px;gap:8px}.candidate .number-label{font-size:13px}.candidate .numbers-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.candidate .numbers-challenge,.candidate .number-option{animation:none!important;transition:none!important}}
.candidate .shortcut-hint{align-self:center;font-size:11px;line-height:1.4;color:#547263}.candidate .numbers-challenge .shortcut-hint{margin:12px 0 0}.candidate .actions .shortcut-hint{margin-right:auto;order:-1}

/* Playful motion celebrates completion without implying a hiring decision. */
.candidate .round-scene{position:relative;width:190px;height:118px;margin:0 auto 10px;display:grid;place-items:center}.candidate .round-scene .round-badge{margin:0}.candidate .round-float{position:absolute;font-size:24px;line-height:1;pointer-events:none}.candidate .round-float-one{left:8px;top:8px;animation:round-float 3.2s ease-in-out infinite}.candidate .round-float-two{right:5px;top:20px;color:#dd9472;animation:round-twinkle 2.6s ease-in-out infinite}.candidate .round-float-three{left:26px;bottom:7px;color:#83a869;animation:round-twinkle 3s ease-in-out .4s infinite}
.candidate[data-phase=final-done] #app{max-width:1040px}.candidate .finish-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.86fr);align-items:center;gap:36px;padding:20px 0 8px}.candidate .finish-copy .eyebrow{color:#5e8857}.candidate .finish-copy h1{font-size:clamp(42px,4.6vw,62px);max-width:590px}.candidate .finish-copy>p:not(.eyebrow){font-size:16px;color:#385c4b;max-width:540px}.candidate .finish-art{width:100%;max-width:430px;justify-self:end}.candidate .finish-art svg{display:block;width:100%;height:auto;overflow:visible}.candidate .finish-float-back{animation:finish-float 4.8s ease-in-out infinite}.candidate .finish-float-front{animation:finish-float 4.1s ease-in-out -1.7s infinite}.candidate .finish-plane{animation:finish-plane 4s ease-in-out infinite;transform-origin:110px 230px}.candidate .finish-spark{transform-box:fill-box;transform-origin:center;animation:finish-sparkle 2.4s ease-in-out infinite}.candidate .finish-spark-two{animation-delay:1.1s}.candidate .finish-trail{stroke-dashoffset:0;animation:finish-dash 3s linear infinite}
.candidate .finish-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 24px}.candidate .finish-step{display:flex;align-items:center;gap:10px;padding:14px;background:#fff;border:1px solid #cbdcd0;border-radius:15px;font-size:12px;font-weight:750;color:#305840}.candidate .finish-step-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#dfeecf;color:#22553b;font-size:16px;flex:none}.candidate .finish-step:nth-child(2) .finish-step-icon{background:#e6def5;color:#654d83}.candidate .finish-step:nth-child(3) .finish-step-icon{background:#f8e4d6;color:#a85239}.candidate .finish-about{margin:0 0 18px}.candidate .finish-about h2{margin-top:0}.candidate .finish-about .actions{margin:18px 0}.candidate .finish-about a.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;border-radius:11px;background:#174a35;color:#fff;text-decoration:none;font-weight:750;font-size:14px;transition:transform .18s,background .18s}.candidate .finish-about a.button:hover{background:#246046;transform:translateY(-2px)}.candidate .finish-about a.button.secondary{background:#e5eee7;color:#19482f;border:1px solid #b4cdbb}
.candidate .finish-about .finish-ask{margin-top:0;background:#f0eafd;border-color:#bda8df;color:#49336c;box-shadow:none}.candidate .finish-about .finish-ask:hover:not(:disabled){background:#e5d9f9;color:#392359;box-shadow:0 4px 0 #d4bfee}.candidate .finish-support{margin-top:22px;padding:22px;border:1px solid #c3d7cd;border-radius:18px;background:#f5faf7}.candidate .finish-support h3{margin:0 0 5px;font:26px/1.2 Georgia,serif}.candidate .finish-support-notice{font-size:13px;color:#4e6b59}.candidate .finish-support-messages{max-height:310px;overflow:auto;margin:16px 0}.candidate .finish-support-bubble{padding:12px 15px;margin:9px 0;border-radius:14px;border:1px solid #c9dcd0;background:#fff}.candidate .finish-support-bubble.candidate{margin-left:12%;background:#e5efd6}.candidate .finish-support-bubble strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.candidate .finish-support-bubble p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.candidate .finish-support label{font-size:13px;font-weight:700}.candidate .finish-support textarea{display:block;margin-top:7px;min-height:88px}.candidate .finish-support-consent{display:block;margin:12px 0;font-weight:400!important}.candidate .finish-support-status{font-size:13px;color:#42614e}.candidate .finish-support button{background:#204f3a}
@keyframes round-float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-8px) rotate(7deg)}}@keyframes round-twinkle{0%,100%{opacity:.55;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(20deg)}}@keyframes finish-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes finish-plane{0%,100%{transform:translate(0,0) rotate(-3deg)}50%{transform:translate(8px,-9px) rotate(4deg)}}@keyframes finish-sparkle{0%,100%{opacity:.55;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(30deg)}}@keyframes finish-dash{to{stroke-dashoffset:-26}}
@media(max-width:760px){.candidate .finish-hero{grid-template-columns:1fr;gap:10px;padding-top:4px}.candidate .finish-copy h1{font-size:43px}.candidate .finish-art{max-width:340px;justify-self:center}.candidate .finish-steps{grid-template-columns:1fr;gap:7px;margin-top:15px}.candidate .finish-step{padding:10px 13px}.candidate .finish-about .actions a{width:100%}}
@media(prefers-reduced-motion:reduce){.candidate .round-float,.candidate .finish-art *{animation:none!important}.candidate .finish-about a.button{transition:none!important}}

/* The round gate is a small game moment, with motion on vector shapes only. */
.candidate .round-intro{isolation:isolate;background:radial-gradient(circle at 50% 34%,#f0f9e8 0,#fff 46%,#fff 100%)}
.candidate .round-intro::before{content:'';position:absolute;inset:auto -15% -48% -15%;height:70%;border-radius:50%;background:radial-gradient(ellipse,#dbecc777,transparent 68%);z-index:-1;pointer-events:none}
.candidate .round-scene{height:148px;margin:4px auto 10px}
.candidate .round-scene::before,.candidate .round-scene::after{content:'';position:absolute;left:50%;top:50%;border:1px solid #bbd8b7;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.candidate .round-scene::before{width:134px;height:134px;animation:round-orbit 5s linear infinite}
.candidate .round-scene::after{width:166px;height:166px;border-style:dashed;opacity:.65;animation:round-orbit 12s linear reverse infinite}
.candidate .round-scene .round-badge{z-index:1;background:linear-gradient(145deg,#e3f6b8,#bce57d);border-color:#f4fce7;box-shadow:0 8px 0 #8cb95e,0 19px 32px #356f3b35;animation:badge-pop .55s cubic-bezier(.2,1.4,.4,1) both,round-badge-breathe 3.6s ease-in-out .55s infinite}
.candidate .round-float{z-index:2;text-shadow:0 3px 10px #4d7e4a35}
.candidate .round-start-button{position:relative;overflow:hidden;min-width:250px!important;padding:17px 29px!important;border:1px solid #9d3b29!important;border-radius:17px!important;background:linear-gradient(110deg,#a83e2d,#cd6342,#a83e2d)!important;background-size:200% 100%!important;color:#fff!important;box-shadow:0 6px 0 #e6a996,0 16px 30px #8f412c30!important;font-size:16px;letter-spacing:.01em;animation:round-cta-color 5s ease-in-out infinite}
.candidate .round-start-button::after{content:'';position:absolute;inset:-65% auto -65% -50%;width:35%;background:linear-gradient(90deg,transparent,#ffffff65,transparent);transform:rotate(20deg);animation:round-cta-shine 5s ease-in-out infinite;pointer-events:none}
.candidate .round-start-button:hover:not(:disabled){background:linear-gradient(110deg,#a83e2d,#d46a47,#a83e2d)!important;transform:translateY(-2px);box-shadow:0 8px 0 #e6a996,0 19px 32px #8f412c35!important}
.candidate .round-start-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px 0 #e6a996,0 8px 18px #8f412c28!important}
.candidate .round-start-button:focus-visible{outline:3px solid #174f37;outline-offset:4px}
@keyframes round-orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes round-badge-breathe{50%{transform:rotate(-7deg) scale(1.055)}}
@keyframes round-cta-color{50%{background-position:100% 0}}
@keyframes round-cta-shine{0%,52%,100%{left:-50%;opacity:0}65%{left:120%;opacity:1}66%{opacity:0}}
@media(max-width:760px){.candidate .round-scene{height:132px}.candidate .round-start-button{width:100%;min-width:0!important}}
@media(prefers-reduced-motion:reduce){.candidate .round-scene::before,.candidate .round-scene::after,.candidate .round-scene .round-badge,.candidate .round-start-button,.candidate .round-start-button::after{animation:none!important}}

/* Optional profile: one CV entry method and a separate note. */
.candidate .profile-card h2{margin:0 0 6px}.candidate .profile-subtitle{margin:0 0 20px;color:#587263;font-size:14px}.candidate .profile-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.candidate .profile-tabs button{flex:1;min-width:155px;padding:13px 15px;background:#f5f8f2;color:#315940;border:1px solid #c8dacb;box-shadow:none}.candidate .profile-tabs button.active{background:#dff0d1;border-color:#76a976;box-shadow:inset 0 0 0 1px #76a976;color:#18462f}.candidate .profile-upload,.candidate .profile-text{padding:18px;border:1px solid #d3e2d4;border-radius:15px;background:#f8faf6}.candidate .profile-upload label,.candidate .profile-text label{margin:0}.candidate .profile-upload input{margin-top:10px;background:#fff}.candidate .profile-text textarea{margin-top:10px;min-height:130px}.candidate .profile-note{margin:24px 0 0;font-size:14px}.candidate .profile-note textarea{display:block;margin-top:10px;min-height:100px}.candidate .profile-actions{align-items:center;margin-top:22px}.candidate .profile-actions .profile-continue{margin-left:auto}.candidate .profile-skip-hint{font-size:12px;color:#597365}.candidate .profile-actions button{min-width:155px}.candidate .profile-actions .profile-skip{border-color:#9b86c8;background:#f0eafd;color:#48366b;font-weight:750}.candidate .profile-actions .profile-skip:hover:not(:disabled){background:#e6dcfa;color:#392653;box-shadow:0 4px 0 #d2c1ef}
@media(max-width:600px){.candidate .profile-tabs button{min-width:0;font-size:13px}.candidate .profile-actions button{width:100%}}

.candidate .preferences{margin-top:32px;padding-top:24px;border-top:1px solid #dce7d7}.candidate .preferences h2{margin:0 0 6px}.candidate .preference-group{border:0;padding:0;margin:22px 0}.candidate .preference-group legend{font-weight:750;margin-bottom:10px}.candidate .preference-choices{display:flex;gap:9px;flex-wrap:wrap}.candidate .preference-choice{display:flex;align-items:center;gap:6px;margin:0;padding:10px 15px;background:#f4f8ef;border:1px solid #cbded2;border-radius:12px;cursor:pointer}.candidate .preference-choice:has(input:checked){background:#dcecbc;border-color:#75a86e}.candidate .preferences textarea{display:block;width:100%;margin-top:8px;min-height:80px}

.candidate button.secondary:hover:not(:disabled){background:#d9e9df;color:#173f30;box-shadow:0 4px 0 #b6d0c0}
.candidate .numbers-actions .numbers-hint{flex:1 1 100%}
.candidate .numbers-actions button{margin-left:0}
.candidate .numbers-actions button:first-of-type{margin-left:auto}
.candidate .typing-intro button.secondary{display:block;margin:14px auto 0;background:transparent;box-shadow:none;border-color:#b9cdc0;color:#315a43;font-size:13px}
.candidate .typing-lower button.secondary{font-size:13px;box-shadow:none}
@media(max-width:600px){.candidate .numbers-actions button:first-of-type{margin-left:0}.candidate .typing-lower button.secondary{width:100%}}

.candidate .static-numbers{margin-top:8px;background:linear-gradient(155deg,#fff 55%,#f2f8f0);border-color:#a9c9b9}
.candidate .static-numbers h2{font:500 clamp(22px,2.7vw,29px)/1.28 Georgia,serif;max-width:680px}
.candidate .static-numbers .numbers-description{margin-top:13px}
.candidate .static-numbers .number-option{min-height:64px;background:#fff}
.candidate .static-numbers .number-option:has(input:checked){background:#dcf0d5}
.candidate .static-numbers #number-comment{min-height:82px}
.candidate .static-numbers .numbers-actions{border-top:1px solid #deebe0;padding-top:18px}
.candidate .numbers-chart{margin:20px 0 24px;padding:14px 12px 8px;border:1px solid #e2e9e1;border-radius:14px;background:#fff}.candidate .numbers-chart svg{display:block;width:100%;height:auto;max-height:300px}.candidate .chart-tick{fill:#64766b;font:12px system-ui,sans-serif}.candidate .chart-axis-title{fill:#405748;font:600 13px system-ui,sans-serif}.candidate .chart-value{fill:#263d30;font:600 11px system-ui,sans-serif}.candidate .chart-legend{display:flex;justify-content:center;gap:18px;margin:3px 0 6px}.candidate .chart-legend-item{display:flex;align-items:center;gap:7px;font-size:13px}.candidate .chart-swatch{display:inline-block;width:11px;height:11px;border-radius:3px}
@media(max-width:600px){.candidate .numbers-chart .chart-tick,.candidate .numbers-chart .chart-value,.candidate .numbers-chart .chart-axis-title{font-size:22px}.candidate .static-numbers .numbers-options{grid-template-columns:1fr}}

/* Compact fourth stage and four-part tracker. */
.candidate[data-phase=typing] main{padding-top:22px}.candidate[data-phase=typing] .journey{margin-bottom:18px;padding:16px 22px}.candidate[data-phase=typing] #app>h1{margin:8px 0}.candidate .typing-context{margin:0 0 10px;color:#526c5d}.candidate .typing-game{margin-top:14px;padding:20px}.candidate .typing-intro{padding:8px 10px 14px}.candidate .typing-intro h2{margin:0 0 5px}.candidate .typing-intro p{margin:0 auto;color:#486757}.candidate .typing-intro button{margin-top:12px}
@media(max-width:600px){.candidate .journey-path{grid-template-columns:repeat(4,minmax(0,1fr))}.candidate .journey-name{font-size:9px;overflow-wrap:anywhere}.candidate[data-phase=typing] .journey{padding:14px 10px}.candidate .typing-game{padding:18px}.candidate .typing-intro{padding:8px 2px 12px}}
/* Compact v8 prompt framing: constraints stay readable beside the owner exchange. */
.candidate .prompt-context{margin:12px 0 16px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:#eef1e7;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.candidate .prompt-context p{margin:0}.candidate .prompt-context p+p{margin-top:5px}
.candidate .prompt-context-label{font-size:10px;letter-spacing:1.3px;font-weight:750;color:var(--muted)}
.candidate .prompt-task{margin:14px 0;font-size:15px;font-weight:650}
.candidate .portfolio-task-title{margin:4px 0 12px;font:600 clamp(24px,3vw,29px)/1.2 Georgia,serif;color:#143d2e}
.candidate ol.portfolio-priority-steps{margin:16px 0 20px;padding:15px 18px 15px 38px;border:1px solid #d5e2d5;border-radius:12px;background:#f7faf4;font-size:15px;font-weight:500;line-height:1.55}
.candidate ol.portfolio-priority-steps li+li{margin-top:10px}
.candidate ol.portfolio-priority-steps li::marker{font-weight:800;color:#315d40}
.candidate .case-card .bubble{max-width:100%;margin:10px 0}
.candidate .portfolio-snapshot{margin:12px 0 16px;max-width:100%;border:1px solid #d9e3d3;border-radius:12px;background:#fffefa;overflow:hidden}
.candidate .portfolio-capacity{margin:0;padding:12px 14px 0;font-size:13px;font-weight:700;color:#173f30}
.candidate .portfolio-period{margin:0;padding:12px 14px 0;font-size:12px;font-weight:700;color:#355740}
.candidate .portfolio-caveat{margin:0;padding:4px 14px 10px;font-size:12px;color:#526c5d}
.candidate .portfolio-scroll-hint{display:none;margin:0;padding:0 14px 7px;text-align:right;font-size:11px;font-weight:750;color:#355740}
.candidate .portfolio-table-scroll{max-width:100%;overflow-x:auto}
.candidate .portfolio-table{width:100%;min-width:620px;border-collapse:collapse;font-size:13px;line-height:1.4;font-variant-numeric:tabular-nums}
.candidate .portfolio-caption{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.candidate .portfolio-table th,.candidate .portfolio-table td{padding:10px 12px;text-align:left;white-space:nowrap;border-top:1px solid #e3e9df}
.candidate .portfolio-table thead th{background:#f1f5ed;color:#355740;font-weight:750;white-space:normal;vertical-align:bottom}
.candidate .portfolio-table thead th:first-child,.candidate .portfolio-table tbody th{position:sticky;left:0;z-index:1;min-width:118px;box-shadow:2px 0 0 #dfe8da}
.candidate .portfolio-table tbody th{background:#fffefa;font-weight:700;color:#173f30}
@media(max-width:680px){.candidate .portfolio-scroll-hint{display:block}}
@media(max-width:600px){.candidate .prompt-context{padding:12px;font-size:14px}.candidate .case-card{padding:16px}.candidate .case-card .bubble{max-width:100%}}

.candidate .step-back-nav{display:flex;justify-content:flex-start;margin:-7px 0 16px}.candidate .step-back-nav button{padding:9px 15px;box-shadow:none;font-size:14px}
.candidate .saved-step{margin-top:16px}.candidate .saved-step h2{overflow-wrap:anywhere}.candidate .saved-step .bubble{max-width:100%;margin:20px 0 0}.candidate .saved-step-actions{justify-content:space-between}.candidate .saved-step-actions button:last-child{margin-left:auto}
.candidate .typing-recovery{max-width:620px}.candidate .typing-recovery p{margin-top:0;color:#426250}
.typing-confirm{width:min(100% - 32px,540px);max-height:calc(100vh - 32px);margin:auto;padding:0;border:1px solid #a9c9b9;border-radius:24px;background:#fff;color:#153c30;box-shadow:0 28px 90px #092c2360;overflow:auto}.typing-confirm::backdrop{background:#0b291f99;backdrop-filter:blur(5px)}
.typing-confirm-content{padding:32px}.typing-confirm-kicker{font-size:11px;letter-spacing:1.7px;font-weight:800;color:#4b8056}.typing-confirm h2{font:500 clamp(30px,5vw,39px)/1.15 Georgia,serif;margin:12px 0}.typing-confirm p{font-size:15px;line-height:1.55;color:#486658;margin:0}.typing-confirm-actions{justify-content:space-between;margin-top:28px}.typing-confirm-actions button{min-width:160px}
@media(max-width:600px){.typing-confirm-content{padding:24px}.typing-confirm-actions{flex-direction:column-reverse}.typing-confirm-actions button{width:100%}.candidate .saved-step-actions button{flex:1}}

/* Keep part changes aligned with the active task and readable without motion. */
.candidate[data-phase=round-intro] #app{width:100%;max-width:790px}
.candidate[data-phase=round-intro] main{display:block}
.candidate .round-intro,
.candidate .round-scene .round-badge,
.candidate .round-scene::before,
.candidate .round-scene::after,
.candidate .round-float,
.candidate .round-start-button,
.candidate .round-start-button::after{animation:none}
