:root{--ca-bg:#050a12;--ca-panel:#0b1626;--ca-panel2:#101f33;--ca-blue:#0d6efd;--ca-bright:#38a3ff;--ca-light:#77c3ff;--ca-muted:#8fa9c1;--ca-text:#e7f2fc}
html,body{min-height:100%;background:radial-gradient(circle at top,#0d1a2d 0,#050a12 48%);color:var(--ca-text)}
body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.ca-nav{background:#07111f;border-bottom:1px solid #17304d}.card,.modal-content{background:var(--ca-panel);border:1px solid #17304d;color:var(--ca-text);box-shadow:0 12px 35px rgba(0,0,0,.24)}
.ca-panel-alt{background:var(--ca-panel2)}.text-secondary{color:var(--ca-muted)!important}.form-control,.form-select{background:#081321;border-color:#24415f;color:var(--ca-text)}.form-control:focus,.form-select:focus{background:#081321;color:#fff;border-color:var(--ca-bright);box-shadow:0 0 0 .2rem rgba(56,163,255,.15)}.form-control::placeholder{color:#66829c}.btn-primary{background:var(--ca-blue)}.progress{background:#081321}.table{--bs-table-bg:transparent;--bs-table-color:var(--ca-text);--bs-table-border-color:#17304d}.badge-soft{background:#102b46;color:var(--ca-light);border:1px solid #1f4d77}.login-shell{max-width:1050px;margin:5vh auto}.login-hero{min-height:520px;background:linear-gradient(145deg,#0b1b30,#07111f);border-right:1px solid #17304d}.metric{font-size:2rem;font-weight:700}.track-card:hover{border-color:#2d6da3;transform:translateY(-1px);transition:.15s}

/* Phase 1: Phish Hunt */
.ca-info-box{border:1px solid rgba(119,195,255,.16);background:rgba(13,110,253,.055);border-radius:.75rem;padding:1rem;height:100%}
.ca-queue-list .list-group-item{background:transparent;color:#dbe9f6;border-color:rgba(143,169,193,.12);padding:.75rem .25rem}
.ca-queue-list .list-group-item:hover{background:rgba(56,163,255,.08);color:#fff}
.ca-ticket-header{background:rgba(5,10,18,.65)}
.ca-email-body{background:#f6f8fa;color:#17202a;line-height:1.55;min-height:180px}
.ca-email-body a{color:#0b57d0;text-decoration:underline;word-break:break-all}
.ca-email-body p:last-child{margin-bottom:0}
.ca-evidence-option{display:flex;align-items:flex-start;border:1px solid rgba(143,169,193,.18);border-radius:.7rem;padding:.85rem;height:100%;cursor:pointer;background:rgba(5,10,18,.25)}
.ca-evidence-option:hover{border-color:rgba(56,163,255,.65);background:rgba(56,163,255,.07)}
.ca-security-check{padding:.8rem 0;border-bottom:1px solid rgba(143,169,193,.15)}
.ca-security-check:last-child{border-bottom:0;padding-bottom:0}
.ca-review-email{min-height:auto}
.ca-review-indicator{border-left:3px solid rgba(143,169,193,.35);padding:.75rem .9rem;margin-bottom:.7rem;background:rgba(255,255,255,.025)}
.ca-review-indicator.good{border-left-color:#198754;background:rgba(25,135,84,.09)}
.ca-review-indicator.bad{border-left-color:#dc3545;background:rgba(220,53,69,.09)}

/* Phase 2: Login Impossible */
.ca-identity-timeline{border-left:2px solid rgba(56,163,255,.35);padding-left:1rem}
.ca-identity-risk{background:rgba(220,53,69,.08);border:1px solid rgba(220,53,69,.25)}
.ca-log-table{font-size:.86rem}.ca-log-table td{vertical-align:top}.ca-log-table tbody tr:hover{background:rgba(56,163,255,.07)}.ca-log-table .form-check-input{transform:scale(1.15)}

/* Cyber Knowledge Challenges: Cyberland virtual gameboard */
.ca-gameboard-card{overflow:hidden}
.ca-board-progress{width:min(320px,100%)}
.ca-gameboard-wrap{position:relative;width:100%;aspect-ratio:2/1;border-radius:1rem;overflow:hidden;border:1px solid rgba(119,195,255,.25);background:#081321;box-shadow:inset 0 0 35px rgba(0,0,0,.35)}
.ca-gameboard-image{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.ca-board-marker{position:absolute;transform:translate(-50%,-50%);width:clamp(34px,4.2vw,72px);height:clamp(34px,4.2vw,72px);border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none!important;font-size:clamp(1rem,2vw,2rem);font-weight:900;z-index:3;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;cursor:default}
a.ca-board-marker{cursor:pointer}
a.ca-board-marker:hover{transform:translate(-50%,-50%) scale(1.1);filter:brightness(1.08)}
.ca-board-marker-completed{background:radial-gradient(circle at 35% 30%,#fff4a6 0,#ffc107 32%,#b56b00 70%,#6b3900 100%);border:3px solid #fff0a4;color:#fff8d7;box-shadow:0 0 0 4px rgba(86,44,0,.7),0 0 18px rgba(255,193,7,.85);text-shadow:0 2px 2px rgba(0,0,0,.5)}
.ca-board-marker-current{background:radial-gradient(circle at 40% 35%,#dff7ff 0,#38a3ff 35%,#0d6efd 72%,#063b88 100%);border:3px solid #d7f7ff;color:#fff;box-shadow:0 0 0 5px rgba(13,110,253,.55),0 0 25px 9px rgba(56,163,255,.85);animation:caBoardPulse 1.8s ease-in-out infinite}
.ca-board-marker-upcoming{background:#f0cc91;border:3px solid #1b1710;color:#111;box-shadow:0 3px 8px rgba(0,0,0,.45)}
.ca-board-stage-number{position:absolute;top:-8px;left:-8px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#07111f;color:#fff;border:2px solid rgba(255,255,255,.85);font-size:.7rem;font-weight:800;box-shadow:0 2px 5px rgba(0,0,0,.4)}
.ca-board-marker-label{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;background:rgba(5,10,18,.9);color:#f3f8fd;border:1px solid rgba(119,195,255,.45);padding:.18rem .45rem;border-radius:.35rem;font-size:clamp(.48rem,.72vw,.72rem);font-weight:700;letter-spacing:.01em;text-shadow:none;box-shadow:0 2px 7px rgba(0,0,0,.35)}
.ca-board-marker-upcoming .ca-board-marker-label{opacity:.72}
.ca-board-legend{display:flex;gap:1.25rem;flex-wrap:wrap;color:var(--ca-muted);font-size:.9rem;align-items:center}
.ca-board-legend>span{display:inline-flex;align-items:center;gap:.45rem}
.ca-mini-marker{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.ca-mini-marker.completed{background:#c48200;color:#fff5bf;border:2px solid #ffd65a}.ca-mini-marker.current{background:#0d6efd;color:#fff;border:2px solid #bfeeff;box-shadow:0 0 8px #38a3ff}.ca-mini-marker.upcoming{background:#e8c58c;color:#111;border:2px solid #16120d}
.ca-stage-summary{background:rgba(5,10,18,.34);border:1px solid rgba(143,169,193,.16);border-radius:.65rem;padding:.75rem}
@keyframes caBoardPulse{0%,100%{box-shadow:0 0 0 4px rgba(13,110,253,.45),0 0 16px 5px rgba(56,163,255,.65)}50%{box-shadow:0 0 0 7px rgba(13,110,253,.22),0 0 31px 12px rgba(56,163,255,.95)}}
@media (max-width:767.98px){
  .ca-gameboard-wrap{overflow-x:auto;overflow-y:hidden;aspect-ratio:auto}
  .ca-gameboard-image{width:960px;max-width:none;height:auto}
  .ca-board-marker{position:absolute;width:40px;height:40px;font-size:1.15rem}
  .ca-board-marker-label{font-size:.56rem;top:calc(100% + 5px)}
  .ca-board-stage-number{width:18px;height:18px;font-size:.58rem;top:-6px;left:-6px}
}
@media (prefers-reduced-motion:reduce){.ca-board-marker-current{animation:none}}
/* Mobile correction: keep markers registered to the responsive image rather than a scroll viewport. */
@media (max-width:767.98px){
  .ca-gameboard-wrap{overflow:hidden;aspect-ratio:2/1}
  .ca-gameboard-image{width:100%;height:100%;max-width:100%;object-fit:cover}
  .ca-board-marker-label{display:none}
  .ca-board-marker{width:clamp(25px,8vw,38px);height:clamp(25px,8vw,38px);font-size:clamp(.75rem,4vw,1.1rem);border-width:2px}
  .ca-board-stage-number{width:16px;height:16px;font-size:.5rem;top:-6px;left:-6px;border-width:1px}
}

/* Responsive Cyberland board sizing: scale the image and marker coordinate space together. */
.ca-gameboard-wrap{
  width:min(100%,124vh);
  max-width:1600px;
  margin-inline:auto;
  aspect-ratio:2/1;
}
.ca-gameboard-image{
  width:100%;
  height:100%;
  object-fit:contain;
}
@media (max-height:900px) and (min-width:768px){
  .ca-gameboard-wrap{width:min(100%,116vh)}
}
@media (max-height:760px) and (min-width:768px){
  .ca-gameboard-wrap{width:min(100%,108vh)}
}
@media (max-width:767.98px){
  .ca-gameboard-wrap{width:100%;max-width:none;aspect-ratio:2/1}
}

/* Phase 6: Hackman5000 hidden challenge */
.ca-hackman-hotspot-form{position:absolute;left:68%;top:3%;width:17%;height:36%;z-index:999;margin:0;padding:0;pointer-events:auto}
.ca-hackman-hotspot{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;opacity:0;cursor:pointer;appearance:none;z-index:1000}
.ca-hackman-hotspot:focus-visible{opacity:.12;outline:2px dashed rgba(255,255,255,.35);outline-offset:-4px}
.hm-shell{max-width:1180px}.hm-terminal-card{background:radial-gradient(circle at top right,rgba(220,53,69,.14),transparent 35%),#08111d;border-color:rgba(220,53,69,.35)}
.hm-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;letter-spacing:.12em;color:#ff6b79;font-weight:800}.hm-avatar{width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#070b10;border:2px solid #dc3545;color:#ff4054;font-size:2.8rem;box-shadow:0 0 25px rgba(220,53,69,.25)}
.hm-puzzle-card{border-color:rgba(143,169,193,.18)}.hm-puzzle-card.hm-done{border-color:rgba(25,135,84,.45);background:linear-gradient(145deg,rgba(25,135,84,.08),var(--ca-panel))}
.hm-codeblock{background:#02070d;border:1px solid #26394c;border-radius:.7rem;padding:1rem 1.2rem;color:#8ee7ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all;letter-spacing:.04em}
.hm-log-table{font-size:.82rem;white-space:nowrap}.hm-log-table code{color:#b7d9f5}.hm-trophy-mini{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#7a5200;color:#ffd75e;font-size:1.7rem;border:2px solid #ffd75e}
.hm-certificate{max-width:920px;border:3px double #d6a514;background:radial-gradient(circle at top,#16243a 0,#0b1626 48%,#07111f 100%)}.hm-certificate-icon{font-size:5rem;color:#ffc107;text-shadow:0 0 24px rgba(255,193,7,.35)}
.hm-dashboard-trophy{border-color:rgba(255,193,7,.5);background:linear-gradient(135deg,rgba(255,193,7,.09),var(--ca-panel))}
@media print{.ca-nav,.d-print-none{display:none!important}body{background:#fff;color:#111}.hm-certificate{box-shadow:none;border-color:#a77b00;background:#fff;color:#111}.hm-certificate .text-secondary{color:#444!important}}
.ca-hackman-victory{position:absolute;left:45.5%;top:50%;transform:translate(-50%,-50%);z-index:6;width:clamp(30px,3vw,50px);height:clamp(30px,3vw,50px);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#6b4300;border:2px solid #ffd75e;color:#ffd75e;text-decoration:none;box-shadow:0 0 16px rgba(255,193,7,.75);font-size:clamp(.9rem,1.5vw,1.4rem)}
.ca-hackman-victory:hover{color:#fff2a8;transform:translate(-50%,-50%) scale(1.08)}

/* Participant dashboard track cards */
.track-dashboard-card{width:100%;border-color:#17304d;background:var(--ca-panel);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.track-dashboard-card:hover{transform:translateY(-1px)}
.track-dashboard-card.track-state-progress{border-color:rgba(56,163,255,.48);background:linear-gradient(135deg,rgba(56,163,255,.12),rgba(11,22,38,.98) 55%,var(--ca-panel));box-shadow:0 12px 35px rgba(0,0,0,.24),inset 3px 0 0 rgba(56,163,255,.55)}
.track-dashboard-card.track-state-complete{border-color:rgba(25,135,84,.58);background:linear-gradient(135deg,rgba(25,135,84,.14),rgba(11,22,38,.98) 55%,var(--ca-panel));box-shadow:0 12px 35px rgba(0,0,0,.24),inset 3px 0 0 rgba(25,135,84,.7)}
.track-dashboard-icon{flex:0 0 auto;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0b2742;color:#61c8ff;font-size:1.7rem;border:2px solid #3baee8;box-shadow:0 0 16px rgba(56,163,255,.16)}
.track-state-new .track-dashboard-icon{background:#111d2b;color:#8fa9c1;border-color:#35506a;box-shadow:none}
.track-state-complete .track-dashboard-icon{background:#0d432d;color:#7de0a8;border-color:#36a86d;box-shadow:0 0 16px rgba(25,135,84,.18)}
.track-dashboard-kicker{font-size:.76rem;font-weight:800;letter-spacing:.06em;color:#8fa9c1;margin-bottom:.2rem}
.track-state-progress .track-dashboard-kicker{color:#70ceff}.track-state-complete .track-dashboard-kicker{color:#70d89d}
.track-dashboard-progress{height:7px}.track-state-progress .track-dashboard-progress .progress-bar{background:#38a3ff}.track-state-complete .track-dashboard-progress .progress-bar{background:#2fb36e}.track-state-new .track-dashboard-progress .progress-bar{background:#53697d}
.track-history{border-top:1px solid rgba(143,169,193,.16);padding-top:.8rem}.track-history summary{cursor:pointer;color:var(--ca-muted);font-size:.88rem}.track-history summary:hover{color:var(--ca-light)}
.hm-dashboard-trophy-complete{border-color:rgba(25,135,84,.58)!important;background:linear-gradient(135deg,rgba(25,135,84,.14),rgba(11,22,38,.98) 55%,var(--ca-panel))!important;box-shadow:0 12px 35px rgba(0,0,0,.24),inset 3px 0 0 rgba(25,135,84,.7)}
.hm-dashboard-trophy-complete .hm-trophy-mini{background:#0d432d;color:#7de0a8;border-color:#36a86d;box-shadow:0 0 16px rgba(25,135,84,.18)}
@media (max-width:767.98px){.track-dashboard-icon,.hm-trophy-mini{width:50px;height:50px;font-size:1.4rem}.track-dashboard-card>.d-flex,.hm-dashboard-trophy>.d-flex{align-items:flex-start!important}}

/* Admin workspace */
.ca-admin-body{overflow-x:hidden}.ca-admin-shell{display:flex;min-height:calc(100vh - 57px)}
.ca-admin-sidebar{width:260px;flex:0 0 260px;background:#07111f;border-right:1px solid #17304d;padding:1rem .75rem 2rem;position:sticky;top:57px;height:calc(100vh - 57px);overflow-y:auto;z-index:1010}
.ca-admin-side-title{font-weight:800;font-size:.9rem;letter-spacing:.03em;padding:.55rem .7rem 1rem;color:#dff1ff}.ca-admin-menu{display:flex;flex-direction:column;gap:.15rem}.ca-admin-link,.ca-admin-section{display:flex;align-items:center;gap:.65rem;border-radius:.5rem;padding:.62rem .72rem;color:#9fb8ce;text-decoration:none;font-size:.9rem}.ca-admin-link i,.ca-admin-section i{width:18px;text-align:center}.ca-admin-link:hover{color:#fff;background:rgba(56,163,255,.08)}.ca-admin-link.active{background:rgba(56,163,255,.14);color:#8ed8ff;border:1px solid rgba(56,163,255,.2)}.ca-admin-section{margin-top:.65rem;color:#e2edf7;font-weight:750}.ca-admin-subhead{padding:.45rem .72rem .2rem 2.05rem;text-transform:uppercase;font-size:.62rem;letter-spacing:.12em;color:#59758f;font-weight:800}.ca-admin-link.sub{padding-left:2rem}.ca-admin-link.sub2{padding-left:2.55rem;font-size:.84rem}.ca-admin-main{flex:1;min-width:0;padding:1.5rem 1.75rem 3rem;max-width:1800px}.ca-admin-menu-toggle{display:none;position:fixed;left:8px;bottom:12px;z-index:1200;border:1px solid #2a526f;background:#0b1626;color:#dff4ff;border-radius:.5rem;width:42px;height:42px}.ca-admin-kicker{font-size:.68rem;letter-spacing:.13em;color:#53bfff;font-weight:850;margin-bottom:.35rem}
.ca-admin-stat-card{height:100%;display:flex;gap:.85rem;align-items:center;padding:1rem;border:1px solid #20384f;border-radius:.65rem;background:linear-gradient(145deg,rgba(56,163,255,.055),#0b1626)}.ca-admin-stat-card.secret{border-color:rgba(245,174,64,.45);background:linear-gradient(145deg,rgba(245,174,64,.1),#0b1626)}.ca-admin-stat-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#152536;color:#53c7ef;font-size:1.15rem}.ca-admin-stat-card.secret .ca-admin-stat-icon{color:#f4b24f}.ca-admin-stat-value{font-size:1.55rem;font-weight:850;line-height:1.1}.ca-admin-stat-note{font-size:.68rem;color:#69869f;margin-top:.18rem}
.ca-tract-graph-card{border:1px solid #263b4e;border-radius:.65rem;background:#0c151f;padding:1rem}.ca-tract-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.ca-donut{--pct:0;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#3dc98a calc(var(--pct)*1%),#273542 0);position:relative;flex:0 0 92px}.ca-donut:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#0c151f}.ca-donut>div{position:relative;z-index:1;text-align:center}.ca-donut strong{display:block;font-size:1.25rem}.ca-donut span{display:block;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:#79a1bd}.ca-challenge-bars{display:grid;gap:.43rem}.ca-challenge-row{display:grid;grid-template-columns:minmax(112px,180px) minmax(140px,1fr) 55px 46px;gap:.55rem;align-items:center;font-size:.72rem}.ca-challenge-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#dbe8f3}.ca-challenge-track{height:12px;background:#1e2a35;position:relative;overflow:hidden;border-radius:1px}.ca-bar-active,.ca-bar-complete{position:absolute;left:0;top:0;height:100%}.ca-bar-active{background:#8493a2}.ca-bar-complete{background:#39b977;height:5px;top:3.5px}.ca-challenge-count{color:#91a7ba;text-align:right}.ca-challenge-pct{text-align:center;font-weight:800;padding:.12rem .25rem;border-radius:.25rem}.ca-challenge-pct.good{color:#55d89a;background:rgba(42,181,113,.1)}.ca-challenge-pct.warn{color:#f6b84e;background:rgba(246,184,78,.1)}.ca-challenge-pct.bad{color:#ff6f79;background:rgba(220,53,69,.1)}.ca-chart-legend{display:flex;gap:1rem;font-size:.66rem;color:#8297a9}.ca-chart-legend span{display:flex;align-items:center;gap:.35rem}.ca-chart-legend i{display:inline-block;width:14px;height:6px}.ca-chart-legend i.active{background:#8493a2}.ca-chart-legend i.complete{background:#39b977}
.ca-rank-tabs .nav-link{font-size:.76rem;padding:.38rem .65rem;color:#8ca6bc}.ca-rank-tabs .nav-link.active{background:#173b5a;color:#dff4ff}.ca-rank-row{display:grid;grid-template-columns:36px 1fr auto;gap:.6rem;align-items:center;border-bottom:1px solid rgba(143,169,193,.1);padding:.55rem 0;font-size:.76rem}.ca-rank-row .rank{color:#5ebff2;font-weight:800}.ca-rank-row .name{font-weight:650}.ca-rank-row .value{color:#8fa9c1;font-size:.68rem;text-align:right}
.ca-user-board{overflow:hidden}.ca-user-board-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;background:#111d29;border-bottom:1px solid #263b4e}.ca-board-range{font-size:.75rem;font-weight:800;color:#9daab5}.ca-board-progress-cell{display:flex;align-items:center;gap:.5rem;min-width:155px}.ca-board-progress-cell .progress{height:8px;flex:1}.ca-board-progress-cell .progress-bar{background:#36b77a}.ca-board-progress-cell span{font-size:.7rem;color:#90a9bd;min-width:30px;text-align:right}.ca-note{display:flex;gap:.8rem;padding:.8rem 0;border-bottom:1px solid rgba(143,169,193,.1);font-size:.76rem;color:#8fa9c1}.ca-note:last-child{border-bottom:0}.ca-note i{color:#50bff0;font-size:1rem;margin-top:.1rem}.ca-note strong{display:block;color:#dbe9f6;margin-bottom:.15rem}
@media(max-width:991.98px){.ca-admin-sidebar{position:fixed;left:-275px;top:57px;transition:left .2s}.ca-admin-open .ca-admin-sidebar{left:0}.ca-admin-menu-toggle{display:block}.ca-admin-main{padding:1.25rem .8rem 4rem}.ca-challenge-row{grid-template-columns:110px 1fr 48px 40px}.ca-admin-open:after{content:"";position:fixed;inset:57px 0 0 0;background:rgba(0,0,0,.45);z-index:1000;pointer-events:none}}
.ca-stage-admin-card{height:100%;padding:.9rem;border:1px solid #263b4e;border-radius:.55rem;background:#0c151f}.ca-stage-admin-card .progress{height:7px}.ca-stage-admin-card .progress-bar{background:#39b977}

/* Phase 13: interactive Caesar wheel and standalone Dial Pad Cipher */
.ca-caesar-wheel-shell{max-width:650px;margin:0 auto;touch-action:none;user-select:none}
.ca-caesar-wheel{display:block;width:100%;height:auto;cursor:grab;filter:drop-shadow(0 18px 28px rgba(0,0,0,.35))}.ca-caesar-wheel.dragging{cursor:grabbing}
.ca-wheel-rim{fill:#0a111b;stroke:#4e6579;stroke-width:6}.ca-wheel-inner-bg{fill:#101f33;stroke:#66b9e8;stroke-width:3}.ca-wheel-hub{fill:#07111f;stroke:#2d638d;stroke-width:4}
.ca-wheel-letter{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:900;pointer-events:none}.ca-wheel-letter-outer{font-size:25px;fill:#ffd36b}.ca-wheel-letter-inner{font-size:24px;fill:#9bdcff}.ca-wheel-tick{stroke:#5b7185;stroke-width:2;opacity:.7}.ca-wheel-outer-ring{transition:transform .12s ease-out}.dragging .ca-wheel-outer-ring{transition:none}.ca-wheel-hub-label{fill:#e7f2fc;font-weight:900;font-size:27px;letter-spacing:.14em}.ca-wheel-hub-shift{fill:#ffd36b;font-size:43px;font-weight:900}.ca-wheel-hub-small{fill:#7896ad;font-size:13px;letter-spacing:.13em}.ca-wheel-index{fill:#ff5d68;stroke:#fff;stroke-width:1}
.ca-shift-readout{display:flex;align-items:center;gap:.65rem;padding:.45rem .7rem;border:1px solid #28475f;border-radius:.5rem;background:#07111f}.ca-shift-readout span{font-size:.68rem;color:#8fa9c1;text-transform:uppercase;letter-spacing:.08em}.ca-shift-readout strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#ffd36b;font-size:1.25rem}
.ca-cipher-clue{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.ca-cipher-clue>div{padding:.8rem;border:1px solid #28475f;border-radius:.6rem;background:#07111f}.ca-cipher-clue span{display:block;color:#819cb2;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.ca-cipher-clue strong{display:block;margin-top:.2rem;color:#8ee7ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem}
.ca-phone-wrap{display:flex;justify-content:center}.ca-phone{width:min(100%,360px);min-height:650px;border-radius:34px;background:linear-gradient(160deg,#050505,#151515);border:5px solid #242424;padding:25px 25px 28px;box-shadow:0 22px 50px rgba(0,0,0,.45),inset 0 0 0 2px #000;transition:transform .18s ease}.ca-phone.calling{transform:scale(.99)}.ca-phone-speaker{width:72px;height:7px;border-radius:999px;background:#353535;margin:0 auto 24px}.ca-phone-display{height:80px;border-radius:14px;background:#091015;border:1px solid #273541;margin-bottom:22px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#eaf7ff;box-shadow:inset 0 3px 10px rgba(0,0,0,.5)}.ca-phone-display .small{font-size:.58rem;letter-spacing:.16em;color:#6f8798}.ca-phone-display>div:last-child{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.9rem;letter-spacing:.1em;min-height:2.2rem}.ca-phone-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 14px}.ca-phone-key{aspect-ratio:1;border-radius:50%;border:0;background:linear-gradient(145deg,#575757,#393939);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 3px 0 #1b1b1b;font-weight:300;transition:transform .08s ease,filter .08s ease}.ca-phone-key span{font-size:2rem;line-height:1}.ca-phone-key small{font-size:.62rem;letter-spacing:.12em;font-weight:700;margin-top:.15rem}.ca-phone-key:hover{filter:brightness(1.16)}.ca-phone-key:active,.ca-phone-key.pressed{transform:translateY(2px);box-shadow:0 1px 0 #1b1b1b}.ca-phone-tools{display:flex;justify-content:center;gap:.7rem;margin:18px 0 16px}.ca-phone-call{width:74px;height:74px;border-radius:50%;border:0;background:#00d94f;color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto;box-shadow:0 0 0 5px rgba(0,217,79,.08),0 7px 16px rgba(0,0,0,.35);transition:filter .12s ease,transform .12s ease}.ca-phone-call:hover:not(:disabled){filter:brightness(1.08);transform:scale(1.04)}.ca-phone-call:disabled{background:#284b35;color:#6f8877;cursor:not-allowed}.ca-phone-call-complete{background:#198754}.tracking-wide{letter-spacing:.12em}
@media(max-width:575.98px){.ca-wheel-letter-outer{font-size:22px}.ca-wheel-letter-inner{font-size:21px}.ca-phone{width:min(100%,330px);min-height:610px;padding:22px 21px}.ca-phone-key span{font-size:1.7rem}.ca-cipher-clue{grid-template-columns:1fr}}
