/* =====================================================================================================================
   AL Design System — "Studio Signal"                                                       served at /ds/al.css
   ---------------------------------------------------------------------------------------------------------------------
   One system for every surface: landing, onboarding, studio, viewer web, legacy console, legal and OBS.
   Personality: a broadcast-grade tool (ink surfaces, crisp type, calm layout) with ONE signal colour — yolk — that marks
   "this is where you act / this is live". The egg mascot appears only in moments (empty, success, celebration).
   AL v2 r9 (OWNER: "too AI-made"): flat surfaces - no glow, no coloured drop shadows, no frosted glass (the OBS overlay keeps
   its own D034 legibility blur option and the clean skin's option blur - an on-air readability choice); tighter corners;
   the egg is code-drawn line art (/ds/egg/*.svg, scripts/build_egg_line_art.py), the D034 rendered crops are no longer shown.
   Rules: no betting vocabulary, no casino gold/red, no neon green (that is CHZZK's), numbers are tabular,
   Korean wraps by word (keep-all), every motion respects prefers-reduced-motion.
   Everything is prefixed `al-` so it can sit next to the older page styles without collisions.
   ===================================================================================================================== */

/* BEGIN AL Sans faces - generated by scripts/build_font_subset.py, do not edit by hand */
/* AL v2 r15: "AL Sans" = the unmodified full Pretendard (declared FIRST, fetched only for characters the subset lacks
   and the full font has) + the light subset (Latin, symbols, the 2,350 KS X 1001 Hangul syllables; ~0.5 MB instead of
   2 MB) declared AFTER it, so it is the face a browser tries first. Each carries its font's exact code points. The subset
   is a renamed OFL Modified Version (app/design/static/fonts/al-sans-ks.json); the licence is served at
   /ds/fonts/LICENSE_Pretendard.txt. */
