@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/variable/woff2/PretendardVariable.woff2) format("woff2-variations");font-weight:45 920}:root{--cc-font-sans: "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;--cc-font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", Consolas, monospace;--cc-blue-50: #eff6ff;--cc-blue-100: #dbeafe;--cc-blue-200: #bfdbfe;--cc-blue-300: #93c5fd;--cc-blue-400: #60a5fa;--cc-blue-500: #3182f6;--cc-blue-600: #1b64da;--cc-blue-700: #1558c7;--cc-blue-800: #1e40af;--cc-blue-900: #1e3a8a;--cc-gray-50: #f9fafb;--cc-gray-100: #f3f4f6;--cc-gray-200: #e5e7eb;--cc-gray-300: #d1d5db;--cc-gray-400: #9ca3af;--cc-gray-500: #6b7280;--cc-gray-600: #4b5563;--cc-gray-700: #374151;--cc-gray-800: #1f2937;--cc-gray-900: #111827;--cc-green-50: #ecfdf5;--cc-green-100: #d1fae5;--cc-green-200: #a7f3d0;--cc-green-300: #6ee7b7;--cc-green-400: #34d399;--cc-green-500: #10b981;--cc-green-600: #059669;--cc-green-700: #047857;--cc-green-800: #065f46;--cc-green-900: #064e3b;--cc-red-50: #fef2f2;--cc-red-100: #fee2e2;--cc-red-200: #fecaca;--cc-red-300: #fca5a5;--cc-red-400: #f87171;--cc-red-500: #ef4444;--cc-red-600: #dc2626;--cc-red-700: #b91c1c;--cc-red-800: #991b1b;--cc-red-900: #7f1d1d;--cc-amber-50: #fffbeb;--cc-amber-100: #fef3c7;--cc-amber-200: #fde68a;--cc-amber-300: #fcd34d;--cc-amber-400: #fbbf24;--cc-amber-500: #f59e0b;--cc-amber-600: #d97706;--cc-amber-700: #b45309;--cc-amber-800: #92400e;--cc-amber-900: #78350f;--cc-indigo-50: #eef2ff;--cc-indigo-100: #e0e7ff;--cc-indigo-200: #c7d2fe;--cc-indigo-300: #a5b4fc;--cc-indigo-400: #818cf8;--cc-indigo-500: #6366f1;--cc-indigo-600: #4f46e5;--cc-indigo-700: #4338ca;--cc-indigo-800: #3730a3;--cc-indigo-900: #312e81;--cc-bg: #ffffff;--cc-bg-subtle: var(--cc-gray-50);--cc-bg-muted: var(--cc-gray-100);--cc-bg-elevated: #ffffff;--cc-bg-overlay: rgba(0, 0, 0, .5);--cc-overlay: var(--cc-bg-overlay);--cc-surface: #ffffff;--cc-surface-hover: var(--cc-gray-50);--cc-surface-active: var(--cc-gray-100);--cc-surface-glass: rgba(255, 255, 255, .72);--cc-surface-glass-hover: rgba(255, 255, 255, .86);--cc-ink: var(--cc-gray-900);--cc-ink-secondary: var(--cc-gray-600);--cc-ink-tertiary: var(--cc-gray-400);--cc-ink-inverse: #ffffff;--cc-text: #191919;--cc-text-secondary: var(--cc-gray-600);--cc-text-tertiary: var(--cc-gray-500);--cc-muted: var(--cc-text-secondary);--cc-subtle: var(--cc-text-tertiary);--cc-line: var(--cc-gray-200);--cc-line-strong: var(--cc-gray-300);--cc-accent: var(--cc-blue-500);--cc-accent-hover: var(--cc-blue-600);--cc-accent-active: var(--cc-blue-700);--cc-accent-subtle: var(--cc-blue-50);--cc-accent-soft: var(--cc-accent-subtle);--cc-accent-text: var(--cc-blue-700);--cc-positive: var(--cc-green-500);--cc-positive-hover: var(--cc-green-600);--cc-positive-subtle: var(--cc-green-50);--cc-positive-soft: var(--cc-positive-subtle);--cc-positive-text: var(--cc-green-700);--cc-danger: var(--cc-red-500);--cc-danger-hover: var(--cc-red-600);--cc-danger-subtle: var(--cc-red-50);--cc-danger-text: var(--cc-red-700);--cc-negative: var(--cc-danger);--cc-negative-soft: var(--cc-danger-subtle);--cc-warning: var(--cc-amber-500);--cc-warning-hover: var(--cc-amber-600);--cc-warning-subtle: var(--cc-amber-50);--cc-warning-text: var(--cc-amber-700);--cc-caution: var(--cc-warning);--cc-caution-soft: var(--cc-warning-subtle);--cc-text-xs: .75rem;--cc-text-sm: .875rem;--cc-text-base: 1rem;--cc-text-lg: 1.125rem;--cc-text-xl: 1.25rem;--cc-text-2xl: 1.5rem;--cc-text-3xl: 1.875rem;--cc-text-4xl: 2.25rem;--cc-leading-tight: 1.25;--cc-leading-normal: 1.5;--cc-leading-relaxed: 1.75;--cc-tracking-tight: -.015em;--cc-tracking-normal: -.005em;--cc-tracking-wide: .025em;--cc-weight-regular: 400;--cc-weight-normal: 400;--cc-weight-medium: 500;--cc-weight-semibold: 600;--cc-weight-bold: 700;--cc-space-0: 0;--cc-space-1: .25rem;--cc-space-2: .5rem;--cc-space-3: .75rem;--cc-space-4: 1rem;--cc-space-5: 1.25rem;--cc-space-6: 1.5rem;--cc-space-8: 2rem;--cc-space-10: 2.5rem;--cc-space-12: 3rem;--cc-space-16: 4rem;--cc-space-20: 5rem;--cc-space-24: 6rem;--cc-radius-xs: 6px;--cc-radius-sm: 8px;--cc-radius-md: 12px;--cc-radius-lg: 16px;--cc-radius-xl: 20px;--cc-radius-2xl: 28px;--cc-radius-full: 9999px;--cc-shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--cc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--cc-shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--cc-shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--cc-shadow-xl: 0 16px 48px rgba(0, 0, 0, .16);--cc-shadow-glass: 0 4px 24px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--cc-duration-fast: .12s;--cc-duration-normal: .2s;--cc-duration-slow: .35s;--cc-ease-default: cubic-bezier(.25, .1, .25, 1);--cc-ease: var(--cc-ease-default);--cc-ease-in: cubic-bezier(.4, 0, 1, 1);--cc-ease-out: cubic-bezier(0, 0, .2, 1);--cc-ease-in-out: cubic-bezier(.4, 0, .2, 1);--cc-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--cc-z-base: 0;--cc-z-dropdown: 100;--cc-z-sticky: 200;--cc-z-overlay: 300;--cc-z-modal: 400;--cc-z-toast: 500;--cc-focus-ring: 0 0 0 2px var(--cc-bg), 0 0 0 4px var(--cc-accent);--cc-focus-ring-danger: 0 0 0 2px var(--cc-bg), 0 0 0 4px var(--cc-danger);--cc-input-height: 48px;--cc-input-height-sm: 40px;--cc-button-height: 44px;--cc-button-height-sm: 40px;--cc-button-height-lg: 56px;--cc-nav-height: 64px;--cc-page-max: 1200px;--cc-page-padding: var(--cc-space-6)}@media(prefers-color-scheme:dark){:root{--cc-bg: #0f1117;--cc-bg-subtle: #161922;--cc-bg-muted: #1e2130;--cc-bg-elevated: #1e2130;--cc-bg-overlay: rgba(0, 0, 0, .7);--cc-surface: #1e2130;--cc-surface-hover: #252838;--cc-surface-active: #2d3148;--cc-surface-glass: rgba(30, 33, 48, .72);--cc-surface-glass-hover: rgba(30, 33, 48, .86);--cc-ink: #f1f5f9;--cc-ink-secondary: #94a3b8;--cc-ink-tertiary: #64748b;--cc-ink-inverse: #0f1117;--cc-text: var(--cc-ink);--cc-text-secondary: var(--cc-ink-secondary);--cc-text-tertiary: var(--cc-ink-tertiary);--cc-muted: var(--cc-text-secondary);--cc-subtle: var(--cc-text-tertiary);--cc-line: #2d3148;--cc-line-strong: #3d4260;--cc-accent: var(--cc-blue-400);--cc-accent-hover: var(--cc-blue-300);--cc-accent-active: var(--cc-blue-500);--cc-accent-subtle: #1e3a5f;--cc-accent-text: var(--cc-blue-300);--cc-positive: var(--cc-green-400);--cc-positive-hover: var(--cc-green-300);--cc-positive-subtle: #134e3a;--cc-positive-text: var(--cc-green-300);--cc-danger: var(--cc-red-400);--cc-danger-hover: var(--cc-red-300);--cc-danger-subtle: #450a0a;--cc-danger-text: var(--cc-red-300);--cc-warning: var(--cc-amber-400);--cc-warning-hover: var(--cc-amber-300);--cc-warning-subtle: #422006;--cc-warning-text: var(--cc-amber-300);--cc-shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--cc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .25);--cc-shadow-md: 0 4px 12px rgba(0, 0, 0, .32);--cc-shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--cc-shadow-xl: 0 16px 48px rgba(0, 0, 0, .48);--cc-shadow-glass: 0 4px 24px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .16)}}.dark,[data-theme=dark]{--cc-bg: #0f1117;--cc-bg-subtle: #161922;--cc-bg-muted: #1e2130;--cc-bg-elevated: #1e2130;--cc-bg-overlay: rgba(0, 0, 0, .7);--cc-surface: #1e2130;--cc-surface-hover: #252838;--cc-surface-active: #2d3148;--cc-surface-glass: rgba(30, 33, 48, .72);--cc-surface-glass-hover: rgba(30, 33, 48, .86);--cc-ink: #f0f1f5;--cc-ink-secondary: #9ca3af;--cc-ink-tertiary: #6b7280;--cc-ink-inverse: #0f1117;--cc-text: var(--cc-ink);--cc-text-secondary: var(--cc-ink-secondary);--cc-text-tertiary: var(--cc-ink-tertiary);--cc-muted: var(--cc-text-secondary);--cc-subtle: var(--cc-text-tertiary);--cc-line: #2d3148;--cc-line-strong: #3d4260;--cc-accent: var(--cc-blue-400);--cc-accent-hover: var(--cc-blue-300);--cc-accent-active: var(--cc-blue-500);--cc-accent-subtle: rgba(59, 130, 246, .12);--cc-accent-text: var(--cc-blue-300);--cc-positive: var(--cc-green-400);--cc-positive-hover: var(--cc-green-300);--cc-positive-subtle: rgba(16, 185, 129, .12);--cc-positive-text: var(--cc-green-300);--cc-danger: var(--cc-red-400);--cc-danger-hover: var(--cc-red-300);--cc-danger-subtle: rgba(239, 68, 68, .12);--cc-danger-text: var(--cc-red-300);--cc-warning: var(--cc-amber-400);--cc-warning-hover: var(--cc-amber-300);--cc-warning-subtle: rgba(245, 158, 11, .12);--cc-warning-text: var(--cc-amber-300);--cc-shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--cc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .25);--cc-shadow-md: 0 4px 12px rgba(0, 0, 0, .32);--cc-shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--cc-shadow-xl: 0 16px 48px rgba(0, 0, 0, .48);--cc-shadow-glass: 0 4px 24px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .16)}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--cc-font-sans);font-size:var(--cc-text-base);font-weight:var(--cc-weight-regular);line-height:var(--cc-leading-normal);letter-spacing:var(--cc-tracking-normal);color:var(--cc-ink);background:var(--cc-bg)}:focus-visible{outline:none;box-shadow:var(--cc-focus-ring)}:focus:not(:focus-visible){outline:none;box-shadow:none}a{color:var(--cc-accent-text);text-decoration:none}a:hover{text-decoration:underline}.cc-page{max-width:var(--cc-page-max);margin:0 auto;padding:var(--cc-page-padding)}.cc-stack{display:flex;flex-direction:column}.cc-stack-sm>*+*{margin-top:var(--cc-space-2)}.cc-stack-md>*+*{margin-top:var(--cc-space-4)}.cc-stack-lg>*+*{margin-top:var(--cc-space-6)}.cc-stack-xl>*+*{margin-top:var(--cc-space-8)}.cc-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cc-space-3)}.cc-center{display:flex;align-items:center;justify-content:center}.cc-glass{background:var(--cc-surface-glass);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--cc-line);border-radius:var(--cc-radius-2xl);box-shadow:var(--cc-shadow-glass)}.cc-glass:hover{background:var(--cc-surface-glass-hover)}.cc-card-surface{background:var(--cc-surface);border:1px solid var(--cc-line);border-radius:var(--cc-radius-xl);box-shadow:var(--cc-shadow-sm)}.cc-card-outline{background:transparent;border:1px solid var(--cc-line);border-radius:var(--cc-radius-xl)}.cc-heading-1{font-size:var(--cc-text-4xl);font-weight:var(--cc-weight-bold);line-height:var(--cc-leading-tight);letter-spacing:var(--cc-tracking-tight)}.cc-heading-2{font-size:var(--cc-text-3xl);font-weight:var(--cc-weight-bold);line-height:var(--cc-leading-tight);letter-spacing:var(--cc-tracking-tight)}.cc-heading-3{font-size:var(--cc-text-2xl);font-weight:var(--cc-weight-semibold);line-height:var(--cc-leading-tight);letter-spacing:var(--cc-tracking-tight)}.cc-heading-4{font-size:var(--cc-text-xl);font-weight:var(--cc-weight-semibold);line-height:var(--cc-leading-tight)}.cc-body-lg{font-size:var(--cc-text-lg)}.cc-body{font-size:var(--cc-text-base)}.cc-body-sm{font-size:var(--cc-text-sm)}.cc-caption{font-size:var(--cc-text-xs);color:var(--cc-ink-secondary)}.cc-line-clamp-1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cc-line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@keyframes cc-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cc-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes cc-spin{to{transform:rotate(360deg)}}.cc-animate-fade-in{animation:cc-fade-in var(--cc-duration-normal) var(--cc-ease-out) both}.cc-animate-slide-up{animation:cc-slide-up var(--cc-duration-slow) var(--cc-ease-spring) both}@media(max-width:767px){.cc-hide-mobile{display:none!important}.cc-page{padding:var(--cc-space-4)}}@media(min-width:768px){.cc-hide-desktop{display:none!important}}.cc-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cc-space-2);font-family:var(--cc-font-sans);font-weight:var(--cc-weight-semibold);letter-spacing:var(--cc-tracking-normal);border:2px solid transparent;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;transition:background var(--cc-duration-fast) var(--cc-ease-default),color var(--cc-duration-fast) var(--cc-ease-default),border-color var(--cc-duration-fast) var(--cc-ease-default),box-shadow var(--cc-duration-fast) var(--cc-ease-default),opacity var(--cc-duration-fast) var(--cc-ease-default)}.cc-btn:active:not(:disabled){transform:scale(.97)}.cc-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.cc-btn-sm{height:var(--cc-button-height-sm);padding:0 var(--cc-space-3);font-size:var(--cc-text-sm);border-radius:var(--cc-radius-sm)}.cc-btn-md{height:var(--cc-button-height);padding:0 var(--cc-space-5);font-size:var(--cc-text-base);border-radius:var(--cc-radius-md)}.cc-btn-lg{height:var(--cc-button-height-lg);padding:0 var(--cc-space-8);font-size:var(--cc-text-lg);border-radius:var(--cc-radius-lg)}.cc-btn-full{width:100%}.cc-btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.cc-btn-icon svg{width:1em;height:1em}.cc-btn-spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:cc-spin .6s linear infinite}.cc-btn-solid-accent{background:var(--cc-accent);color:#fff}.cc-btn-solid-accent:hover:not(:disabled){background:var(--cc-accent-hover)}.cc-btn-solid-positive{background:var(--cc-positive);color:#fff}.cc-btn-solid-positive:hover:not(:disabled){background:var(--cc-positive-hover)}.cc-btn-solid-danger{background:var(--cc-danger);color:#fff}.cc-btn-solid-danger:hover:not(:disabled){background:var(--cc-danger-hover)}.cc-btn-solid-warning{background:var(--cc-warning);color:#fff}.cc-btn-solid-warning:hover:not(:disabled){background:var(--cc-warning-hover)}.cc-btn-solid-neutral{background:var(--cc-ink);color:var(--cc-ink-inverse)}.cc-btn-solid-neutral:hover:not(:disabled){background:var(--cc-ink-secondary)}.cc-btn-soft-accent{background:var(--cc-accent-subtle);color:var(--cc-accent-text)}.cc-btn-soft-accent:hover:not(:disabled){background:var(--cc-accent);color:#fff}.cc-btn-soft-positive{background:var(--cc-positive-subtle);color:var(--cc-positive-text)}.cc-btn-soft-positive:hover:not(:disabled){background:var(--cc-positive);color:#fff}.cc-btn-soft-danger{background:var(--cc-danger-subtle);color:var(--cc-danger-text)}.cc-btn-soft-danger:hover:not(:disabled){background:var(--cc-danger);color:#fff}.cc-btn-soft-warning{background:var(--cc-warning-subtle);color:var(--cc-warning-text)}.cc-btn-soft-warning:hover:not(:disabled){background:var(--cc-warning);color:#fff}.cc-btn-soft-neutral{background:var(--cc-bg-muted);color:var(--cc-ink)}.cc-btn-soft-neutral:hover:not(:disabled){background:var(--cc-ink);color:var(--cc-ink-inverse)}.cc-btn-outline-accent{background:transparent;border-color:var(--cc-accent);color:var(--cc-accent-text)}.cc-btn-outline-accent:hover:not(:disabled){background:var(--cc-accent-subtle)}.cc-btn-outline-positive{background:transparent;border-color:var(--cc-positive);color:var(--cc-positive-text)}.cc-btn-outline-positive:hover:not(:disabled){background:var(--cc-positive-subtle)}.cc-btn-outline-danger{background:transparent;border-color:var(--cc-danger);color:var(--cc-danger-text)}.cc-btn-outline-danger:hover:not(:disabled){background:var(--cc-danger-subtle)}.cc-btn-outline-warning{background:transparent;border-color:var(--cc-warning);color:var(--cc-warning-text)}.cc-btn-outline-warning:hover:not(:disabled){background:var(--cc-warning-subtle)}.cc-btn-outline-neutral{background:transparent;border-color:var(--cc-line-strong);color:var(--cc-ink)}.cc-btn-outline-neutral:hover:not(:disabled){background:var(--cc-bg-muted)}.cc-btn-ghost-accent{background:transparent;color:var(--cc-accent-text)}.cc-btn-ghost-accent:hover:not(:disabled){background:var(--cc-accent-subtle)}.cc-btn-ghost-positive{background:transparent;color:var(--cc-positive-text)}.cc-btn-ghost-positive:hover:not(:disabled){background:var(--cc-positive-subtle)}.cc-btn-ghost-danger{background:transparent;color:var(--cc-danger-text)}.cc-btn-ghost-danger:hover:not(:disabled){background:var(--cc-danger-subtle)}.cc-btn-ghost-warning{background:transparent;color:var(--cc-warning-text)}.cc-btn-ghost-warning:hover:not(:disabled){background:var(--cc-warning-subtle)}.cc-btn-ghost-neutral{background:transparent;color:var(--cc-ink-secondary)}.cc-btn-ghost-neutral:hover:not(:disabled){background:var(--cc-bg-muted);color:var(--cc-ink)}.cc-card-pad-sm{padding:var(--cc-space-3)}.cc-card-pad-md{padding:var(--cc-space-6)}.cc-card-pad-lg{padding:var(--cc-space-8)}.cc-card-ghost{border-radius:var(--cc-radius-xl)}.cc-card-interactive{cursor:pointer;transition:transform var(--cc-duration-fast) var(--cc-ease-default),box-shadow var(--cc-duration-fast) var(--cc-ease-default),background var(--cc-duration-fast) var(--cc-ease-default)}.cc-card-interactive:hover{transform:translateY(-2px);box-shadow:var(--cc-shadow-md)}.cc-card-interactive:active{transform:translateY(0);box-shadow:var(--cc-shadow-sm)}.cc-input-wrapper{display:flex;flex-direction:column;gap:var(--cc-space-1)}.cc-input-label{font-size:var(--cc-text-sm);font-weight:var(--cc-weight-medium);color:var(--cc-ink);letter-spacing:var(--cc-tracking-normal)}.cc-input-field{display:flex;align-items:center;gap:var(--cc-space-2);background:var(--cc-bg);border:1.5px solid var(--cc-line);border-radius:var(--cc-radius-md);padding:0 var(--cc-space-3);transition:border-color var(--cc-duration-fast) var(--cc-ease-default),box-shadow var(--cc-duration-fast) var(--cc-ease-default)}.cc-input-field:hover:not(:focus-within){border-color:var(--cc-line-strong)}.cc-input-field:focus-within{border-color:var(--cc-accent);box-shadow:var(--cc-focus-ring)}.cc-input-error{border-color:var(--cc-danger)!important}.cc-input-error:focus-within{box-shadow:var(--cc-focus-ring-danger)!important}.cc-input-element{flex:1;border:none;outline:none;background:transparent;font-family:var(--cc-font-sans);font-size:var(--cc-text-base);color:var(--cc-ink);padding:0;width:100%}.cc-input-element::-moz-placeholder{color:var(--cc-ink-tertiary)}.cc-input-element::placeholder{color:var(--cc-ink-tertiary)}.cc-input-sm{height:var(--cc-input-height-sm)}.cc-input-sm .cc-input-element{font-size:var(--cc-text-sm)}.cc-input-md{height:var(--cc-input-height)}.cc-input-lg{height:var(--cc-button-height-lg);padding:0 var(--cc-space-4);border-radius:var(--cc-radius-lg)}.cc-input-slot-left,.cc-input-slot-right{display:flex;align-items:center;color:var(--cc-ink-tertiary);flex-shrink:0}.cc-input-message{font-size:var(--cc-text-xs);color:var(--cc-ink-secondary);margin:0}.cc-input-message-error{color:var(--cc-danger-text)}.cc-textarea{width:100%;min-height:112px;padding:var(--cc-space-3) var(--cc-space-4);border:1.5px solid var(--cc-line);border-radius:var(--cc-radius-lg);background:var(--cc-bg);color:var(--cc-text);font-family:var(--cc-font-sans);font-size:var(--cc-text-base);line-height:var(--cc-leading-normal);resize:vertical;transition:border-color var(--cc-duration-fast) var(--cc-ease-default),box-shadow var(--cc-duration-fast) var(--cc-ease-default)}.cc-textarea:hover:not(:focus){border-color:var(--cc-line-strong)}.cc-textarea:focus{outline:none;border-color:var(--cc-accent);box-shadow:var(--cc-focus-ring)}.cc-textarea::-moz-placeholder{color:var(--cc-text-tertiary)}.cc-textarea::placeholder{color:var(--cc-text-tertiary)}.cc-textarea-error{border-color:var(--cc-negative)!important}.cc-textarea-error:focus{box-shadow:var(--cc-focus-ring-danger)!important}.cc-tabs-list{display:inline-flex;align-items:center;gap:var(--cc-space-1);min-height:44px;padding:var(--cc-space-1);border:1px solid var(--cc-line);border-radius:var(--cc-radius-lg);background:var(--cc-bg-muted)}.cc-tabs-trigger{min-height:36px;padding:0 var(--cc-space-4);border:0;border-radius:var(--cc-radius-md);background:transparent;color:var(--cc-text-secondary);font:inherit;font-size:var(--cc-text-sm);font-weight:var(--cc-weight-semibold)}.cc-tabs-trigger[data-state=active]{background:var(--cc-surface);color:var(--cc-text);box-shadow:var(--cc-shadow-sm)}.cc-tabs-content{margin-top:var(--cc-space-4)}.cc-dialog-overlay{position:fixed;inset:0;z-index:var(--cc-z-overlay);background:var(--cc-overlay)}.cc-dialog-content{position:fixed;left:50%;top:50%;z-index:var(--cc-z-modal);display:grid;width:min(calc(100vw - 32px),560px);max-height:min(86vh,720px);transform:translate(-50%,-50%);overflow:auto;gap:var(--cc-space-5);padding:var(--cc-space-6);border:1px solid var(--cc-line);border-radius:var(--cc-radius-2xl);background:var(--cc-surface);box-shadow:var(--cc-shadow-xl)}.cc-dialog-header,.cc-dialog-footer{display:flex;gap:var(--cc-space-3)}.cc-dialog-header{flex-direction:column}.cc-dialog-footer{justify-content:flex-end;flex-wrap:wrap}.cc-dialog-title{margin:0;color:var(--cc-text);font-size:var(--cc-text-xl);font-weight:var(--cc-weight-bold);line-height:var(--cc-leading-tight)}.cc-dialog-description{margin:0;color:var(--cc-text-secondary);font-size:var(--cc-text-sm);line-height:var(--cc-leading-normal)}.cc-dialog-close{position:absolute;right:var(--cc-space-4);top:var(--cc-space-4);display:inline-grid;width:36px;height:36px;place-items:center;border:1px solid var(--cc-line);border-radius:var(--cc-radius-lg);background:var(--cc-surface);color:var(--cc-text-secondary);cursor:pointer}.cc-badge{display:inline-flex;align-items:center;gap:var(--cc-space-1);font-weight:var(--cc-weight-medium);letter-spacing:var(--cc-tracking-wide);white-space:nowrap;border-radius:var(--cc-radius-full)}.cc-badge-sm{font-size:11px;padding:2px 8px;line-height:16px}.cc-badge-md{font-size:var(--cc-text-xs);padding:var(--cc-space-1) var(--cc-space-2);line-height:18px}.cc-badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.cc-badge-accent{background:var(--cc-accent-subtle);color:var(--cc-accent-text)}.cc-badge-positive{background:var(--cc-positive-subtle);color:var(--cc-positive-text)}.cc-badge-danger{background:var(--cc-danger-subtle);color:var(--cc-danger-text)}.cc-badge-warning{background:var(--cc-warning-subtle);color:var(--cc-warning-text)}.cc-badge-neutral{background:var(--cc-bg-muted);color:var(--cc-ink-secondary)}.cc-chip{display:inline-flex;align-items:center;gap:var(--cc-space-1);height:32px;padding:0 var(--cc-space-3);font-size:var(--cc-text-sm);font-weight:var(--cc-weight-medium);border-radius:var(--cc-radius-full);border:1.5px solid var(--cc-line);background:var(--cc-bg);color:var(--cc-ink);cursor:default;transition:background var(--cc-duration-fast) var(--cc-ease-default),border-color var(--cc-duration-fast) var(--cc-ease-default),color var(--cc-duration-fast) var(--cc-ease-default)}.cc-chip-active{border-color:var(--cc-accent);background:var(--cc-accent-subtle);color:var(--cc-accent-text)}.cc-chip-icon{display:flex;align-items:center}.cc-chip-icon svg{width:14px;height:14px}.cc-chip-label{line-height:1}.cc-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;color:inherit;opacity:.5;cursor:pointer;padding:0;border-radius:50%;transition:opacity var(--cc-duration-fast) var(--cc-ease-default)}.cc-chip-remove:hover{opacity:1}.cc-chip-accent{border-color:var(--cc-accent);color:var(--cc-accent-text)}.cc-chip-positive{border-color:var(--cc-positive);color:var(--cc-positive-text)}.cc-chip-danger{border-color:var(--cc-danger);color:var(--cc-danger-text)}.cc-chip-warning{border-color:var(--cc-warning);color:var(--cc-warning-text)}.cc-chip-neutral{border-color:var(--cc-line);color:var(--cc-ink-secondary)}.cc-modal{position:fixed;inset:0;width:100%;height:100%;padding:0;border:none;background:var(--cc-bg-overlay);z-index:var(--cc-z-modal);display:flex;align-items:center;justify-content:center;animation:cc-modal-overlay-in var(--cc-duration-normal) var(--cc-ease-default) both}.cc-modal::backdrop{background:transparent}.cc-modal-content{background:var(--cc-bg-elevated);border-radius:var(--cc-radius-2xl);box-shadow:var(--cc-shadow-xl);max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:cc-modal-content-in var(--cc-duration-slow) var(--cc-ease-spring) both}.cc-modal-sm .cc-modal-content{width:400px}.cc-modal-md .cc-modal-content{width:560px}.cc-modal-lg .cc-modal-content{width:720px}.cc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--cc-space-5) var(--cc-space-6);border-bottom:1px solid var(--cc-line)}.cc-modal-title{font-size:var(--cc-text-xl);font-weight:var(--cc-weight-semibold);color:var(--cc-ink);margin:0}.cc-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--cc-ink-tertiary);border-radius:var(--cc-radius-sm);cursor:pointer;transition:background var(--cc-duration-fast) var(--cc-ease-default),color var(--cc-duration-fast) var(--cc-ease-default)}.cc-modal-close:hover{background:var(--cc-bg-muted);color:var(--cc-ink)}.cc-modal-body{padding:var(--cc-space-6);overflow-y:auto}@keyframes cc-modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes cc-modal-content-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:767px){.cc-modal-content{width:calc(100vw - 32px)!important;max-height:90vh;border-radius:var(--cc-radius-xl)}}.cc-skeleton{background:var(--cc-bg-muted);border-radius:var(--cc-radius-sm);animation:cc-skeleton-pulse 1.5s ease-in-out infinite}.cc-skeleton-text{height:14px;border-radius:var(--cc-radius-xs)}.cc-skeleton-circle{border-radius:50%}.cc-skeleton-rect{border-radius:var(--cc-radius-md)}.cc-skeleton-group{display:flex;flex-direction:column;gap:var(--cc-space-2)}@keyframes cc-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}:root{--fest-accent: var(--cc-accent);--fest-ink: var(--cc-ink);--fest-bg: var(--cc-bg);--fest-line: var(--cc-line);--cc-festival-ink: var(--cc-gray-900);--cc-festival-accent: var(--cc-green-700);--cc-festival-hero-mid: var(--cc-green-900);--cc-festival-bg-wash: color-mix(in srgb, var(--cc-amber-50) 78%, var(--cc-bg));--cc-festival-topbar-bg: color-mix(in srgb, var(--cc-amber-50) 62%, transparent);--cc-festival-nav-bg: color-mix(in srgb, var(--cc-bg) 94%, transparent);--cc-festival-surface-warm: color-mix(in srgb, var(--cc-amber-50) 42%, var(--cc-bg));--cc-festival-field-bg: color-mix(in srgb, var(--cc-amber-50) 56%, var(--cc-bg));--cc-festival-action-soft: var(--cc-amber-100);--cc-festival-action-text: var(--cc-amber-800);--cc-festival-line: color-mix(in srgb, var(--cc-amber-200) 70%, var(--cc-line));--cc-festival-line-soft: color-mix(in srgb, var(--cc-amber-100) 82%, var(--cc-line));--cc-festival-sheet-line: color-mix(in srgb, var(--cc-blue-100) 76%, var(--cc-line));--cc-festival-hero-muted: color-mix(in srgb, var(--cc-ink-inverse) 82%, transparent);--cc-festival-hero-panel: color-mix(in srgb, var(--cc-gray-900) 22%, transparent);--cc-festival-hero-line: color-mix(in srgb, var(--cc-ink-inverse) 22%, transparent);--cc-festival-hero-glow-warm: color-mix(in srgb, var(--cc-amber-400) 34%, transparent);--cc-festival-hero-glow-cool: color-mix(in srgb, var(--cc-green-400) 24%, transparent);--cc-festival-grid-line: color-mix(in srgb, var(--cc-festival-accent) 10%, transparent);--cc-festival-accent-shadow: color-mix(in srgb, var(--cc-festival-accent) 22%, transparent);--cc-festival-warm-shadow: color-mix(in srgb, var(--cc-amber-900) 8%, transparent);--cc-festival-card-shadow: color-mix(in srgb, var(--cc-amber-900) 7%, transparent);--cc-festival-nav-shadow: color-mix(in srgb, var(--cc-amber-900) 16%, transparent);--cc-festival-info-shadow: color-mix(in srgb, var(--cc-blue-700) 8%, transparent);--cc-festival-hero-shadow: color-mix(in srgb, var(--cc-gray-900) 20%, transparent)}.gradient-main{background:linear-gradient(135deg,var(--cc-indigo-500) 0%,var(--cc-blue-700) 100%)}.gradient-results{background:linear-gradient(90deg,var(--cc-positive) 0%,var(--cc-festival-accent) 100%)}.gradient-events{background:linear-gradient(90deg,var(--cc-indigo-600) 0%,var(--cc-danger) 100%)}.gradient-live,.gradient-digital-hub{background:linear-gradient(90deg,var(--cc-danger) 0%,var(--cc-warning) 100%)}.gradient-gallery{background:linear-gradient(90deg,var(--cc-indigo-500) 0%,var(--cc-indigo-700) 100%)}.gradient-bracket{background:linear-gradient(90deg,var(--cc-positive) 0%,var(--cc-festival-accent) 100%)}.status-completed{color:var(--cc-positive);background-color:var(--cc-positive-subtle);border-color:var(--cc-positive)}.status-in-progress{color:var(--cc-danger);background-color:var(--cc-danger-subtle);border-color:var(--cc-danger);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.status-scheduled{color:var(--cc-text-secondary);background-color:var(--cc-bg-subtle);border-color:var(--cc-text-secondary)}.status-winner{color:var(--cc-positive-text);background-color:var(--cc-green-100);border-color:var(--cc-green-400)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.text-xs-mobile{font-size:.75rem}.text-sm-mobile{font-size:.875rem}.text-base-mobile{font-size:1rem}@media(min-width:768px){.text-sm-mobile{font-size:.875rem}.text-base-mobile{font-size:1rem}}@media(min-width:1024px){.text-base-mobile{font-size:1rem}.text-lg-mobile{font-size:1.125rem}}.p-2-mobile{padding:.5rem}.p-3-mobile{padding:.75rem}.p-4-mobile{padding:1rem}@media(min-width:768px){.p-3-mobile{padding:.75rem}.p-4-mobile{padding:1rem}.p-5-mobile{padding:1.25rem}}@media(min-width:1024px){.p-4-mobile{padding:1rem}.p-6-mobile{padding:1.5rem}.p-8-mobile{padding:2rem}}.gap-2-mobile{gap:.5rem}.gap-3-mobile{gap:.75rem}@media(min-width:768px){.gap-3-mobile{gap:.75rem}.gap-4-mobile{gap:1rem}}@media(min-width:1024px){.gap-4-mobile{gap:1rem}.gap-6-mobile{gap:1.5rem}}.header-padding-mobile{padding:4rem .75rem .5rem}@media(min-width:768px){.header-padding-mobile{padding:5rem 1rem 1rem}}@media(min-width:1024px){.header-padding-mobile{padding:6rem 1.5rem 1.5rem}}.touch-target{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.compact-btn{padding:.5rem .75rem;font-size:.875rem;border-radius:var(--cc-radius-sm)}.compact-card{padding:.75rem;border-radius:var(--cc-radius-md)}.glass{background:var(--cc-festival-hero-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--cc-festival-hero-line)}.glass-dark{background:color-mix(in srgb,var(--cc-gray-900) 10%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--cc-gray-900) 20%,transparent)}.kinetic-layer{position:relative;z-index:1}.kinetic-layer:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--cc-indigo-500) 10%,transparent),color-mix(in srgb,var(--cc-blue-700) 10%,transparent));z-index:-1;border-radius:inherit}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Pretendard Variable,Pretendard,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-3{right:.75rem}.right-4{right:1rem}.top-1\/2{top:50%}.top-4{top:1rem}.z-\[var\(--cc-z-dropdown\)\]{z-index:var(--cc-z-dropdown)}.z-\[var\(--cc-z-modal\)\]{z-index:var(--cc-z-modal)}.z-\[var\(--cc-z-overlay\)\]{z-index:var(--cc-z-overlay)}.z-\[var\(--cc-z-tooltip\,500\)\]{z-index:var(--cc-z-tooltip,500)}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.ml-auto{margin-left:auto}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.aspect-square{aspect-ratio:1 / 1}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-2{width:.5rem;height:.5rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-9{width:2.25rem;height:2.25rem}.size-full{width:100%;height:100%}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-full{height:100%}.h-px{height:1px}.max-h-80{max-height:20rem}.max-h-\[86vh\]{max-height:86vh}.min-h-11{min-height:2.75rem}.min-h-28{min-height:7rem}.min-h-6{min-height:1.5rem}.min-h-7{min-height:1.75rem}.min-h-9{min-height:2.25rem}.w-10{width:2.5rem}.w-2\.5{width:.625rem}.w-\[min\(calc\(100vw-32px\)\,420px\)\]{width:min(calc(100vw - 32px),420px)}.w-\[min\(calc\(100vw-32px\)\,560px\)\]{width:min(calc(100vw - 32px),560px)}.w-\[min\(calc\(100vw-32px\)\,760px\)\]{width:min(calc(100vw - 32px),760px)}.w-full{width:100%}.min-w-32{min-width:8rem}.min-w-36{min-width:9rem}.min-w-40{min-width:10rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[var\(--cc-radius-2xl\)\]{border-radius:var(--cc-radius-2xl)}.rounded-\[var\(--cc-radius-full\)\]{border-radius:var(--cc-radius-full)}.rounded-\[var\(--cc-radius-lg\)\]{border-radius:var(--cc-radius-lg)}.rounded-\[var\(--cc-radius-md\)\]{border-radius:var(--cc-radius-md)}.rounded-\[var\(--cc-radius-xl\)\]{border-radius:var(--cc-radius-xl)}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-\[var\(--cc-accent\)\]{border-color:var(--cc-accent)}.border-\[var\(--cc-line\)\]{border-color:var(--cc-line)}.border-\[var\(--cc-negative\)\]{border-color:var(--cc-negative)}.border-current{border-color:currentColor}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-r-transparent{border-right-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[var\(--cc-accent\)\]{background-color:var(--cc-accent)}.bg-\[var\(--cc-accent-soft\)\]{background-color:var(--cc-accent-soft)}.bg-\[var\(--cc-bg\)\]{background-color:var(--cc-bg)}.bg-\[var\(--cc-bg-muted\)\]{background-color:var(--cc-bg-muted)}.bg-\[var\(--cc-bg-subtle\)\]{background-color:var(--cc-bg-subtle)}.bg-\[var\(--cc-caution\)\]{background-color:var(--cc-caution)}.bg-\[var\(--cc-caution-soft\)\]{background-color:var(--cc-caution-soft)}.bg-\[var\(--cc-line\)\]{background-color:var(--cc-line)}.bg-\[var\(--cc-line-strong\)\]{background-color:var(--cc-line-strong)}.bg-\[var\(--cc-negative\)\]{background-color:var(--cc-negative)}.bg-\[var\(--cc-negative-soft\)\]{background-color:var(--cc-negative-soft)}.bg-\[var\(--cc-overlay\)\]{background-color:var(--cc-overlay)}.bg-\[var\(--cc-positive\)\]{background-color:var(--cc-positive)}.bg-\[var\(--cc-positive-soft\)\]{background-color:var(--cc-positive-soft)}.bg-\[var\(--cc-surface\)\]{background-color:var(--cc-surface)}.bg-\[var\(--cc-surface-glass\)\]{background-color:var(--cc-surface-glass)}.bg-\[var\(--cc-text\)\]{background-color:var(--cc-text)}.bg-current{background-color:currentColor}.bg-transparent{background-color:transparent}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-px{padding:1px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-normal{line-height:1.5}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.text-\[var\(--cc-accent-text\)\]{color:var(--cc-accent-text)}.text-\[var\(--cc-danger-text\)\]{color:var(--cc-danger-text)}.text-\[var\(--cc-ink-inverse\)\]{color:var(--cc-ink-inverse)}.text-\[var\(--cc-negative\)\]{color:var(--cc-negative)}.text-\[var\(--cc-positive-text\)\]{color:var(--cc-positive-text)}.text-\[var\(--cc-text\)\]{color:var(--cc-text)}.text-\[var\(--cc-text-secondary\)\]{color:var(--cc-text-secondary)}.text-\[var\(--cc-text-tertiary\)\]{color:var(--cc-text-tertiary)}.text-\[var\(--cc-warning-text\)\]{color:var(--cc-warning-text)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[var\(--cc-shadow-glass\)\]{--tw-shadow-color: var(--cc-shadow-glass);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[var\(--cc-shadow-lg\)\]{--tw-shadow-color: var(--cc-shadow-lg);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[var\(--cc-shadow-md\)\]{--tw-shadow-color: var(--cc-shadow-md);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[var\(--cc-shadow-sm\)\]{--tw-shadow-color: var(--cc-shadow-sm);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[var\(--cc-shadow-xl\)\]{--tw-shadow-color: var(--cc-shadow-xl);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*{box-sizing:border-box;margin:0;padding:0}:root{--festival-bg: #f6f7f9;--festival-surface: #ffffff;--festival-surface-soft: #f0f4f2;--festival-ink: #111827;--festival-muted: #64748b;--festival-line: #dfe5e8;--festival-line-strong: #cbd5da;--festival-accent: #0f766e;--festival-accent-strong: #134e4a;--festival-accent-soft: #e6f4f1;--festival-blue: #1d4ed8;--festival-blue-soft: #e8f0ff;--festival-amber: #b45309;--festival-amber-soft: #fff7ed;--festival-red: #b91c1c;--festival-red-soft: #fef2f2;--festival-shadow: 0 10px 24px rgba(15, 23, 42, .06);--festival-radius: 8px}body{min-width:320px;margin:0;overflow-x:hidden;background:var(--festival-bg);color:var(--festival-ink);font-family:var(--cc-font-sans);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}button{cursor:pointer}#root{min-height:100vh;background:linear-gradient(180deg,#ffffff 0,var(--festival-bg) 232px),var(--festival-bg)}.festival-app-shell{width:100%;max-width:1120px;min-height:100vh;margin:0 auto;padding:14px 14px 104px}.festival-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 12px;background:color-mix(in srgb,#ffffff 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.festival-eyebrow,.festival-kicker{display:block;color:var(--festival-accent);font-size:.75rem;font-weight:850;letter-spacing:0}.festival-topbar h1,.festival-hero h2,.festival-page-title h2,.festival-section h2,.festival-card-body h3,.festival-roster-card h3,.festival-bracket-summary h3{margin:0;color:var(--festival-ink);letter-spacing:0}.festival-topbar h1{max-width:16rem;overflow:hidden;font-size:1.2rem;line-height:1.1;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.festival-tabs,.festival-role-switch,.festival-bottom-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:4px;padding:4px;border:1px solid var(--festival-line);border-radius:var(--festival-radius);background:color-mix(in srgb,#ffffff 94%,transparent)}.festival-tabs{margin-bottom:16px}.festival-role-switch{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}.festival-tab,.festival-bottom-nav__item{min-height:42px;border-radius:6px;color:var(--festival-muted);font-size:.76rem;font-weight:850}.festival-tab[data-state=active],.festival-tab--active,.festival-bottom-nav__item.is-active,.festival-bottom-nav__item--active{background:var(--festival-ink);color:#fff}.festival-page,.festival-section{display:grid;gap:12px;min-width:0}.festival-page-frame{min-width:0}.festival-page{gap:18px}.festival-offline-banner{display:grid;gap:2px;margin-bottom:14px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--festival-amber) 26%,var(--festival-line));border-radius:var(--festival-radius);background:var(--festival-amber-soft);color:var(--festival-amber)}.festival-offline-banner strong{color:var(--festival-ink);font-size:.86rem;font-weight:900}.festival-offline-banner span{font-size:.78rem;font-weight:750}.festival-hero{position:relative;overflow:hidden;display:grid;gap:18px;min-height:248px;padding:20px;border:1px solid var(--festival-line-strong);border-radius:var(--festival-radius);background:linear-gradient(135deg,#111827d1,#0f4e4ab3),url(https://images.unsplash.com/photo-1501281668745-f7f57925c3b4?auto=format&fit=crop&w=1600&q=80);background-position:center;background-size:cover;color:#fff}.festival-hero:after{content:"";position:absolute;inset:auto 0 0;height:44%;background:linear-gradient(180deg,transparent,rgba(17,24,39,.46));pointer-events:none}.festival-hero__content,.festival-hero__stats{position:relative;z-index:1}.festival-hero__content{display:grid;align-content:end;gap:8px}.festival-hero .festival-eyebrow,.festival-hero h2,.festival-hero p{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.26)}.festival-hero h2{max-width:16ch;font-size:2.45rem;line-height:.98;font-weight:950;word-break:keep-all}.festival-hero p{max-width:32rem;font-size:.9rem;font-weight:750}.festival-hero__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-self:end;gap:8px}.festival-hero__stats article{min-height:72px;padding:12px;border:1px solid rgba(255,255,255,.28);border-radius:var(--festival-radius);background:#1118276b;display:grid;align-content:space-between}.festival-hero__stats strong{font-size:1.52rem;line-height:1}.festival-hero__stats span{color:#ffffffdb;font-size:.75rem;font-weight:800}.festival-section-header,.festival-page-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.festival-page-title h2,.festival-section h2{font-size:1.14rem;line-height:1.2;font-weight:900}.festival-section-header button{min-width:48px;min-height:34px;border-radius:6px;font-weight:850}.festival-list-card,.festival-info-card,.festival-match-card,.festival-roster-card,.festival-admin-card,.festival-empty,.festival-bracket-board,.festival-bracket-draft,.festival-workbook,.festival-admin-summary article,.festival-bracket-summary{border:1px solid var(--festival-line);border-radius:var(--festival-radius);background:var(--festival-surface);box-shadow:var(--festival-shadow)}.festival-list-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:12px}.festival-info-card,.festival-list-card--skeleton{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:12px}.festival-schedule-day{display:grid;gap:10px;padding-top:4px}.festival-schedule-day>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--festival-line)}.festival-schedule-day>header span{color:var(--festival-ink);font-size:1.04rem;font-weight:950}.festival-schedule-day>header strong{color:var(--festival-muted);font-size:.78rem;font-weight:800}.festival-schedule-day>div{display:grid;gap:10px}.festival-page--games .festival-page-title,.festival-page--admin .festival-page-title{padding-bottom:4px;border-bottom:1px solid var(--festival-line)}.festival-page--booths{grid-template-columns:1fr}.festival-home-priority{padding-top:2px}.festival-today-panel{display:grid;gap:14px;padding:16px;border:1px solid var(--festival-line-strong);border-radius:var(--festival-radius);background:#fff;box-shadow:var(--festival-shadow)}.festival-today-panel h2{margin:4px 0;color:var(--festival-ink);font-size:1.68rem;line-height:1.08;font-weight:950;letter-spacing:0;word-break:keep-all}.festival-today-panel p{margin:0;color:var(--festival-muted);font-size:.9rem;font-weight:780}.festival-today-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.festival-today-stats span{display:grid;gap:3px;min-height:52px;padding:9px 10px;border:1px solid var(--festival-line);border-radius:7px;background:var(--festival-surface-soft);color:var(--festival-muted);font-size:.72rem;font-weight:850}.festival-today-stats strong{color:var(--festival-ink);font-size:1.15rem;line-height:1;font-weight:950}.festival-home-match-list{display:grid;gap:8px}.festival-page--booths .festival-filter-row{padding:4px 0 6px}.festival-booth-category{display:grid;gap:10px;padding:12px;border:1px solid var(--festival-line);border-radius:var(--festival-radius);background:#fff;box-shadow:var(--festival-shadow)}.festival-booth-category>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--festival-line)}.festival-booth-category>header span{color:var(--festival-ink);font-size:1rem;font-weight:900}.festival-booth-category>header strong{color:var(--festival-muted);font-size:.76rem;font-weight:800}.festival-booth-category__grid{display:grid;gap:10px}.festival-page--booths .festival-info-card,.festival-page--booths .festival-admin-card{align-items:start;min-height:118px;border-color:color-mix(in srgb,var(--festival-accent) 18%,var(--festival-line));box-shadow:none}.festival-page--roster .festival-roster-card{background:color-mix(in srgb,var(--festival-blue-soft) 42%,#ffffff)}.festival-page--map .festival-info-card{border-left:4px solid var(--festival-accent)}.festival-card-body{min-width:0}.festival-card-body h3{overflow-wrap:anywhere;font-size:.98rem;font-weight:900}.festival-program-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:5px;color:var(--festival-accent-strong);font-size:.76rem;font-weight:900}.festival-program-meta span{padding:3px 7px;border-radius:999px;background:var(--festival-accent-soft);color:var(--festival-accent-strong);font-size:.68rem}.festival-card-body p,.festival-card-body small,.festival-match-head span,.festival-match-time{display:block;margin-top:3px;color:var(--festival-muted);font-size:.82rem;font-weight:700}.festival-timebox,.festival-mark,.festival-map-pin{width:72px;height:58px;border-radius:6px;background:var(--festival-accent-soft);color:var(--festival-accent-strong);display:grid;place-items:center;align-content:center;text-align:center;font-weight:900;overflow:hidden}.festival-timebox strong{font-size:.66rem;line-height:1.15;white-space:pre-line}.festival-timebox span,.festival-mark{font-size:.66rem;line-height:1.15;word-break:keep-all}.festival-chip{width:-moz-fit-content;width:fit-content;padding:6px 9px;border-radius:999px;background:#eef2f7;color:#475569;font-size:.7rem;font-weight:850;white-space:nowrap}.festival-chip.is-live{background:var(--festival-accent-soft);color:var(--festival-accent-strong)}.festival-chip.is-ready{background:var(--festival-blue-soft);color:var(--festival-blue)}.festival-chip.is-warn{background:var(--festival-amber-soft);color:var(--festival-amber)}.festival-bracket-summary{display:grid;gap:12px;padding:14px}.festival-bracket-summary h3{margin-top:2px;font-size:1.05rem;line-height:1.22;font-weight:900}.festival-bracket-summary__stats,.festival-bracket-size-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;overscroll-behavior-x:contain}.festival-bracket-summary__stats span,.festival-bracket-size-row span{flex:0 0 auto;min-width:76px;padding:9px 10px;border:1px solid var(--festival-line);border-radius:6px;background:var(--festival-surface-soft);color:var(--festival-muted);font-size:.74rem;font-weight:800}.festival-bracket-summary__stats strong,.festival-bracket-size-row strong{display:block;color:var(--festival-ink);font-size:1rem;line-height:1.05}.festival-bracket-size-row span.is-live{border-color:color-mix(in srgb,var(--festival-accent) 38%,var(--festival-line));background:var(--festival-accent-soft)}.festival-bracket-summary--compact{padding:12px}.festival-match-card,.festival-roster-card,.festival-admin-card,.festival-bracket-draft{display:grid;gap:12px;padding:14px}.festival-match-head,.festival-score-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.festival-match-head strong{color:var(--festival-ink);font-size:1rem;font-weight:900}.festival-score-row input{width:64px;min-height:42px;border:1px solid var(--festival-line);border-radius:6px;background:#fff;color:var(--festival-ink);text-align:center;font-weight:850}.festival-score-row>.relative:first-child{flex:1 1 auto;min-width:0}.festival-score-row>.relative:last-child{flex:0 0 64px;width:64px}.festival-score-row--readonly{justify-content:start;min-height:44px;padding:9px 10px;border:1px solid var(--festival-line);border-radius:6px;background:var(--festival-surface-soft)}.festival-score-row--readonly strong{width:28px;color:var(--festival-accent);font-weight:900}.festival-score-row--readonly span{min-width:0;flex:1;color:var(--festival-ink);font-weight:850}.festival-score-row--readonly b{min-width:34px;color:var(--festival-ink);text-align:center;font-size:1.05rem}.festival-score-row .festival-team-input{width:100%;min-width:0;padding:0 12px;text-align:left}.festival-match-note,.festival-roster-input,.festival-draft-grid input,.festival-draft-grid select{width:100%;border:1px solid var(--festival-line);border-radius:6px;background:#fff;color:var(--festival-ink);font-size:.86rem;font-weight:700}.festival-match-note,.festival-roster-input{outline:none;resize:vertical}.festival-match-note{min-height:54px;padding:10px}.festival-roster-input{min-height:132px;padding:10px;white-space:pre-wrap}.festival-roster-input--sheet{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;-moz-tab-size:16;-o-tab-size:16;tab-size:16}.festival-filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;overscroll-behavior-x:contain}.festival-filter-row button{flex:0 0 auto;min-height:38px;padding:7px 11px;border:1px solid var(--festival-line);border-radius:999px;background:#fff;color:var(--festival-accent-strong);font-size:.8rem;font-weight:850;display:inline-flex;align-items:center;gap:6px}.festival-filter-row button.is-active{border-color:var(--festival-ink);background:var(--festival-ink);color:#fff}.festival-filter-row button b{min-width:20px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,currentColor 10%,transparent);font-size:.7rem;line-height:1.2;text-align:center}.festival-sport-grid{display:flex;gap:6px;overflow-x:auto;padding:1px 0 3px;overscroll-behavior-x:contain}.festival-sport-grid button{flex:0 0 auto;min-height:34px;padding:7px 10px;border:1px solid var(--festival-line);border-radius:999px;background:#fff;color:var(--festival-ink);text-align:center;white-space:nowrap}.festival-sport-grid button.is-active{border-color:var(--festival-ink);background:var(--festival-ink);color:#fff}.festival-sport-grid strong{font-size:.78rem;font-weight:950}.festival-sport-grid span{margin-left:5px;color:currentColor;font-size:.68rem;font-weight:850;opacity:.68}.festival-sport-grid button.is-active span{opacity:.86}.festival-round-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;overscroll-behavior-x:contain}.festival-round-filter button{flex:0 0 auto;min-height:32px;padding:6px 9px;border:1px solid var(--festival-line);border-radius:999px;background:#fff;color:var(--festival-ink);text-align:center;white-space:nowrap}.festival-round-filter strong{overflow:hidden;font-size:.74rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.festival-round-filter span{margin-left:4px;color:currentColor;font-size:.64rem;font-weight:850;opacity:.7}.festival-round-filter button.is-active{border-color:var(--festival-accent);background:var(--festival-accent-soft);color:var(--festival-accent-strong)}.festival-match-feed{display:grid;gap:7px}.festival-round-sections{display:grid;gap:14px}.festival-round-section{display:grid;gap:9px;padding:10px;border:1px solid var(--festival-line);border-radius:8px;background:#fff}.festival-round-section__header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 2px 8px;border-bottom:1px solid var(--festival-line)}.festival-round-section__header div:first-child{min-width:0}.festival-round-section__header span{display:block;color:var(--festival-accent-strong);font-size:.7rem;font-weight:900}.festival-round-section__header h3{margin-top:2px;overflow-wrap:anywhere;color:var(--festival-ink);font-size:1rem;font-weight:950;line-height:1.18}.festival-round-section__stats{display:grid;justify-items:end;gap:2px;min-width:96px;color:var(--festival-muted);text-align:right}.festival-round-section__stats strong{color:var(--festival-ink);font-size:.82rem;font-weight:950}.festival-round-section__stats small{font-size:.68rem;font-weight:800;line-height:1.2}.festival-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.festival-admin-panel{padding-top:2px}.festival-admin-summary article{min-height:80px;padding:12px;display:grid;align-content:space-between}.festival-admin-summary strong{color:var(--festival-ink);font-size:1.48rem;line-height:1;font-weight:900}.festival-admin-summary span{color:var(--festival-muted);font-size:.78rem;font-weight:800}.festival-bracket-draft{border-color:color-mix(in srgb,var(--festival-blue) 24%,var(--festival-line));background:var(--festival-blue-soft)}.festival-bracket-draft .festival-section-header p{margin-top:3px;color:var(--festival-blue);font-size:.82rem;font-weight:750}.festival-draft-grid{display:grid;grid-template-columns:minmax(0,1fr) 98px;gap:8px}.festival-draft-grid input,.festival-draft-grid select{min-height:42px;padding:0 10px}.festival-save-button{min-height:42px;border:0;border-radius:6px;background:var(--festival-ink);color:#fff;font-weight:850}.festival-bracket-board{display:grid;gap:10px;padding:12px}.festival-bracket-board__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.festival-bracket-board__header h3{color:var(--festival-ink);font-size:1rem;font-weight:900}.festival-bracket-board__header span{color:var(--festival-muted);font-size:.78rem;font-weight:800}.festival-round-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px}.festival-round-index span{min-height:44px;padding:8px 9px;border:1px solid var(--festival-line);border-radius:6px;background:#fff;color:var(--festival-muted);font-size:.7rem;font-weight:800}.festival-round-index strong{display:block;color:var(--festival-ink);font-size:.78rem;font-weight:950}.festival-bracket-board__scroller,.festival-workbook__scroller{width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:4px}.festival-bracket-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:10px;min-width:0}.festival-bracket-round{display:grid;gap:8px}.festival-bracket-round h4{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;background:var(--festival-ink);color:#fff;font-size:.78rem;font-weight:900}.festival-bracket-round h4 small{color:#ffffffb8;font-size:.7rem;font-weight:750}.festival-bracket-match{display:grid;gap:8px;min-height:136px;padding:9px;border:1px solid var(--festival-line);border-radius:6px;background:var(--festival-surface-soft)}.festival-bracket-match header,.festival-bracket-team{display:flex;align-items:center;justify-content:space-between;gap:8px}.festival-bracket-match header strong{color:var(--festival-ink);font-weight:900}.festival-bracket-match small{color:var(--festival-muted);font-size:.74rem;font-weight:750}.festival-match-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) auto;align-items:center;gap:10px;min-height:58px;padding:9px 10px;border:1px solid var(--festival-line);border-radius:6px;background:var(--festival-surface-soft)}.festival-match-row__meta{display:grid;gap:2px;min-width:0}.festival-match-row__meta strong{color:var(--festival-ink);font-size:.84rem;font-weight:950}.festival-match-row__meta span{overflow:hidden;color:var(--festival-muted);font-size:.72rem;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.festival-match-row__teams{display:grid;grid-template-columns:minmax(0,1fr) 26px 28px 26px minmax(0,1fr);align-items:center;gap:5px;min-width:0;color:var(--festival-ink);font-size:.8rem;font-weight:850}.festival-match-row__teams span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.festival-match-row__teams span:last-child{text-align:right}.festival-match-row__teams b{text-align:center;font-size:.98rem;font-weight:950}.festival-match-row__teams em{color:var(--festival-muted);font-size:.62rem;font-style:normal;font-weight:800;text-align:center;text-transform:uppercase}.festival-bracket-team{min-height:38px;padding:6px 8px;border:1px solid var(--festival-line);border-radius:6px;background:#fff}.festival-bracket-team span,.festival-bracket-team input:first-child{min-width:0;flex:1;color:var(--festival-ink);font-size:.82rem;font-weight:850}.festival-bracket-team>.relative:first-child{flex:1 1 auto;min-width:0}.festival-bracket-team>.relative:last-child{flex:0 0 42px;width:42px}.festival-bracket-team b,.festival-bracket-team input:last-child{width:42px;flex:0 0 42px;color:var(--festival-ink);text-align:center;font-weight:900}.festival-bracket-team input,.festival-sheet input,.festival-sheet textarea{border:0;outline:none;background:transparent;font:inherit}.festival-match-note--compact{min-height:42px;padding:8px;font-size:.78rem}.festival-workbook{background:var(--festival-blue-soft);min-width:0;overflow:hidden}.festival-workbook__scroller{min-width:0;max-width:100%}.festival-sheet{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;color:var(--festival-ink);font-size:.8rem}.festival-sheet--matches{min-width:1060px}.festival-sheet th,.festival-sheet td{border-right:1px solid color-mix(in srgb,var(--festival-blue) 14%,var(--festival-line));border-bottom:1px solid color-mix(in srgb,var(--festival-blue) 14%,var(--festival-line));background:#fff;padding:8px;text-align:left;vertical-align:middle}.festival-sheet th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--festival-blue-soft) 82%,#ffffff);color:var(--festival-blue);font-size:.72rem;font-weight:900}.festival-sheet input{width:100%;min-width:86px;min-height:34px;color:var(--festival-ink);font-weight:800}.festival-sheet .relative{width:100%}.festival-sheet input[inputmode=numeric]{min-width:52px;text-align:center;font-weight:900}.festival-sheet textarea,.festival-sheet-textarea{width:100%;min-width:180px;min-height:42px;color:var(--festival-ink);font-size:.78rem;font-weight:700;resize:vertical}.festival-save-button--small{width:100%;min-width:56px;min-height:34px;border-radius:6px;font-size:.74rem}.festival-map-board{position:relative;height:248px;overflow:hidden;border:1px solid var(--festival-line);border-radius:var(--festival-radius);background:linear-gradient(90deg,rgba(15,118,110,.09) 1px,transparent 1px),linear-gradient(rgba(15,118,110,.09) 1px,transparent 1px),var(--festival-surface-soft);background-size:42px 42px}.festival-map-board .zone{position:absolute;padding:10px 12px;border-radius:6px;background:var(--festival-ink);color:#fff;font-size:.78rem;font-weight:850}.festival-map-board .plaza{left:22px;top:24px}.festival-map-board .stage{right:22px;top:32px;background:var(--festival-blue)}.festival-map-board .gym{left:42%;top:45%;background:var(--festival-accent)}.festival-map-board .futsal{left:26px;bottom:34px;background:var(--festival-blue)}.festival-map-board .booths{left:34%;bottom:28px;background:var(--festival-amber)}.festival-map-board .office{right:28px;bottom:42px}.festival-bottom-nav{position:fixed;left:50%;bottom:12px;z-index:30;width:min(calc(100% - 24px),780px);transform:translate(-50%);box-shadow:0 14px 34px #0f172a24;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.festival-empty{padding:18px;color:var(--festival-muted);font-weight:800}.festival-hero--skeleton{background:var(--festival-ink)}.festival-list-card--skeleton,.festival-match-card--skeleton{pointer-events:none}.festival-skeleton-line,.festival-skeleton-mark,.festival-skeleton-chip,.festival-skeleton-row,.festival-skeleton-pill,.festival-skeleton-sheet{display:block}.festival-skeleton-line{height:12px;border-radius:999px}.festival-skeleton-line--eyebrow{width:112px}.festival-skeleton-line--title{width:min(280px,72%);height:42px;border-radius:6px}.festival-skeleton-line--body{width:min(360px,86%)}.festival-skeleton-line--number{width:42px;height:24px}.festival-skeleton-line--label{width:64px}.festival-skeleton-line--heading{width:min(220px,70%);height:18px}.festival-skeleton-line--short{width:min(150px,48%)}.festival-skeleton-mark{width:58px;height:58px;border-radius:6px}.festival-skeleton-chip{width:56px;height:30px;border-radius:999px}.festival-skeleton-row{height:42px;border-radius:6px}.festival-skeleton-pill{flex:0 0 86px;height:34px;border-radius:999px}.festival-skeleton-sheet{height:240px;border-radius:6px}*:focus-visible{outline:2px solid var(--festival-accent);outline-offset:2px}@media(min-width:768px){.festival-app-shell{padding:24px 24px 112px}.festival-topbar h1{max-width:34rem;font-size:1.58rem}.festival-tabs{grid-template-columns:repeat(auto-fit,minmax(82px,1fr))}.festival-hero{grid-template-columns:minmax(0,1fr) 312px;align-items:end;min-height:320px;padding:28px}.festival-hero h2{font-size:3.35rem}.festival-bracket-summary{grid-template-columns:minmax(0,1fr) auto;align-items:end}.festival-bracket-size-row{grid-column:1 / -1}.festival-page{gap:22px}.festival-today-panel{grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);align-items:end;padding:20px}.festival-today-panel h2{font-size:2.1rem}.festival-page--booths{grid-template-columns:1fr}.festival-page--booths .festival-page-title,.festival-page--booths .festival-filter-row,.festival-page--booths .festival-empty{grid-column:1 / -1}.festival-booth-category__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-page--map{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);align-items:start}.festival-page--map .festival-page-title{grid-column:1 / -1}.festival-page--map .festival-map-board{grid-row:span 4;height:420px}}@media(min-width:1024px){.festival-app-shell{padding-bottom:64px}.festival-bottom-nav{display:none}.festival-page--booths{grid-template-columns:1fr}.festival-booth-category__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.festival-app-shell{padding-top:10px}.festival-tabs{display:none}.festival-offline-banner{margin-bottom:12px}.festival-topbar h1{font-size:1.12rem}.festival-hero{min-height:282px;padding:16px}.festival-hero h2{max-width:100%;font-size:1.95rem;line-height:1.04}.festival-hero__stats{gap:6px}.festival-hero__stats article{min-height:66px;padding:10px}.festival-info-card,.festival-list-card--skeleton{grid-template-columns:64px minmax(0,1fr)}.festival-list-card{grid-template-columns:minmax(0,1fr)}.festival-info-card .festival-chip{grid-column:2}.festival-timebox,.festival-mark,.festival-map-pin{width:64px;height:48px}.festival-bracket-columns{grid-template-columns:1fr}.festival-match-row{grid-template-columns:minmax(0,1fr) auto}.festival-round-sections{gap:10px}.festival-round-section{padding:9px}.festival-round-section__header{align-items:start;gap:8px;min-height:0}.festival-round-section__stats{min-width:76px}.festival-round-section__stats small{font-size:.64rem}.festival-match-row__teams{grid-column:1 / -1;grid-row:2}.festival-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.festival-admin-summary article{min-height:72px;padding:10px 8px}.festival-admin-summary strong{font-size:1.22rem}.festival-tab,.festival-bottom-nav__item{font-size:.68rem}}.placeholder\:text-\[var\(--cc-text-tertiary\)\]::-moz-placeholder{color:var(--cc-text-tertiary)}.placeholder\:text-\[var\(--cc-text-tertiary\)\]::placeholder{color:var(--cc-text-tertiary)}.hover\:border-\[var\(--cc-line-strong\)\]:hover{border-color:var(--cc-line-strong)}.hover\:bg-\[var\(--cc-accent-hover\)\]:hover{background-color:var(--cc-accent-hover)}.hover\:bg-\[var\(--cc-bg-subtle\)\]:hover{background-color:var(--cc-bg-subtle)}.hover\:bg-\[var\(--cc-danger-hover\)\]:hover{background-color:var(--cc-danger-hover)}.hover\:bg-\[var\(--cc-positive-hover\)\]:hover{background-color:var(--cc-positive-hover)}.hover\:bg-\[var\(--cc-surface-hover\)\]:hover{background-color:var(--cc-surface-hover)}.hover\:bg-\[var\(--cc-warning-hover\)\]:hover{background-color:var(--cc-warning-hover)}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[var\(--cc-shadow-md\)\]:hover{--tw-shadow-color: var(--cc-shadow-md);--tw-shadow: var(--tw-shadow-colored)}.focus\:bg-\[var\(--cc-bg-subtle\)\]:focus{background-color:var(--cc-bg-subtle)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[var\(--cc-accent\)\]:focus-visible{--tw-ring-color: var(--cc-accent)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:bg-\[var\(--cc-surface\)\][data-state=active]{background-color:var(--cc-surface)}.data-\[state\=open\]\:bg-\[var\(--cc-bg-subtle\)\][data-state=open]{background-color:var(--cc-bg-subtle)}.data-\[state\=active\]\:text-\[var\(--cc-text\)\][data-state=active]{color:var(--cc-text)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-\[var\(--cc-shadow-sm\)\][data-state=active]{--tw-shadow-color: var(--cc-shadow-sm);--tw-shadow: var(--tw-shadow-colored)}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
