:root{--primary: #4f46e5;--primary-hover: #4338ca;--primary-soft: #eef2ff;--primary-ring: rgba(79, 70, 229, .32);--secondary: #06b6d4;--accent: #f59e0b;--success: #16a34a;--success-soft: #dcfce7;--warning: #b45309;--warning-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--info: #1e40af;--info-soft: #dbeafe;--bg-app: #f5f6fb;--bg-gradient: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #311042 100%);--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--text-main: #0f172a;--text-muted: #64748b;--text-on-primary: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--border-focus: #818cf8;--persona-egitimci: #4f46e5;--persona-egitimci-bg: #eef2ff;--persona-burokrat: #1e40af;--persona-burokrat-bg: #dbeafe;--persona-vatandas: #c2410c;--persona-vatandas-bg: #fed7aa;--persona-isletmeci: #b45309;--persona-isletmeci-bg: #fef3c7;--persona-guvenlikci: #b91c1c;--persona-guvenlikci-bg: #fee2e2;--persona-saglikci: #0e7490;--persona-saglikci-bg: #cffafe;--persona-cevreci: #15803d;--persona-cevreci-bg: #dcfce7;--persona-hukukcu: #7c3aed;--persona-hukukcu-bg: #ede9fe;--persona-uzman: #c026d3;--persona-uzman-bg: #fae8ff;--confetti-1: #6366f1;--confetti-2: #ea580c;--confetti-3: #16a34a;--confetti-4: #f59e0b;--confetti-5: #ec4899;--confetti-6: #0891b2;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 4px rgba(15, 23, 42, .04);--shadow-md: 0 4px 10px -2px rgba(15, 23, 42, .06), 0 8px 20px -6px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 40px -12px rgba(79, 70, 229, .18), 0 10px 20px -8px rgba(15, 23, 42, .1);--shadow-focus: 0 0 0 4px var(--primary-ring);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--sp-9: 56px;--sp-10: 72px;--font-body: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .78rem;--font-size-sm: .88rem;--font-size-md: .95rem;--font-size-lg: 1.05rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-display: 2.2rem;--line-tight: 1.25;--line-base: 1.5;--line-loose: 1.7;--container-narrow: 720px;--container-default: 1100px;--container-wide: 1280px;--header-h: 64px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--font-size-md);line-height:var(--line-base);color:var(--text-main);background-color:var(--bg-app);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100vh;display:flex;flex-direction:column}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5{margin:0;font-weight:800;color:var(--text-main);line-height:var(--line-tight);letter-spacing:-.01em}p{margin:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh;font-size:var(--font-size-lg);font-weight:700;color:var(--primary)}.error,[role=alert].form-error{display:flex;align-items:center;gap:8px;background-color:var(--danger-soft);border:1px solid #fecaca;color:#b91c1c;padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--sp-5)}.success-banner-inline{display:flex;align-items:center;gap:8px;background-color:var(--success-soft);border:1px solid #bbf7d0;color:#166534;padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--sp-5)}.container{width:100%;max-width:var(--container-default);margin:0 auto;padding:var(--sp-7) var(--sp-6)}.container--narrow{max-width:var(--container-narrow)}.container--wide{max-width:var(--container-wide)}.stack{display:flex;flex-direction:column;gap:var(--sp-5)}.stack--tight{gap:var(--sp-3)}.stack--loose{gap:var(--sp-7)}.row{display:flex;align-items:center;gap:var(--sp-4)}.row--end{justify-content:flex-end}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.spacer{flex:1 1 auto}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.section-title{font-size:var(--font-size-xl);font-weight:800;margin:0;color:var(--text-main)}.section-subtitle{margin:4px 0 0;font-size:var(--font-size-sm);color:var(--text-muted)}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-5);background:var(--surface);border-radius:var(--radius-md);border:2px dashed var(--border);color:var(--text-muted);font-size:var(--font-size-md)}.empty-state strong{display:block;font-size:var(--font-size-lg);color:var(--text-main);margin-bottom:4px}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-6)}.page-title{margin:0;font-size:var(--font-size-3xl);font-weight:800;letter-spacing:-.02em;color:var(--primary)}.page-subtitle{margin-top:4px;color:var(--text-muted);font-size:var(--font-size-md);max-width:60ch}.user-chip{display:inline-flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--font-size-sm);color:var(--text-main)}.user-chip strong{font-weight:700}.user-chip__avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);font-weight:800}.app-layout__header{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.app-layout__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:12px;padding-bottom:12px}.app-layout__brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--text-main)}.app-layout__logo{width:36px;height:36px;border-radius:10px;background:var(--primary-soft);display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem}.app-layout__brand-text{font-size:var(--font-size-lg);letter-spacing:-.01em}.app-layout__user{display:flex;align-items:center;gap:10px;margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-weight:700;text-decoration:none;transition:transform .1s ease,box-shadow .15s ease,background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn--primary{background:var(--primary);color:var(--text-on-primary);box-shadow:0 6px 16px -6px #4f46e58c}.btn--primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn--accent{background:var(--accent);color:var(--text-on-primary)}.btn--accent:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.btn--success{background:var(--success);color:var(--text-on-primary)}.btn--ghost{background:var(--surface);color:var(--text-main);border:1.5px solid var(--border-strong)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--primary);color:var(--primary)}.btn--danger{background:var(--danger);color:var(--text-on-primary)}.btn--danger:hover:not(:disabled){background:#b91c1c}.btn--soft{background:var(--primary-soft);color:var(--primary)}.btn--soft:hover:not(:disabled){background:#e0e7ff}.btn--sm{font-size:var(--font-size-sm);padding:8px 14px;border-radius:var(--radius-sm);min-height:36px}.btn--md{font-size:var(--font-size-md);padding:10px 18px;border-radius:var(--radius-sm);min-height:44px}.btn--lg{font-size:var(--font-size-lg);padding:14px 24px;border-radius:var(--radius-md);min-height:64px}.btn--block{width:100%}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-5)}.form-label{font-size:var(--font-size-sm);font-weight:700;color:#334155;display:flex;align-items:center;gap:6px}.form-hint{color:var(--text-muted);font-weight:500;font-size:var(--font-size-xs)}.form-input,.form-textarea,.form-select{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-md);background:var(--surface);color:var(--text-main);transition:border-color .15s ease,box-shadow .15s ease;font-family:inherit}.form-textarea{min-height:120px;resize:vertical;line-height:var(--line-base)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.form-input::placeholder,.form-textarea::placeholder{color:#94a3b8}.form-error-text{color:var(--danger);font-size:var(--font-size-xs);font-weight:600}.form-help{color:var(--text-muted);font-size:var(--font-size-xs);display:flex;align-items:center;gap:4px}.form-help.is-ok{color:var(--success)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-6);box-shadow:var(--shadow-sm)}.card--interactive{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-focus)}.card__title{font-size:var(--font-size-lg);font-weight:800;margin-bottom:6px}.card__sub{color:var(--text-muted);font-size:var(--font-size-sm)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-weight:700;font-size:var(--font-size-xs);letter-spacing:.01em;white-space:nowrap}.status-badge.status-draft,.status-badge.status-pending{background:var(--surface-3);color:#475569}.status-badge.status-in_progress,.status-badge.status-active{background:var(--info-soft);color:var(--info)}.status-badge.status-passed{background:var(--success-soft);color:#166534}.status-badge.status-failed{background:var(--danger-soft);color:#b91c1c}.stepper{display:flex;align-items:center;gap:12px;font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted)}.stepper .step{display:inline-flex;align-items:center;gap:8px}.stepper .step-dot{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:800;background:var(--surface-3);color:var(--text-muted);border:2px solid var(--border);transition:all .2s ease}.stepper .step.active .step-dot{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.stepper .step.done .step-dot{background:var(--success);color:var(--text-on-primary);border-color:var(--success)}.stepper .step.active .step-label,.stepper .step.done .step-label{color:var(--text-main)}.stepper .step-line{flex:0 0 32px;height:2px;background:var(--border);border-radius:2px}.stepper .step-line.done{background:var(--success)}.back-button{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1.5px solid var(--border);color:var(--text-muted);padding:8px 14px;border-radius:var(--radius-pill);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.back-button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.role-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4)}.role-card{position:relative;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;justify-content:space-between;height:100%;gap:var(--sp-3);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.role-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-focus)}.role-card[data-status=passed]{border-color:var(--success);background:linear-gradient(180deg,#f0fdf4,#fff)}.role-card[data-status=failed]{border-color:var(--danger);background:linear-gradient(180deg,#fef2f2,#fff)}.role-card__number{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--font-size-sm)}.role-card__icon{font-size:2.2rem;line-height:1}.role-card__title{margin:0;font-size:var(--font-size-lg);font-weight:800}.role-card__focus{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-base);flex:1}.role-card__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--font-size-xs);color:var(--text-muted)}.hero{background:linear-gradient(135deg,var(--primary-soft) 0%,#fef3c7 100%);border:1px solid #e0e7ff;border-radius:var(--radius-lg);padding:var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-3)}.hero__badge{display:inline-flex;align-self:flex-start;background:var(--primary);color:var(--text-on-primary);font-size:var(--font-size-xs);font-weight:800;padding:4px 10px;border-radius:var(--radius-pill);letter-spacing:.05em;text-transform:uppercase}.hero__title{font-size:var(--font-size-3xl);font-weight:800;margin:0}.hero__subtitle{color:var(--text-main);font-size:var(--font-size-md);line-height:var(--line-base);max-width:60ch}.problem-recap{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:var(--sp-5);display:flex;flex-direction:column;gap:6px}.problem-recap__label{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.problem-recap__text{margin:0;font-size:var(--font-size-lg);line-height:var(--line-base);color:var(--text-main)}.example-chips{border:1.5px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-4);background:var(--surface-2);margin:0 0 var(--sp-5)}.example-chips__legend{font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted);padding:0 8px;display:inline-flex;align-items:center;gap:6px}.example-chips__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:var(--sp-3)}.example-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:all .15s ease;color:var(--text-main)}.example-chip:hover{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}.example-chip__icon{font-size:1.4rem;line-height:1}.example-chip__text{line-height:1.4}.char-counter{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:700;font-variant-numeric:tabular-nums}.char-counter.is-warn{color:var(--warning)}.char-counter.is-error{color:var(--danger)}.project-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-5)}.project-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;justify-content:space-between;height:100%;gap:var(--sp-4);text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.project-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-focus);text-decoration:none}.project-card__problem{font-size:var(--font-size-md);font-weight:700;line-height:var(--line-base);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.project-card__meta{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs);color:var(--text-muted);font-weight:600;margin-top:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;font-size:var(--font-size-sm)}.data-table thead th{background:var(--surface-2);text-align:left;font-weight:800;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:12px 14px;border-bottom:1px solid var(--border)}.data-table tbody td{padding:12px 14px;border-top:1px solid var(--border);vertical-align:middle;color:var(--text-main)}.data-table tbody tr:first-child td{border-top:0}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table__name{font-weight:700}.data-table__sub{color:var(--text-muted);font-size:var(--font-size-xs)}.student-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3)}.student-list__item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.student-list__avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-weight:800}.student-list__name{font-weight:700;line-height:1.2}.student-list__sub{color:var(--text-muted);font-size:var(--font-size-xs)}.student-list__actions{margin-left:auto;display:flex;gap:6px}.temp-password-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(135deg,#ecfeff,#ede9fe);border:1px solid #c4b5fd;color:#5b21b6;padding:12px 16px;border-radius:var(--radius-md);font-weight:600;margin-bottom:var(--sp-5)}.temp-password-banner code{background:#ffffffb3;padding:4px 8px;border-radius:6px;font-family:ui-monospace,monospace;font-size:var(--font-size-sm);font-weight:800;color:#312e81}.temp-password-banner button{margin-left:auto;background:transparent;border:1px solid #c4b5fd;color:#5b21b6;padding:4px 10px;border-radius:var(--radius-pill);cursor:pointer;font-weight:700;font-size:var(--font-size-xs)}.divider{display:flex;align-items:center;text-align:center;margin:var(--sp-5) 0}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.divider span{padding:0 12px;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.text-muted{color:var(--text-muted)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-center{text-align:center}.text-bold{font-weight:700}.score-band{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-pill);font-weight:700;font-size:var(--font-size-sm);white-space:nowrap}.score-band__sep{opacity:.6}.score-band--yetersiz{background:#fee2e2;color:#991b1b}.score-band--yuzeysel{background:#fef3c7;color:#92400e}.score-band--iyi{background:#dcfce7;color:#166534}.score-band--guclu{background:var(--success);color:#fff}.evidence-picker{border:none;padding:0;margin:12px 0}.evidence-picker__legend{font-size:var(--font-size-md);font-weight:700;margin-bottom:8px;color:var(--text-main);padding:0}.evidence-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.evidence-picker__option{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);cursor:pointer;min-height:56px;border:2px solid var(--border);background:var(--surface);transition:all .15s ease;position:relative}.evidence-picker__option:hover,.evidence-picker__option.is-selected{border-color:var(--primary);background:var(--primary-soft)}.evidence-picker__icon{font-size:1.5rem;line-height:1}.evidence-picker__label{font-weight:600}.empty-state--soft{background:var(--surface-2);border:1.5px dashed var(--border)}.empty-state__icon{font-size:3rem;line-height:1;margin-bottom:8px}.empty-state__title{margin:0 0 8px;color:var(--text-main);font-size:var(--font-size-lg);font-weight:800}.empty-state__message{margin:0 0 16px;color:var(--text-muted)}.empty-state__action{margin-top:8px}.loading-dots{display:flex;align-items:center;gap:8px;color:var(--text-muted);padding:12px 0;font-weight:600}.loading-dots__icon{font-size:1.5rem;line-height:1}.diploma-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-5);background:linear-gradient(135deg,#f0fdf4,#ecfeff,#fef3c7);border:1px solid #a7f3d0;border-radius:var(--radius-xl);position:relative;overflow:hidden}.diploma-hero[data-overall=failed]{background:linear-gradient(135deg,#fef3c7,#fee2e2);border-color:#fde68a}.diploma-hero__emoji{font-size:4rem;line-height:1}.diploma-hero__title{margin:0;font-size:var(--font-size-3xl);font-weight:800}.diploma-hero__subtitle{margin:0;color:var(--text-muted);font-size:var(--font-size-md)}.average-badge{display:inline-flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-6);margin-top:var(--sp-3);box-shadow:var(--shadow-sm)}.average-badge__label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.average-badge__value{font-size:3.2rem;font-weight:800;color:var(--primary);line-height:1;font-variant-numeric:tabular-nums}.average-badge__max{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600}.score-bar-list{display:flex;flex-direction:column;gap:var(--sp-3)}.score-bar-row{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2);align-items:end}.score-bar-row__name{font-size:var(--font-size-md);font-weight:700;color:var(--text-main)}.score-bar-row__score{font-variant-numeric:tabular-nums;font-weight:800;color:var(--text-main);font-size:var(--font-size-md)}.score-bar-row__score small{color:var(--text-muted);font-weight:500}.score-bar-track{grid-column:1 / -1;height:10px;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden;position:relative}.score-bar-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--primary) 0%,#818cf8 100%);transition:width .6s cubic-bezier(.4,0,.2,1)}.score-bar-fill.is-passed{background:linear-gradient(90deg,var(--success) 0%,#4ade80 100%)}.score-bar-fill.is-failed{background:linear-gradient(90deg,var(--danger) 0%,#f87171 100%)}.diploma-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4)}.diploma-meta__item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4)}.diploma-meta__label{display:block;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.diploma-meta__value{font-size:var(--font-size-md);font-weight:700;color:var(--text-main);word-break:break-word}.diploma-actions{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-5)}.student-header{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);background:linear-gradient(135deg,var(--primary-soft) 0%,#fef3c7 100%);border-radius:var(--radius-lg);border:1px solid #e0e7ff}.student-header__avatar{width:64px;height:64px;border-radius:50%;background:var(--surface);color:var(--primary);font-size:1.8rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.student-header__info{flex:1}.student-header__name{margin:0;font-size:var(--font-size-2xl);font-weight:800}.student-header__sub{color:var(--text-muted);font-size:var(--font-size-sm);margin-top:2px}.chat-thread{display:flex;flex-direction:column;gap:var(--sp-3)}.chat-thread__day{margin-top:var(--sp-4);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 4px}.chat-thread__day:not(:first-child){border-top:1px dashed var(--border);padding-top:var(--sp-3)}.chat-msg{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:6px}.chat-msg.is-student{background:var(--primary-soft);border-left-color:var(--primary)}.chat-msg.is-ai{border-left-color:var(--text-muted);background:var(--surface-2)}.chat-msg__meta{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-muted);font-weight:600}.chat-msg__role{font-weight:700;color:var(--text-main)}.chat-msg__content{margin:0;font-size:var(--font-size-md);color:var(--text-main);line-height:var(--line-base);white-space:pre-wrap;word-wrap:break-word}.chat-msg__attachment{font-size:var(--font-size-xs);color:var(--primary)}.chat-msg__attachment a{font-weight:600}@media (max-width: 640px){.container{padding:var(--sp-5) var(--sp-4)}.page-title{font-size:var(--font-size-2xl)}.data-table{font-size:var(--font-size-xs)}.data-table thead th,.data-table tbody td{padding:10px}}.chat-page{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:calc(100vh - 150px);max-height:840px;min-height:480px;overflow:hidden}.chat-page>header{display:flex;flex-direction:column;gap:12px;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.role-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.role-header h2{margin:0;font-size:var(--font-size-xl);font-weight:800}.attempts{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-focus-bar{display:flex;align-items:center;gap:8px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.role-focus-bar strong{color:#14532d}.chat-bonus{margin-left:8px;color:var(--accent);font-weight:700}.chat-page-main{padding-top:var(--sp-5);padding-bottom:var(--sp-7)}.messages{flex:1 1 0%;display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:24px;background:linear-gradient(180deg,var(--surface-2) 0%,#ffffff 30%,var(--surface-2) 100%);min-height:0}.message{display:flex;flex-direction:column;max-width:80%;animation:bubble-in .25s ease-out}@media (max-width: 640px){.message{max-width:90%}}.message-student{align-self:flex-end;align-items:flex-end}.message-ai{align-self:flex-start;align-items:flex-start;gap:6px}.sender-label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:700;color:var(--text-muted);margin-bottom:4px}.message-student .sender-label{justify-content:flex-end;text-align:right}.bubble{padding:12px 16px;border-radius:18px;font-size:var(--font-size-md);line-height:var(--line-base);word-wrap:break-word;white-space:pre-wrap}.message-student .bubble{background:var(--primary-soft);color:var(--text-main);border:1.5px solid var(--primary);border-bottom-right-radius:4px}.message-ai .bubble{background:var(--surface);color:var(--text-main);border:1px solid var(--border);border-left:4px solid var(--border);border-bottom-left-radius:4px}[data-persona=egitimci] .bubble{border-left-color:var(--persona-egitimci)}[data-persona=burokrat] .bubble{border-left-color:var(--persona-burokrat)}[data-persona=vatandas] .bubble{border-left-color:var(--persona-vatandas)}[data-persona=isletmeci] .bubble{border-left-color:var(--persona-isletmeci)}[data-persona=guvenlikci] .bubble{border-left-color:var(--persona-guvenlikci)}[data-persona=saglikci] .bubble{border-left-color:var(--persona-saglikci)}[data-persona=cevreci] .bubble{border-left-color:var(--persona-cevreci)}[data-persona=hukukcu] .bubble{border-left-color:var(--persona-hukukcu)}[data-persona=uzman] .bubble{border-left-color:var(--persona-uzman)}.evidence-tag{display:inline-flex;align-items:center;gap:4px;align-self:flex-end;margin-top:6px;padding:3px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--font-size-xs);color:var(--text-muted);font-weight:600}.attachment{margin-top:4px;font-size:var(--font-size-sm);color:var(--primary)}.attachment a{color:var(--primary);font-weight:700;text-decoration:underline}.final-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 20px;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:600;text-align:center;flex-wrap:wrap}.final-banner.status-passed{background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border:1px solid #a7f3d0;color:#065f46;animation:banner-celebrate .8s cubic-bezier(.34,1.56,.64,1)}.final-banner.status-failed{background:linear-gradient(135deg,#fef3c7,#fffbeb);border:1px solid #fde68a;color:#92400e}.composer{display:flex;flex-direction:column;gap:12px;padding:16px 20px;background:var(--surface);border-top:1px solid var(--border)}.composer-row{display:flex;align-items:flex-end;gap:10px}.composer-row textarea{flex:1;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-md);resize:none;background:var(--surface);color:var(--text-main);min-height:56px;max-height:160px;line-height:var(--line-base);transition:border-color .15s ease,box-shadow .15s ease}.composer-row textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.file-button{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:1.4rem;cursor:pointer;flex-shrink:0;transition:all .15s ease}.file-button:hover{border-color:var(--primary);background:var(--primary-soft)}.file-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600}.file-preview button{background:transparent;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted);padding:0 6px;font-weight:700}.chat-sidebar{display:flex;flex-direction:column;gap:var(--sp-3);height:calc(100vh - 150px);max-height:840px;min-height:480px}.sidebar-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-header h3{margin:0 0 4px;font-size:var(--font-size-lg);font-weight:800;color:var(--text-main)}.sidebar-header p{margin:0 0 var(--sp-4) 0;font-size:var(--font-size-sm);color:var(--text-muted);line-height:var(--line-base)}.evidence-list{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--sp-4);flex:1;overflow-y:auto}.evidence-item-card{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:10px;transition:all .15s ease}.evidence-item-card:hover{border-color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm)}.evidence-item-header{display:flex;align-items:flex-start;gap:10px}.evidence-item-icon{font-size:1.5rem;line-height:1}.evidence-item-info{display:flex;flex-direction:column}.evidence-item-info strong{font-size:var(--font-size-sm);color:var(--text-main);line-height:1.3;word-break:break-word}.evidence-item-info small{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:2px}.btn-cite-evidence{width:100%;padding:8px 12px;background:var(--primary-soft);color:#3730a3;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .15s ease}.btn-cite-evidence:hover:not(:disabled){background:#c7d2fe;transform:translateY(-1px)}.btn-cite-evidence:disabled{cursor:not-allowed;opacity:.5}.sidebar-upload-box label{display:block}.btn-sidebar-upload{display:block;width:100%;text-align:center;padding:12px;background:var(--surface-2);border:2px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-main);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.btn-sidebar-upload:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.empty-sidebar-state{text-align:center;padding:24px 14px;background:var(--surface-2);border:1.5px dashed var(--border);border-radius:var(--radius-md);margin-bottom:var(--sp-4)}.empty-sidebar-state .empty-icon{font-size:2rem;display:block;margin-bottom:6px}.empty-sidebar-state p{margin:0 0 6px;font-size:var(--font-size-sm);color:var(--text-main);font-weight:700}.empty-sidebar-state small{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.5;display:block}.chat-layout{display:grid;grid-template-columns:1fr 340px;gap:var(--sp-5);align-items:stretch}@media (max-width: 960px){.chat-layout{grid-template-columns:1fr}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bubble-celebrate{0%{transform:scale(1);box-shadow:0 0 #16a34a00}50%{transform:scale(1.06);box-shadow:0 0 0 12px #16a34a40}to{transform:scale(1);box-shadow:0 0 #16a34a00}}.bubble.celebrate{animation:bubble-celebrate .6s cubic-bezier(.34,1.56,.64,1)}@keyframes banner-celebrate{0%,to{transform:scale(1)}50%{transform:scale(1.03);box-shadow:0 0 30px #10b98166}}.typing-dots{display:flex;align-items:center;gap:10px;align-self:flex-start}.typing-dots-bubble{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:18px}.typing-text{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.typing-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);animation:typing-bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.persona-avatar{display:inline-flex;flex-direction:column;align-items:center;gap:4px}.persona-avatar-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border-style:solid;border-width:2px;transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.persona-avatar-circle:hover{transform:scale(1.05) rotate(-2deg)}.persona-avatar-badge{font-size:var(--font-size-xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid;text-transform:uppercase;letter-spacing:.03em}.role-intro-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f172a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:backdrop-in .3s ease-out;padding:20px}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.role-intro-card{background:var(--surface);border-radius:var(--radius-xl);padding:40px 36px;max-width:480px;width:100%;box-shadow:var(--shadow-lg);text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;animation:card-in .4s cubic-bezier(.34,1.56,.64,1)}@keyframes card-in{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.role-intro-emoji{font-size:5rem;line-height:1;animation:emoji-wave 1.5s ease-in-out infinite}@keyframes emoji-wave{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.role-intro-title{margin:0;font-size:var(--font-size-2xl);font-weight:800;color:var(--text-main)}.role-intro-badge{display:inline-block;padding:4px 14px;border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.03em}.role-intro-focus{margin:0;font-size:var(--font-size-md);color:var(--text-main);line-height:var(--line-base);background:var(--surface-2);padding:12px 16px;border-radius:var(--radius-sm);width:100%;text-align:left}.role-intro-hint{margin:0;font-size:var(--font-size-sm);color:var(--text-muted);line-height:var(--line-base)}[data-persona=egitimci] .role-intro-badge{background:var(--persona-egitimci-bg);color:var(--persona-egitimci)}[data-persona=burokrat] .role-intro-badge{background:var(--persona-burokrat-bg);color:var(--persona-burokrat)}[data-persona=vatandas] .role-intro-badge{background:var(--persona-vatandas-bg);color:var(--persona-vatandas)}[data-persona=isletmeci] .role-intro-badge{background:var(--persona-isletmeci-bg);color:var(--persona-isletmeci)}[data-persona=guvenlikci] .role-intro-badge{background:var(--persona-guvenlikci-bg);color:var(--persona-guvenlikci)}[data-persona=saglikci] .role-intro-badge{background:var(--persona-saglikci-bg);color:var(--persona-saglikci)}[data-persona=cevreci] .role-intro-badge{background:var(--persona-cevreci-bg);color:var(--persona-cevreci)}[data-persona=hukukcu] .role-intro-badge{background:var(--persona-hukukcu-bg);color:var(--persona-hukukcu)}[data-persona=uzman] .role-intro-badge{background:var(--persona-uzman-bg);color:var(--persona-uzman)}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:8px;height:14px;border-radius:2px;animation:confetti-fall 1.5s ease-in forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(var(--rot, 360deg));opacity:0}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-gradient);padding:24px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;width:320px;height:320px;background:radial-gradient(circle,rgba(99,102,241,.3) 0%,transparent 70%);top:-60px;left:-60px;border-radius:50%;pointer-events:none}.login-container:after{content:"";position:absolute;width:420px;height:420px;background:radial-gradient(circle,rgba(236,72,153,.2) 0%,transparent 70%);bottom:-100px;right:-100px;border-radius:50%;pointer-events:none}.login-home-btn{position:absolute;top:20px;left:20px;z-index:20;display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);color:#fff;text-decoration:none;font-weight:700;font-size:var(--font-size-sm);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s ease,transform .15s ease,box-shadow .2s ease;animation:home-btn-in .5s cubic-bezier(.16,1,.3,1) .1s backwards}.login-home-btn:hover{background:#ffffff38;transform:translate(-3px);box-shadow:0 6px 20px -6px #6366f199;text-decoration:none;color:#fff}.login-home-btn:active{transform:translate(-1px) scale(.98)}@keyframes home-btn-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.login-card{background:#fffffff2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-xl);padding:40px 36px;width:100%;max-width:440px;box-shadow:0 25px 50px -12px #00000040;position:relative;z-index:10;animation:card-in .4s ease-out}.login-header{text-align:center;margin-bottom:28px}.logo-badge{display:inline-block;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:var(--font-size-sm);padding:6px 16px;border-radius:var(--radius-pill);margin-bottom:12px;letter-spacing:.05em}.login-header h1{margin:0 0 8px;font-size:var(--font-size-3xl);font-weight:800;color:var(--text-main)}.login-header .subtitle{margin:0;color:var(--text-muted);font-size:var(--font-size-md);line-height:var(--line-base)}.quick-login-section{margin-top:var(--sp-6)}.quick-login-buttons{display:flex;flex-direction:column;gap:10px}.btn-quick-login{display:flex;align-items:center;gap:14px;padding:12px 18px;border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .15s ease;width:100%;color:var(--text-main)}.btn-quick-login:hover{border-color:var(--primary);background:var(--surface-2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-quick-login .icon{font-size:1.6rem;line-height:1}.btn-quick-login .btn-text{display:flex;flex-direction:column}.btn-quick-login strong{font-size:var(--font-size-md)}.btn-quick-login small{font-size:var(--font-size-xs);color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){.bubble,.bubble.celebrate,.confetti-piece,.role-intro-card,.role-intro-backdrop,.role-intro-emoji,.final-banner,.persona-avatar-circle,.typing-dot{animation:none!important;transition:opacity .2s ease-out!important}.confetti-container{display:none}}@media (max-width: 640px){.chat-page>header{padding:12px 14px}.messages{padding:16px 12px}.composer{padding:12px 14px}.file-button{width:48px;height:48px;font-size:1.2rem}}.teacher-hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-surface, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.25rem 1rem;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 6px -1px #0000000d;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 12px -2px #00000014}.stat-card__icon{font-size:2.2rem;line-height:1;background:#6366f11a;padding:.75rem;border-radius:12px}.stat-card__val{font-size:1.75rem;font-weight:700;color:var(--text-heading, #1f2937);line-height:1.1}.stat-card__label{font-size:.85rem;color:var(--text-muted, #6b7280);margin-top:.2rem}.teacher-nav-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color, #e5e7eb);margin-bottom:1.5rem;overflow-x:auto;padding-bottom:2px}.tab-btn{background:none;border:none;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;color:var(--text-muted, #6b7280);cursor:pointer;border-radius:8px 8px 0 0;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;white-space:nowrap}.tab-btn:hover{color:var(--primary-color, #4f46e5);background:#6366f10d}.tab-btn.is-active{color:var(--primary-color, #4f46e5);border-bottom:3px solid var(--primary-color, #4f46e5);background:#6366f114}.student-list{list-style:none!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:.75rem!important}.student-list__item{display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap!important;gap:1rem!important;padding:1rem 1.25rem!important;background:var(--bg-surface, #ffffff)!important;border:1px solid var(--border-color, #e5e7eb)!important;border-radius:12px!important;box-shadow:0 2px 4px #00000008!important;transition:all .2s ease!important}.student-list__item:hover{border-color:#c7d2fe!important;box-shadow:0 4px 12px #6366f114!important}.student-list__avatar{width:44px!important;height:44px!important;min-width:44px!important;border-radius:50%!important;background:#e0e7ff!important;color:#4338ca!important;display:flex!important;align-items:center!important;justify-content:center!important;font-weight:700!important;font-size:1rem!important}.student-list__name{font-weight:700!important;font-size:1.05rem!important;color:var(--text-heading, #1f2937)!important}.student-list__sub{color:var(--text-muted, #6b7280)!important;font-size:.85rem!important;margin-top:.15rem!important}.student-list__actions{display:flex!important;gap:.5rem!important;flex-wrap:wrap!important;align-items:center!important;margin-left:auto!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-surface, #ffffff);border-radius:16px;padding:2rem;max-width:480px;width:100%;box-shadow:0 20px 25px -5px #0003;animation:modalPop .25s cubic-bezier(.16,1,.3,1)}@keyframes modalPop{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.modal-header h3{margin:0;font-size:1.25rem;font-weight:700}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted, #6b7280)}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}.resource-card{background:var(--bg-surface, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 2px 4px #0000000a;transition:all .2s ease}.resource-card:hover{transform:translateY(-3px);box-shadow:0 8px 16px #00000014}.resource-card__header{display:flex;justify-content:space-between;align-items:flex-start}.resource-card__student{font-weight:700;font-size:1rem;color:var(--text-heading, #111827)}.resource-card__role{font-size:.8rem;color:var(--text-muted, #6b7280)}.resource-card__preview{margin:.5rem 0;max-height:160px;overflow:hidden;border-radius:8px;background:#f8fafc;display:flex;align-items:center;justify-content:center}.resource-card__preview img{width:100%;height:160px;object-fit:cover}.resource-card__preview audio,.resource-card__preview video{width:100%}.resource-card__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;font-size:.85rem}.password-input-group{display:flex;gap:.5rem}.password-input-group input{flex:1}.teacher-filter-bar{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.teacher-search-input{flex:1;min-width:240px;padding:.6rem 1rem;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:.95rem}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.insight-card{background:var(--bg-surface, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e5e7eb);padding:1.5rem}.insight-card h4{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:var(--text-heading, #1f2937);display:flex;align-items:center;gap:.5rem}.landing{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.landing-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse at top right,#fef9c3 0%,transparent 55%),radial-gradient(ellipse at bottom left,#bae6fd 0%,transparent 55%),linear-gradient(180deg,#dbeafe,#d1fae5,#fef9c3);overflow:hidden}.sun{position:absolute;top:-40px;right:-40px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,#fde047,#fbbf24 60%,#f59e0b);box-shadow:0 0 60px 20px #fde04780,0 0 100px 40px #fbbf244d;animation:sun-pulse 4s ease-in-out infinite}.sun:before{content:"";position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0deg,rgba(251,191,36,.15) 5deg,transparent 10deg,transparent 25deg);animation:sun-rays 30s linear infinite}@keyframes sun-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes sun-rays{to{transform:rotate(360deg)}}.cloud{position:absolute;background:#ffffffd9;border-radius:100px;filter:blur(.5px);box-shadow:20px 8px 0 -2px #ffffffd9,-25px 5px 0 -3px #ffffffd9;animation:cloud-drift linear infinite;opacity:.9}.cloud-1{top:12%;width:90px;height:28px;animation-duration:80s;animation-delay:-20s}.cloud-2{top:22%;width:130px;height:36px;animation-duration:110s;animation-delay:-55s;opacity:.7}.cloud-3{top:6%;width:70px;height:22px;animation-duration:70s;animation-delay:-10s;opacity:.6}@keyframes cloud-drift{0%{transform:translate(-150px)}to{transform:translate(calc(100vw + 150px))}}.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.45;will-change:transform}.blob-1{width:360px;height:360px;background:radial-gradient(circle,#34d399 0%,transparent 70%);top:30%;left:-80px;animation:blob-drift-1 22s ease-in-out infinite}.blob-2{width:420px;height:420px;background:radial-gradient(circle,#fbbf24 0%,transparent 70%);top:55%;right:-100px;animation:blob-drift-2 26s ease-in-out infinite}.blob-3{width:320px;height:320px;background:radial-gradient(circle,#38bdf8 0%,transparent 70%);top:70%;left:50%;transform:translate(-50%);animation:blob-drift-3 30s ease-in-out infinite;opacity:.3}@keyframes blob-drift-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,30px) scale(1.1)}}@keyframes blob-drift-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-70px,-40px) scale(1.05)}}@keyframes blob-drift-3{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%,-30px) scale(1.15)}}.landing-header{padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.landing-header-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:900;letter-spacing:-.01em;background:linear-gradient(135deg,#16a34a,#059669);color:#fff;padding:8px 16px;border-radius:999px;font-size:1.1rem;box-shadow:0 6px 16px -4px #16a34a66}.brand-emoji{display:inline-block;animation:brand-bounce 2.4s ease-in-out infinite}@keyframes brand-bounce{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-3px) rotate(5deg)}}.landing-main{flex:1;display:flex;flex-direction:column;align-items:center;gap:4rem;padding:.5rem 1.5rem 3rem;max-width:1000px;margin:0 auto;width:100%;position:relative;z-index:1}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;position:relative;width:100%}.landing-anim{opacity:0;transform:translateY(16px);animation:rise .7s cubic-bezier(.16,1,.3,1) forwards}.landing-anim-1{animation-delay:.05s}.landing-anim-2{animation-delay:.2s}.landing-anim-3{animation-delay:.35s}.landing-anim-4{animation-delay:.5s}.landing-anim-5{animation-delay:.65s}.landing-anim-6{animation-delay:.8s}@keyframes rise{to{opacity:1;transform:translateY(0)}}.landing-badge{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:2px solid #86efac;color:#15803d;font-size:.85rem;font-weight:800;padding:.5rem 1.2rem;border-radius:999px;letter-spacing:.02em;box-shadow:0 4px 12px -4px #16a34a40;position:relative;overflow:hidden;z-index:2}.landing-badge:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(134,239,172,.5),transparent);transform:translate(-100%);animation:badge-shine 3s ease-in-out infinite}@keyframes badge-shine{0%{transform:translate(-100%)}60%{transform:translate(100%)}to{transform:translate(100%)}}.landing-title{display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:900;color:#064e3b;margin:0;line-height:1.1;text-shadow:0 2px 0 rgba(255,255,255,.6);z-index:2}.wave{display:inline-block;transform-origin:70% 70%;animation:wave 2.2s ease-in-out infinite}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(10deg)}50%{transform:rotate(-4deg)}}.landing-subtitle{font-size:clamp(1rem,2.4vw,1.3rem);font-weight:700;color:#047857;text-align:center}.landing-desc{max-width:600px;color:#334155;font-size:1rem;line-height:1.7;margin:0;background:#ffffffb3;padding:1rem 1.4rem;border-radius:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(134,239,172,.4);z-index:2}.landing-desc strong{color:#15803d;font-weight:800}.landing-vip-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:.5rem;z-index:2}.landing-vip-card{display:flex;align-items:center;gap:.6rem;background:#fff;border:2px solid var(--card-color, #86efac);border-radius:16px;padding:.7rem 1.1rem;font-weight:800;font-size:.92rem;color:#064e3b;box-shadow:0 4px 12px -4px #16a34a33;transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;animation:vip-pop .5s cubic-bezier(.34,1.56,.64,1) backwards;z-index:2}@keyframes vip-pop{0%{transform:scale(.6) rotate(-10deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.landing-vip-card:hover{transform:translateY(-5px) rotate(-2deg);box-shadow:0 12px 24px -6px var(--card-color, #86efac)}.vip-emoji{font-size:1.7rem;display:inline-block;transition:transform .3s ease}.landing-vip-card:hover .vip-emoji{animation:vip-emoji-spin .7s ease}@keyframes vip-emoji-spin{0%{transform:scale(1) rotate(0)}50%{transform:scale(1.4) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}.cta-wrap{position:relative;display:inline-flex;margin-top:1rem;z-index:2}.cta-btn{background:linear-gradient(135deg,#22c55e,#16a34a,#15803d);color:#fff;box-shadow:0 8px 20px -4px #16a34a80,0 0 0 4px #ffffff80;font-size:1.15rem;padding:1.05rem 2.5rem;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;gap:.6rem;font-weight:900;position:relative;overflow:hidden;isolation:isolate;animation:cta-bounce 2.5s ease-in-out infinite;transition:transform .15s ease,box-shadow .15s ease}.cta-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translate(-150%);transition:transform .6s ease;z-index:-1}.cta-btn:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 14px 30px -6px #16a34aa6,0 0 0 4px #fff9;text-decoration:none;color:#fff;animation:none}.cta-btn:hover:before{transform:translate(150%)}.cta-btn:active{transform:translateY(-1px) scale(.98)}@keyframes cta-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.cta-sparkle{display:inline-block;animation:sparkle 1.6s ease-in-out infinite}.cta-sparkle:last-child{animation-delay:.8s}@keyframes sparkle{0%,to{opacity:.5;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.3) rotate(180deg)}}.confetti-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:10}.confetti-piece{position:absolute;display:inline-block;font-weight:900;animation:confetti-fly 1s cubic-bezier(.25,.46,.45,.94) forwards;will-change:transform,opacity;pointer-events:none}@keyframes confetti-fly{0%{transform:translate(0) rotate(0) scale(.3);opacity:1}80%{opacity:1}to{transform:translate(var(--dx, 0),var(--dy, 0)) rotate(var(--rot, 360deg)) scale(1);opacity:0}}.landing-note{color:#475569;font-size:.82rem;max-width:400px;margin:0;background:#fff9;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(134,239,172,.3);z-index:2}.section-title-on-dark{color:#064e3b;font-size:clamp(1.3rem,3vw,1.7rem);font-weight:900;margin:0 0 1rem;text-align:center}.landing-features{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.5rem;z-index:2}.landing-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;width:100%}.landing-feature-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.7rem;background:#fff;border:2px solid #e2e8f0;border-radius:20px;padding:1.6rem 1rem;color:#1e293b;font-weight:700;font-size:.92rem;box-shadow:0 4px 14px -6px #0f172a1a;opacity:0;transform:translateY(20px) scale(.95);transition:opacity .5s ease,transform .5s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease}.landing-feature-card.is-visible{opacity:1;transform:translateY(0) scale(1)}.landing-feature-card:hover{border-color:#86efac;box-shadow:0 14px 30px -10px #16a34a66;transform:translateY(-6px) scale(1.03)}.landing-feature-card:nth-child(1){background:linear-gradient(180deg,#fff,#f0fdf4)}.landing-feature-card:nth-child(2){background:linear-gradient(180deg,#fff,#ecfeff)}.landing-feature-card:nth-child(3){background:linear-gradient(180deg,#fff,#fef9c3)}.landing-feature-card:nth-child(4){background:linear-gradient(180deg,#fff,#fce7f3)}.landing-feature-emoji{font-size:2.6rem;display:inline-block;transition:transform .3s ease}.landing-feature-card:hover .landing-feature-emoji{animation:emoji-bounce .6s ease}@keyframes emoji-bounce{0%{transform:translateY(0) scale(1) rotate(0)}30%{transform:translateY(-14px) scale(1.3) rotate(-10deg)}60%{transform:translateY(0) scale(.9) rotate(8deg)}to{transform:translateY(-4px) scale(1.15) rotate(0)}}.landing-feature-card p{margin:0}.landing-faq{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:2rem;z-index:2}.landing-faq-list{width:100%;max-width:640px;display:flex;flex-direction:column;gap:.7rem}.faq-item{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:.9rem 1.3rem;color:#334155;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease;overflow:hidden}.faq-item:hover{border-color:#86efac;transform:translateY(-2px);box-shadow:0 8px 20px -8px #16a34a4d}.faq-item[open]{border-color:#22c55e;background:linear-gradient(180deg,#fff,#f0fdf4);box-shadow:0 10px 24px -10px #16a34a59}.faq-item summary{font-weight:800;font-size:.98rem;color:#064e3b;cursor:pointer;padding:.2rem 0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:color .2s ease}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{color:#15803d}.faq-chevron{display:inline-block;font-size:1.1rem;color:#22c55e;transition:transform .3s cubic-bezier(.16,1,.3,1)}.faq-item[open] .faq-chevron{transform:rotate(180deg)}.faq-item p{margin:.4rem 0 0;font-size:.9rem;line-height:1.6;color:#475569;animation:faq-fade .4s ease}@keyframes faq-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.landing-footer{text-align:center;padding:1.5rem 2rem;color:#475569;font-size:.85rem;position:relative;z-index:2;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.6) 100%)}.landing-footer p{margin:0}.landing-footer-small{font-size:.75rem;opacity:.8;margin-top:.3rem!important}.footer-personal-link{color:#15803d;text-decoration:none;font-weight:800;border-bottom:2px dashed #86efac;padding-bottom:1px;transition:color .2s ease,border-color .2s ease}.footer-personal-link:hover{color:#166534;border-bottom-color:#22c55e;text-decoration:none}.footer-party-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:4px 12px;border-radius:999px;font-weight:700;font-size:inherit;transition:transform .15s ease,box-shadow .15s ease}.footer-party-btn:hover{transform:scale(1.05);box-shadow:0 4px 14px -4px #16a34a80}.footer-party-btn:active{transform:scale(.95)}.footer-hint{font-size:.65rem;opacity:.6;font-family:ui-monospace,monospace}.sound-toggle{width:44px;height:44px;border-radius:50%;border:2px solid #86efac;background:#fff;font-size:1.2rem;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;box-shadow:0 4px 12px -4px #16a34a4d}.sound-toggle:hover{background:#f0fdf4;border-color:#22c55e;transform:scale(1.08);box-shadow:0 6px 16px -4px #16a34a66}.sound-toggle:active{transform:scale(.95)}@media (max-width: 640px){.landing-title{font-size:1.9rem}.landing-feature-grid{grid-template-columns:1fr 1fr}.mascot{font-size:1.5rem!important}.mascot-0,.mascot-1{font-size:1.8rem!important}}.cursor-follower{position:fixed;top:0;left:0;font-size:1.8rem;pointer-events:none;z-index:9999;filter:drop-shadow(0 4px 10px rgba(22,163,74,.4));will-change:transform;-webkit-user-select:none;user-select:none;transition:font-size .2s ease}.cursor-follower--party{font-size:2.6rem;animation:cursor-party-spin .6s ease-in-out infinite}@keyframes cursor-party-spin{0%,to{transform:rotate(-15deg) scale(1)}50%{transform:rotate(15deg) scale(1.2)}}.landing{cursor:none}.landing a,.landing button,.landing summary,.landing input,.landing textarea{cursor:none}.burst-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998;overflow:hidden}.burst-piece{position:absolute;font-size:1.6rem;pointer-events:none;--dx: 0;--dy: -60px;--rot: 360deg;animation:burst-fly 1.1s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes burst-fly{0%{transform:translate(-50%,-50%) scale(.3) rotate(0);opacity:1}60%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.2) rotate(var(--rot));opacity:0}}.compliment-pop{position:fixed;top:90px;left:50%;transform:translate(-50%);z-index:9997;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-weight:800;font-size:1rem;padding:.8rem 1.6rem;border-radius:999px;box-shadow:0 10px 30px -8px #16a34a80,0 0 0 4px #fff9;animation:compliment-in .5s cubic-bezier(.34,1.56,.64,1),compliment-out .4s ease 3s forwards;pointer-events:none;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}@keyframes compliment-in{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes compliment-out{to{transform:translate(-50%) translateY(-20px);opacity:0}}.fun-message{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000;background:linear-gradient(135deg,#22c55e,#fbbf24,#ec4899);background-size:200% 200%;animation:rainbow-shift 3s ease infinite,fun-in .5s cubic-bezier(.34,1.56,.64,1);color:#fff;font-weight:900;font-size:1.5rem;padding:1.2rem 2rem;border-radius:24px;box-shadow:0 20px 50px -10px #0000004d,0 0 0 6px #fff6;display:inline-flex;align-items:center;gap:.6rem;pointer-events:none;white-space:nowrap}.fun-message__sparkle{display:inline-block;animation:sparkle-pulse .8s ease-in-out infinite}@keyframes fun-in{0%{transform:translate(-50%,-50%) scale(.3) rotate(-15deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}}@keyframes rainbow-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes sparkle-pulse{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.4) rotate(180deg);opacity:.7}}.party-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9996;overflow:hidden;animation:party-fade-in .4s ease}@keyframes party-fade-in{0%{opacity:0}to{opacity:1}}.party-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,rgba(34,197,94,.4) 0%,transparent 60%),radial-gradient(ellipse at top left,rgba(251,191,36,.45) 0%,transparent 60%),radial-gradient(ellipse at bottom right,rgba(236,72,153,.45) 0%,transparent 60%),linear-gradient(135deg,#064e3b,#831843,#1e1b4b)}.party-spotlight{position:absolute;top:-20%;left:50%;width:120vw;height:140vh;transform:translate(-50%);background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.1) 60deg,transparent 120deg,transparent 240deg,rgba(255,255,255,.1) 300deg,transparent 360deg);animation:party-spotlight-spin 5s linear infinite;filter:blur(40px)}@keyframes party-spotlight-spin{to{transform:translate(-50%) rotate(360deg)}}.party-rain{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.party-rain-piece{position:absolute;top:-40px;font-size:1.4rem;display:inline-block;animation:party-fall linear infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));will-change:transform}@keyframes party-fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.party-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:3;width:min(95vw,900px)}.party-pre{font-size:clamp(1.1rem,2.4vw,1.6rem);font-weight:800;color:#fde047;text-shadow:0 2px 10px rgba(0,0,0,.6);margin-bottom:.5rem;animation:party-pre-bounce 1.2s ease-in-out infinite;letter-spacing:.05em}@keyframes party-pre-bounce{0%,to{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.08) rotate(2deg)}}.party-title{display:flex;justify-content:center;flex-wrap:wrap;margin:0;font-size:clamp(2.6rem,9vw,6rem);font-weight:900;letter-spacing:.04em;line-height:1;text-shadow:0 0 20px rgba(253,224,71,.7),0 0 40px rgba(236,72,153,.6),0 6px 20px rgba(0,0,0,.6)}.party-letter{display:inline-block;background:linear-gradient(180deg,#fde047,#fbbf24,#ec4899 60%,#a855f7);background-size:100% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:party-letter-in .6s cubic-bezier(.34,1.56,.64,1) backwards,party-letter-shimmer 3s ease-in-out infinite;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}@keyframes party-letter-in{0%{opacity:0;transform:translateY(-80px) rotate(-30deg) scale(.3)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes party-letter-shimmer{0%,to{background-position:0% 0%;transform:translateY(0)}50%{background-position:0% 100%;transform:translateY(-6px)}}.party-sub{margin-top:1rem;font-size:clamp(.95rem,2vw,1.3rem);font-weight:700;color:#fffffff2;text-shadow:0 2px 8px rgba(0,0,0,.5);animation:party-sub-pulse 1.6s ease-in-out infinite;letter-spacing:.05em}@keyframes party-sub-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.party-orbit{position:absolute;top:50%;left:50%;width:0;height:0;z-index:2}.party-orbit-piece{position:absolute;font-size:clamp(1.4rem,3vw,2rem);display:inline-block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5));transform:rotate(var(--angle)) translateY(-220px) rotate(calc(-1 * var(--angle)));animation:party-orbit-spin 8s linear infinite}@keyframes party-orbit-spin{to{transform:rotate(calc(var(--angle) + 360deg)) translateY(-220px) rotate(calc(-1 * var(--angle) - 360deg))}}.party-dj{position:absolute;font-size:clamp(2rem,5vw,3.5rem);filter:drop-shadow(0 6px 14px rgba(0,0,0,.5));animation:party-dj-dance .8s ease-in-out infinite;z-index:4}.party-dj--left{left:4%;bottom:8%;animation-delay:0s}.party-dj--right{right:4%;bottom:8%;animation-delay:.2s}.party-dj--tl{left:6%;top:10%;animation-delay:.4s}.party-dj--tr{right:6%;top:10%;animation-delay:.6s}.party-dj--bl{left:18%;bottom:4%;animation-delay:.1s;font-size:clamp(1.6rem,4vw,2.6rem)}.party-dj--br{right:18%;bottom:4%;animation-delay:.3s;font-size:clamp(1.6rem,4vw,2.6rem)}@keyframes party-dj-dance{0%,to{transform:translateY(0) rotate(-15deg) scale(1)}50%{transform:translateY(-25px) rotate(15deg) scale(1.15)}}@media (max-width: 640px){.party-dj--tl,.party-dj--tr{display:none}.party-orbit-piece{transform:rotate(var(--angle)) translateY(-140px) rotate(calc(-1 * var(--angle)));animation:party-orbit-spin-mobile 8s linear infinite}@keyframes party-orbit-spin-mobile{to{transform:rotate(calc(var(--angle) + 360deg)) translateY(-140px) rotate(calc(-1 * var(--angle) - 360deg))}}}.landing--party .landing-vip-card{animation:vip-jiggle .6s ease-in-out infinite}.landing--party .landing-vip-card:nth-child(2){animation-delay:.15s}.landing--party .landing-vip-card:nth-child(3){animation-delay:.3s}@keyframes vip-jiggle{0%,to{transform:rotate(-3deg) scale(1)}50%{transform:rotate(3deg) scale(1.05)}}.landing--party .landing-title{animation:title-wiggle .8s ease-in-out infinite}@keyframes title-wiggle{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