@font-face {
  font-family: "AL Sans";
  src: url("/ds/fonts/PretendardVariable.woff2") format("woff2-variations"), url("/ds/fonts/PretendardVariable.woff2") format("woff2");
  font-weight: 45 920;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0020-007E,U+00A0-0148,U+014A-01C3,U+01C5-031E,U+0321-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03E1,U+03F0-049D,U+04A0-04FF,U+052F,U+0E3F,U+1D43,U+1D47-1D49,U+1D4D,U+1D4F-1D50,U+1D52,U+1D56-1D58,U+1D5B,U+1D62-1D65,U+1D9C,U+1DA0,U+1DBB,U+1DBF-1DF5,U+1DFC-1F15,U+1F18-1F1D,U+1F20-1F45,U+1F48-1F4D,U+1F50-1F57,U+1F59,U+1F5B,U+1F5D,U+1F5F-1F7D,U+1F80-1FB4,U+1FB6-1FC4,U+1FC6-1FD3,U+1FD6-1FDB,U+1FDD-1FEF,U+1FF2-1FF4,U+1FF6-1FFE,U+2000-200D,U+2010-2027,U+202F-2060,U+2070-2071,U+2074-208E,U+2090-209C,U+20A0-20BF,U+20DB-20DE,U+20E8,U+20F0,U+2100-2101,U+2103,U+2105-2106,U+2109,U+2113,U+2116-2117,U+211E-2123,U+2126,U+212A-212B,U+212E,U+2132,U+213B,U+214D,U+214F,U+2153,U+215A-2188,U+2190-2199,U+21A9-21AA,U+21B0-21B1,U+21B3-21B5,U+21BA-21BB,U+21D0,U+21D2,U+21D4,U+21DE-21DF,U+21E4-21E5,U+21E7,U+21EA,U+2202,U+2205-2206,U+220F,U+2211-2212,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+226A-226B,U+22EF,U+2303,U+2305,U+2318,U+2325-2327,U+2329-232B,U+2380,U+2387,U+238B,U+23CE-23CF,U+2423,U+2460-2473,U+24B6-24CF,U+24EA-24F4,U+24FF,U+25A0-25A2,U+25AA,U+25B2-25B3,U+25B6-25B7,U+25BA-25BD,U+25C0-25C1,U+25C4-25C7,U+25CA-25CB,U+25CF,U+25E6,U+25EF,U+2600,U+2605-2606,U+263C,U+2661,U+2665,U+266A,U+26A0,U+2713,U+2717,U+2756,U+2776-2789,U+27EF,U+27F5-27FA,U+2985-2986,U+2B06,U+2B12-2B13,U+2B1C,U+2C7C,U+2C7F,U+2DFF,U+2E18,U+3000-3003,U+3008-3011,U+3014-301F,U+3041-3094,U+3099-309E,U+30A1-30FE,U+3131-3164,U+318D,U+321C,U+3380-3384,U+3388-33CA,U+33CF-33D0,U+33D3,U+33D6,U+33D8,U+33DB-33DD,U+A69F,U+A7FF,U+A92E,U+AC00-D7A3,U+E000,U+E002-E05E,U+E06A-E080,U+E093-E096,U+E0A5-E0E6,U+E0F3-E11C,U+E11E-E12A,U+E131-E147,U+E14E-E164,U+EE01-EE05,U+F000-F057,U+F6C3,U+FE20-FE2D,U+FEFF,U+FF01-FF60,U+FFA1-FFBE,U+FFC2-FFC7,U+FFCA-FFCF,U+FFD2-FFD7,U+FFDA-FFDC,U+FFE0-FFE1,U+FFE5-FFE6,U+1F10B,U+1F12F-1F149,U+1F150-1F16B,U+1F170-1F189,U+1F850,U+1F852,U+F0000-F0002;
}
@font-face {
  font-family: "AL Sans";
  src: url("/ds/fonts/ALSansVariable-KS.woff2?v=42e82591") format("woff2-variations"), url("/ds/fonts/ALSansVariable-KS.woff2?v=42e82591") format("woff2");
  font-weight: 45 920;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0020-007E,U+00A0-00FF,U+2010-2027,U+202F-205E,U+2190-2199,U+21A9-21AA,U+21B0-21B1,U+21B3-21B5,U+21BA-21BB,U+21D0,U+21D2,U+21D4,U+21DE-21DF,U+21E4-21E5,U+21E7,U+21EA,U+2202,U+2205-2206,U+220F,U+2211-2212,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+226A-226B,U+22EF,U+2303,U+2305,U+2318,U+2325-2327,U+2329-232B,U+2380,U+2387,U+238B,U+23CE-23CF,U+2460-2473,U+24B6-24CF,U+24EA-24F4,U+24FF,U+25A0-25A2,U+25AA,U+25B2-25B3,U+25B6-25B7,U+25BA-25BD,U+25C0-25C1,U+25C4-25C7,U+25CA-25CB,U+25CF,U+25E6,U+25EF,U+2600,U+2605-2606,U+263C,U+2661,U+2665,U+266A,U+26A0,U+2713,U+2717,U+2756,U+2776-2789,U+2B06,U+2B12-2B13,U+2B1C,U+3000-3003,U+3008-3011,U+3014-301F,U+3131-3164,U+318D,U+AC00-AC01,U+AC04,U+AC07-AC0A,U+AC10-AC17,U+AC19-AC1D,U+AC20,U+AC24,U+AC2C-AC2D,U+AC2F-AC31,U+AC38-AC39,U+AC3C,U+AC40,U+AC4B,U+AC4D,U+AC54,U+AC58,U+AC5C,U+AC70-AC71,U+AC74,U+AC77-AC78,U+AC7A,U+AC80-AC81,U+AC83-AC86,U+AC89-AC8C,U+AC90,U+AC94,U+AC9C-AC9D,U+AC9F-ACA1,U+ACA8-ACAA,U+ACAC,U+ACAF-ACB0,U+ACB8-ACB9,U+ACBB-ACBD,U+ACC1,U+ACC4,U+ACC8,U+ACCC,U+ACD5,U+ACD7,U+ACE0-ACE1,U+ACE4,U+ACE7-ACE8,U+ACEA,U+ACEC,U+ACEF-ACF1,U+ACF3,U+ACF5-ACF6,U+ACFC-ACFD,U+AD00,U+AD04,U+AD06,U+AD0C-AD0D,U+AD0F,U+AD11,U+AD18,U+AD1C,U+AD20,U+AD29,U+AD2C-AD2D,U+AD34-AD35,U+AD38,U+AD3C,U+AD44-AD45,U+AD47,U+AD49,U+AD50,U+AD54,U+AD58,U+AD61,U+AD63,U+AD6C-AD6D,U+AD70,U+AD73-AD76,U+AD7B-AD7D,U+AD7F,U+AD81-AD82,U+AD88-AD89,U+AD8C,U+AD90,U+AD9C-AD9D,U+ADA4,U+ADB7,U+ADC0-ADC1,U+ADC4,U+ADC8,U+ADD0-ADD1,U+ADD3,U+ADDC,U+ADE0,U+ADE4,U+ADF8-ADF9,U+ADFC,U+ADFF-AE01,U+AE08-AE09,U+AE0B,U+AE0D,U+AE14,U+AE30-AE31,U+AE34,U+AE37-AE38,U+AE3A,U+AE40-AE41,U+AE43,U+AE45-AE46,U+AE4A,U+AE4C-AE4E,U+AE50,U+AE54,U+AE56,U+AE5C-AE5D,U+AE5F-AE61,U+AE65,U+AE68-AE69,U+AE6C,U+AE70,U+AE78-AE79,U+AE7B-AE7D,U+AE84-AE85,U+AE8C,U+AEBC-AEBE,U+AEC0,U+AEC4,U+AECC-AECD,U+AECF-AED1,U+AED8-AED9,U+AEDC,U+AEE8,U+AEEB,U+AEED,U+AEF4,U+AEF8,U+AEFC,U+AF07-AF08,U+AF0D,U+AF10,U+AF2C-AF2D,U+AF30,U+AF32,U+AF34,U+AF3C-AF3D,U+AF3F,U+AF41-AF43,U+AF48-AF49,U+AF50,U+AF5C-AF5D,U+AF64-AF65,U+AF79,U+AF80,U+AF84,U+AF88,U+AF90-AF91,U+AF95,U+AF9C,U+AFB8-AFB9,U+AFBC,U+AFC0,U+AFC7-AFC9,U+AFCB,U+AFCD-AFCE,U+AFD4,U+AFDC,U+AFE8-AFE9,U+AFF0-AFF1,U+AFF4,U+AFF8,U+B000-B001,U+B004,U+B00C,U+B010,U+B014,U+B01C-B01D,U+B028,U+B044-B045,U+B048,U+B04A,U+B04C,U+B04E,U+B053-B055,U+B057,U+B059,U+B05D,U+B07C-B07D,U+B080,U+B084,U+B08C-B08D,U+B08F,U+B091,U+B098-B09A,U+B09C,U+B09F-B0A2,U+B0A8-B0A9,U+B0AB-B0AF,U+B0B1,U+B0B3-B0B5,U+B0B8,U+B0BC,U+B0C4-B0C5,U+B0C7-B0C9,U+B0D0-B0D1,U+B0D4,U+B0D8,U+B0E0,U+B0E5,U+B108-B109,U+B10B-B10C,U+B110,U+B112-B113,U+B118-B119,U+B11B-B11D,U+B123-B125,U+B128,U+B12C,U+B134-B135,U+B137-B139,U+B140-B141,U+B144,U+B148,U+B150-B151,U+B154-B155,U+B158,U+B15C,U+B160,U+B178-B179,U+B17C,U+B180,U+B182,U+B188-B189,U+B18B,U+B18D,U+B192-B194,U+B198,U+B19C,U+B1A8,U+B1CC,U+B1D0,U+B1D4,U+B1DC-B1DD,U+B1DF,U+B1E8-B1E9,U+B1EC,U+B1F0,U+B1F9,U+B1FB,U+B1FD,U+B204-B205,U+B208,U+B20B-B20C,U+B214-B215,U+B217,U+B219,U+B220,U+B234,U+B23C,U+B258,U+B25C,U+B260,U+B268-B269,U+B274-B275,U+B27C,U+B284-B285,U+B289,U+B290-B291,U+B294,U+B298-B29A,U+B2A0-B2A1,U+B2A3,U+B2A5-B2A6,U+B2AA,U+B2AC,U+B2B0,U+B2B4,U+B2C8-B2C9,U+B2CC,U+B2D0,U+B2D2,U+B2D8-B2D9,U+B2DB,U+B2DD,U+B2E2,U+B2E4-B2E6,U+B2E8,U+B2EB-B2EF,U+B2F3-B2F5,U+B2F7-B2FB,U+B2FF-B301,U+B304,U+B308,U+B310-B311,U+B313-B315,U+B31C,U+B354-B356,U+B358,U+B35B-B35C,U+B35E-B35F,U+B364-B365,U+B367,U+B369,U+B36B,U+B36E,U+B370-B371,U+B374,U+B378,U+B380-B381,U+B383-B385,U+B38C,U+B390,U+B394,U+B3A0-B3A1,U+B3A8,U+B3AC,U+B3C4-B3C5,U+B3C8,U+B3CB-B3CC,U+B3CE,U+B3D0,U+B3D4-B3D5,U+B3D7,U+B3D9,U+B3DB,U+B3DD,U+B3E0,U+B3E4,U+B3E8,U+B3FC,U+B410,U+B418,U+B41C,U+B420,U+B428-B429,U+B42B,U+B434,U+B450-B451,U+B454,U+B458,U+B460-B461,U+B463,U+B465,U+B46C,U+B480,U+B488,U+B49D,U+B4A4,U+B4A8,U+B4AC,U+B4B5,U+B4B7,U+B4B9,U+B4C0,U+B4C4,U+B4C8,U+B4D0,U+B4D5,U+B4DC-B4DD,U+B4E0,U+B4E3-B4E4,U+B4E6,U+B4EC-B4ED,U+B4EF,U+B4F1,U+B4F8,U+B514-B515,U+B518,U+B51B-B51C,U+B524-B525,U+B527-B52A,U+B530-B531,U+B534,U+B538,U+B540-B541,U+B543-B545,U+B54B-B54D,U+B550,U+B554,U+B55C-B55D,U+B55F-B561,U+B5A0-B5A1,U+B5A4,U+B5A8,U+B5AA-B5AB,U+B5B0-B5B1,U+B5B3-B5B5,U+B5BB-B5BD,U+B5C0,U+B5C4,U+B5CC-B5CD,U+B5CF-B5D1,U+B5D8,U+B5EC,U+B610-B611,U+B614,U+B618,U+B625,U+B62C,U+B634,U+B648,U+B664,U+B668,U+B69C-B69D,U+B6A0,U+B6A4,U+B6AB-B6AC,U+B6B1,U+B6D4,U+B6F0,U+B6F4,U+B6F8,U+B700-B701,U+B705,U+B728-B729,U+B72C,U+B72F-B730,U+B738-B739,U+B73B,U+B744,U+B748,U+B74C,U+B754-B755,U+B760,U+B764,U+B768,U+B770-B771,U+B773,U+B775,U+B77C-B77D,U+B780,U+B784,U+B78C-B78D,U+B78F-B792,U+B796-B799,U+B79C,U+B7A0,U+B7A8-B7A9,U+B7AB-B7AD,U+B7B4-B7B5,U+B7B8,U+B7C7,U+B7C9,U+B7EC-B7ED,U+B7F0,U+B7F4,U+B7FC-B7FD,U+B7FF-B801,U+B807-B809,U+B80C,U+B810,U+B818-B819,U+B81B,U+B81D,U+B824-B825,U+B828,U+B82C,U+B834-B835,U+B837-B839,U+B840,U+B844,U+B851,U+B853,U+B85C-B85D,U+B860,U+B864,U+B86C-B86D,U+B86F,U+B871,U+B878,U+B87C,U+B88D,U+B8A8,U+B8B0,U+B8B4,U+B8B8,U+B8C0-B8C1,U+B8C3,U+B8C5,U+B8CC,U+B8D0,U+B8D4,U+B8DD,U+B8DF,U+B8E1,U+B8E8-B8E9,U+B8EC,U+B8F0,U+B8F8-B8F9,U+B8FB,U+B8FD,U+B904,U+B918,U+B920,U+B93C-B93D,U+B940,U+B944,U+B94C,U+B94F,U+B951,U+B958-B959,U+B95C,U+B960,U+B968-B969,U+B96B,U+B96D,U+B974-B975,U+B978,U+B97C,U+B984-B985,U+B987,U+B989-B98A,U+B98D-B98E,U+B9AC-B9AD,U+B9B0,U+B9B4,U+B9BC-B9BD,U+B9BF,U+B9C1,U+B9C8-B9C9,U+B9CC,U+B9CE-B9D2,U+B9D8-B9D9,U+B9DB,U+B9DD-B9DE,U+B9E1,U+B9E3-B9E5,U+B9E8,U+B9EC,U+B9F4-B9F5,U+B9F7-B9FA,U+BA00-BA01,U+BA08,U+BA15,U+BA38-BA39,U+BA3C,U+BA40,U+BA42,U+BA48-BA49,U+BA4B,U+BA4D-BA4E,U+BA53-BA55,U+BA58,U+BA5C,U+BA64-BA65,U+BA67-BA69,U+BA70-BA71,U+BA74,U+BA78,U+BA83-BA85,U+BA87,U+BA8C,U+BAA8-BAA9,U+BAAB-BAAC,U+BAB0,U+BAB2,U+BAB8-BAB9,U+BABB,U+BABD,U+BAC4,U+BAC8,U+BAD8-BAD9,U+BAFC,U+BB00,U+BB04,U+BB0D,U+BB0F,U+BB11,U+BB18,U+BB1C,U+BB20,U+BB29,U+BB2B,U+BB34-BB36,U+BB38,U+BB3B-BB3E,U+BB44-BB45,U+BB47,U+BB49,U+BB4D,U+BB4F-BB50,U+BB54,U+BB58,U+BB61,U+BB63,U+BB6C,U+BB88,U+BB8C,U+BB90,U+BBA4,U+BBA8,U+BBAC,U+BBB4,U+BBB7,U+BBC0,U+BBC4,U+BBC8,U+BBD0,U+BBD3,U+BBF8-BBF9,U+BBFC,U+BBFF-BC00,U+BC02,U+BC08-BC09,U+BC0B-BC0D,U+BC0F,U+BC11,U+BC14-BC18,U+BC1B-BC1F,U+BC24-BC25,U+BC27,U+BC29,U+BC2D,U+BC30-BC31,U+BC34,U+BC38,U+BC40-BC41,U+BC43-BC45,U+BC49,U+BC4C-BC4D,U+BC50,U+BC5D,U+BC84-BC85,U+BC88,U+BC8B-BC8C,U+BC8E,U+BC94-BC95,U+BC97,U+BC99-BC9A,U+BCA0-BCA1,U+BCA4,U+BCA7-BCA8,U+BCB0-BCB1,U+BCB3-BCB5,U+BCBC-BCBD,U+BCC0,U+BCC4,U+BCCD,U+BCCF-BCD1,U+BCD5,U+BCD8,U+BCDC,U+BCF4-BCF6,U+BCF8,U+BCFC,U+BD04-BD05,U+BD07,U+BD09,U+BD10,U+BD14,U+BD24,U+BD2C,U+BD40,U+BD48-BD49,U+BD4C,U+BD50,U+BD58-BD59,U+BD64,U+BD68,U+BD80-BD81,U+BD84,U+BD87-BD8A,U+BD90-BD91,U+BD93,U+BD95,U+BD99-BD9A,U+BD9C,U+BDA4,U+BDB0,U+BDB8,U+BDD4-BDD5,U+BDD8,U+BDDC,U+BDE9,U+BDF0,U+BDF4,U+BDF8,U+BE00,U+BE03,U+BE05,U+BE0C-BE0D,U+BE10,U+BE14,U+BE1C-BE1D,U+BE1F,U+BE44-BE45,U+BE48,U+BE4C,U+BE4E,U+BE54-BE55,U+BE57,U+BE59-BE5B,U+BE60-BE61,U+BE64,U+BE68,U+BE6A,U+BE70-BE71,U+BE73-BE75,U+BE7B-BE7D,U+BE80,U+BE84,U+BE8C-BE8D,U+BE8F-BE91,U+BE98-BE99,U+BEA8,U+BED0-BED1,U+BED4,U+BED7-BED8,U+BEE0,U+BEE3-BEE5,U+BEEC,U+BF01,U+BF08-BF09,U+BF18-BF19,U+BF1B-BF1D,U+BF40-BF41,U+BF44,U+BF48,U+BF50-BF51,U+BF55,U+BF94,U+BFB0,U+BFC5,U+BFCC-BFCD,U+BFD0,U+BFD4,U+BFDC,U+BFDF,U+BFE1,U+C03C,U+C051,U+C058,U+C05C,U+C060,U+C068-C069,U+C090-C091,U+C094,U+C098,U+C0A0-C0A1,U+C0A3,U+C0A5,U+C0AC-C0AD,U+C0AF-C0B0,U+C0B3-C0B6,U+C0BC-C0BD,U+C0BF-C0C1,U+C0C5,U+C0C8-C0C9,U+C0CC,U+C0D0,U+C0D8-C0D9,U+C0DB-C0DD,U+C0E4-C0E5,U+C0E8,U+C0EC,U+C0F4-C0F5,U+C0F7,U+C0F9,U+C100,U+C104,U+C108,U+C110,U+C115,U+C11C-C120,U+C123-C124,U+C126-C127,U+C12C-C12D,U+C12F-C131,U+C136,U+C138-C139,U+C13C,U+C140,U+C148-C149,U+C14B-C14D,U+C154-C155,U+C158,U+C15C,U+C164-C165,U+C167-C169,U+C170,U+C174,U+C178,U+C185,U+C18C-C18E,U+C190,U+C194,U+C196,U+C19C-C19D,U+C19F,U+C1A1,U+C1A5,U+C1A8-C1A9,U+C1AC,U+C1B0,U+C1BD,U+C1C4,U+C1C8,U+C1CC,U+C1D4,U+C1D7-C1D8,U+C1E0,U+C1E4,U+C1E8,U+C1F0-C1F1,U+C1F3,U+C1FC-C1FD,U+C200,U+C204,U+C20C-C20D,U+C20F,U+C211,U+C218-C219,U+C21C,U+C21F-C220,U+C228-C229,U+C22B,U+C22D,U+C22F,U+C231-C232,U+C234,U+C248,U+C250-C251,U+C254,U+C258,U+C260,U+C265,U+C26C-C26D,U+C270,U+C274,U+C27C-C27D,U+C27F,U+C281,U+C288-C289,U+C290,U+C298,U+C29B,U+C29D,U+C2A4-C2A5,U+C2A8,U+C2AC-C2AD,U+C2B4-C2B5,U+C2B7,U+C2B9,U+C2DC-C2DD,U+C2E0,U+C2E3-C2E4,U+C2EB-C2ED,U+C2EF,U+C2F1,U+C2F6,U+C2F8-C2F9,U+C2FB-C2FC,U+C300,U+C308-C309,U+C30C-C30D,U+C313-C315,U+C318,U+C31C,U+C324-C325,U+C328-C329,U+C345,U+C368-C369,U+C36C,U+C370,U+C372,U+C378-C379,U+C37C-C37D,U+C384,U+C388,U+C38C,U+C3C0,U+C3D8-C3D9,U+C3DC,U+C3DF-C3E0,U+C3E2,U+C3E8-C3E9,U+C3ED,U+C3F4-C3F5,U+C3F8,U+C408,U+C410,U+C424,U+C42C,U+C430,U+C434,U+C43C-C43D,U+C448,U+C464-C465,U+C468,U+C46C,U+C474-C475,U+C479,U+C480,U+C494,U+C49C,U+C4B8,U+C4BC,U+C4E9,U+C4F0-C4F1,U+C4F4,U+C4F8,U+C4FA,U+C4FF-C501,U+C50C,U+C510,U+C514,U+C51C,U+C528-C529,U+C52C,U+C530,U+C538-C539,U+C53B,U+C53D,U+C544-C545,U+C548-C54A,U+C54C-C54E,U+C553-C555,U+C557-C559,U+C55D-C55E,U+C560-C561,U+C564,U+C568,U+C570-C571,U+C573-C575,U+C57C-C57D,U+C580,U+C584,U+C587,U+C58C-C58D,U+C58F,U+C591,U+C595,U+C597-C598,U+C59C,U+C5A0,U+C5A9,U+C5B4-C5B5,U+C5B8-C5B9,U+C5BB-C5BE,U+C5C4-C5CA,U+C5CC,U+C5CE,U+C5D0-C5D1,U+C5D4,U+C5D8,U+C5E0-C5E1,U+C5E3,U+C5E5,U+C5EC-C5EE,U+C5F0,U+C5F4,U+C5F6-C5F7,U+C5FC-C601,U+C605-C608,U+C60C,U+C610,U+C618-C619,U+C61B-C61C,U+C624-C625,U+C628,U+C62C-C62E,U+C630,U+C633-C635,U+C637,U+C639,U+C63B,U+C640-C641,U+C644,U+C648,U+C650-C651,U+C653-C655,U+C65C-C65D,U+C660,U+C66C,U+C66F,U+C671,U+C678-C679,U+C67C,U+C680,U+C688-C689,U+C68B,U+C68D,U+C694-C695,U+C698,U+C69C,U+C6A4-C6A5,U+C6A7,U+C6A9,U+C6B0-C6B1,U+C6B4,U+C6B8-C6BA,U+C6C0-C6C1,U+C6C3,U+C6C5,U+C6CC-C6CD,U+C6D0,U+C6D4,U+C6DC-C6DD,U+C6E0-C6E1,U+C6E8-C6E9,U+C6EC,U+C6F0,U+C6F8-C6F9,U+C6FD,U+C704-C705,U+C708,U+C70C,U+C714-C715,U+C717,U+C719,U+C720-C721,U+C724,U+C728,U+C730-C731,U+C733,U+C735,U+C737,U+C73C-C73D,U+C740,U+C744,U+C74A,U+C74C-C74D,U+C74F,U+C751-C758,U+C75C,U+C760,U+C768,U+C76B,U+C774-C775,U+C778,U+C77C-C77E,U+C783-C785,U+C787-C78A,U+C78E,U+C790-C791,U+C794,U+C796-C798,U+C79A,U+C7A0-C7A1,U+C7A3-C7A6,U+C7AC-C7AD,U+C7B0,U+C7B4,U+C7BC-C7BD,U+C7BF-C7C1,U+C7C8-C7C9,U+C7CC,U+C7CE,U+C7D0,U+C7D8,U+C7DD,U+C7E4,U+C7E8,U+C7EC,U+C800-C801,U+C804,U+C808,U+C80A,U+C810-C811,U+C813,U+C815-C816,U+C81C-C81D,U+C820,U+C824,U+C82C-C82D,U+C82F,U+C831,U+C838,U+C83C,U+C840,U+C848-C849,U+C84C-C84D,U+C854,U+C870-C871,U+C874,U+C878,U+C87A,U+C880-C881,U+C883,U+C885-C887,U+C88B-C88D,U+C894,U+C89D,U+C89F,U+C8A1,U+C8A8,U+C8BC-C8BD,U+C8C4,U+C8C8,U+C8CC,U+C8D4-C8D5,U+C8D7,U+C8D9,U+C8E0-C8E1,U+C8E4,U+C8F5,U+C8FC-C8FD,U+C900,U+C904-C906,U+C90C-C90D,U+C90F,U+C911,U+C918,U+C92C,U+C934,U+C950-C951,U+C954,U+C958,U+C960-C961,U+C963,U+C96C,U+C970,U+C974,U+C97C,U+C988-C989,U+C98C,U+C990,U+C998-C999,U+C99B,U+C99D,U+C9C0-C9C1,U+C9C4,U+C9C7-C9C8,U+C9CA,U+C9D0-C9D1,U+C9D3,U+C9D5-C9D6,U+C9D9-C9DA,U+C9DC-C9DD,U+C9E0,U+C9E2,U+C9E4,U+C9E7,U+C9EC-C9ED,U+C9EF-C9F1,U+C9F8-C9F9,U+C9FC,U+CA00,U+CA08-CA09,U+CA0B-CA0D,U+CA14,U+CA18,U+CA29,U+CA4C-CA4D,U+CA50,U+CA54,U+CA5C-CA5D,U+CA5F-CA61,U+CA68,U+CA7D,U+CA84,U+CA98,U+CABC-CABD,U+CAC0,U+CAC4,U+CACC-CACD,U+CACF,U+CAD1,U+CAD3,U+CAD8-CAD9,U+CAE0,U+CAEC,U+CAF4,U+CB08,U+CB10,U+CB14,U+CB18,U+CB20-CB21,U+CB41,U+CB48-CB49,U+CB4C,U+CB50,U+CB58-CB59,U+CB5D,U+CB64,U+CB78-CB79,U+CB9C,U+CBB8,U+CBD4,U+CBE4,U+CBE7,U+CBE9,U+CC0C-CC0D,U+CC10,U+CC14,U+CC1C-CC1D,U+CC21-CC22,U+CC27-CC29,U+CC2C,U+CC2E,U+CC30,U+CC38-CC39,U+CC3B-CC3E,U+CC44-CC45,U+CC48,U+CC4C,U+CC54-CC55,U+CC57-CC59,U+CC60,U+CC64,U+CC66,U+CC68,U+CC70,U+CC75,U+CC98-CC99,U+CC9C,U+CCA0,U+CCA8-CCA9,U+CCAB-CCAD,U+CCB4-CCB5,U+CCB8,U+CCBC,U+CCC4-CCC5,U+CCC7,U+CCC9,U+CCD0,U+CCD4,U+CCE4,U+CCEC,U+CCF0,U+CD01,U+CD08-CD09,U+CD0C,U+CD10,U+CD18-CD19,U+CD1B,U+CD1D,U+CD24,U+CD28,U+CD2C,U+CD39,U+CD5C,U+CD60,U+CD64,U+CD6C-CD6D,U+CD6F,U+CD71,U+CD78,U+CD88,U+CD94-CD95,U+CD98,U+CD9C,U+CDA4-CDA5,U+CDA7,U+CDA9,U+CDB0,U+CDC4,U+CDCC,U+CDD0,U+CDE8,U+CDEC,U+CDF0,U+CDF8-CDF9,U+CDFB,U+CDFD,U+CE04,U+CE08,U+CE0C,U+CE14,U+CE19,U+CE20-CE21,U+CE24,U+CE28,U+CE30-CE31,U+CE33,U+CE35,U+CE58-CE59,U+CE5C,U+CE5F-CE61,U+CE68-CE69,U+CE6B,U+CE6D,U+CE74-CE75,U+CE78,U+CE7C,U+CE84-CE85,U+CE87,U+CE89,U+CE90-CE91,U+CE94,U+CE98,U+CEA0-CEA1,U+CEA3-CEA5,U+CEAC-CEAD,U+CEC1,U+CEE4-CEE5,U+CEE8,U+CEEB-CEEC,U+CEF4-CEF5,U+CEF7-CEF9,U+CF00-CF01,U+CF04,U+CF08,U+CF10-CF11,U+CF13,U+CF15,U+CF1C,U+CF20,U+CF24,U+CF2C-CF2D,U+CF2F-CF31,U+CF38,U+CF54-CF55,U+CF58,U+CF5C,U+CF64-CF65,U+CF67,U+CF69,U+CF70-CF71,U+CF74,U+CF78,U+CF80,U+CF85,U+CF8C,U+CFA1,U+CFA8,U+CFB0,U+CFC4,U+CFE0-CFE1,U+CFE4,U+CFE8,U+CFF0-CFF1,U+CFF3,U+CFF5,U+CFFC,U+D000,U+D004,U+D011,U+D018,U+D02D,U+D034-D035,U+D038,U+D03C,U+D044-D045,U+D047,U+D049,U+D050,U+D054,U+D058,U+D060,U+D06C-D06D,U+D070,U+D074,U+D07C-D07D,U+D081,U+D0A4-D0A5,U+D0A8,U+D0AC,U+D0B4-D0B5,U+D0B7,U+D0B9,U+D0C0-D0C1,U+D0C4,U+D0C8-D0C9,U+D0D0-D0D1,U+D0D3-D0D5,U+D0DC-D0DD,U+D0E0,U+D0E4,U+D0EC-D0ED,U+D0EF-D0F1,U+D0F8,U+D10D,U+D130-D131,U+D134,U+D138,U+D13A,U+D140-D141,U+D143-D145,U+D14C-D14D,U+D150,U+D154,U+D15C-D15D,U+D15F,U+D161,U+D168,U+D16C,U+D17C,U+D184,U+D188,U+D1A0-D1A1,U+D1A4,U+D1A8,U+D1B0-D1B1,U+D1B3,U+D1B5,U+D1BA,U+D1BC,U+D1C0,U+D1D8,U+D1F4,U+D1F8,U+D207,U+D209,U+D210,U+D22C-D22D,U+D230,U+D234,U+D23C-D23D,U+D23F,U+D241,U+D248,U+D25C,U+D264,U+D280-D281,U+D284,U+D288,U+D290-D291,U+D295,U+D29C,U+D2A0,U+D2A4,U+D2AC,U+D2B1,U+D2B8-D2B9,U+D2BC,U+D2BF-D2C0,U+D2C2,U+D2C8-D2C9,U+D2CB,U+D2D4,U+D2D8,U+D2DC,U+D2E4-D2E5,U+D2F0-D2F1,U+D2F4,U+D2F8,U+D300-D301,U+D303,U+D305,U+D30C-D30E,U+D310,U+D314,U+D316,U+D31C-D31D,U+D31F-D321,U+D325,U+D328-D329,U+D32C,U+D330,U+D338-D339,U+D33B-D33D,U+D344-D345,U+D37C-D37D,U+D380,U+D384,U+D38C-D38D,U+D38F-D391,U+D398-D399,U+D39C,U+D3A0,U+D3A8-D3A9,U+D3AB,U+D3AD,U+D3B4,U+D3B8,U+D3BC,U+D3C4-D3C5,U+D3C8-D3C9,U+D3D0,U+D3D8,U+D3E1,U+D3E3,U+D3EC-D3ED,U+D3F0,U+D3F4,U+D3FC-D3FD,U+D3FF,U+D401,U+D408,U+D41D,U+D440,U+D444,U+D45C,U+D460,U+D464,U+D46D,U+D46F,U+D478-D479,U+D47C,U+D47F-D480,U+D482,U+D488-D489,U+D48B,U+D48D,U+D494,U+D4A9,U+D4CC,U+D4D0,U+D4D4,U+D4DC,U+D4DF,U+D4E8,U+D4EC,U+D4F0,U+D4F8,U+D4FB,U+D4FD,U+D504,U+D508,U+D50C,U+D514-D515,U+D517,U+D53C-D53D,U+D540,U+D544,U+D54C-D54D,U+D54F,U+D551,U+D558-D559,U+D55C,U+D560,U+D565,U+D568-D569,U+D56B,U+D56D,U+D574-D575,U+D578,U+D57C,U+D584-D585,U+D587-D589,U+D590,U+D5A5,U+D5C8-D5C9,U+D5CC,U+D5D0,U+D5D2,U+D5D8-D5D9,U+D5DB,U+D5DD,U+D5E4-D5E5,U+D5E8,U+D5EC,U+D5F4-D5F5,U+D5F7,U+D5F9,U+D600-D601,U+D604,U+D608,U+D610-D611,U+D613-D615,U+D61C,U+D620,U+D624,U+D62D,U+D638-D639,U+D63C,U+D640,U+D645,U+D648-D649,U+D64B,U+D64D,U+D651,U+D654-D655,U+D658,U+D65C,U+D667,U+D669,U+D670-D671,U+D674,U+D683,U+D685,U+D68C-D68D,U+D690,U+D694,U+D69D,U+D69F,U+D6A1,U+D6A8,U+D6AC,U+D6B0,U+D6B9,U+D6BB,U+D6C4-D6C5,U+D6C8,U+D6CC,U+D6D1,U+D6D4,U+D6D7,U+D6D9,U+D6E0,U+D6E4,U+D6E8,U+D6F0,U+D6F5,U+D6FC-D6FD,U+D700,U+D704,U+D711,U+D718-D719,U+D71C,U+D720,U+D728-D729,U+D72B,U+D72D,U+D734-D735,U+D738,U+D73C,U+D744,U+D747,U+D749,U+D750-D751,U+D754,U+D756-D759,U+D760-D761,U+D763,U+D765,U+D769,U+D76C,U+D770,U+D774,U+D77C-D77D,U+D781,U+D788-D789,U+D78C,U+D790,U+D798-D799,U+D79B,U+D79D,U+FF01-FF5E;
}
/* END AL Sans faces */

