/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.table{display:table}}:root{color:#f6f7fb;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f6f7fb;--muted:#99a3bc;--line:#ffffff1a;--panel:#151d33db;--lime:#c9ff63;background:#090e1c;font-family:Inter,ui-rounded,SF Pro Rounded,SF Pro Display,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;min-height:100%}html{background:#090e1c}body{overscroll-behavior-y:none;background:radial-gradient(circle at 85% -10%,#263160 0,#0000 35rem),#090e1c;margin:0;overflow-x:hidden}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline-offset:3px;outline:3px solid #c9ff63}.home-shell,.screen-shell{width:min(100%,680px);min-height:100dvh;padding:max(1.25rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));margin:0 auto}.home-shell{flex-direction:column;gap:1rem;display:flex}.home-top{justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.eyebrow{color:#8e99b5;letter-spacing:.13em;text-transform:uppercase;font-size:.7rem;font-weight:800}h1,h2,p{margin-top:0}.home-top h1{letter-spacing:-.05em;margin:.2rem 0 0;font-size:clamp(2rem,9vw,3.5rem);line-height:1}.level-orb{width:3.7rem;height:3.7rem;color:var(--lime);border:1px solid #92b84d;border-radius:50%;place-content:center;font-size:1.05rem;font-weight:900;display:grid;box-shadow:inset 0 0 25px #c9ff6314}.level-orb span{text-align:center;color:#9aa77c;letter-spacing:.12em;font-size:.55rem;display:block}.streak-card,.panel,.scenario-card,.card-dock{border:1px solid var(--line);background:var(--panel);border-radius:1.35rem;box-shadow:0 18px 60px #0003}.streak-card{padding:1.15rem}.streak-card>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.streak-card span,.streak-card p{color:var(--muted);font-size:.82rem}.streak-card strong{font-size:1.4rem}.streak-card p{margin:.65rem 0 0}.streak-dots{grid-template-columns:repeat(7,1fr);gap:.45rem;margin-top:.8rem;display:grid}.streak-dots i{background:#30394e;border-radius:2rem;height:.4rem}.streak-dots i.active{background:var(--lime);box-shadow:0 0 16px #c9ff6380}.play-card{text-align:left;color:#102014;background:linear-gradient(135deg,#c9ff63,#93f59f);border:0;border-radius:1.5rem;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:100%;min-height:9rem;padding:1.25rem;transition:transform .16s;display:grid;box-shadow:0 20px 50px #76dc6f29}.play-card:active{transform:scale(.985)}.play-card .play-icon{background:#081c101f;border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid}.play-card small,.play-card strong,.play-card em{display:block}.play-card small{text-transform:uppercase;letter-spacing:.09em;opacity:.65;font-size:.72rem;font-weight:800}.play-card strong{letter-spacing:-.03em;margin:.12rem 0;font-size:1.55rem}.play-card em{opacity:.67;font-size:.78rem;font-style:normal}.home-actions{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.home-actions button{border:1px solid var(--line);text-align:left;background:#12192be6;border-radius:1.25rem;min-width:0;min-height:8rem;padding:1rem}.home-actions button>span{color:var(--lime);font-size:1.5rem}.home-actions strong,.home-actions small{overflow-wrap:anywhere;display:block}.home-actions strong{margin-top:.75rem;font-size:.9rem}.home-actions small{color:var(--muted);margin-top:.2rem}.privacy-note{text-align:center;color:#65708a;margin:auto 0 0;font-size:.72rem}.game-header{letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:800;display:flex}.icon-button,.quiet-button,.remove-button{background:0 0;border:0;min-height:44px}.icon-button{background:#ffffff12;border-radius:50%;width:44px;font-size:1.35rem}.difficulty{color:var(--lime)}.scenario-card{background:linear-gradient(150deg,#2b385cf2,#141c30e6);margin-top:1rem;padding:1.25rem}.scenario-card h1{letter-spacing:-.03em;margin:.35rem 0 .55rem;font-size:1.5rem}.scenario-card p{color:#c5cbe0;margin:0;font-size:.92rem;line-height:1.6}.tap-guide{color:#b7c1d8;align-items:center;gap:.55rem;margin-top:.9rem;font-size:.72rem;font-weight:800;display:flex}.tap-guide span{align-items:center;gap:.35rem;display:flex}.tap-guide b{background:var(--lime);color:#122014;border-radius:50%;place-items:center;width:1.3rem;height:1.3rem;font-size:.65rem;display:inline-grid}.tap-guide i{color:#5d6881;font-style:normal}.build-progress{color:#929db6;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.9rem .35rem .1rem;font-size:.7rem;font-weight:800;display:grid}.build-progress>div{background:#293248;border-radius:2rem;height:.35rem;overflow:hidden}.build-progress>div i{border-radius:inherit;background:var(--lime);height:100%;transition:width .2s;display:block}.build-progress>b{color:var(--lime)}.builder-screen{padding-bottom:max(6rem, calc(4.5rem + env(safe-area-inset-bottom)))}.architecture-board{flex-direction:column;align-items:center;padding:.65rem .15rem 0;display:flex}.client-node{background:#25314e;border-radius:2rem;padding:.65rem 1.5rem;font-size:.8rem;font-weight:800}.slot-wrap{flex-direction:column;align-items:center;width:100%;display:flex}.flow-arrow{color:#55617d;line-height:1rem}.slot-row{grid-template-columns:1fr;align-items:stretch;gap:.4rem;width:min(100%,24rem);display:grid}.slot-row.filled{grid-template-columns:1fr 44px}.architecture-slot{text-align:left;background:#141c30bf;border:1px dashed #53607d;border-radius:1rem;grid-template-columns:auto 1fr;align-items:center;gap:.15rem .8rem;width:100%;min-width:0;min-height:4.15rem;padding:.62rem .8rem;transition:all .16s;display:grid}.architecture-slot small{color:#8490aa;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}.architecture-slot strong{text-align:right;font-size:.86rem}.architecture-slot em{color:#65718c;text-align:right;grid-column:1/3;font-size:.64rem;font-style:normal}.architecture-slot.compatible{border-color:var(--lime);box-shadow:0 0 0 3px #c9ff631a}.architecture-slot.filled,.slot-row.filled .architecture-slot{background:#1b2947;border-style:solid}.slot-remove{color:#8791a9;background:#ffffff0b;border:1px solid #ffffff14;border-radius:.9rem;align-self:stretch;width:44px;min-height:44px;font-size:1.2rem}.remove-button{color:#7f8aa4;min-height:32px;font-size:.72rem}.card-dock{padding:1rem}.dock-heading{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.dock-heading h2{margin:.15rem 0 0;font-size:1rem}.quiet-button{color:#9ea8c0;font-size:.82rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.service-card{border:1px solid var(--line);text-align:left;background:#151e33;border-radius:1rem;min-width:0;min-height:4.6rem;padding:.8rem;transition:all .15s}.service-card span,.service-card small{overflow-wrap:anywhere;display:block}.service-card span{font-size:.86rem;font-weight:800}.service-card small{color:#8994ad;margin-top:.25rem;font-size:.68rem;line-height:1.3}.service-card.selected{border-color:var(--lime);background:#253531;transform:translateY(-2px);box-shadow:0 0 0 3px #c9ff6321,0 12px 25px #0003}.color-rose{border-left:3px solid #ff829f}.color-orange{border-left:3px solid #ffad65}.color-emerald{border-left:3px solid #65dfa6}.color-sky{border-left:3px solid #74c7ff}.color-pink{border-left:3px solid #e991ff}.color-cyan{border-left:3px solid #67dfdc}.color-violet{border-left:3px solid #a995ff}.color-amber{border-left:3px solid #ffd36d}.sticky-action{bottom:max(.6rem, env(safe-area-inset-bottom));z-index:3;padding-top:1rem;position:sticky}.primary-button{background:var(--lime);color:#121c13;border:0;border-radius:1rem;width:100%;min-height:3.35rem;font-weight:900;box-shadow:0 14px 30px #c9ff6329}.primary-button:disabled{color:#778097;box-shadow:none;background:#2a3347}.panel{margin-top:1rem;padding:1rem}.panel h2{font-size:.92rem}.result-hero{text-align:center;padding:1.5rem 0 .5rem}.score-number{letter-spacing:-.08em;color:var(--lime);font-size:5rem;line-height:1;display:block}.result-hero p{color:var(--muted);max-width:32rem;margin:.8rem auto 0;line-height:1.55}.data-flow{color:#65708a;flex-direction:column;align-items:center;gap:.2rem;display:flex}.data-flow span{flex-direction:column;align-items:center;display:flex}.data-flow b{color:var(--ink);text-align:center;background:#202b46;border-radius:.8rem;min-width:11rem;padding:.55rem 1rem}.score-grid{gap:.9rem;display:grid}.score-grid>div>div:first-child{justify-content:space-between;font-size:.78rem;display:flex}.meter{background:#2c354b;border-radius:1rem;height:.45rem;margin-top:.35rem;overflow:hidden}.meter i{background:linear-gradient(90deg, #78e994, var(--lime));border-radius:inherit;height:100%;display:block}.explanation p{color:#afb7cc;font-size:.83rem;line-height:1.5}.explanation .good{color:#bfecc5}.explanation .gap{color:#ffd095}.screen-shell>.primary-button{margin-top:1rem}.picker-layer{z-index:20;padding:0 max(env(safe-area-inset-right), 0px);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030710a8;justify-content:center;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}.service-picker{width:min(100%,680px);max-height:min(78dvh,42rem);padding:.5rem 1rem max(1rem, env(safe-area-inset-bottom));background:#111a2e;border:1px solid #ffffff1f;border-bottom:0;border-radius:1.5rem 1.5rem 0 0;animation:.2s sheet-up;overflow:hidden;box-shadow:0 -20px 60px #00000073}.picker-handle{background:#44506a;border-radius:2rem;width:2.6rem;height:.28rem;margin:.1rem auto .75rem}.service-picker header{justify-content:space-between;align-items:center;display:flex}.service-picker h2{margin:.15rem 0 0;font-size:1.25rem}.service-picker header button{color:#9ca6bd;background:#ffffff0f;border:0;border-radius:50%;width:44px;min-height:44px;font-size:1.25rem}.service-picker>p{color:#7f8aa4;margin:.55rem 0 .8rem;font-size:.72rem}.category-tabs{scrollbar-width:none;overscroll-behavior-x:contain;gap:.45rem;margin:0 -.15rem .75rem;padding:.15rem;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.category-tabs button{color:#98a3bb;background:#182238;border:1px solid #36415a;border-radius:2rem;flex:none;min-height:38px;padding:0 .8rem;font-size:.72rem;font-weight:800}.category-tabs button.selected{border-color:var(--lime);color:var(--lime);background:#c9ff631f}.picker-grid{overscroll-behavior:contain;grid-template-columns:1fr;gap:.55rem;max-height:calc(78dvh - 9rem);padding-bottom:.2rem;display:grid;overflow-y:auto}.picker-grid .service-card{grid-template-columns:1fr auto;align-items:center;min-height:4.25rem;display:grid}.picker-grid .service-card span{font-size:.95rem}.picker-grid .service-card small{text-align:right;max-width:9rem;margin:0}.picker-grid .service-card em{display:none}.all-services .picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(78dvh - 12.5rem)}.all-services .picker-grid .service-card{min-height:4.8rem;display:block}.all-services .picker-grid .service-card span{font-size:.82rem}.all-services .picker-grid .service-card small{text-align:left;max-width:none;margin-top:.25rem}.result-actions{gap:.7rem;margin-top:1rem;display:grid}.incident-button{color:#ffc47b;background:#ff9a401a;border:1px solid #ffb054;border-radius:1rem;width:100%;min-height:3.35rem;font-weight:900}.alert-dot{color:#ffb15f;font-size:.65rem;animation:1.5s ease-in-out infinite pulse}.incident-alert{background:radial-gradient(circle at 100% 0,#ff7e403d,#0000 12rem),#231a21;border:1px solid #ffa45359;border-radius:1.35rem;margin-top:1rem;padding:1.25rem}.incident-alert>span{color:#ffad65;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.incident-alert h1{letter-spacing:-.03em;margin:.45rem 0;font-size:1.55rem}.incident-alert p{color:#d0b9b2;margin:0;font-size:.88rem;line-height:1.55}.current-flow h2{color:#98a2b9}.current-flow>div{flex-wrap:wrap;gap:.45rem;display:flex}.current-flow span{background:#222c45;border-radius:.7rem;padding:.45rem .65rem;font-size:.72rem}.mitigation-board{margin:1.2rem 0}.mitigation-slot{text-align:left;background:#12192bbf;border:1px dashed #58647e;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;min-height:4.5rem;margin-top:.6rem;padding:.8rem 1rem;display:flex}.mitigation-slot small{color:#8490aa}.mitigation-slot.ready{border-color:#ffad65;box-shadow:0 0 0 3px #ffad6514}.config-actions{gap:.6rem;margin-top:.9rem;display:grid}.config-actions button{border:1px solid var(--line);text-align:left;background:#151e33;border-radius:1rem;grid-template-columns:auto 1fr;column-gap:.7rem;min-height:4.2rem;padding:.7rem;display:grid}.config-actions button>span{grid-row:1/3;align-self:center;font-size:1.2rem}.config-actions button strong,.config-actions button small{display:block}.config-actions button small{color:var(--muted)}.config-actions button.selected{border-color:var(--lime);background:#253531}.incident-result h1{margin:.7rem 0 .2rem}.delta{border-radius:3rem;margin-top:.5rem;padding:.25rem .65rem;font-size:.76rem;font-weight:900;display:inline-block}.delta.up{color:var(--lime);background:#c9ff631a}.delta.down{color:#ff9d92;background:#ff645a1a}.weakness-flow{flex-direction:column;align-items:center;padding:1.5rem .5rem;display:flex}.weakness-flow>div{flex-direction:column;align-items:center;display:flex}.weakness-flow span{text-align:center;background:#19233b;border:1px solid #485572;border-radius:.9rem;min-width:min(17rem,78vw);padding:.8rem 1rem;font-size:.86rem;font-weight:800}.weakness-flow i{color:#63708b;height:1.35rem;font-style:normal}.weakness-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.weakness-options button{border:1px solid var(--line);text-align:left;overflow-wrap:anywhere;background:#151e33;border-radius:.9rem;justify-content:space-between;align-items:center;gap:.4rem;min-width:0;min-height:3.35rem;padding:.7rem;font-size:.76rem;font-weight:800;display:flex}.weakness-options button:disabled{opacity:.6}.weakness-options button.correct{border-color:var(--lime);color:var(--lime);opacity:1}.weakness-options button.wrong{color:#ff9d92;opacity:1;border-color:#ff887b}.feedback-card{background:#17253a;border:1px solid #497568;border-radius:1.2rem;margin-top:1rem;padding:1.15rem}.feedback-card.wrong{background:#281d26;border-color:#784f4d}.feedback-card h2{margin:.45rem 0 .6rem;font-size:1rem;line-height:1.5}.feedback-card p{color:#abb4c8;font-size:.82rem;line-height:1.5}.feedback-card .primary-button{margin-top:.4rem}.review-heading{padding:2rem .2rem 1rem}.review-heading h1{letter-spacing:-.05em;margin:.35rem 0 .5rem;font-size:2rem}.review-heading p{color:var(--muted)}.empty-state{text-align:center;color:var(--muted);margin-top:3rem}.empty-state>span{width:4rem;height:4rem;color:var(--lime);background:#c9ff631f;border-radius:50%;place-items:center;font-size:1.6rem;display:inline-grid}.empty-state h2{color:var(--ink);margin:1rem 0 .5rem}.review-list{gap:.8rem;display:grid}.review-list article{border:1px solid var(--line);background:var(--panel);border-radius:1rem;padding:1rem}.review-list h2{margin:.4rem 0;font-size:1rem}.review-list p{color:#aeb7cb;font-size:.82rem;line-height:1.5}.review-list button{min-height:44px;color:var(--lime);background:0 0;border:0;font-size:.78rem;font-weight:800}.review-type{color:#ffbd75;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:900}.compact{margin-top:.6rem}@keyframes pulse{50%{opacity:.5}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{opacity:.5;transform:translateY(1.5rem)}}@media (min-width:560px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
