.path-map{aspect-ratio:3/4;background:radial-gradient(var(--clr-border) 1.6px, transparent 1.8px) 0 0 / 22px 22px, linear-gradient(180deg, var(--clr-surface-subtle), #eef2ff);border:2px solid var(--clr-border-light);border-radius:24px;width:100%;max-width:560px;margin:0 auto;position:relative;overflow:visible}.path-map--unavailable{display:none}.path-home-link{margin-top:var(--sp-6)}.path-parent-gate{align-items:center;gap:var(--sp-4);width:min(100%,42rem);margin:0 auto var(--sp-5);padding:var(--sp-5);border:2px solid var(--clr-primary);text-align:left;background:#eff6ff;border-radius:20px;grid-template-columns:auto 1fr;display:grid}.path-parent-gate.hidden{display:none}.path-parent-gate--done{margin:var(--sp-4) auto}.path-parent-gate__icon{font-size:2.4rem}.path-parent-gate h2{margin:0 0 4px;font-size:1.2rem}.path-parent-gate p{margin:0 0 var(--sp-3);color:var(--clr-text-muted);line-height:1.45}@media (width<=520px){.path-parent-gate{text-align:center;grid-template-columns:1fr}}.path-map__edges{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.path-edge{fill:none;stroke:var(--clr-border);stroke-dasharray:3 2.4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:6px;opacity:.5}.path-edge--open{stroke:var(--clr-success);stroke-dasharray:none;opacity:.9;filter:drop-shadow(0 0 3px #10b98173)}.path-map__nodes{z-index:1;position:absolute;inset:0}.path-node{--path-node-track:var(--track-think);cursor:pointer;width:96px;font:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.path-node__badge{z-index:1;background:var(--clr-surface);border:3px solid var(--clr-border);border-radius:50%;place-items:center;width:56px;height:56px;font-size:26px;transition:transform .15s;display:grid;position:relative;box-shadow:0 3px #0f172a1f}.path-node__label{z-index:1;text-align:center;color:var(--clr-text-faint);background:var(--clr-surface-subtle);border-radius:8px;font-size:12px;font-weight:700;line-height:1.15;position:relative}.path-node__stars{font-size:12px;line-height:1}.path-node--inf{--path-node-track:var(--track-inf)}.path-node--think{--path-node-track:var(--track-think)}.path-node--ai{--path-node-track:var(--track-ai)}.path-node--cross,.path-node--cross-all{--path-node-track:var(--track-inf)}.path-node--inf .path-node__badge{border-color:var(--track-inf)}.path-node--think .path-node__badge{border-color:var(--track-think)}.path-node--ai .path-node__badge{border-color:var(--track-ai)}.path-node--cross .path-node__badge{border-color:var(--track-inf);box-shadow:0 0 0 3px var(--track-ai), 0 3px 0 #0f172a1f}.path-node--cross-all .path-node__badge{border-color:var(--track-think);box-shadow:0 0 0 3px var(--track-ai), 0 0 0 6px var(--track-inf), 0 3px 0 #0f172a1f}.path-node--open .path-node__badge{animation:2s ease-in-out infinite path-pulse}.path-node--open:hover .path-node__badge,.path-node--open:focus-visible .path-node__badge{transform:scale(1.08)}.path-node--started .path-node__badge{background:linear-gradient(var(--clr-surface), var(--clr-surface)) padding-box, conic-gradient(var(--path-node-track) 0 62%, var(--clr-border-light) 62% 100%) border-box;box-shadow:0 3px 0 #0f172a1f, 0 0 0 4px color-mix(in srgb, var(--path-node-track) 18%, transparent);border-color:#0000}.path-node--started .path-node__label{color:var(--clr-text)}.path-node--started:hover .path-node__badge,.path-node--started:focus-visible .path-node__badge{transform:scale(1.08)}.path-node--done .path-node__badge{background:var(--clr-emerald-light);border-color:var(--clr-emerald);color:var(--clr-emerald-dark);font-weight:900;box-shadow:0 3px #0f172a1f,0 0 0 4px #10b9812e}.path-node--locked{cursor:default}.path-node--locked .path-node__badge{filter:grayscale();opacity:.45;border-color:var(--clr-border);animation:none;box-shadow:0 3px #0f172a14}.path-node--locked .path-node__label{opacity:.75}.path-node:focus-visible{outline:none}.path-node:focus-visible .path-node__badge{outline:3px solid var(--clr-primary);outline-offset:3px}@keyframes path-pulse{0%,to{box-shadow:0 3px #0f172a1f,0 0 #3b82f68c}50%{box-shadow:0 3px #0f172a1f,0 0 0 14px #3b82f600}}@media (prefers-reduced-motion:reduce){.path-node--open .path-node__badge{animation:none}}.yearly-preview{width:min(100%,1180px);margin-inline:auto}.yearly-preview__subtitle{max-width:54rem;margin-inline:auto}.yearly-preview__nav{justify-content:center;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-6);flex-wrap:wrap;display:flex}.yearly-preview__grade-link{border:2px solid var(--clr-border);background:var(--clr-surface);min-height:40px;color:var(--clr-text);border-radius:8px;align-items:center;padding:8px 14px;font-weight:800;text-decoration:none;display:inline-flex}.yearly-preview__grade-link:hover,.yearly-preview__grade-link:focus-visible,.yearly-preview__grade-link--active{border-color:var(--clr-primary);background:var(--clr-sky-light)}.yearly-grade{margin:var(--sp-7) 0}.yearly-grade__header{justify-content:space-between;align-items:end;gap:var(--sp-3);margin-bottom:var(--sp-3);border-bottom:2px solid var(--clr-border);display:flex}.yearly-grade__header h2{color:var(--clr-text);margin:0;font-size:1.45rem}.yearly-grade__header p{color:var(--clr-text-muted);margin:0 0 8px;font-weight:700}.yearly-island{margin:var(--sp-4) 0;padding:var(--sp-4);border:2px solid var(--clr-border-light);background:radial-gradient(var(--clr-border) 1px, transparent 1.2px) 0 0 / 18px 18px, var(--clr-surface-subtle);border-radius:8px}.yearly-island__header{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.yearly-island__header h3{color:var(--clr-text);margin:0;font-size:1.05rem}.yearly-island__header span{color:var(--clr-text-muted);font-size:.92rem;font-weight:800}.yearly-island__path{gap:var(--sp-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:relative}.yearly-island__path:before{content:"";background:linear-gradient(90deg, var(--track-inf), var(--track-think), var(--track-ai));opacity:.28;pointer-events:none;border-radius:999px;height:3px;position:absolute;inset:40px 8% auto}.yearly-point{z-index:1;border:2px solid var(--clr-border);background:var(--clr-surface);min-width:0;min-height:174px;color:var(--clr-text);font:inherit;text-align:center;cursor:pointer;border-radius:8px;grid-template-rows:auto auto minmax(2.4em,auto) auto auto;justify-items:center;gap:5px;padding:10px 8px;display:grid;position:relative}.yearly-point:hover,.yearly-point:focus-visible,.yearly-point--selected{border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-sky-light);outline:none}.yearly-point__number{background:var(--clr-text);min-width:28px;height:28px;color:var(--clr-text-inverse);border-radius:999px;place-items:center;padding:0 7px;font-size:.82rem;font-weight:900;display:inline-grid}.yearly-point__visual{border:3px solid var(--clr-border);background:var(--clr-surface-muted);border-radius:50%;place-items:center;width:50px;height:50px;font-size:24px;display:grid}.yearly-point--inf .yearly-point__visual{border-color:var(--track-inf);background:var(--track-inf-light)}.yearly-point--think .yearly-point__visual{border-color:var(--track-think);background:var(--track-think-light)}.yearly-point--ai .yearly-point__visual{border-color:var(--track-ai);background:var(--track-ai-light)}.yearly-point--cross .yearly-point__visual{border-color:var(--track-think);background:linear-gradient(135deg, var(--track-inf-light), var(--track-ai-light))}.yearly-point__title{color:var(--clr-text);overflow-wrap:anywhere;font-size:.94rem;font-weight:900;line-height:1.18}.yearly-point__meta{color:var(--clr-text-muted);overflow-wrap:anywhere;font-size:.78rem;font-weight:700;line-height:1.2}.yearly-point__status{background:var(--clr-surface-muted);color:var(--clr-text-muted);border-radius:8px;align-self:end;padding:4px 7px;font-size:.74rem;font-weight:900}.yearly-point--ready .yearly-point__status{background:var(--clr-emerald-light);color:var(--clr-emerald-dark)}.yearly-point--candidate .yearly-point__status{background:var(--clr-sky-light);color:var(--clr-sky-dark)}.yearly-point--placeholder .yearly-point__visual{opacity:.88;border-style:dashed}.yearly-point--placeholder .yearly-point__status{background:var(--clr-warning-light);color:var(--clr-warning-text)}@media (width<=760px){.yearly-grade__header{flex-direction:column;align-items:start}.yearly-island{padding:var(--sp-3)}.yearly-island__path{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr))}.yearly-island__path:before{display:none}.yearly-point{min-height:166px;padding:9px 6px}}@media (width<=380px){.yearly-point__title{font-size:.86rem}.yearly-point__meta{font-size:.72rem}}.yearly-preview{max-width:760px}.yearly-preview__subtitle{max-width:42rem}.yearly-grade{margin-block:var(--sp-6)}.yearly-grade__header{z-index:5;background:color-mix(in srgb, var(--clr-page-bg,#f8fafc) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:0;align-items:center;padding:10px 0;position:sticky;top:0}.yearly-island-slider{--active-island:0;margin:var(--sp-5) 0 var(--sp-6);position:relative}.yearly-island-slider:focus-visible{outline:3px solid var(--clr-primary);outline-offset:4px}.yearly-island-slider__controls{justify-content:center;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-3);display:flex}.yearly-island-slider__arrow,.yearly-island-slider__dot{border:2px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-text);font:inherit;cursor:pointer;place-items:center;font-weight:900;display:inline-grid;box-shadow:0 4px #0f172a14}.yearly-island-slider__arrow{border-radius:999px;width:46px;height:46px;font-size:2rem;line-height:1}.yearly-island-slider__arrow:disabled{opacity:.35;cursor:default}.yearly-island-slider__dots{align-items:center;gap:var(--sp-2);display:flex}.yearly-island-slider__dot{border-radius:8px;width:38px;height:38px}.yearly-island-slider__arrow:not(:disabled):hover,.yearly-island-slider__arrow:not(:disabled):focus-visible,.yearly-island-slider__dot:hover,.yearly-island-slider__dot:focus-visible,.yearly-island-slider__dot--active{border-color:var(--clr-primary);background:var(--clr-sky-light);outline:none}.yearly-island-slider__viewport{overflow:hidden}.yearly-island-slider__track{transform:translateX(calc(var(--active-island) * -100%));transition:transform .32s;display:flex}.yearly-island-slider__track .yearly-island{flex:0 0 100%;margin:0}@media (prefers-reduced-motion:reduce){.yearly-island-slider__track{transition:none}}.yearly-island{min-height:760px;margin:var(--sp-5) 0 var(--sp-6);background:radial-gradient(circle at 16% 14%, #3b82f61f 0 7%, transparent 7.5%), radial-gradient(circle at 84% 20%, #f59e0b24 0 6%, transparent 6.5%), radial-gradient(circle at 18% 84%, #10b9811f 0 9%, transparent 9.5%), radial-gradient(var(--clr-border-light) 1.8px, transparent 2px) 0 0 / 42px 42px, linear-gradient(180deg, #f8fbff 0%, #eef7ff 48%, #fff8e8 100%);border:0;border-radius:0;padding:0;position:relative;overflow:hidden}.yearly-island:before,.yearly-island:after{content:"";z-index:0;opacity:.8;pointer-events:none;border-radius:999px;position:absolute}.yearly-island:before{background:#22c55e24;width:160px;height:58px;bottom:62px;right:-42px}.yearly-island:after{background:#6366f11c;width:126px;height:46px;top:160px;left:-34px}.yearly-island__header{z-index:3;background:#ffffffdb;border:2px solid #94a3b83d;border-radius:8px;justify-content:space-between;align-items:start;padding:12px 14px;display:flex;position:absolute;top:18px;left:18px;right:18px;box-shadow:0 10px 24px #0f172a12}.yearly-island__header h3{font-size:1rem}.yearly-island__path{display:block;position:absolute;inset:86px 0 0}.yearly-island__path:before{display:none}.yearly-island__route{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.yearly-island__route path{fill:none;stroke:#7c3aed57;stroke-width:8px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 7px #5b21b61f);vector-effect:non-scaling-stroke}.yearly-point{left:var(--map-x);top:var(--map-y);z-index:2;width:86px;min-height:0;color:var(--clr-text);background:0 0;border:0;padding:0;display:block;position:absolute;transform:translate(-50%,-50%)}.yearly-point:hover,.yearly-point:focus-visible,.yearly-point--selected{box-shadow:none;border-color:#0000}.yearly-point:focus-visible{outline:none}.yearly-point__visual{background:linear-gradient(180deg, #fff 0%, var(--clr-surface-muted) 100%);border-width:6px;width:74px;height:74px;margin-inline:auto;transition:transform .14s,box-shadow .14s;box-shadow:0 9px #0f172a29,0 15px 22px #0f172a24}.yearly-point:hover .yearly-point__visual,.yearly-point:focus-visible .yearly-point__visual,.yearly-point--selected .yearly-point__visual{transform:translateY(-4px)scale(1.05);box-shadow:0 11px #0f172a29,0 18px 26px #0f172a29}.yearly-point__number{z-index:3;background:var(--clr-primary);border:2px solid #fff;min-width:26px;height:26px;position:absolute;top:-5px;right:2px;box-shadow:0 3px 8px #0f172a33}.yearly-point__caption{text-align:left;pointer-events:none;background:#ffffffeb;border:2px solid #94a3b847;border-radius:8px;gap:3px;width:clamp(112px,24vw,178px);padding:8px 9px;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 8px 18px #0f172a14}.yearly-point--label-right .yearly-point__caption{left:calc(100% + 6px)}.yearly-point--label-left .yearly-point__caption{right:calc(100% + 6px)}.yearly-point__title{font-size:.86rem;line-height:1.1}.yearly-point__meta{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.15;display:-webkit-box;overflow:hidden}.yearly-point__status{place-self:auto start;padding:3px 6px;font-size:.65rem}.yearly-point--ready .yearly-point__visual{background:linear-gradient(180deg, var(--clr-emerald-light), #fff);color:var(--clr-emerald-dark)}.yearly-point--candidate .yearly-point__visual{background:linear-gradient(180deg, var(--clr-sky-light), #fff)}.yearly-point--placeholder .yearly-point__visual{background:linear-gradient(#fff7ed,#f8fafc)}@media (width>=920px){body.yearly-preview-page .app-main{max-width:none;padding-inline:clamp(var(--sp-4), 3vw, var(--sp-8))}.yearly-preview{width:100%;max-width:none}.yearly-island{min-height:760px}.yearly-point__visual{width:clamp(82px,7vw,106px);height:clamp(82px,7vw,106px)}.yearly-point__caption{width:clamp(210px,18vw,280px)}}@media (width<=520px){.yearly-preview{width:100%}.yearly-preview__subtitle{margin-bottom:var(--sp-3)}.yearly-preview__nav{justify-content:flex-start;padding-bottom:4px;overflow-x:auto}.yearly-preview__grade-link{flex:none}.yearly-island{min-height:820px;margin-inline:calc(var(--sp-3) * -1)}.yearly-island-slider{margin-bottom:var(--sp-6)}.yearly-island-slider__controls{display:none}.yearly-island-slider__viewport{overflow:visible}.yearly-island-slider__track{display:block;transform:none!important}.yearly-island-slider__track .yearly-island{margin:var(--sp-5) calc(var(--sp-3) * -1) var(--sp-6)}.yearly-island__header{left:12px;right:12px}.yearly-island__path{inset-top:92px}.yearly-point__visual{border-width:5px;width:66px;height:66px;font-size:22px}.yearly-point{width:132px;left:clamp(78px, var(--map-x), calc(100% - 78px))}.yearly-point__caption{text-align:center;width:100%;margin-top:8px;padding:6px 7px;position:relative;top:auto;left:auto;right:auto;transform:none}.yearly-point--label-right .yearly-point__caption,.yearly-point--label-left .yearly-point__caption{left:auto;right:auto}.yearly-point__title{font-size:.76rem}.yearly-point__meta{font-size:.62rem}.yearly-point__status{justify-self:center;font-size:.58rem}}.path-activity__bar{justify-content:flex-start;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.path-activity__title{font-weight:800}html.path-activity-active,body.path-activity-active{overflow:hidden}body.path-activity-active #site-header,body.path-activity-active #site-footer,body.path-activity-active .skip-link{display:none}body.path-activity-active .app-main{padding:0}body.path-activity-active #path-activity:not(.hidden),body.path-activity-active #path-done:not(.hidden){z-index:120;padding:max(var(--sp-4), env(safe-area-inset-top)) max(var(--sp-4), env(safe-area-inset-right)) max(var(--sp-4), env(safe-area-inset-bottom)) max(var(--sp-4), env(safe-area-inset-left));background:var(--clr-surface);flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}body.path-activity-active #path-activity>:not(.path-activity__bar),body.path-activity-active #path-done>*{width:min(100%,760px);margin-inline:auto}@media (width<=480px){.path-map{aspect-ratio:10/16}.path-node{width:84px}.path-node__badge{width:48px;height:48px;font-size:22px}.path-node__label{font-size:11px}}.path-bonus{align-items:center;gap:var(--sp-3);text-align:center;max-width:32rem;padding:var(--sp-4) 0;flex-direction:column;margin:0 auto;display:flex}.path-bonus__icon{margin:0;font-size:3rem;line-height:1}.path-bonus__title{margin:0;font-size:clamp(1.15rem,2.8vw,1.5rem);font-weight:800}.path-bonus__hint{color:var(--clr-text-muted);margin:0}.path-bonus__list{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.path-bonus__item{font:inherit;padding:var(--sp-3) var(--sp-4);border:2px dashed var(--clr-border);background:var(--clr-surface);cursor:pointer;border-radius:14px;font-weight:700;transition:transform .12s,border-color .12s}.path-bonus__item:hover,.path-bonus__item:focus-visible{border-color:var(--clr-primary);transform:translateY(-1px)}.path-bonus__finish{margin-top:var(--sp-2)}.rz-mascot{--rz-mascot-flip:1;justify-content:center;align-items:center;gap:var(--sp-2);display:flex}.rz-mascot--right{--rz-mascot-flip:-1}.rz-mascot__img{width:clamp(72px,20vw,116px);height:auto;transform:scaleX(var(--rz-mascot-flip));filter:drop-shadow(0 6px 10px #00000026);flex:none}.rz-mascot__bubble{max-width:17rem;padding:var(--sp-2) var(--sp-3);background:var(--clr-surface);border:2px solid var(--clr-border);text-align:left;border-radius:14px;margin:0;font-weight:600;line-height:1.3;position:relative;box-shadow:0 4px 12px #00000014}.rz-mascot__bubble:after{content:"";border:8px solid #0000;width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.rz-mascot--left .rz-mascot__bubble:after{border-right-color:var(--clr-border);left:-14px}.rz-mascot--right .rz-mascot__bubble:after{border-left-color:var(--clr-border);right:-14px}@media (prefers-reduced-motion:no-preference){.rz-mascot--celebrate .rz-mascot__img{animation:.6s rz-mascot-bounce}}@keyframes rz-mascot-bounce{0%,to{transform:translateY(0) scaleX(var(--rz-mascot-flip))}30%{transform:translateY(-10px) scaleX(var(--rz-mascot-flip))}}.path-greeting{margin:var(--sp-2) auto var(--sp-3)}.finish-card__mascot{margin-bottom:var(--sp-2)}.finish-stats{justify-content:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);display:flex}.finish-stats:empty{display:none}.finish-stat{min-width:4.5rem;padding:var(--sp-2) var(--sp-3);border:2px solid var(--clr-border);background:var(--clr-surface);border-radius:14px;flex-direction:column;align-items:center;display:flex}.finish-stat__value{font-size:clamp(1.15rem,3.2vw,1.5rem);font-weight:800;line-height:1}.finish-stat__label{color:var(--clr-text-muted);margin-top:2px;font-size:.8rem}.finish-skills{margin-bottom:var(--sp-2)}.finish-skills:empty{display:none}.finish-skills__title{margin:0 0 var(--sp-2);font-weight:700}.finish-skills__chips{justify-content:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.finish-skill{padding:4px var(--sp-3);background:var(--clr-primary-soft,#6366f11f);color:var(--clr-primary);border-radius:999px;font-size:.9rem;font-weight:700}