/* ---------------------------------------------------------------------------------------------------------- tokens */
:root {
  color-scheme: dark;
  /* brand */
  --al-yolk: #FFC531;
  --al-yolk-strong: #FFB000;
  --al-yolk-soft: rgba(255, 197, 49, .14);
  --al-yolk-ink: #2B1F00;                 /* text ON yolk */
  --al-white-egg: #FFF8EC;
  --al-egg-paper: #FBF6F0;               /* the painted background of every mascot cell: the sticker is this colour */

  /* ink scale (dark surfaces) */
  --al-ink-950: #08090D;
  --al-ink-900: #0C0E13;
  --al-ink-850: #12151C;
  --al-ink-800: #181C25;
  --al-ink-750: #1F2430;
  --al-ink-700: #282E3C;
  --al-ink-600: #39404F;
  --al-ink-500: #565E70;
  --al-ink-400: #7B8496;
  --al-ink-300: #A6AEBD;
  --al-ink-200: #CDD2DB;
  --al-ink-100: #E8EBF0;
  --al-ink-50:  #F4F6F9;

  /* option palette: calm, colour-blind distinguishable, never casino */
  --al-opt-1: #4DA3FF;   /* sky */
  --al-opt-2: #FF7A59;   /* coral */
  --al-opt-3: #22C59A;   /* mint */
  --al-opt-4: #A78BFA;   /* violet */
  --al-opt-5: #F472B6;   /* pink */
  --al-opt-6: #94A3B8;   /* slate */

  /* semantic */
  --al-success: #2BC573;
  --al-warning: #F5A524;
  --al-danger:  #F25555;
  --al-info:    #4DA3FF;
  --al-live:    #FF4D5E;

  /* theme: dark (default) */
  --al-bg: var(--al-ink-900);
  --al-bg-deep: var(--al-ink-950);
  --al-surface-1: var(--al-ink-850);
  --al-surface-2: var(--al-ink-800);
  --al-surface-3: var(--al-ink-750);
  --al-surface-raised: #1B202A;
  --al-border: rgba(255, 255, 255, .08);
  --al-border-strong: rgba(255, 255, 255, .15);
  --al-text: var(--al-ink-50);
  --al-text-2: var(--al-ink-300);
  --al-text-3: var(--al-ink-400);
  --al-text-on-accent: var(--al-yolk-ink);
  --al-accent: var(--al-yolk);
  --al-accent-hover: #FFD15C;
  --al-accent-press: var(--al-yolk-strong);
  --al-accent-text: var(--al-yolk);          /* accent used AS text */
  --al-link: #8EC5FF;
  --al-scrim: rgba(5, 6, 9, .66);
  --al-focus: 0 0 0 3px rgba(255, 197, 49, .45);

  /* type */
  --al-font: "AL Sans", "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Malgun Gothic",
             "Noto Sans KR", "Segoe UI", Roboto, sans-serif;
  --al-font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, "D2Coding", monospace;
  --al-fs-11: 11px; --al-fs-12: 12px; --al-fs-13: 13px; --al-fs-14: 14px; --al-fs-15: 15px; --al-fs-16: 16px; --al-fs-18: 18px;
  --al-fs-20: 20px; --al-fs-24: 24px; --al-fs-28: 28px; --al-fs-32: 32px; --al-fs-40: 40px; --al-fs-48: 48px; --al-fs-56: 56px; --al-fs-64: 64px;
  --al-lh-tight: 1.15; --al-lh-snug: 1.3; --al-lh-body: 1.55;
  --al-tracking-display: -0.028em; --al-tracking-tight: -0.012em;

  /* space (4px grid) */
  --al-sp-1: 4px; --al-sp-2: 8px; --al-sp-3: 12px; --al-sp-4: 16px; --al-sp-5: 20px; --al-sp-6: 24px; --al-sp-8: 32px;
  --al-sp-10: 40px; --al-sp-12: 48px; --al-sp-16: 64px; --al-sp-20: 80px; --al-sp-24: 96px;

  /* radius */
  --al-r-xs: 4px; --al-r-sm: 6px; --al-r-md: 8px; --al-r-lg: 10px; --al-r-xl: 14px; --al-r-2xl: 18px; --al-r-full: 999px;

  /* elevation */
  --al-sh-1: 0 1px 2px rgba(0, 0, 0, .28);
  --al-sh-2: 0 4px 14px rgba(0, 0, 0, .28), 0 1px 3px rgba(0, 0, 0, .22);
  --al-sh-3: 0 12px 36px rgba(0, 0, 0, .38), 0 2px 8px rgba(0, 0, 0, .24);
  --al-sh-glow: 0 0 0 1px rgba(255, 197, 49, .55);   /* r9: an edge, not a glow */

  /* motion */
  --al-dur-1: 120ms; --al-dur-2: 200ms; --al-dur-3: 320ms; --al-dur-4: 600ms;
  --al-ease: cubic-bezier(.2, .8, .2, 1);
  --al-ease-in: cubic-bezier(.4, 0, 1, 1);
  --al-ease-spring: cubic-bezier(.34, 1.56, .64, 1);

  /* layout */
  --al-max: 1160px;
  --al-max-narrow: 720px;
  --al-topbar-h: 60px;
  --al-bottomnav-h: 64px;
}

