.fps-results-section{margin-top:clamp(2rem,4vw,2.5rem)}.fps-empty-state{position:relative;padding:clamp(2rem,4vw,3rem) clamp(1.25rem,3vw,2.25rem);background:radial-gradient(ellipse at top,color-mix(in srgb,var(--accent) 7%,transparent) 0%,transparent 60%),var(--bg-secondary);border:1px solid var(--border);border-radius:clamp(12px,2vw,18px);box-shadow:var(--shadow-sm);overflow:hidden}.fps-empty-state:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.6}.fps-empty-state__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(.75rem,1.5vw,1rem);max-width:540px;margin:0 auto}.fps-empty-state__icon{display:flex;align-items:center;justify-content:center;width:clamp(56px,8vw,80px);height:clamp(56px,8vw,80px);border-radius:50%;color:var(--accent);position:relative}.fps-empty-state__icon--prompt{background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.fps-empty-state__icon--gathering{background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);animation:fps-empty-bob 3s ease-in-out infinite}.fps-empty-state__icon--gathering svg{animation:fps-empty-rotate 8s linear infinite}@keyframes fps-empty-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes fps-empty-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fps-empty-state__pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:fps-empty-pulse 2.4s ease-out infinite;pointer-events:none}@keyframes fps-empty-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.fps-empty-state__badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:clamp(.6875rem,.4vw + .55rem,.8125rem);font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.fps-empty-state__badge:before{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%;animation:fps-empty-dot 1.4s ease-in-out infinite}@keyframes fps-empty-dot{0%,to{opacity:1}50%{opacity:.3}}.fps-empty-state__title{margin:0;color:var(--text-primary);font-size:clamp(1.125rem,1.5vw + .4rem,1.5rem);font-weight:700;line-height:1.25;letter-spacing:-.01em}.fps-empty-state__body{margin:0;color:var(--text-secondary);font-size:clamp(.9375rem,.6vw + .55rem,1rem);line-height:1.6;max-width:480px}.fps-empty-state__body strong{color:var(--text-primary);font-weight:600}.fps-empty-state__actions{display:flex;flex-wrap:wrap;gap:clamp(.5rem,1vw,.75rem);justify-content:center;margin-top:clamp(.5rem,1vw,.75rem)}.fps-empty-state__btn{display:inline-flex;align-items:center;gap:.4375rem;padding:clamp(.5rem,1vw,.625rem) clamp(.875rem,1.5vw,1.125rem);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:clamp(.8125rem,.5vw + .5rem,.9375rem);font-weight:500;text-decoration:none;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.fps-empty-state__btn:hover,.fps-empty-state__btn:focus-visible{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg-primary))}.fps-empty-state__footnote{margin:clamp(.625rem,1vw,.875rem) 0 0;color:var(--text-muted, var(--text-secondary));font-size:clamp(.75rem,.4vw + .5rem,.8125rem);font-style:italic;line-height:1.5}@media(prefers-reduced-motion:reduce){.fps-empty-state__icon--gathering,.fps-empty-state__icon--gathering svg,.fps-empty-state__pulse,.fps-empty-state__badge:before{animation:none!important}}.fps-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(2.5rem,5vw,3.5rem) clamp(1.5rem,3vw,2.5rem);background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;text-align:center;box-shadow:var(--shadow-sm)}.loading-spinner{position:relative;width:56px;height:56px;margin-bottom:clamp(1rem,2vw,1.25rem)}.loading-spinner:before{content:"";position:absolute;inset:0;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.loading-spinner:after{content:"";position:absolute;inset:8px;border:2px solid transparent;border-top-color:rgba(var(--accent-rgb),.4);border-radius:50%;animation:spin .75s linear infinite reverse}.spinner-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.fps-loading-state h3{font-size:clamp(1rem,2vw + .2rem,1.25rem);font-weight:600;color:var(--text-primary);margin:0 0 clamp(.375rem,.75vw,.5rem)}.loading-dots span{animation:blink 1.4s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}.fps-loading-state p{color:var(--text-muted);margin:0;max-width:300px;font-size:clamp(.8125rem,1.25vw + .1rem,.875rem);line-height:1.6}.fps-results-panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:16px;padding:clamp(1.5rem,3vw,2.25rem);position:relative;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f}.fps-results-panel:hover{border-color:var(--accent);box-shadow:0 2px 4px #0000000a,0 8px 24px #00000014,0 0 0 1px rgba(var(--accent-rgb),.1);transform:translateY(-2px)}.fps-results-panel.is-animating{animation:fadeInUp .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fps-ram-warning{display:flex;align-items:center;gap:clamp(.5rem,1.25vw,.75rem);padding:clamp(.625rem,1.25vw,.875rem) clamp(.875rem,1.5vw,1rem);background:rgba(var(--warning-rgb),.06);border:1px solid rgba(var(--warning-rgb),.2);border-left:2px solid var(--warning);border-radius:10px;margin-bottom:clamp(1.125rem,2.25vw,1.5rem);font-size:clamp(.75rem,1.1vw + .1rem,.8125rem);color:var(--text-secondary);line-height:1.5}html.light .fps-ram-warning{background:#fffbf5}.fps-ram-warning svg{color:var(--warning);flex-shrink:0;width:18px;height:18px}.fps-output{margin-bottom:clamp(1.125rem,2.25vw,1.5rem)}.fps-output-header{margin-bottom:clamp(.75rem,1.5vw,1rem)}.fps-output-title{display:block;font-size:clamp(1.0625rem,1.75vw + .25rem,1.375rem);font-weight:700;color:var(--text-primary)}.fps-output-subtitle{font-size:clamp(.8125rem,1.25vw + .15rem,.9375rem);color:var(--text-muted);margin-top:.25rem}.fps-cards{display:grid;grid-template-columns:1fr;gap:clamp(1rem,2vw,1.25rem)}@media(min-width:480px){.fps-cards{grid-template-columns:1fr 1fr}}.fps-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:clamp(1.25rem,3vw,1.75rem);text-align:center;position:relative;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:var(--shadow-sm)}.fps-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.fps-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--border);transition:background-color .2s ease}.fps-card--avg:before{background:var(--success)}.fps-card--avg:hover{border-color:rgba(var(--success-rgb),.4)}.fps-card--min:before{background:var(--warning)}.fps-card--min:hover{border-color:rgba(var(--warning-rgb),.4)}.fps-value{display:block;font-size:clamp(2.75rem,7vw,4rem);font-weight:800;line-height:1;margin-bottom:.25rem;letter-spacing:-.04em}.fps-card--avg .fps-value{color:var(--success)}.fps-card--min .fps-value{color:var(--warning)}.fps-unit{font-size:clamp(.75rem,1.1vw + .1rem,.875rem);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.fps-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;margin:clamp(1rem,2vw,1.25rem) 0 clamp(.5rem,1vw,.75rem);overflow:hidden;position:relative}.fps-bar-fill{height:100%;border-radius:4px;transition:width .5s ease;position:relative}.fps-bar-fill--green{background:var(--success)}.fps-bar-fill--orange{background:var(--warning)}.fps-card-label{font-size:clamp(.6875rem,1vw + .1rem,.75rem);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.fps-resolution-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:clamp(.5rem,1.25vw,1rem)}.fps-resolution-grid--compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:clamp(.625rem,1.75vw,1.125rem);max-width:100%;margin:0 auto}@media(min-width:480px){.fps-resolution-grid--compact{grid-template-columns:repeat(3,1fr);max-width:560px}}.res-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:clamp(.5rem,1.25vw,.75rem);text-align:center;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;position:relative}.res-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md)}.res-card.is-selected{border-color:var(--accent);background:rgba(var(--accent-rgb),.05);box-shadow:0 0 0 2px var(--accent)}.res-label{display:block;font-size:clamp(.5625rem,.75vw,.625rem);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.125rem;font-weight:600}.res-fps{display:block;font-size:clamp(.9375rem,1.4vw + .1rem,1.0625rem);font-weight:700;color:var(--text-primary);margin-bottom:.1875rem;line-height:1.1}.res-card.is-selected .res-fps{color:var(--accent)}.res-status{display:inline-block;padding:.125rem .375rem;border-radius:20px;font-size:clamp(.5rem,.7vw,.5625rem);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-excellent{background:rgba(var(--success-rgb),.1);color:var(--success);border:1px solid rgba(var(--success-rgb),.3)}.status-good{background:rgba(var(--success-rgb),.08);color:var(--success);border:1px solid rgba(var(--success-rgb),.2)}.status-medium{background:rgba(var(--warning-rgb),.08);color:var(--warning);border:1px solid rgba(var(--warning-rgb),.2)}.status-poor{background:rgba(var(--error-rgb),.08);color:var(--error);border:1px solid rgba(var(--error-rgb),.2)}.res-card--incompatible{opacity:.55;border-color:var(--admin-text-muted, var(--text-muted));background:var(--bg-tertiary)}.res-card--incompatible:hover{border-color:var(--admin-text-muted, var(--text-muted));box-shadow:none}.res-card--incompatible .res-fps,.res-card--incompatible .res-label,.res-fps--disabled{color:var(--admin-text-muted, var(--text-muted))}.res-card--severe{border-color:rgba(var(--error-rgb),.45);box-shadow:inset 0 0 0 1px rgba(var(--error-rgb),.18)}.res-card--severe:hover{border-color:var(--error)}.res-card--mild{border-color:rgba(var(--warning-rgb),.35)}.res-card__bottleneck-badge{position:absolute;top:clamp(.25rem,.6vw,.375rem);right:clamp(.25rem,.6vw,.375rem);display:inline-flex;align-items:center;justify-content:center;width:clamp(1rem,1.5vw,1.25rem);height:clamp(1rem,1.5vw,1.25rem);border-radius:50%;font-size:clamp(.625rem,.9vw,.75rem);line-height:1;cursor:help;user-select:none}.res-card__bottleneck-badge--severe{color:var(--error);background:rgba(var(--error-rgb),.12);border:1px solid rgba(var(--error-rgb),.35)}.res-card__bottleneck-badge--incompatible{color:var(--admin-text-muted, var(--text-muted));background:var(--bg-secondary);border:1px solid var(--admin-text-muted, var(--text-muted))}.res-card__mild-warning{display:block;margin-top:.25rem;font-size:clamp(.5625rem,.75vw,.625rem);color:var(--warning);line-height:1.1;cursor:help}.res-card__cpu-limit{display:block;width:fit-content;margin:.25rem auto 0;padding:.0625rem .375rem;border-radius:20px;font-size:clamp(.5rem,.7vw,.5625rem);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border, var(--text-muted));line-height:1.3;cursor:help}.status-disabled{display:inline-block;padding:.125rem .375rem;border-radius:20px;font-size:clamp(.5rem,.7vw,.5625rem);font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-tertiary);color:var(--admin-text-muted, var(--text-muted));border:1px solid var(--border)}.performance-tips{margin-top:clamp(1.25rem,2.75vw,2rem);padding:clamp(.875rem,1.75vw,1.125rem);background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px}.performance-tips__title{display:flex;align-items:center;gap:.5rem;font-size:clamp(.8125rem,1.25vw + .1rem,.875rem);font-weight:600;color:var(--text-primary);margin-bottom:.625rem}.performance-tips__title svg{color:var(--text-muted);width:16px;height:16px}.performance-tips__list{margin:0;padding-left:0;list-style:none}.performance-tips__list li{position:relative;padding-left:1.125rem;margin-bottom:.5rem;font-size:clamp(.75rem,1.1vw + .1rem,.8125rem);color:var(--text-secondary);line-height:1.6}.performance-tips__list li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;background:var(--text-muted);border-radius:50%}.performance-tips__list li:last-child{margin-bottom:0}.benchmark-source{margin-top:clamp(1.125rem,2.25vw,1.5rem);padding-top:clamp(.875rem,1.75vw,1.125rem);border-top:1px solid var(--border);font-size:clamp(.6875rem,1vw,.75rem);color:var(--text-muted);text-align:center}.benchmark-source a{color:var(--accent);text-decoration:none;transition:color .2s ease}.benchmark-source a:hover{color:var(--accent-hover);text-decoration:underline}@media(prefers-reduced-motion:reduce){.fps-card,.fps-results-panel,.res-card,.fps-bar-fill{transition:none}.loading-spinner:before,.loading-spinner:after{animation:none}.fps-results-panel.is-animating{animation:none}}.fps-cpu-bottleneck{display:flex;align-items:flex-start;gap:clamp(.5rem,1.25vw,.75rem);padding:clamp(.625rem,1.25vw,.875rem) clamp(.875rem,1.5vw,1rem);background:rgba(var(--warning-rgb),.06);border:1px solid rgba(var(--warning-rgb),.2);border-left:2px solid var(--warning);border-radius:10px;margin-bottom:clamp(1rem,2vw,1.25rem);font-size:clamp(.75rem,1.1vw + .1rem,.8125rem);color:var(--text-secondary);line-height:1.5}html.light .fps-cpu-bottleneck{background:#fffbf5}.fps-cpu-bottleneck svg{color:var(--warning);flex-shrink:0;width:16px;height:16px;margin-top:2px}.fps-meta-row{display:flex;align-items:center;gap:clamp(.75rem,1.5vw,1rem);flex-wrap:wrap;margin-bottom:clamp(1.125rem,2.25vw,1.5rem)}.fps-data-tier{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:20px;font-size:clamp(.6875rem,.9vw + .1rem,.75rem);font-weight:600;cursor:default;user-select:none}.fps-data-tier__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fps-data-tier__label{line-height:1}.fps-data-tier--t1{background:#22c55e1f;color:#15803d;border:1px solid rgba(34,197,94,.25)}.fps-data-tier--t1 .fps-data-tier__dot{background:#22c55e}.fps-data-tier--t2{background:#eab3081a;color:#a16207;border:1px solid rgba(234,179,8,.25)}.fps-data-tier--t2 .fps-data-tier__dot{background:#eab308}.fps-data-tier--t3{background:#3b82f61a;color:#1d4ed8;border:1px solid rgba(59,130,246,.25)}.fps-data-tier--t3 .fps-data-tier__dot{background:#3b82f6}html.light .fps-data-tier--t1{color:#166534}html.light .fps-data-tier--t2{color:#854d0e}html.light .fps-data-tier--t3{color:#1e40af}