.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--color-bg: #F6F7F9;--color-white: #FAFAFA;--color-surface: #FFFFFF;--color-surface-dark: #0A0A0A;--color-text: #2C3E50;--color-text-light: #7F8EA3;--color-text-muted: #A8B4C6;--color-blue: #7EB6D9;--color-blue-light: #A9D1E8;--color-pink: #E8A4B4;--color-pink-light: #F3C5CE;--color-success: #A3D9A5;--color-warning: #E8C4A4;--color-error: #E8A4A8;--color-info: #A4C8E8;--color-border: #E1E8F0;--color-divider: #EFF2F7;--blue-alpha-02: rgba(126, 182, 217, .02);--blue-alpha-03: rgba(126, 182, 217, .03);--blue-alpha-04: rgba(126, 182, 217, .04);--blue-alpha-05: rgba(126, 182, 217, .05);--blue-alpha-06: rgba(126, 182, 217, .06);--blue-alpha-08: rgba(126, 182, 217, .08);--blue-alpha-10: rgba(126, 182, 217, .1);--blue-alpha-12: rgba(126, 182, 217, .12);--blue-alpha-15: rgba(126, 182, 217, .15);--blue-alpha-20: rgba(126, 182, 217, .2);--blue-alpha-25: rgba(126, 182, 217, .25);--blue-alpha-30: rgba(126, 182, 217, .3);--blue-alpha-40: rgba(126, 182, 217, .4);--blue-alpha-50: rgba(126, 182, 217, .5);--pink-alpha-02: rgba(232, 164, 180, .02);--pink-alpha-03: rgba(232, 164, 180, .03);--pink-alpha-04: rgba(232, 164, 180, .04);--pink-alpha-05: rgba(232, 164, 180, .05);--pink-alpha-06: rgba(232, 164, 180, .06);--pink-alpha-08: rgba(232, 164, 180, .08);--pink-alpha-10: rgba(232, 164, 180, .1);--pink-alpha-12: rgba(232, 164, 180, .12);--pink-alpha-15: rgba(232, 164, 180, .15);--pink-alpha-18: rgba(232, 164, 180, .18);--pink-alpha-20: rgba(232, 164, 180, .2);--pink-alpha-25: rgba(232, 164, 180, .25);--pink-alpha-30: rgba(232, 164, 180, .3);--pink-alpha-40: rgba(232, 164, 180, .4);--pink-alpha-50: rgba(232, 164, 180, .5);--pink-alpha-60: rgba(232, 164, 180, .6);--pink-alpha-80: rgba(232, 164, 180, .8);--error-alpha-08: rgba(232, 164, 168, .08);--error-alpha-10: rgba(232, 164, 168, .1);--error-alpha-15: rgba(232, 164, 168, .15);--error-alpha-20: rgba(232, 164, 168, .2);--error-alpha-30: rgba(232, 164, 168, .3);--error-alpha-60: rgba(232, 164, 168, .6);--error-alpha-80: rgba(232, 164, 168, .8);--warning-alpha-15: rgba(232, 196, 164, .15);--warning-alpha-25: rgba(232, 196, 164, .25);--success-alpha-15: rgba(163, 217, 165, .15);--info-alpha-05: rgba(164, 200, 232, .05);--info-alpha-08: rgba(164, 200, 232, .08);--text-alpha-04: rgba(44, 62, 80, .04);--text-alpha-05: rgba(44, 62, 80, .05);--text-alpha-08: rgba(44, 62, 80, .08);--text-alpha-12: rgba(44, 62, 80, .12);--text-alpha-16: rgba(44, 62, 80, .16);--muted-alpha-05: rgba(168, 180, 198, .05);--muted-alpha-06: rgba(168, 180, 198, .06);--muted-alpha-08: rgba(168, 180, 198, .08);--muted-alpha-10: rgba(168, 180, 198, .1);--muted-alpha-15: rgba(168, 180, 198, .15);--border-alpha-30: rgba(225, 232, 240, .3);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .16);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .2);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .3);--shadow-hover: 0 8px 20px rgba(0, 0, 0, .12);--shadow-blue-sm: 0 2px 6px var(--blue-alpha-20);--shadow-blue-md: 0 2px 8px var(--blue-alpha-30);--shadow-blue-lg: 0 4px 12px var(--blue-alpha-30);--shadow-blue-hover: 0 4px 10px var(--blue-alpha-30);--shadow-blue-xl: 0 4px 16px var(--blue-alpha-40);--shadow-pink-sm: 0 2px 6px var(--pink-alpha-20);--shadow-pink-md: 0 2px 8px var(--pink-alpha-30);--shadow-pink-lg: 0 4px 12px var(--pink-alpha-30);--shadow-pink-hover: 0 4px 10px var(--pink-alpha-30);--shadow-pink-xl: 0 4px 16px var(--pink-alpha-40);--shadow-error-sm: 0 2px 6px var(--error-alpha-20);--shadow-error-md: 0 2px 8px var(--error-alpha-20);--shadow-error-lg: 0 4px 12px var(--error-alpha-30);--shadow-error-hover: 0 4px 10px var(--error-alpha-30);--shadow-pink: -2px 2px 8px rgba(232, 164, 180, .25);--shadow-pink-offset-hover: -3px 3px 12px rgba(232, 164, 180, .4);--shadow-blue: -2px 2px 8px rgba(126, 182, 217, .25);--shadow-blue-offset-hover: -3px 3px 12px rgba(126, 182, 217, .4);--color-on-primary: #FFFFFF;--color-on-secondary: var(--color-text);--color-on-surface: var(--color-text);--overlay-bg: rgba(0, 0, 0, .5);--overlay-light: rgba(255, 255, 255, .9);--overlay-blur: rgba(255, 255, 255, .8);--white-alpha-15: rgba(255, 255, 255, .15);--white-alpha-20: rgba(255, 255, 255, .2);--white-alpha-30: rgba(255, 255, 255, .3);--white-alpha-40: rgba(255, 255, 255, .4);--white-alpha-50: rgba(255, 255, 255, .5);--white-alpha-60: rgba(255, 255, 255, .6);--white-alpha-70: rgba(255, 255, 255, .7);--white-alpha-80: rgba(255, 255, 255, .8);--white-alpha-85: rgba(255, 255, 255, .85);--white-alpha-90: rgba(255, 255, 255, .9);--white-alpha-95: rgba(255, 255, 255, .95);--gradient-primary: linear-gradient(135deg, #7EB6D9 0%, #93C3E8 100%);--gradient-primary-light: linear-gradient(135deg, #A9D1E8 0%, #C4E0F3 100%);--gradient-blue-pink: linear-gradient(135deg, var(--blue-alpha-05) 0%, var(--pink-alpha-05) 100%);--gradient-blue-pink-8: linear-gradient(135deg, var(--blue-alpha-08) 0%, var(--pink-alpha-08) 100%);--gradient-blue-pink-strong: linear-gradient(135deg, var(--blue-alpha-15) 0%, var(--pink-alpha-15) 100%);--gradient-pink-blue: linear-gradient(135deg, var(--pink-alpha-05) 0%, var(--blue-alpha-05) 100%);--gradient-pink-blue-8: linear-gradient(135deg, var(--pink-alpha-08) 0%, var(--blue-alpha-08) 100%);--table-row-hover: linear-gradient(135deg, var(--blue-alpha-03) 0%, var(--pink-alpha-03) 100%);--focus-ring-blue: 0 0 0 3px var(--blue-alpha-10);--focus-ring-blue-lg: 0 0 0 4px var(--blue-alpha-10);--focus-ring-pink: 0 0 0 3px var(--pink-alpha-10);--focus-ring-error: 0 0 0 3px var(--error-alpha-10);--bg-warning-subtle: rgba(232, 196, 164, .12);--bg-warning-soft: rgba(232, 196, 164, .22);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-xxl: 4rem;--radius-sm: 16px;--radius-md: 20px;--radius-lg: 24px;--radius-xl: 28px;--z-nav: 100;--z-dropdown: 150;--z-modal: 200;--z-tooltip: 300;--transition-fast: .2s;--transition-base: .3s;--transition-slow: .4s;--ease-gentle: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--font-family-base: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-family-code: "JetBrains Mono", "Fira Code", "Consolas", "Monaco", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--line-height-tight: 1.25;--line-height-base: 1.6;--line-height-relaxed: 1.8;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--color-pink-l5: #EDB8C4;--color-pink-l8: #F0C4CE;--color-pink-l10: #F2CCD5;--color-pink-l12: #F4D4DC;--color-pink-l15: #F7E1E6;--color-pink-l28: #FEFFFF;--color-pink-d5: #E28FA3;--color-pink-d8: #DE829A;--color-pink-d10: #DD7B92;--color-pink-d15: #D86685;--color-pink-d18: #D55A77;--color-blue-l20: #CCE2F0;--color-blue-l24: #DCEBF4;--color-blue-l30: #F4F8FB;--color-blue-d8: #5EA4CF;--color-blue-d10: #569FCD;--color-blue-d15: #4695C3;--color-blue-d20: #3687BA;--color-bg-d5: #E6E9EE;--color-warning-d10: #EFB77B;--color-text-muted-l10: #C5CDD6;--color-text-muted-l20: #E3E7EB}[data-theme=dark]{--color-bg: #0F1419;--color-white: #1A1F26;--color-surface: #1E2329;--color-surface-dark: #0A0D11;--color-text: #E3E8EF;--color-text-light: #A8B3C5;--color-text-muted: #6B7785;--color-blue: #6DB4E8;--color-blue-light: #8FC7F0;--color-pink: #F5B8C8;--color-pink-light: #FFCEDE;--color-success: #7FD084;--color-warning: #F5C28B;--color-error: #F5999E;--color-info: #7FBBF5;--color-border: #2D3339;--color-divider: #252A30;--blue-alpha-02: rgba(109, 180, 232, .04);--blue-alpha-03: rgba(109, 180, 232, .06);--blue-alpha-04: rgba(109, 180, 232, .08);--blue-alpha-05: rgba(109, 180, 232, .1);--blue-alpha-06: rgba(109, 180, 232, .12);--blue-alpha-08: rgba(109, 180, 232, .15);--blue-alpha-10: rgba(109, 180, 232, .18);--blue-alpha-12: rgba(109, 180, 232, .2);--blue-alpha-15: rgba(109, 180, 232, .25);--blue-alpha-20: rgba(109, 180, 232, .3);--blue-alpha-25: rgba(109, 180, 232, .35);--blue-alpha-30: rgba(109, 180, 232, .4);--blue-alpha-40: rgba(109, 180, 232, .5);--blue-alpha-50: rgba(109, 180, 232, .6);--pink-alpha-02: rgba(245, 184, 200, .04);--pink-alpha-03: rgba(245, 184, 200, .06);--pink-alpha-04: rgba(245, 184, 200, .08);--pink-alpha-05: rgba(245, 184, 200, .1);--pink-alpha-06: rgba(245, 184, 200, .12);--pink-alpha-08: rgba(245, 184, 200, .15);--pink-alpha-10: rgba(245, 184, 200, .18);--pink-alpha-12: rgba(245, 184, 200, .2);--pink-alpha-15: rgba(245, 184, 200, .25);--pink-alpha-18: rgba(245, 184, 200, .28);--pink-alpha-20: rgba(245, 184, 200, .3);--pink-alpha-25: rgba(245, 184, 200, .35);--pink-alpha-30: rgba(245, 184, 200, .4);--pink-alpha-40: rgba(245, 184, 200, .5);--pink-alpha-50: rgba(245, 184, 200, .6);--pink-alpha-60: rgba(245, 184, 200, .7);--pink-alpha-80: rgba(245, 184, 200, .85);--error-alpha-08: rgba(245, 153, 158, .15);--error-alpha-10: rgba(245, 153, 158, .18);--error-alpha-15: rgba(245, 153, 158, .25);--error-alpha-20: rgba(245, 153, 158, .3);--error-alpha-30: rgba(245, 153, 158, .4);--error-alpha-60: rgba(245, 153, 158, .7);--error-alpha-80: rgba(245, 153, 158, .85);--warning-alpha-15: rgba(245, 194, 139, .25);--warning-alpha-25: rgba(245, 194, 139, .35);--success-alpha-15: rgba(127, 208, 132, .25);--info-alpha-05: rgba(127, 187, 245, .1);--info-alpha-08: rgba(127, 187, 245, .15);--text-alpha-04: rgba(227, 232, 239, .08);--text-alpha-05: rgba(227, 232, 239, .1);--text-alpha-08: rgba(227, 232, 239, .15);--text-alpha-12: rgba(227, 232, 239, .2);--text-alpha-16: rgba(227, 232, 239, .25);--muted-alpha-05: rgba(107, 119, 133, .08);--muted-alpha-06: rgba(107, 119, 133, .1);--muted-alpha-08: rgba(107, 119, 133, .12);--muted-alpha-10: rgba(107, 119, 133, .15);--muted-alpha-15: rgba(107, 119, 133, .22);--border-alpha-30: rgba(45, 51, 57, .5);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 2px 8px rgba(0, 0, 0, .6);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .7);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .8);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .9);--shadow-hover: 0 8px 20px rgba(0, 0, 0, .4);--shadow-blue-sm: 0 2px 6px var(--blue-alpha-30), 0 0 0 1px var(--blue-alpha-10);--shadow-blue-md: 0 2px 8px var(--blue-alpha-40), 0 0 0 1px var(--blue-alpha-12);--shadow-blue-lg: 0 4px 12px var(--blue-alpha-50), 0 0 0 1px var(--blue-alpha-15);--shadow-blue-hover: 0 4px 10px var(--blue-alpha-50), 0 0 0 1px var(--blue-alpha-20);--shadow-pink-sm: 0 2px 6px var(--pink-alpha-30), 0 0 0 1px var(--pink-alpha-10);--shadow-pink-md: 0 2px 8px var(--pink-alpha-40), 0 0 0 1px var(--pink-alpha-12);--shadow-pink-lg: 0 4px 12px var(--pink-alpha-50), 0 0 0 1px var(--pink-alpha-15);--shadow-pink-hover: 0 4px 10px var(--pink-alpha-50), 0 0 0 1px var(--pink-alpha-20);--shadow-pink-xl: 0 4px 16px var(--pink-alpha-60), 0 0 0 1px var(--pink-alpha-20);--shadow-error-sm: 0 2px 6px var(--error-alpha-30), 0 0 0 1px var(--error-alpha-15);--shadow-error-md: 0 2px 8px var(--error-alpha-30), 0 0 0 1px var(--error-alpha-15);--shadow-error-lg: 0 4px 12px var(--error-alpha-40), 0 0 0 1px var(--error-alpha-20);--shadow-error-hover: 0 4px 10px var(--error-alpha-40), 0 0 0 1px var(--error-alpha-20);--shadow-pink: -2px 2px 8px rgba(245, 184, 200, .3);--shadow-pink-offset-hover: -3px 3px 12px rgba(245, 184, 200, .5);--shadow-blue: -2px 2px 8px rgba(109, 180, 232, .3);--shadow-blue-offset-hover: -3px 3px 12px rgba(109, 180, 232, .5);--color-on-primary: #FFFFFF;--color-on-secondary: var(--color-text);--color-on-surface: var(--color-text);--overlay-bg: rgba(0, 0, 0, .8);--overlay-light: rgba(15, 20, 25, .95);--overlay-blur: rgba(26, 31, 38, .9);--white-alpha-15: rgba(255, 255, 255, .05);--white-alpha-20: rgba(255, 255, 255, .08);--white-alpha-30: rgba(255, 255, 255, .12);--white-alpha-40: rgba(255, 255, 255, .15);--white-alpha-50: rgba(255, 255, 255, .2);--white-alpha-60: rgba(255, 255, 255, .25);--white-alpha-70: rgba(255, 255, 255, .3);--white-alpha-80: rgba(255, 255, 255, .4);--white-alpha-85: rgba(255, 255, 255, .45);--white-alpha-90: rgba(255, 255, 255, .55);--white-alpha-95: rgba(255, 255, 255, .7);--gradient-primary: linear-gradient(135deg, #5E9DC8 0%, #7EB6D9 100%);--gradient-primary-light: linear-gradient(135deg, #7EB6D9 0%, #93C3E8 100%);--gradient-blue-pink: linear-gradient(135deg, var(--blue-alpha-10) 0%, var(--pink-alpha-10) 100%);--gradient-blue-pink-8: linear-gradient(135deg, var(--blue-alpha-15) 0%, var(--pink-alpha-15) 100%);--gradient-blue-pink-strong: linear-gradient(135deg, var(--blue-alpha-25) 0%, var(--pink-alpha-25) 100%);--gradient-pink-blue: linear-gradient(135deg, var(--pink-alpha-10) 0%, var(--blue-alpha-10) 100%);--gradient-pink-blue-8: linear-gradient(135deg, var(--pink-alpha-15) 0%, var(--blue-alpha-15) 100%);--table-row-hover: linear-gradient(135deg, var(--blue-alpha-06) 0%, var(--pink-alpha-06) 100%);--focus-ring-blue: 0 0 0 3px var(--blue-alpha-20);--focus-ring-blue-lg: 0 0 0 4px var(--blue-alpha-20);--focus-ring-pink: 0 0 0 3px var(--pink-alpha-20);--focus-ring-error: 0 0 0 3px var(--error-alpha-20);--bg-warning-subtle: rgba(245, 194, 139, .15);--bg-warning-soft: rgba(245, 194, 139, .28);--color-pink-l5: #F9C8D5;--color-pink-l8: #FBCEDD;--color-pink-l10: #FCD3E2;--color-pink-l12: #FDD8E6;--color-pink-l15: #FFDFEC;--color-pink-l28: #FFFFFF;--color-pink-d5: #EEAABB;--color-pink-d8: #EAA5B6;--color-pink-d10: #E89FB2;--color-pink-d15: #E393A8;--color-pink-d18: #E08FA5;--color-blue-l20: #C8E4F6;--color-blue-l24: #D6EBFA;--color-blue-d8: #5AA9E0;--color-blue-d10: #52A4DE;--color-blue-d15: #4399D7;--color-blue-d20: #3490D0;--color-bg-d5: #151B22;--color-warning-d10: #E8AE72;--color-text-muted-l10: #848E9A;--color-text-muted-l20: #9DA7B3}@keyframes nav-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nav-item-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-top{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse-gentle{0%,to{opacity:1}50%{opacity:.85}}@mixin fade-in($duration: var(--transition-base),$delay: 0s){opacity: 0; animation: fade-in $duration var(--ease-gentle) $delay forwards;}@mixin slide-in-left($duration: var(--transition-base),$delay: 0s){opacity: 0; animation: slide-in-left $duration var(--ease-gentle) $delay forwards;}@mixin slide-in-right($duration: var(--transition-base),$delay: 0s){opacity: 0; animation: slide-in-right $duration var(--ease-gentle) $delay forwards;}@mixin slide-in-top($duration: var(--transition-base),$delay: 0s){opacity: 0; animation: slide-in-top $duration var(--ease-gentle) $delay forwards;}@mixin slide-in-bottom($duration: var(--transition-base),$delay: 0s){opacity: 0; animation: slide-in-bottom $duration var(--ease-gentle) $delay forwards;}@mixin hover-lift($distance: -2px){transition: transform var(--transition-fast) var(--ease-out),box-shadow var(--transition-fast) var(--ease-out); &:hover {transform: translateY($distance); box-shadow: var(--shadow-md);}}@mixin hover-scale($scale: 1.02){transition: transform var(--transition-fast) var(--ease-out); &:hover {transform: scale($scale);}}@mixin hover-shadow-enhance{transition: box-shadow var(--transition-fast) var(--ease-out); &:hover {box-shadow: var(--shadow-hover);}}@mixin color-transition($properties...){$transitions: (); @each $prop in $properties {$transitions: list.append($transitions,#{$prop} var(--transition-base) var(--ease-gentle),comma);} transition: $transitions;}@mixin active-scale($scale: .98){&:active {transform: scale($scale);}}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}@mixin skeleton{background: linear-gradient(90deg,var(--color-bg) 0%,var(--color-bg) 50%,var(--color-bg) 100%); background-size: 200% 100%; animation: skeleton-loading 1.5s ease-in-out infinite;}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);margin:0}h1{font-size:var(--font-size-4xl);letter-spacing:-.02em}h2{font-size:var(--font-size-3xl);letter-spacing:-.01em}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{line-height:var(--line-height-relaxed);color:var(--color-text);margin:0}a{color:var(--color-blue);text-decoration:none;transition:color var(--transition-base) var(--ease-gentle),opacity var(--transition-base) var(--ease-gentle);&:hover{color:var(--color-blue-d10)}&:active{opacity:.8}}strong,b{font-weight:var(--font-weight-semibold);color:var(--color-text)}em,i{font-style:italic;color:var(--color-pink)}code{font-family:var(--font-family-code);font-size:.9em;background:var(--color-bg);padding:.2em .4em;border-radius:4px;color:var(--color-text)}pre{font-family:var(--font-family-code);font-size:var(--font-size-sm);background:var(--color-bg);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto;line-height:var(--line-height-base);code{background:none;padding:0}}blockquote{margin:0;padding-left:var(--spacing-md);border-left:4px solid var(--color-pink);color:var(--color-text-light);font-style:italic;p{color:inherit}}ul,ol{padding-left:var(--spacing-lg);line-height:var(--line-height-relaxed);color:var(--color-text)}li{margin:var(--spacing-xs) 0}small{font-size:var(--font-size-sm);color:var(--color-text-light)}hr{border:none;height:1px;background:var(--color-divider);margin:var(--spacing-lg) 0}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text)}.text-secondary{color:var(--color-text-light)}.text-muted{color:var(--color-text-muted)}.text-blue{color:var(--color-blue)}.text-pink{color:var(--color-pink)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:9999px}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-b-sm{border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.rounded-b-md{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-b-lg{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-hover{box-shadow:var(--shadow-hover)}.m-0{margin:0}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.m-xxl{margin:var(--spacing-xxl)}.m-auto{margin:auto}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-xxl{margin-top:var(--spacing-xxl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-xxl{margin-bottom:var(--spacing-xxl)}.ml-0{margin-left:0}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-xxl{padding:var(--spacing-xxl)}.pt-0{padding-top:0}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-0{padding-bottom:0}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pl-0{padding-left:0}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pr-0{padding-right:0}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.max-w-sm{max-width:640px}.max-w-md{max-width:768px}.max-w-lg{max-width:1024px}.max-w-xl{max-width:1200px}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.select-none{user-select:none}.select-text{user-select:text}.select-all{user-select:all}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;background-color:var(--color-bg)}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:color .3s ease,background-color .3s ease}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit;border:none;outline:none;background:none}button{cursor:pointer;transition:background-color var(--transition-base) var(--ease-gentle),color var(--transition-base) var(--ease-gentle),transform var(--transition-base) var(--ease-gentle);&:disabled{cursor:not-allowed;opacity:.6}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);@media(max-width:768px){padding:0 var(--spacing-md)}@media(max-width:640px){padding:0 var(--spacing-sm)}}.container-sm{max-width:640px}.container-md{max-width:768px}.container-lg{max-width:1024px}.card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:box-shadow var(--transition-fast) var(--ease-out);&:hover{box-shadow:var(--shadow-hover)}&.card-sm{padding:var(--spacing-md);border-radius:var(--radius-sm)}&.card-lg{padding:var(--spacing-xl);border-radius:var(--radius-lg)}&.card-flat{box-shadow:none;border:1px solid var(--color-border)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);text-decoration:none;cursor:pointer;transition:background-color var(--transition-base) var(--ease-gentle),color var(--transition-base) var(--ease-gentle),transform var(--transition-base) var(--ease-gentle);&:active{transform:scale(.98)}&:disabled{opacity:.6;cursor:not-allowed}}.btn-primary{background:var(--color-blue);color:var(--color-on-primary);&:hover{background:var(--color-blue-d8)}}.btn-secondary{background:var(--color-pink);color:var(--color-on-primary);&:hover{background:var(--color-pink-d8)}}.btn-outline{background:transparent;border:2px solid var(--color-blue);color:var(--color-blue);&:hover{background:var(--color-blue);color:var(--color-on-primary)}}.btn-ghost{background:transparent;color:var(--color-text);&:hover{background:var(--color-bg)}}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-white);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:border-color var(--transition-base) var(--ease-gentle),box-shadow var(--transition-base) var(--ease-gentle);&::placeholder{color:var(--color-text-muted)}&:focus{border-color:var(--color-blue);box-shadow:var(--focus-ring-blue)}&:disabled{background:var(--color-bg);cursor:not-allowed}&.input-error{border-color:var(--color-error);&:focus{box-shadow:var(--focus-ring-error)}}}textarea.input{resize:vertical;min-height:120px;line-height:var(--line-height-relaxed)}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:.25rem .75rem;background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:background-color var(--transition-base) var(--ease-gentle),color var(--transition-base) var(--ease-gentle);&:hover{background:var(--text-alpha-08)}&.tag-blue{background:var(--blue-alpha-15);color:var(--color-blue-d15);&:hover{background:var(--blue-alpha-25)}}&.tag-pink{background:var(--pink-alpha-15);color:var(--color-pink-d15);&:hover{background:var(--pink-alpha-25)}}}.divider{height:1px;background:var(--color-divider);border:none;margin:var(--spacing-lg) 0;&.divider-sm{margin:var(--spacing-sm) 0}&.divider-lg{margin:var(--spacing-xl) 0}}.loading{display:inline-block;width:1em;height:1em;border:2px solid var(--color-border);border-top-color:var(--color-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-sm);&:hover{background:var(--color-text-light)}}::selection{background:var(--pink-alpha-30);color:var(--color-text)}