/* light theme: explicit, or automatic when a page opts in with data-theme="auto". r10: the landing's warm paper and ink */
:root[data-theme="light"] {
  color-scheme: light;
  --al-bg: #F3EEE4;
  --al-bg-deep: #EAE3D6;
  --al-surface-1: #FBF8F2;
  --al-surface-2: #EFE9DE;
  --al-surface-3: #E5DED1;
  --al-surface-raised: #FBF8F2;
  --al-border: rgba(23, 24, 28, .14);
  --al-border-strong: rgba(23, 24, 28, .3);
  --al-text: #17181C;
  --al-text-2: #45474E;
  --al-text-3: #5F6066;
  --al-accent-text: #8A5A00;
  --al-link: #1F6FD1;
  --al-scrim: rgba(16, 19, 26, .42);
  --al-focus: 0 0 0 3px #8A5A00;   /* r36 (r35 design review): the yolk ring at 45% is 1.2:1 on the cream dialog - the ochre ink is 5.6:1 */
  --al-sh-1: 0 1px 2px rgba(16, 19, 26, .07);
  --al-sh-2: 0 4px 14px rgba(16, 19, 26, .08), 0 1px 3px rgba(16, 19, 26, .06);
  --al-sh-3: 0 14px 40px rgba(16, 19, 26, .14), 0 2px 8px rgba(16, 19, 26, .06);
}
@media (prefers-color-scheme: light) {
  :root[data-theme="auto"] {
    color-scheme: light;
    --al-bg: #F3EEE4;
    --al-bg-deep: #EAE3D6;
    --al-surface-1: #FBF8F2;
    --al-surface-2: #EFE9DE;
    --al-surface-3: #E5DED1;
    --al-surface-raised: #FBF8F2;
    --al-border: rgba(23, 24, 28, .14);
    --al-border-strong: rgba(23, 24, 28, .3);
    --al-text: #17181C;
    --al-text-2: #45474E;
    --al-text-3: #5F6066;
    --al-accent-text: #8A5A00;
    --al-link: #1F6FD1;
    --al-scrim: rgba(16, 19, 26, .42);
    --al-focus: 0 0 0 3px #8A5A00;   /* r36 (r35 design review): the yolk ring at 45% is 1.2:1 on the cream dialog - the ochre ink is 5.6:1 */
    --al-sh-1: 0 1px 2px rgba(16, 19, 26, .07);
    --al-sh-2: 0 4px 14px rgba(16, 19, 26, .08), 0 1px 3px rgba(16, 19, 26, .06);
    --al-sh-3: 0 14px 40px rgba(16, 19, 26, .14), 0 2px 8px rgba(16, 19, 26, .06);
  }
}

/* ------------------------------------------------------------------------------------------------------------ base */
:where(.al), :where(.al) *, :where(.al) *::before, :where(.al) *::after { box-sizing: border-box; }
body.al {
  margin: 0;
  background: var(--al-bg);
  color: var(--al-text);
  font-family: var(--al-font);
  font-size: var(--al-fs-15);
  line-height: var(--al-lh-body);
  font-feature-settings: "ss05" 1;            /* Pretendard: rounder figures */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  word-break: keep-all;                         /* Korean wraps between words, never inside one */
  overflow-wrap: anywhere;
  -webkit-tap-highlight-color: transparent;
}
:where(.al) img, :where(.al) svg { display: block; max-width: 100%; }
.al-inline { display: inline-block !important; vertical-align: -0.15em; width: 1.05em; height: 1.05em; }
:where(.al) a { color: var(--al-link); text-decoration: none; }
:where(.al) a:hover { text-decoration: underline; text-underline-offset: 3px; }
:where(.al) :focus { outline: none; }
:where(.al) :focus-visible { box-shadow: var(--al-focus); }
:where(.al) ::selection { background: rgba(255, 197, 49, .35); color: inherit; }
:where(.al) :where(h1, h2, h3, h4, p, ul, ol, figure) { margin: 0; }
:where(.al) :where(ul, ol) { padding: 0; list-style: none; }
:where(.al) button { font: inherit; color: inherit; }
:where(.al) [hidden] { display: none !important; }
.al-num, :where(.al) .num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1, "ss05" 1; }
.al-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.al-skip { position: absolute; left: 12px; top: -48px; z-index: 100; padding: 10px 14px; background: var(--al-accent); color: var(--al-text-on-accent);
  border-radius: var(--al-r-sm); font-weight: 700; transition: top var(--al-dur-2) var(--al-ease); }
.al-skip:focus { top: 12px; }

/* ---------------------------------------------------------------------------------------------------- typography */
.al-display { font-size: clamp(36px, 7.2vw, var(--al-fs-64)); line-height: 1.08; letter-spacing: var(--al-tracking-display); font-weight: 800; }
.al-h1 { font-size: clamp(28px, 5vw, var(--al-fs-40)); line-height: var(--al-lh-tight); letter-spacing: var(--al-tracking-display); font-weight: 800; }
.al-h2 { font-size: clamp(22px, 3.6vw, var(--al-fs-32)); line-height: var(--al-lh-tight); letter-spacing: var(--al-tracking-display); font-weight: 750; }
.al-h3 { font-size: var(--al-fs-20); line-height: var(--al-lh-snug); letter-spacing: var(--al-tracking-tight); font-weight: 700; }
.al-h4 { font-size: var(--al-fs-16); line-height: var(--al-lh-snug); font-weight: 700; }
.al-lead { font-size: clamp(16px, 2.2vw, var(--al-fs-20)); line-height: 1.6; color: var(--al-text-2); }
.al-body { font-size: var(--al-fs-15); color: var(--al-text); }
.al-small { font-size: var(--al-fs-13); color: var(--al-text-2); }
.al-caption { font-size: var(--al-fs-12); color: var(--al-text-3); }
.al-eyebrow { font-size: var(--al-fs-13); font-weight: 700; letter-spacing: .02em; color: var(--al-accent-text); }
.al-muted { color: var(--al-text-2); }
.al-faint { color: var(--al-text-3); }
.al-strong { font-weight: 700; }

/* ------------------------------------------------------------------------------------------------------- layout */
.al-container { width: 100%; max-width: var(--al-max); margin: 0 auto; padding: 0 var(--al-sp-4); }
.al-container.narrow { max-width: var(--al-max-narrow); }
@media (min-width: 768px) { .al-container { padding: 0 var(--al-sp-6); } }
.al-stack { display: flex; flex-direction: column; gap: var(--al-gap, var(--al-sp-4)); }
.al-row { display: flex; align-items: center; gap: var(--al-gap, var(--al-sp-3)); }
.al-row.wrap { flex-wrap: wrap; }
.al-row.between { justify-content: space-between; }
.al-row.end { justify-content: flex-end; }
.al-grow { flex: 1 1 auto; min-width: 0; }
.al-grid { display: grid; gap: var(--al-gap, var(--al-sp-4)); }
.al-grid.c2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.al-grid.c3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }

/* --------------------------------------------------------------------------------------------------------- logo */
.al-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--al-text); font-weight: 800; letter-spacing: -0.02em; text-decoration: none !important; }
.al-logo svg { width: 30px; height: 30px; }
.al-logo .al-logo-tag { font-size: 12px; font-weight: 600; color: var(--al-text-3); letter-spacing: 0; }

/* ------------------------------------------------------------------------------------------------------ buttons */
.al-btn {
  --al-btn-bg: var(--al-surface-3); --al-btn-fg: var(--al-text); --al-btn-bd: var(--al-border-strong);
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 18px; border-radius: var(--al-r-md);
  border: 1px solid var(--al-btn-bd); background: var(--al-btn-bg); color: var(--al-btn-fg);
  font-weight: 700; font-size: var(--al-fs-15); line-height: 1; white-space: nowrap; cursor: pointer; user-select: none;
  text-decoration: none !important;
  transition: background var(--al-dur-1) var(--al-ease), transform var(--al-dur-1) var(--al-ease), box-shadow var(--al-dur-2) var(--al-ease),
              border-color var(--al-dur-1) var(--al-ease), opacity var(--al-dur-1);
}
.al-btn:hover { background: color-mix(in srgb, var(--al-btn-bg) 86%, white 14%); }
.al-btn:active { transform: translateY(1px) scale(.99); }
.al-btn:disabled, .al-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; transform: none; }
.al-btn.primary { --al-btn-bg: var(--al-accent); --al-btn-fg: var(--al-text-on-accent); --al-btn-bd: transparent; }
.al-btn.primary:hover { background: var(--al-accent-hover); }
.al-btn.secondary { --al-btn-bg: transparent; --al-btn-bd: var(--al-border-strong); }
.al-btn.secondary:hover { background: var(--al-surface-2); }
.al-btn.ghost { --al-btn-bg: transparent; --al-btn-bd: transparent; color: var(--al-text-2); }
.al-btn.ghost:hover { background: var(--al-surface-2); color: var(--al-text); }
.al-btn.danger { --al-btn-bg: rgba(242, 85, 85, .12); --al-btn-fg: #FF8A8A; --al-btn-bd: rgba(242, 85, 85, .35); }
:root[data-theme="light"] .al-btn.danger { --al-btn-fg: #C62F2F; }
.al-btn.success { --al-btn-bg: var(--al-success); --al-btn-fg: #04140B; --al-btn-bd: transparent; }
.al-btn.sm { min-height: 34px; padding: 0 12px; font-size: var(--al-fs-13); border-radius: var(--al-r-sm); }
.al-btn.lg { min-height: 54px; padding: 0 26px; font-size: var(--al-fs-18); border-radius: var(--al-r-lg); }
.al-btn.block { display: flex; width: 100%; }
.al-btn svg { width: 18px; height: 18px; flex: none; }
.al-btn.lg svg { width: 20px; height: 20px; }
.al-btn.sm svg { width: 15px; height: 15px; }
.al-chip svg { width: 14px; height: 14px; flex: none; }
.al-btn.is-busy { position: relative; color: transparent !important; pointer-events: none; }
.al-btn.is-busy::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%;
  border: 2.5px solid var(--al-btn-fg); border-right-color: transparent; animation: al-spin .7s linear infinite; }
.al-icon-btn { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: var(--al-r-md); border: 1px solid var(--al-border);
  background: transparent; color: var(--al-text-2); cursor: pointer; transition: background var(--al-dur-1), color var(--al-dur-1); }
.al-icon-btn:hover { background: var(--al-surface-2); color: var(--al-text); }
.al-icon-btn svg { width: 20px; height: 20px; }

/* -------------------------------------------------------------------------------------------------------- cards */
.al-card { background: var(--al-surface-1); border: 1px solid var(--al-border); border-radius: var(--al-r-lg); padding: var(--al-sp-5); }
.al-card.flush { padding: 0; overflow: hidden; }
.al-card.raised { background: var(--al-surface-raised); box-shadow: var(--al-sh-2); }
.al-card.accent { border-color: rgba(255, 197, 49, .38); box-shadow: var(--al-sh-glow); }
.al-card-head { display: flex; align-items: center; justify-content: space-between; gap: var(--al-sp-3); margin-bottom: var(--al-sp-4); }
.al-card-title { font-size: var(--al-fs-16); font-weight: 750; letter-spacing: var(--al-tracking-tight); }
.al-card-sub { font-size: var(--al-fs-13); color: var(--al-text-2); margin-top: 2px; }
.al-section { padding: var(--al-sp-16) 0; }
@media (min-width: 900px) { .al-section { padding: var(--al-sp-24) 0; } }

/* ------------------------------------------------------------------------------------------------ chips & badges */
.al-chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: var(--al-r-sm);
  font-size: var(--al-fs-13); font-weight: 650; background: var(--al-surface-3); color: var(--al-text-2); border: 1px solid var(--al-border); white-space: nowrap; }
.al-chip.yolk { background: var(--al-yolk-soft); color: var(--al-accent-text); border-color: rgba(255, 197, 49, .3); }
.al-chip.ok { background: rgba(43, 197, 115, .13); color: #4FDB8E; border-color: rgba(43, 197, 115, .3); }
.al-chip.warn { background: rgba(245, 165, 36, .13); color: #FFBE55; border-color: rgba(245, 165, 36, .3); }
.al-chip.bad { background: rgba(242, 85, 85, .13); color: #FF8A8A; border-color: rgba(242, 85, 85, .3); }
.al-chip.info { background: rgba(77, 163, 255, .13); color: #8EC5FF; border-color: rgba(77, 163, 255, .3); }
:root[data-theme="light"] .al-chip.ok { color: #13834A; } :root[data-theme="light"] .al-chip.warn { color: #9A5B00; }
:root[data-theme="light"] .al-chip.bad { color: #C62F2F; } :root[data-theme="light"] .al-chip.info { color: #1F6FD1; }
.al-chip.live { background: rgba(255, 77, 94, .14); color: #FF7B87; border-color: rgba(255, 77, 94, .35); }
.al-chip .al-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.al-chip.live .al-dot { animation: al-pulse 1.6s var(--al-ease) infinite; }
.al-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--al-r-full);
  font-size: 11px; font-weight: 800; background: var(--al-accent); color: var(--al-text-on-accent); }
.al-pro { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; font-size: 11px; font-weight: 800;
  letter-spacing: .04em; color: var(--al-text-on-accent); background: var(--al-yolk); }

/* -------------------------------------------------------------------------------------------------------- alerts */
.al-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--al-r-md); border: 1px solid var(--al-border);
  background: var(--al-surface-2); color: var(--al-text); font-size: var(--al-fs-14); }
.al-alert .al-alert-icon { flex: none; width: 20px; height: 20px; margin-top: 1px; }
.al-alert.info { background: rgba(77, 163, 255, .08); border-color: rgba(77, 163, 255, .28); }
.al-alert.ok { background: rgba(43, 197, 115, .08); border-color: rgba(43, 197, 115, .28); }
.al-alert.warn { background: rgba(245, 165, 36, .08); border-color: rgba(245, 165, 36, .3); }
.al-alert.bad { background: rgba(242, 85, 85, .08); border-color: rgba(242, 85, 85, .3); }
.al-alert.yolk { background: var(--al-yolk-soft); border-color: rgba(255, 197, 49, .32); }
.al-alert .al-alert-title { font-weight: 750; margin-bottom: 2px; }
.al-alert .al-alert-actions { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }

/* -------------------------------------------------------------------------------------------------------- forms */
.al-field { display: flex; flex-direction: column; gap: 6px; }
.al-label { font-size: var(--al-fs-14); font-weight: 700; color: var(--al-text); }
.al-help { font-size: var(--al-fs-13); color: var(--al-text-3); }
.al-error { font-size: var(--al-fs-13); color: #FF8A8A; font-weight: 600; }
:root[data-theme="light"] .al-error { color: #C62F2F; }
.al-input, .al-select {
  width: 100%; min-height: 46px; padding: 0 14px; border-radius: var(--al-r-md); border: 1px solid var(--al-border-strong);
  background: var(--al-surface-2); color: var(--al-text); font: inherit; font-size: var(--al-fs-16);
  transition: border-color var(--al-dur-1), box-shadow var(--al-dur-2), background var(--al-dur-1);
}
.al-input::placeholder { color: var(--al-text-3); }
.al-input:hover, .al-select:hover { border-color: color-mix(in srgb, var(--al-border-strong) 60%, var(--al-text-3) 40%); }
.al-input:focus, .al-select:focus { border-color: var(--al-accent); box-shadow: var(--al-focus); background: var(--al-surface-1); }
.al-input[aria-invalid="true"] { border-color: var(--al-danger); }
.al-input-group { display: flex; align-items: stretch; border: 1px solid var(--al-border-strong); border-radius: var(--al-r-md); background: var(--al-surface-2); overflow: hidden; }
.al-input-group:focus-within { border-color: var(--al-accent); box-shadow: var(--al-focus); }
.al-input-group .al-input { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.al-input-group .al-addon { display: flex; align-items: center; padding: 0 12px; color: var(--al-text-3); font-size: var(--al-fs-14); background: var(--al-surface-3); white-space: nowrap; }
.al-check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: var(--al-fs-14); color: var(--al-text); }
.al-check input { appearance: none; flex: none; width: 22px; height: 22px; margin: 0; border-radius: 7px; border: 1.5px solid var(--al-border-strong);
  background: var(--al-surface-2); display: grid; place-items: center; cursor: pointer; transition: background var(--al-dur-1), border-color var(--al-dur-1); }
.al-check input::after { content: ""; width: 11px; height: 6px; border-left: 2.5px solid var(--al-text-on-accent); border-bottom: 2.5px solid var(--al-text-on-accent);
  transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform var(--al-dur-2) var(--al-ease-spring); }
.al-check input:checked { background: var(--al-accent); border-color: var(--al-accent); }
.al-check input:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.al-check input:focus-visible { box-shadow: var(--al-focus); }
.al-switch { position: relative; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: var(--al-fs-14); }
.al-switch input { appearance: none; width: 44px; height: 26px; margin: 0; border-radius: 999px; background: var(--al-surface-3); border: 1px solid var(--al-border-strong);
  position: relative; cursor: pointer; transition: background var(--al-dur-2); }
.al-switch input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--al-ink-200);
  transition: transform var(--al-dur-2) var(--al-ease-spring), background var(--al-dur-2); }
.al-switch input:checked { background: var(--al-accent); border-color: var(--al-accent); }
.al-switch input:checked::after { transform: translateX(18px); background: #fff; }
.al-segment { display: inline-flex; padding: 3px; gap: 3px; border-radius: var(--al-r-md); background: var(--al-surface-2); border: 1px solid var(--al-border); flex-wrap: wrap; }
.al-segment button, .al-segment label { appearance: none; border: 0; background: transparent; color: var(--al-text-2); padding: 7px 12px; border-radius: 9px; font-weight: 650;
  font-size: var(--al-fs-14); cursor: pointer; transition: background var(--al-dur-1), color var(--al-dur-1); }
.al-segment button[aria-pressed="true"], .al-segment input:checked + span { background: var(--al-surface-raised); color: var(--al-text); box-shadow: var(--al-sh-1); }
.al-segment input { position: absolute; opacity: 0; pointer-events: none; }
.al-segment label span { display: inline-block; padding: 7px 12px; border-radius: 9px; }
.al-segment label { padding: 0; }

/* ----------------------------------------------------------------------------------------------- navigation bars */
.al-topbar { position: sticky; top: 0; z-index: 40; height: var(--al-topbar-h); display: flex; align-items: center;
  background: var(--al-bg);
  border-bottom: 1px solid var(--al-border); }
.al-topbar .al-container { display: flex; align-items: center; justify-content: space-between; gap: var(--al-sp-4); }
.al-nav-links { display: none; gap: 4px; }
.al-nav-links a { color: var(--al-text-2); font-weight: 600; font-size: var(--al-fs-14); padding: 8px 12px; border-radius: var(--al-r-sm); }
.al-nav-links a:hover { color: var(--al-text); background: var(--al-surface-2); text-decoration: none; }
@media (min-width: 900px) { .al-nav-links { display: flex; } }
.al-bottomnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
  height: calc(var(--al-bottomnav-h) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
  background: var(--al-surface-1);
  border-top: 1px solid var(--al-border); }
.al-bottomnav a, .al-bottomnav button { appearance: none; border: 0; background: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  color: var(--al-text-3); font-size: 11px; font-weight: 700; text-decoration: none !important; cursor: pointer; position: relative; }
.al-bottomnav svg { width: 22px; height: 22px; }
.al-bottomnav [aria-current="page"] { color: var(--al-text); }
.al-bottomnav [aria-current="page"]::before { content: ""; position: absolute; top: 0; width: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--al-accent); }
.al-sidenav { display: flex; flex-direction: column; gap: 2px; }
.al-sidenav a, .al-sidenav button { appearance: none; border: 0; background: none; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--al-r-md);
  color: var(--al-text-2); font-weight: 650; font-size: var(--al-fs-15); text-align: left; cursor: pointer; text-decoration: none !important; }
.al-sidenav a:hover, .al-sidenav button:hover { background: var(--al-surface-2); color: var(--al-text); }
.al-sidenav [aria-current="page"] { background: var(--al-surface-3); color: var(--al-text); }
.al-sidenav svg { width: 20px; height: 20px; flex: none; }

/* --------------------------------------------------------------------------------------------------- steps */
.al-steps { display: flex; gap: 6px; }
.al-steps > * { flex: 1; height: 4px; border-radius: 4px; background: var(--al-border-strong); transition: background var(--al-dur-3) var(--al-ease); }   /* r13: a track you can see */
.al-steps > .done { background: var(--al-accent); }
.al-steps > .now { background: linear-gradient(90deg, var(--al-accent) 50%, var(--al-border-strong) 50%); }   /* r14: the same track colour */
.al-checklist { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--al-border); }   /* r11: rows, not cards in a card */
.al-check-item { display: flex; gap: 14px; align-items: center; padding: 14px 2px; border-bottom: 1px solid var(--al-border); }
.al-check-item .al-tick { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--al-border-strong); color: transparent; }
.al-check-item.done .al-tick { background: var(--al-success); border-color: var(--al-success); color: #04140B; }
.al-check-item.now .al-tick { border-color: var(--al-accent); }
.al-check-item .al-tick svg { width: 16px; height: 16px; }
.al-check-item .al-check-text { flex: 1; min-width: 0; }
.al-check-item .al-check-title { font-weight: 700; }
.al-check-item.done .al-check-title { color: var(--al-text-2); }
.al-check-item .al-check-desc { font-size: var(--al-fs-13); color: var(--al-text-2); }   /* r10: >= 4.5:1 on the yolk-tinted current step too */

/* -------------------------------------------------------------------------------- the game: options, tallies, results */
.al-opt { --al-o: var(--al-opt-1); }
.al-opt.o1 { --al-o: var(--al-opt-1); } .al-opt.o2 { --al-o: var(--al-opt-2); } .al-opt.o3 { --al-o: var(--al-opt-3); }
.al-opt.o4 { --al-o: var(--al-opt-4); } .al-opt.o5 { --al-o: var(--al-opt-5); } .al-opt.o6 { --al-o: var(--al-opt-6); }
.al-opt-num { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--al-o); color: #0B0D12;
  font-weight: 850; font-size: 16px; flex: none; font-variant-numeric: tabular-nums; }
.al-tally { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--al-r-md); background: var(--al-surface-2);
  border: 1px solid var(--al-border); overflow: hidden; isolation: isolate; }
.al-tally .al-tally-fill { position: absolute; inset: 0 auto 0 0; width: 0; z-index: -1; background: color-mix(in srgb, var(--al-o) 22%, transparent);
  box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--al-o) 75%, transparent); transition: width var(--al-dur-4) var(--al-ease); }   /* the edge is a base line, never a stroke through the label */
.al-tally .al-tally-label { flex: 1; min-width: 0; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.al-tally .al-tally-count { font-weight: 800; font-variant-numeric: tabular-nums; }
.al-tally .al-tally-pct { font-size: var(--al-fs-13); color: var(--al-text-2); font-variant-numeric: tabular-nums; min-width: 38px; text-align: right; }
.al-tally.win { border-color: color-mix(in srgb, var(--al-o) 70%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--al-o) 50%, transparent); }
.al-tally.win .al-tally-label::after { content: "  정답"; color: var(--al-o); font-size: var(--al-fs-13); font-weight: 800; }
.al-tally.lose { opacity: .55; }
.al-cmd { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 8px; background: var(--al-surface-3); border: 1px solid var(--al-border-strong);
  font-family: var(--al-font); font-size: .92em; font-weight: 700; color: var(--al-text); white-space: nowrap; cursor: default; }
button.al-cmd { cursor: pointer; }
.al-kbd { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 7px; background: var(--al-surface-3);
  border: 1px solid var(--al-border-strong); border-bottom-width: 2px; font-weight: 800; font-size: 13px; font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------------------------------- copy field */
.al-copy { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 14px; border-radius: var(--al-r-md); background: var(--al-surface-2); border: 1px solid var(--al-border); min-width: 0; }
.al-copy code { flex: 1; min-width: 0; font-family: var(--al-font-mono); font-size: var(--al-fs-13); color: var(--al-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.al-copy .al-btn { flex: none; }
.al-copy.is-copied { border-color: rgba(43, 197, 115, .45); }

/* ----------------------------------------------------------------------------------------------- stats & lists */
.al-stat { display: flex; flex-direction: column; gap: 2px; }
.al-stat-value { font-size: var(--al-fs-28); font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.al-stat-label { font-size: var(--al-fs-13); color: var(--al-text-3); font-weight: 600; }
.al-list { display: flex; flex-direction: column; }
.al-list > li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--al-border); }
.al-list > li:last-child { border-bottom: 0; }
.al-rank { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: var(--al-surface-3); font-weight: 800; font-size: 13px; font-variant-numeric: tabular-nums; flex: none; }
.al-rank.r1 { background: var(--al-accent); color: var(--al-text-on-accent); }
.al-rank.r2 { background: #D5DAE3; color: #10131A; }
.al-rank.r3 { background: #E8B38A; color: #2A1606; }
.al-table { width: 100%; border-collapse: collapse; font-size: var(--al-fs-14); }
.al-table th { text-align: left; font-size: var(--al-fs-12); color: var(--al-text-3); font-weight: 700; padding: 10px 12px; border-bottom: 1px solid var(--al-border); }
.al-table td { padding: 12px; border-bottom: 1px solid var(--al-border); }
.al-table tr:last-child td { border-bottom: 0; }

/* -------------------------------------------------------------------------------------- empty / loading / errors */
.al-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: var(--al-sp-10) var(--al-sp-6); color: var(--al-text-2); }
.al-empty img { width: 84px; height: 84px; object-fit: contain; }
/* the D034 crop, wherever one is still shown, is a round sticker: the art keeps its own painted background (never keyed out),
   the circle is the same paper. r9: no glow ring around it. */
.al-mascot { object-fit: contain; background: var(--al-egg-paper); border-radius: 50%; padding: 8px; }   /* px: a % padding follows the PARENT's width */
/* r9: the code-drawn egg needs no sticker - it is drawn on whatever surface it sits on */
.al-egg { display: block; object-fit: contain; }
.al-empty .al-empty-title { font-weight: 750; color: var(--al-text); font-size: var(--al-fs-16); }
.al-empty .al-empty-desc { font-size: var(--al-fs-14); max-width: 34ch; }
.al-skeleton { position: relative; overflow: hidden; background: var(--al-surface-3); border-radius: var(--al-r-sm); min-height: 14px; }
.al-skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .07), transparent); animation: al-shimmer 1.4s infinite; }
.al-spinner { width: 22px; height: 22px; border-radius: 50%; border: 2.5px solid var(--al-border-strong); border-top-color: var(--al-accent); animation: al-spin .8s linear infinite; }

/* ----------------------------------------------------------------------------------------------- toast & dialog */
.al-toasts { position: fixed; z-index: 90; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); transform: translateX(-50%); display: flex; flex-direction: column; gap: 8px;
  align-items: center; pointer-events: none; width: min(92vw, 440px); }
.al-has-bottomnav .al-toasts { bottom: calc(var(--al-bottomnav-h) + 16px + env(safe-area-inset-bottom)); }
.al-toast { pointer-events: auto; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--al-r-md); background: var(--al-ink-50); color: var(--al-ink-900);
  font-weight: 650; font-size: var(--al-fs-14); box-shadow: var(--al-sh-3); animation: al-rise var(--al-dur-3) var(--al-ease) both; max-width: 100%; }
.al-toast.bad { background: #FFE3E3; color: #8A1C1C; }
.al-toast.ok::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--al-success); flex: none; }
.al-toast.leaving { animation: al-sink var(--al-dur-2) var(--al-ease-in) both; }
.al-dialog { border: 0; padding: 0; background: transparent; color: var(--al-text); max-width: min(92vw, 480px); width: 100%; }
.al-dialog::backdrop { background: var(--al-scrim); }
.al-dialog .al-dialog-body { background: var(--al-surface-raised); border: 1px solid var(--al-border); border-radius: var(--al-r-xl); padding: var(--al-sp-6); box-shadow: var(--al-sh-3);
  animation: al-pop var(--al-dur-3) var(--al-ease-spring) both; }
.al-dialog .al-dialog-title { font-size: var(--al-fs-20); font-weight: 800; margin-bottom: 6px; }
.al-dialog .al-dialog-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: var(--al-sp-5); flex-wrap: wrap; }

/* ------------------------------------------------------------------------------------------------------ motion */
@keyframes al-spin { to { transform: rotate(360deg); } }
@keyframes al-shimmer { to { transform: translateX(100%); } }
@keyframes al-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .45; transform: scale(.8); } }
@keyframes al-rise { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes al-sink { to { opacity: 0; transform: translateY(8px) scale(.98); } }
@keyframes al-pop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
@keyframes al-bump { 0% { transform: scale(1); } 35% { transform: scale(1.16); } 100% { transform: scale(1); } }
@keyframes al-confetti { 0% { opacity: 1; transform: translate3d(0, 0, 0) rotate(0); } 100% { opacity: 0; transform: translate3d(var(--dx, 0), var(--dy, 120px), 0) rotate(var(--rot, 540deg)); } }
.al-anim-bump { animation: al-bump var(--al-dur-3) var(--al-ease-spring); }
.al-confetti { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.al-confetti i { position: absolute; top: 40%; left: 50%; width: 8px; height: 12px; border-radius: 2px; animation: al-confetti 1.4s var(--al-ease) forwards; }
@media (prefers-reduced-motion: reduce) {
  :where(.al) *, :where(.al) *::before, :where(.al) *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
  .al-confetti { display: none; }
}

/* focus ring wins over component shadows (keyboard users must always see where they are) */
.al-btn:focus-visible, .al-icon-btn:focus-visible, .al-segment button:focus-visible,
.al-sidenav a:focus-visible, .al-bottomnav a:focus-visible { box-shadow: var(--al-focus) !important; }
