

:root,
[data-bs-theme="light"] {

--f-bg:        #ffffff;
--f-fg:        #181210;
--f-fg-muted:  #656160;
--f-fg-faint:  #b3aead;
--f-rule:      #e3dbd8;
--f-stripe-bg: #f1ebe9;
--f-red:       #e0442c;   

--f-accent:      #af3a1a;   
--f-accent-soft: #7e2d17;   

--f-chrome:    #e1dddd;   

--f-nav-ink:   rgba(255,255,255,.19);   

--f-solid:     #ffffff;

--f-nav-fg:    #1c1512;   
}
[data-bs-theme="dark"] {

--f-bg:        #170b0b;
--f-fg:        #f2e9e7;
--f-fg-muted:  #9a908c;
--f-fg-faint:  #4e4542;
--f-rule:      #302222;
--f-stripe-bg: #1f1212;
--f-red:       #ff7661;   
--f-accent:      #d5562c;   
--f-accent-soft: #b8542f;   

--f-chrome:    #332424;   

--f-nav-ink:   rgba(82,30,26,.23);   
--f-solid:     #000000;
--f-nav-fg:    #f4f4f4;
}

html.f-noglass[data-bs-theme="light"] { --f-nav-fg: #141414; }
html.f-noglass[data-bs-theme="dark"]  { --f-nav-fg: #f4f4f4; }

[data-bs-theme="light"] body,
[data-bs-theme="dark"]  body { background: transparent; color: var(--f-fg); }

html[data-bs-theme="light"] {
background-color: #ffffff;   

background-repeat: no-repeat;
background-image:
linear-gradient(90deg, rgba(153,83,62,0.0440) 0%, rgba(154,84,63,0.0445) 0.312%, rgba(154,84,63,0.0451) 0.625%, rgba(155,84,63,0.0456) 0.938%, rgba(155,85,64,0.0462) 1.25%, rgba(156,85,64,0.0468) 1.562%, rgba(156,86,64,0.0474) 1.875%, rgba(157,86,65,0.0481) 2.188%, rgba(158,87,65,0.0488) 2.5%, rgba(158,88,65,0.0495) 2.812%, rgba(159,88,66,0.0502) 3.125%, rgba(160,89,66,0.0510) 3.438%, rgba(160,89,67,0.0517) 3.75%, rgba(161,90,67,0.0525) 4.062%, rgba(162,91,68,0.0533) 4.375%, rgba(162,91,68,0.0542) 4.688%, rgba(163,92,68,0.0550) 5%, rgba(164,93,69,0.0559) 5.312%, rgba(165,93,69,0.0567) 5.625%, rgba(165,94,70,0.0576) 5.938%, rgba(166,95,70,0.0585) 6.25%, rgba(167,96,71,0.0594) 6.562%, rgba(168,96,72,0.0604) 6.875%, rgba(168,97,72,0.0613) 7.187%, rgba(169,98,73,0.0622) 7.5%, rgba(170,99,73,0.0632) 7.812%, rgba(171,99,74,0.0641) 8.125%, rgba(172,100,74,0.0651) 8.438%, rgba(173,101,75,0.0661) 8.75%, rgba(173,102,75,0.0671) 9.062%, rgba(174,102,76,0.0680) 9.375%, rgba(175,103,76,0.0690) 9.688%, rgba(176,104,77,0.0700) 10%, rgba(177,105,78,0.0710) 10.312%, rgba(178,106,78,0.0720) 10.625%, rgba(179,106,79,0.0729) 10.938%, rgba(179,107,79,0.0739) 11.25%, rgba(180,108,80,0.0749) 11.562%, rgba(181,109,80,0.0759) 11.875%, rgba(182,109,81,0.0768) 12.188%, rgba(183,110,81,0.0778) 12.5%, rgba(184,111,82,0.0787) 12.812%, rgba(184,112,82,0.0796) 13.125%, rgba(185,112,83,0.0806) 13.438%, rgba(186,113,84,0.0815) 13.75%, rgba(187,114,84,0.0824) 14.062%, rgba(187,115,85,0.0833) 14.375%, rgba(188,115,85,0.0841) 14.688%, rgba(189,116,86,0.0850) 15%, rgba(190,117,86,0.0858) 15.313%, rgba(190,117,86,0.0867) 15.625%, rgba(191,118,87,0.0875) 15.937%, rgba(192,119,87,0.0883) 16.25%, rgba(192,119,88,0.0890) 16.562%, rgba(193,120,88,0.0898) 16.875%, rgba(194,120,89,0.0905) 17.188%, rgba(194,121,89,0.0912) 17.5%, rgba(195,122,89,0.0919) 17.812%, rgba(196,122,90,0.0926) 18.125%, rgba(196,123,90,0.0932) 18.438%, rgba(197,123,90,0.0938) 18.75%, rgba(197,124,91,0.0944) 19.062%, rgba(198,124,91,0.0949) 19.375%, rgba(198,124,91,0.0955) 19.688%, rgba(199,125,92,0.0960) 20%, rgba(199,125,92,0.0965) 20.312%, rgba(199,126,92,0.0969) 20.625%, rgba(200,126,92,0.0973) 20.938%, rgba(200,126,93,0.0977) 21.25%, rgba(200,126,93,0.0981) 21.562%, rgba(201,127,93,0.0984) 21.875%, rgba(201,127,93,0.0987) 22.188%, rgba(201,127,93,0.0990) 22.5%, rgba(201,127,94,0.0992) 22.812%, rgba(202,128,94,0.0994) 23.125%, rgba(202,128,94,0.0996) 23.438%, rgba(202,128,94,0.0997) 23.75%, rgba(202,128,94,0.0999) 24.062%, rgba(202,128,94,0.0999) 24.375%, rgba(202,128,94,0.1000) 24.688%, rgba(202,128,94,0.1000) 25%, rgba(202,128,94,0.1000) 25.312%, rgba(202,128,94,0.0999) 25.625%, rgba(202,128,94,0.0999) 25.938%, rgba(202,128,94,0.0997) 26.25%, rgba(202,128,94,0.0996) 26.562%, rgba(202,128,94,0.0994) 26.875%, rgba(201,127,94,0.0992) 27.187%, rgba(201,127,93,0.0990) 27.5%, rgba(201,127,93,0.0987) 27.812%, rgba(201,127,93,0.0984) 28.125%, rgba(200,126,93,0.0981) 28.438%, rgba(200,126,93,0.0977) 28.75%, rgba(200,126,92,0.0973) 29.063%, rgba(199,126,92,0.0969) 29.375%, rgba(199,125,92,0.0965) 29.688%, rgba(199,125,92,0.0960) 30%, rgba(198,124,91,0.0955) 30.312%, rgba(198,124,91,0.0949) 30.625%, rgba(197,124,91,0.0944) 30.938%, rgba(197,123,90,0.0938) 31.25%, rgba(196,123,90,0.0932) 31.562%, rgba(196,122,90,0.0926) 31.875%, rgba(195,122,89,0.0919) 32.188%, rgba(194,121,89,0.0912) 32.5%, rgba(194,120,89,0.0905) 32.812%, rgba(193,120,88,0.0898) 33.125%, rgba(192,119,88,0.0890) 33.438%, rgba(192,119,87,0.0883) 33.75%, rgba(191,118,87,0.0875) 34.062%, rgba(190,117,86,0.0867) 34.375%, rgba(190,117,86,0.0858) 34.688%, rgba(189,116,86,0.0850) 35%, rgba(188,115,85,0.0841) 35.312%, rgba(187,115,85,0.0833) 35.625%, rgba(187,114,84,0.0824) 35.938%, rgba(186,113,84,0.0815) 36.25%, rgba(185,112,83,0.0806) 36.562%, rgba(184,112,82,0.0796) 36.875%, rgba(184,111,82,0.0787) 37.188%, rgba(183,110,81,0.0778) 37.5%, rgba(182,109,81,0.0768) 37.812%, rgba(181,109,80,0.0759) 38.125%, rgba(180,108,80,0.0749) 38.438%, rgba(179,107,79,0.0739) 38.75%, rgba(179,106,79,0.0729) 39.062%, rgba(178,106,78,0.0720) 39.375%, rgba(177,105,78,0.0710) 39.688%, rgba(176,104,77,0.0700) 40%, rgba(175,103,76,0.0690) 40.312%, rgba(174,102,76,0.0680) 40.625%, rgba(173,102,75,0.0671) 40.938%, rgba(173,101,75,0.0661) 41.25%, rgba(172,100,74,0.0651) 41.562%, rgba(171,99,74,0.0641) 41.875%, rgba(170,99,73,0.0632) 42.188%, rgba(169,98,73,0.0622) 42.5%, rgba(168,97,72,0.0613) 42.812%, rgba(168,96,72,0.0604) 43.125%, rgba(167,96,71,0.0594) 43.438%, rgba(166,95,70,0.0585) 43.75%, rgba(165,94,70,0.0576) 44.062%, rgba(165,93,69,0.0567) 44.375%, rgba(164,93,69,0.0559) 44.688%, rgba(163,92,68,0.0550) 45%, rgba(162,91,68,0.0542) 45.312%, rgba(162,91,68,0.0534) 45.625%, rgba(161,90,67,0.0527) 45.938%, rgba(160,90,67,0.0520) 46.25%, rgba(160,89,66,0.0514) 46.562%, rgba(159,89,66,0.0508) 46.875%, rgba(159,88,66,0.0503) 47.188%, rgba(159,88,66,0.0498) 47.5%, rgba(158,88,65,0.0494) 47.812%, rgba(158,87,65,0.0490) 48.125%, rgba(158,87,65,0.0487) 48.438%, rgba(157,87,65,0.0485) 48.75%, rgba(157,87,65,0.0483) 49.062%, rgba(157,87,65,0.0481) 49.375%, rgba(157,86,65,0.0481) 49.688%, rgba(157,86,65,0.0480) 50%, rgba(157,86,65,0.0481) 50.313%, rgba(157,87,65,0.0481) 50.625%, rgba(157,87,65,0.0483) 50.938%, rgba(157,87,65,0.0485) 51.25%, rgba(158,87,65,0.0487) 51.562%, rgba(158,87,65,0.0490) 51.875%, rgba(158,88,65,0.0494) 52.188%, rgba(159,88,66,0.0498) 52.5%, rgba(159,88,66,0.0503) 52.812%, rgba(159,89,66,0.0508) 53.125%, rgba(160,89,66,0.0514) 53.438%, rgba(160,90,67,0.0520) 53.75%, rgba(161,90,67,0.0527) 54.062%, rgba(162,91,68,0.0534) 54.375%, rgba(162,91,68,0.0542) 54.688%, rgba(163,92,68,0.0550) 55%, rgba(164,93,69,0.0559) 55.312%, rgba(165,93,69,0.0567) 55.625%, rgba(165,94,70,0.0576) 55.937%, rgba(166,95,70,0.0585) 56.25%, rgba(167,96,71,0.0594) 56.563%, rgba(168,96,72,0.0604) 56.875%, rgba(168,97,72,0.0613) 57.188%, rgba(169,98,73,0.0622) 57.5%, rgba(170,99,73,0.0632) 57.812%, rgba(171,99,74,0.0641) 58.125%, rgba(172,100,74,0.0651) 58.438%, rgba(173,101,75,0.0661) 58.75%, rgba(173,102,75,0.0671) 59.062%, rgba(174,102,76,0.0680) 59.375%, rgba(175,103,76,0.0690) 59.688%, rgba(176,104,77,0.0700) 60%, rgba(177,105,78,0.0710) 60.312%, rgba(178,106,78,0.0720) 60.625%, rgba(179,106,79,0.0729) 60.938%, rgba(179,107,79,0.0739) 61.25%, rgba(180,108,80,0.0749) 61.562%, rgba(181,109,80,0.0759) 61.875%, rgba(182,109,81,0.0768) 62.187%, rgba(183,110,81,0.0778) 62.5%, rgba(184,111,82,0.0787) 62.813%, rgba(184,112,82,0.0796) 63.125%, rgba(185,112,83,0.0806) 63.438%, rgba(186,113,84,0.0815) 63.75%, rgba(187,114,84,0.0824) 64.062%, rgba(187,115,85,0.0833) 64.375%, rgba(188,115,85,0.0841) 64.688%, rgba(189,116,86,0.0850) 65%, rgba(190,117,86,0.0858) 65.312%, rgba(190,117,86,0.0867) 65.625%, rgba(191,118,87,0.0875) 65.938%, rgba(192,119,87,0.0883) 66.25%, rgba(192,119,88,0.0890) 66.562%, rgba(193,120,88,0.0898) 66.875%, rgba(194,120,89,0.0905) 67.188%, rgba(194,121,89,0.0912) 67.5%, rgba(195,122,89,0.0919) 67.812%, rgba(196,122,90,0.0926) 68.125%, rgba(196,123,90,0.0932) 68.438%, rgba(197,123,90,0.0938) 68.75%, rgba(197,124,91,0.0944) 69.062%, rgba(198,124,91,0.0949) 69.375%, rgba(198,124,91,0.0955) 69.688%, rgba(199,125,92,0.0960) 70%, rgba(199,125,92,0.0965) 70.312%, rgba(199,126,92,0.0969) 70.625%, rgba(200,126,92,0.0973) 70.938%, rgba(200,126,93,0.0977) 71.25%, rgba(200,126,93,0.0981) 71.562%, rgba(201,127,93,0.0984) 71.875%, rgba(201,127,93,0.0987) 72.188%, rgba(201,127,93,0.0990) 72.5%, rgba(201,127,94,0.0992) 72.812%, rgba(202,128,94,0.0994) 73.125%, rgba(202,128,94,0.0996) 73.438%, rgba(202,128,94,0.0997) 73.75%, rgba(202,128,94,0.0999) 74.062%, rgba(202,128,94,0.0999) 74.375%, rgba(202,128,94,0.1000) 74.688%, rgba(202,128,94,0.1000) 75%, rgba(202,128,94,0.1000) 75.312%, rgba(202,128,94,0.0999) 75.625%, rgba(202,128,94,0.0999) 75.938%, rgba(202,128,94,0.0997) 76.25%, rgba(202,128,94,0.0996) 76.562%, rgba(202,128,94,0.0994) 76.875%, rgba(201,127,94,0.0992) 77.188%, rgba(201,127,93,0.0990) 77.5%, rgba(201,127,93,0.0987) 77.812%, rgba(201,127,93,0.0984) 78.125%, rgba(200,126,93,0.0981) 78.438%, rgba(200,126,93,0.0977) 78.75%, rgba(200,126,92,0.0973) 79.062%, rgba(199,126,92,0.0969) 79.375%, rgba(199,125,92,0.0965) 79.688%, rgba(199,125,92,0.0960) 80%, rgba(198,124,91,0.0955) 80.312%, rgba(198,124,91,0.0949) 80.625%, rgba(197,124,91,0.0944) 80.938%, rgba(197,123,90,0.0938) 81.25%, rgba(196,123,90,0.0932) 81.562%, rgba(196,122,90,0.0926) 81.875%, rgba(195,122,89,0.0919) 82.188%, rgba(194,121,89,0.0912) 82.5%, rgba(194,120,89,0.0905) 82.812%, rgba(193,120,88,0.0898) 83.125%, rgba(192,119,88,0.0890) 83.438%, rgba(192,119,87,0.0883) 83.75%, rgba(191,118,87,0.0875) 84.062%, rgba(190,117,86,0.0867) 84.375%, rgba(190,117,86,0.0858) 84.688%, rgba(189,116,86,0.0850) 85%, rgba(188,115,85,0.0841) 85.312%, rgba(187,115,85,0.0833) 85.625%, rgba(187,114,84,0.0824) 85.938%, rgba(186,113,84,0.0815) 86.25%, rgba(185,112,83,0.0806) 86.562%, rgba(184,112,82,0.0796) 86.875%, rgba(184,111,82,0.0787) 87.188%, rgba(183,110,81,0.0778) 87.5%, rgba(182,109,81,0.0768) 87.812%, rgba(181,109,80,0.0759) 88.125%, rgba(180,108,80,0.0749) 88.438%, rgba(179,107,79,0.0739) 88.75%, rgba(179,106,79,0.0729) 89.062%, rgba(178,106,78,0.0720) 89.375%, rgba(177,105,78,0.0710) 89.688%, rgba(176,104,77,0.0700) 90%, rgba(175,103,76,0.0690) 90.312%, rgba(174,102,76,0.0680) 90.625%, rgba(173,102,75,0.0671) 90.938%, rgba(173,101,75,0.0661) 91.25%, rgba(172,100,74,0.0651) 91.562%, rgba(171,99,74,0.0641) 91.875%, rgba(170,99,73,0.0632) 92.188%, rgba(169,98,73,0.0622) 92.5%, rgba(168,97,72,0.0613) 92.812%, rgba(168,96,72,0.0604) 93.125%, rgba(167,96,71,0.0594) 93.438%, rgba(166,95,70,0.0585) 93.75%, rgba(165,94,70,0.0576) 94.062%, rgba(165,93,69,0.0567) 94.375%, rgba(164,93,69,0.0559) 94.688%, rgba(163,92,68,0.0550) 95%, rgba(162,91,68,0.0542) 95.312%, rgba(162,91,68,0.0533) 95.625%, rgba(161,90,67,0.0525) 95.938%, rgba(160,89,67,0.0517) 96.25%, rgba(160,89,66,0.0510) 96.562%, rgba(159,88,66,0.0502) 96.875%, rgba(158,88,65,0.0495) 97.188%, rgba(158,87,65,0.0488) 97.5%, rgba(157,86,65,0.0481) 97.812%, rgba(156,86,64,0.0474) 98.125%, rgba(156,85,64,0.0468) 98.438%, rgba(155,85,64,0.0462) 98.75%, rgba(155,84,63,0.0456) 99.062%, rgba(154,84,63,0.0451) 99.375%, rgba(154,84,63,0.0445) 99.688%, rgba(153,83,62,0.0440) 100%),
linear-gradient(180deg, #eef0f4 0%, #eaecf1 50%, #eef0f4 100%);
}
html[data-bs-theme="dark"] {
background-color: #1b1517;   

background-repeat: no-repeat;
background-image:
linear-gradient(90deg, rgba(150,86,70,0.014) 0%, rgba(174,102,80,0.036) 50%, rgba(150,86,70,0.014) 100%),
linear-gradient(180deg, #120c10 0%, #120c10 100%);
}

html[data-bs-theme="light"]::after,
html[data-bs-theme="dark"]::after {
content: "";
position: fixed;
inset: 0;
z-index: 4998;   
pointer-events: none;
background-image: url(/assets/aura-noise.png?v=769);   
background-size: 128px 128px;

opacity: 1;
}

@media (min-resolution: 2dppx) {
html[data-bs-theme="light"]::after,
html[data-bs-theme="dark"]::after { background-size: 64px 64px; }
}
@media (min-resolution: 3dppx) {
html[data-bs-theme="light"]::after,
html[data-bs-theme="dark"]::after { background-size: 42.67px 42.67px; }
}

html[data-bs-theme="dark"]::after,
html[data-bs-theme="light"]::after { mix-blend-mode: normal; filter: none; }
html.f-noglass::after,
html.f-noglass[data-bs-theme="light"]::after,
html.f-noglass[data-bs-theme="dark"]::after { display: none; }

html.f-noglass[data-bs-theme="light"] {
background-color: #fff;   
background-image: none;
}
html.f-noglass[data-bs-theme="dark"] {
background-color: #000;
background-image: none;
}

.f-brim { display: none; }

html::before {
content: "";
position: fixed;
top: 0;
left: 0;
right: 0;
height: env(safe-area-inset-top, 0px);
background: var(--f-chrome, #000);
z-index: 2147483000;
pointer-events: none;
}

html.f-noglass::before { background: var(--f-solid, #000); }
[data-bs-theme="light"] body.f-noglass,
[data-bs-theme="dark"]  body.f-noglass { background: var(--f-solid); }

body.f-noglass .f-nav {
background: var(--f-solid);
border-bottom: 1px solid var(--f-rule);

-webkit-backdrop-filter: none;
backdrop-filter: none;
}
body.f-noglass .f-nav::after { display: none; }

html.f-noglass[data-bs-theme="light"] {
--f-rule:      #dcdcdc;   
--f-stripe-bg: #ececec;   
--f-chrome:    #636363;   

--f-accent:      #4a4a4a;
--f-accent-soft: #8a8582;
--cal-acc:  #4a4a4a;
--cal-req:  #e8e9ec;
--cal-bg:     #f0f2f6;
--cal-border: #e2e0e6;
--cal-chip:   #e3e5ea;

--cal-panel:   #ffffff;
--cal-grid:    #dcdcde;
--cal-headbg:  #eceef1;
--cal-headfg:  #4a4a4a;
--cal-cell:    #f7f7f8;
--cal-today:   #e9eaee;
--cal-weekend: #f0f0f2;
--cal-outside: #f4f4f6;
--cal-shadow:  0 10px 30px -14px rgba(40,40,40,.28), 0 2px 5px -2px rgba(0,0,0,.10);
}
html.f-noglass[data-bs-theme="dark"] {
--f-bg:        #0e0e0e;   
--f-rule:      #252525;   
--f-stripe-bg: #151515;   
--f-chrome:    #111111;   

--f-accent:      #6e6e6e;
--f-accent-soft: #6a6560;
--cal-acc:  #9a9a9a;
--cal-req:  #1e1d22;
--cal-bg:     #100f15;
--cal-border: #2a2830;
--cal-chip:   #202027;

--cal-panel:   #1b1b1d;
--cal-grid:    #2c2c2f;
--cal-headbg:  #242427;
--cal-headfg:  #a6a6ab;
--cal-cell:    #141416;
--cal-today:   #262629;
--cal-weekend: #101012;
--cal-outside: #121214;
--cal-shadow:  0 12px 34px -16px rgba(0,0,0,.65), 0 2px 6px -2px rgba(0,0,0,.4);
}

html.f-noglass[data-bs-theme="dark"] .f-nav .dropdown-menu { background: #151515; }
html.f-noglass[data-bs-theme="dark"] .f-totop { color: #0e0e0e; }
html.f-noglass[data-bs-theme="dark"] .f-wysiwyg-area pre,
html.f-noglass[data-bs-theme="dark"] pre.f-curl { background: #111111; }

:root {

--f-serif: 'Instrument Serif', 'Instrument Serif Fallback', Georgia, 'Times New Roman', serif;
--f-sans:  'Instrument Sans', 'Instrument Sans Fallback', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
--f-mono:  'JetBrains Mono', ui-monospace, 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
}

html, body {
font-family: var(--f-sans);
font-feature-settings: 'ss01', 'cv11';
background: var(--f-bg);
color: var(--f-fg);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

body {

min-height: 100vh;
}
@supports (min-height: 100lvh) {
body { min-height: 100lvh; }
}
body > main { flex: 1 0 auto; }

html { font-size: 106.25%; }
body {
font-size: .94rem;
line-height: 1.55;
letter-spacing: -0.005em;
}

a {
color: var(--f-fg);
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px;
transition: opacity .12s ease;
}
a:hover { color: var(--f-fg); opacity: .55; }

::selection { background: var(--f-fg); color: var(--f-bg); }

hr { border: 0; border-top: 1px solid var(--f-rule); opacity: 1; }

h1, h2, h3, .h1, .h2, .h3, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
font-family: var(--f-serif);
font-weight: 400;
letter-spacing: -0.025em;
color: var(--f-fg);
}
h1, .h1 { font-size: 2.6rem; line-height: 1.02; }
h2, .h2 { font-size: 1.95rem; line-height: 1.08; }
h3, .h3 { font-size: 1.45rem; line-height: 1.18; }

h4, .h4 {
font-family: var(--f-sans);
font-size: 1.02rem; line-height: 1.25;
font-weight: 600; letter-spacing: -0.01em;
color: var(--f-fg);
}

.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
font-weight: 400;
letter-spacing: -0.035em;
}

.display-6, .f-admin-title { position: relative; }
.display-6::after, .f-admin-title::after {
content: '';
display: block;
width: 58px;
height: 3px;
margin-top: .55rem;
border-radius: 2px;
background: linear-gradient(90deg, var(--f-accent),
color-mix(in srgb, var(--f-accent) 18%, transparent));
}

.f-head-ox { --f-accent: #6e1621; }
[data-bs-theme="dark"] .f-head-ox { --f-accent: #cc3843; }
.f-head-ox .f-eyebrow { color: var(--f-accent); opacity: .82; }

p { margin-bottom: 1rem; }
.lead { font-family: var(--f-serif); font-size: 1.15rem; font-weight: 400; line-height: 1.45; }

.f-eyebrow {
font-family: var(--f-sans);
font-size: .68rem;
font-weight: 600;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--f-fg-muted);
line-height: 1;
}

.f-mark {
font-family: var(--f-serif);
font-weight: 400;
letter-spacing: -0.03em;
text-decoration: none;
color: var(--f-fg);
font-size: 1.35rem;
line-height: 1;
display: inline-flex;

align-items: center;
}
.f-mark em {
font-style: normal;
opacity: .35;
margin-left: .05em;
}

.f-nav .f-mark,
.f-nav .f-mark em {
transition: color .08s ease, opacity .08s ease;
}

.f-stripe {
border-radius: 0;
border: 0;
border-top:    1px solid var(--f-rule);
border-bottom: 1px solid var(--f-rule);
background: var(--f-stripe-bg);
color: var(--f-fg);
font-size: .85rem;
}
.f-stripe a.btn { border-radius: 0; }

:root {
--f-nav-pad: 1.1rem;
--f-nav-h: 3.9rem;
}
.f-nav {

background: transparent;
color: var(--f-nav-fg);

-webkit-backdrop-filter: saturate(140%) blur(7px);
backdrop-filter: saturate(140%) blur(7px);

border-bottom: 0;
padding: var(--f-nav-pad) 0;
padding-top: calc(var(--f-nav-pad) + env(safe-area-inset-top, 0px));
position: sticky;
top: 0;
z-index: 1030;
transition: transform .28s ease, padding .22s ease;
}
.f-pin { transition: transform .28s ease; }

.f-nav-list .nav-link.active {
color: var(--f-nav-fg);
}
.f-nav-list .nav-link.active::before {
content: "\2014\00a0";
opacity: .55;
}

.f-nav .dropdown-menu {
background: color-mix(in srgb, #070707 72%, transparent);
-webkit-backdrop-filter: saturate(160%) blur(14px);
backdrop-filter: saturate(160%) blur(14px);
border: 1px solid color-mix(in srgb, #ffffff 12%, transparent);
}
[data-bs-theme="dark"] .f-nav .dropdown-menu {
background: color-mix(in srgb, #070707 60%, transparent);
border-color: color-mix(in srgb, #ffffff 10%, transparent);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
.f-nav .dropdown-menu { background: #3a3a3a; }
[data-bs-theme="dark"] .f-nav .dropdown-menu { background: #1f1212; }
}
.f-nav::after {
content: '';
position: absolute;
inset: 0;
z-index: -1;

background:
url(/assets/aura-noise.png?v=769) repeat,
var(--f-nav-ink, color-mix(in srgb, #070707 62%, transparent));
background-size: 128px 128px, auto;

}
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {
.f-nav::after { background-size: 64px 64px, auto; }
}
@media (-webkit-min-device-pixel-ratio: 2.5), (min-resolution: 2.5dppx) {
.f-nav::after { background-size: 42.67px 42.67px, auto; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {

.f-nav { background: var(--f-chrome, var(--f-fg)); }
.f-nav::after { content: none; }
}

[data-bs-theme="dark"] .f-nav {
--f-bg: #f5f5f5;
--f-fg: #0a0a0a;
color: var(--f-nav-fg);

-webkit-backdrop-filter: saturate(140%) blur(6.5px);
backdrop-filter: saturate(140%) blur(6.5px);
}

html:not(.f-noglass) .f-nav {
animation: f-nav-vent-l 96ms linear 1;
}
html[data-bs-theme="dark"]:not(.f-noglass) .f-nav {
animation: f-nav-vent-d 96ms linear 1;
}

@keyframes f-nav-vent-l {
0%, 20% {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
27% {
-webkit-backdrop-filter: saturate(140%) blur(7.35px);
backdrop-filter: saturate(140%) blur(7.35px);
}
100% {
-webkit-backdrop-filter: saturate(140%) blur(7px);
backdrop-filter: saturate(140%) blur(7px);
}
}
@keyframes f-nav-vent-d {
0%, 20% {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
27% {
-webkit-backdrop-filter: saturate(140%) blur(6.85px);
backdrop-filter: saturate(140%) blur(6.85px);
}
100% {
-webkit-backdrop-filter: saturate(140%) blur(6.5px);
backdrop-filter: saturate(140%) blur(6.5px);
}
}
.f-nav .f-nav-row {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
gap: 1.25rem;

padding-right: 7.5rem;
min-width: 0;
}
.f-nav-list,
.f-nav-right {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
gap: 1.25rem;
}

.f-nav-list > .nav-item,
.f-nav-right > .nav-item {
margin-right: 0;
}

@media (min-width: 1200px) {
.f-nav-reload-item { display: none; }
}
.f-nav-list  {
flex: 1 1 auto;
min-width: 0;
flex-wrap: wrap;
overflow: visible;
row-gap: .75rem;
position: relative;
}

.f-nav-list::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -.6rem;
height: 1px;
background: color-mix(in srgb, var(--f-nav-fg) 30%, transparent);
opacity: 0;
transition: opacity .2s ease;
pointer-events: none;
}
.f-nav-list:has(.dropdown.show)::after { opacity: 1; }
.f-nav-right { margin-left: auto; gap: 1rem; flex: 0 0 auto; }
.f-nav .f-mark { flex: 0 0 auto; }

.f-nav-offsite-icon {

display: inline-block;
width: .8em;
height: .8em;
line-height: 0;
margin-right: .35em;
flex: 0 0 auto;
opacity: .55;
transition: opacity .12s;
}
@media (hover: hover) and (pointer: fine) {
.nav-link:hover .f-nav-offsite-icon,
.f-nav-overlay__row:hover .f-nav-offsite-icon {
opacity: 1;
}
}

.f-nav .f-mark {
color: var(--f-nav-fg);
text-decoration: none;
font-family: var(--f-serif);
font-size: 1.45rem;
line-height: 1;
letter-spacing: -0.015em;
flex-shrink: 0;
display: inline-flex;
align-items: center;
gap: .5rem;
}
.f-nav .f-mark em { color: var(--f-nav-fg); opacity: .4; font-style: normal; }
@media (hover: hover) and (pointer: fine) {
.f-nav .f-mark:hover { color: var(--f-nav-fg); opacity: .8; }
}

.f-logo-mark {
display: inline-block;

width: 1.3em;
height: 1.18em;
flex: 0 0 auto;
background: currentColor;
-webkit-mask: url('/assets/logo-mark.png?v=836') left center / contain no-repeat;
mask: url('/assets/logo-mark.png?v=836') left center / contain no-repeat;
transform-origin: 50% 50%;
backface-visibility: visible;
will-change: transform;
animation: f-revolve 6.5s ease-in-out infinite;
}
@keyframes f-revolve {
0%   { transform: perspective(340px) translateY(0.03em) rotateX(8deg)  rotateY(0deg); }
25%  { transform: perspective(340px) translateY(-0.01em) rotateX(-3deg) rotateY(90deg); }
50%  { transform: perspective(340px) translateY(0.03em) rotateX(8deg)  rotateY(180deg); }
75%  { transform: perspective(340px) translateY(-0.01em) rotateX(-3deg) rotateY(270deg); }
100% { transform: perspective(340px) translateY(0.03em) rotateX(8deg)  rotateY(360deg); }
}

@keyframes f-blink {
0%, 100% { opacity: 1; }
45%      { opacity: .12; }
}
.f-mark:hover .f-logo-mark {
animation: f-revolve 6.5s ease-in-out infinite, f-blink .42s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
.f-logo-mark { animation: none; transform: translateY(0.03em); }
}
.f-mark-word { display: inline-block; }

.f-nav .nav-link {

color: color-mix(in srgb, var(--f-nav-fg) 62%, transparent);

font-size: .7rem;
font-weight: 500;
letter-spacing: .1em;
text-transform: uppercase;
text-decoration: none;
padding: .25rem 0;
position: relative;
transition: color .2s ease;
display: inline-flex;
align-items: center;
line-height: 1;
}

.f-nav .nav-link:focus-visible,
.f-nav .nav-link.active {
color: var(--f-nav-fg);
opacity: 1;
}

.f-nav .nav-link:focus,
.f-nav .nav-link:focus-visible,
.f-nav .dropdown-toggle:focus {
outline: 0;
box-shadow: none;
}

.f-nav .nav-link::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -2px;
height: 1px;
background: color-mix(in srgb, var(--f-nav-fg) 40%, transparent);
opacity: 0;
transition: opacity .2s ease;
pointer-events: none;
}
.f-nav .nav-link:focus-visible::after,
.f-nav .nav-link.active::after {
opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
.f-nav .nav-link.is-hover {
color: var(--f-nav-fg);
opacity: 1;
}
.f-nav .nav-link.is-hover::after {
opacity: 1;
}
}
.f-nav .dropdown-toggle::after { border: 0; margin: 0; }

.f-nav .dropdown-menu {
background: var(--f-fg);
color: var(--f-bg);
border: 1px solid color-mix(in srgb, var(--f-bg) 18%, transparent);
border-radius: 0;
margin-top: .45rem;
padding: .35rem 0;
min-width: 9rem;
}
.f-nav .dropdown-item {
color: var(--f-bg);
font-size: .82rem;
font-weight: 500;
letter-spacing: .10em;
text-transform: uppercase;
padding: .4rem 1rem;
opacity: .85;

transition: none;
}
.f-nav .dropdown-item:hover,
.f-nav .dropdown-item:focus {

background: transparent;
color: var(--f-bg);
opacity: 1;
text-shadow: 0 0 0.6px currentColor, 0 0 0.6px currentColor;
}

html[data-bs-theme="light"] .f-nav .dropdown-menu {
background: rgba(255,255,255,.92);
-webkit-backdrop-filter: saturate(130%) blur(14px);
backdrop-filter: saturate(130%) blur(14px);
color: var(--f-nav-fg);
border-color: rgba(28,21,18,.14);
}
html[data-bs-theme="light"] .f-nav .dropdown-item,
html[data-bs-theme="light"] .f-nav .dropdown-item:hover,
html[data-bs-theme="light"] .f-nav .dropdown-item:focus {
color: var(--f-nav-fg);
}

.f-icon-btn {
background: transparent;
border: 0;
padding: 0;
color: var(--f-nav-fg);
width: 26px;
height: 26px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: opacity .12s ease;
text-decoration: none;

position: relative;
appearance: none;
-webkit-appearance: none;
box-shadow: none;
outline: none;
border-radius: 0;
}

.f-icon-btn::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -2px;
height: 1px;
background: color-mix(in srgb, var(--f-nav-fg) 40%, transparent);
opacity: 0;
transition: opacity .2s ease;
pointer-events: none;
}

.f-icon-btn.is-hover,
.f-icon-btn.show,
.f-icon-btn:focus-visible {
color: var(--f-nav-fg);
opacity: 1;
background: transparent;
box-shadow: none;
}
.f-icon-btn.is-hover::after,
.f-icon-btn.show::after,
.f-icon-btn:focus-visible::after {
opacity: 1;
}

.f-icon-btn svg   { width: 18px; height: 18px; display: block; stroke: currentColor; }

[data-bs-theme="light"] #icon_sun  { display: none; }
[data-bs-theme="dark"]  #icon_moon { display: none; }

.f-welcome {
max-width: 40rem;
margin: 0 auto;
padding: 4.5rem 1.25rem 5.5rem;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 2.75rem;
min-height: 84vh;
justify-content: center;
}

.f-welcome-hi {
font-family: "Snell Roundhand", "Segoe Script", "Bradley Hand", "Brush Script MT", cursive;
font-size: clamp(3.2rem, 12vw, 5.5rem);
line-height: 1;
font-weight: 500;
color: var(--f-fg);
margin: 0;
letter-spacing: .01em;
}
.f-welcome-who {
color: #6e1621;                       
white-space: nowrap;
}
[data-bs-theme="dark"] .f-welcome-who { color: #cc3843; }

.f-welcome-controls {
display: flex;
flex-direction: column;
gap: 0;
width: 100%;
max-width: 24rem;
text-align: left;
}
.f-welcome-ctl {
display: flex;
align-items: center;
gap: 1rem;
padding: 1rem .25rem;
border: 0;
border-radius: 0;
background: none;
border-bottom: 1px solid color-mix(in srgb, var(--f-rule) 55%, transparent);
}
.f-welcome-ctl:first-child {
border-top: 1px solid color-mix(in srgb, var(--f-rule) 55%, transparent);
}
.f-welcome-ctl .f-icon-btn {
flex: 0 0 auto; width: 34px; height: 34px;
color: var(--f-fg-muted);
border: 0;
border-radius: 9px;
transition: color .15s ease;
}
.f-welcome-ctl .f-icon-btn:hover,
.f-welcome-ctl .f-icon-btn:focus-visible { color: #6e1621; background: none; }
[data-bs-theme="dark"] .f-welcome-ctl .f-icon-btn:hover,
[data-bs-theme="dark"] .f-welcome-ctl .f-icon-btn:focus-visible { color: #cc3843; }
.f-welcome-ctl .f-icon-btn::after { display: none; }
.f-welcome-ctl .f-icon-btn svg { width: 20px; height: 20px; }
.f-welcome-label { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.f-welcome-name {
font-family: var(--f-sans); font-weight: 600; font-size: .92rem; color: var(--f-fg);
letter-spacing: .01em;
}
.f-welcome-desc { font-size: .8rem; color: var(--f-fg-muted); line-height: 1.45; }
.f-welcome-contact {
font-size: .82rem; color: var(--f-fg-muted); margin: 0; letter-spacing: .04em;
}
.f-welcome-contact a { color: var(--f-accent); text-decoration: none; white-space: nowrap; }
.f-welcome-contact a:hover { text-decoration: underline; }

.f-welcome-epitaph {
font-family: var(--f-serif);
font-size: 1rem;
font-style: italic;
color: var(--f-fg-muted);
opacity: .62;
margin: .75rem 0 0;
max-width: 28rem;
line-height: 1.55;
letter-spacing: .01em;
}

[data-bs-theme="light"] .f-welcome .f-w-sun  { display: none; }
[data-bs-theme="dark"]  .f-welcome .f-w-moon { display: none; }

.f-welcome-credits {
width: 100%;
max-width: 32rem;
margin-top: 1rem;
padding-top: 1.75rem;

border-top: 0;
text-align: left;
}
.f-welcome-credits-title {
font-family: var(--f-sans);
font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
color: color-mix(in srgb, var(--f-accent) 55%, var(--f-fg-muted));
text-align: center;
margin: 0 0 1.25rem;
}
.f-welcome-credits-list { margin: 0; display: flex; flex-direction: column; gap: .9rem; }
.f-welcome-credit dt {
font-family: var(--f-sans); font-weight: 600; font-size: .9rem;
color: var(--f-accent); margin-bottom: .1rem;
}
.f-welcome-credit dd {
margin: 0; font-size: .82rem; line-height: 1.45; color: var(--f-fg-muted);
}

.f-glass-toggle svg { transition: opacity .18s ease; }
body.f-noglass .f-glass-toggle svg { opacity: .3; }

.f-ghost-name { font-family: var(--f-serif) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: .98rem !important; }
.f-ghost-name em { opacity: .9; font-style: italic; }

.f-elevated-name,
.f-elevated-name:hover,
.f-elevated-name:focus {

color: #ff7061 !important;
}

html[data-bs-theme="light"] .f-elevated-name,
html[data-bs-theme="light"] .f-elevated-name:hover,
html[data-bs-theme="light"] .f-elevated-name:focus {
color: #bf2e21 !important;
}

.f-account-label { display: inline; }
.f-account-icon  { display: none; }

.f-burger {
display: none;
background: transparent;
border: 0;
padding: 0;
color: var(--f-nav-fg);
width: 26px;
height: 26px;
align-items: center;
justify-content: center;
cursor: pointer;
transition: opacity .12s ease;
flex: 0 0 auto;
margin-left: .25rem;
}
.f-burger:hover { opacity: .55; }
.f-burger svg   { width: 22px; height: 22px; display: block; stroke: currentColor; }

.f-nav-collapse { display: contents; }

.f-nav[data-overflow="1"] .f-burger { display: inline-flex; }

.f-nav[data-overflow="1"] .f-nav-collapse {
display: none;
background: var(--f-fg);
padding: .5rem 0 1.25rem;
border-top: 1px solid color-mix(in srgb, var(--f-bg) 12%, transparent);
margin-top: 1rem;
}

.f-nav[data-overflow="1"] .f-nav-collapse[data-open="1"] {
display: block;
flex: 0 0 100%;
width: 100%;
order: 99;
}
.f-nav[data-overflow="1"]:has(.f-nav-collapse[data-open="1"]) .f-nav-row {
flex-wrap: wrap;
}

.f-nav[data-overflow="1"] .f-nav-list {
flex-direction: column;
align-items: flex-start;
gap: .9rem;
padding-top: .5rem;
overflow: visible;
}
.f-nav[data-overflow="1"] .f-nav-list .nav-link {
font-size: .74rem;
letter-spacing: .09em;
}

.f-nav[data-overflow="1"] .f-nav-row .dropdown-menu {
display: none;
}
.f-nav[data-overflow="1"] .f-nav-row .dropdown-menu.show {
display: block !important;
position: static !important;
transform: none !important;
inset: auto !important;
margin: .25rem 0 .5rem 1rem !important;
padding: 0 !important;
border: 0 !important;
background: transparent !important;
min-width: 0 !important;
}

@media (max-width: 575.98px) {
.f-nav { padding: 1.05rem 0; }

.f-nav .f-nav-row {
gap: .8rem;
padding-right: 6.75rem;
}
.f-nav .f-mark { font-size: 1.2rem; }

.f-nav .f-mark { flex: 0 1 auto; min-width: 0; overflow: hidden; }
.f-mark-word {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.f-nav-right { gap: .8rem; }
.f-icon-btn  { width: 24px; height: 24px; }
.f-icon-btn svg { width: 17px; height: 17px; }

.f-account-label { display: none; }
.f-account-icon  { display: block; }
.f-account-toggle {
padding: 0;
width: 26px;
height: 26px;
display: inline-flex;
align-items: center;
justify-content: center;
border-bottom: 0;
}
.f-account-toggle:hover,
.f-account-toggle.active { border-bottom-color: transparent; }
.f-account-toggle::after,
.f-account-toggle.active::after { display: none; }
.f-account-icon  { width: 19px; height: 19px; stroke: currentColor; }
}

@media (max-width: 399.98px) {
.f-mark-word { display: none; }
}

.f-account-toggle + .dropdown-menu {
min-width: 14rem;
max-height: 70vh;
overflow-y: auto;
}

.f-dropdown-section {
pointer-events: none;
cursor: default;
}
.f-account-subitem {
font-size: .9rem;
color: var(--f-fg);

}

.f-pin {

position: absolute;
top: 0;
right: 0;
bottom: 0;
z-index: 2000;
color: #fff;
background: var(--f-red);
font-family: var(--f-sans);
font-size: .78rem;
font-weight: 600;
letter-spacing: .18em;
text-transform: uppercase;
text-decoration: none;
padding: 0 1.5rem;
border: 0;

transition: opacity 120ms ease 320ms;
display: inline-flex;
align-items: center;
line-height: 1;
}
.f-pin:hover, .f-pin:focus {
color: #fff;
background: var(--f-red);
opacity: .85;
}
@media (max-width: 575.98px) {
.f-pin { padding: 0 1rem; font-size: .68rem; letter-spacing: .14em; }
}

body.modal-open .f-pin {
opacity: 0;
pointer-events: none;
transition: opacity 120ms ease;
}
html.f-nav-overlay-open .f-pin {
opacity: 0;
pointer-events: none;
transition: opacity 180ms ease;
}

.form-control, .form-select {
border-radius: 10px;
border: 1px solid color-mix(in srgb, var(--f-fg) 15%, transparent);
background: var(--f-bg);
color: var(--f-fg);
font-family: var(--f-sans);
padding: .62rem .85rem;
font-size: .95rem;
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--f-fg) 6%, transparent);
transition: border-color .14s ease, box-shadow .14s ease;
}
.form-control:hover, .form-select:hover {
border-color: color-mix(in srgb, var(--f-fg) 26%, transparent);
}
.form-control:focus, .form-select:focus {
border-color: var(--f-accent);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--f-accent) 16%, transparent),
inset 0 1px 2px color-mix(in srgb, var(--f-fg) 5%, transparent);
background: var(--f-bg);
color: var(--f-fg);
outline: none;
}
.form-control::placeholder { color: var(--f-fg-faint); }

.form-label {
font-size: .68rem;
font-weight: 500;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-muted);
margin-bottom: .4rem;
}

input[type="radio"], .form-check-input[type="radio"],
input[type="checkbox"]:not(.form-switch *),
.form-check-input[type="checkbox"]:not(.form-switch *) {
-webkit-appearance: none; appearance: none;
width: 1.15em; height: 1.15em;
margin-top: .16em;
vertical-align: -.18em;
border: 1.5px solid color-mix(in srgb, var(--f-fg) 32%, transparent);
background: var(--f-bg);
background-repeat: no-repeat;
background-position: center;
cursor: pointer;
flex-shrink: 0;
transition: border-color .14s ease, box-shadow .14s ease, background-color .14s ease;
}
input[type="radio"], .form-check-input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]:not(.form-switch *),
.form-check-input[type="checkbox"]:not(.form-switch *) { border-radius: 6px; }

input[type="radio"]:hover, .form-check-input[type="radio"]:hover,
input[type="checkbox"]:not(.form-switch *):hover,
.form-check-input[type="checkbox"]:not(.form-switch *):hover {
border-color: var(--f-accent);
}
input[type="radio"]:checked, .form-check-input[type="radio"]:checked {
border-color: var(--f-accent);
background-image: radial-gradient(circle at 50% 50%,
var(--f-accent) 0 40%, transparent 45%);
}
input[type="checkbox"]:not(.form-switch *):checked,
.form-check-input[type="checkbox"]:not(.form-switch *):checked {
border-color: var(--f-accent);
background-color: var(--f-accent);
background-size: 74% 74%;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");
}
input[type="radio"]:focus-visible, .form-check-input[type="radio"]:focus-visible,
input[type="checkbox"]:not(.form-switch *):focus-visible,
.form-check-input[type="checkbox"]:not(.form-switch *):focus-visible {
outline: none;
box-shadow: 0 0 0 3px color-mix(in srgb, var(--f-accent) 22%, transparent);
}
input[type="radio"]:disabled, input[type="checkbox"]:disabled,
.form-check-input:disabled { opacity: .5; cursor: not-allowed; }

.btn {
border-radius: 0;
font-family: var(--f-sans);
font-weight: 500;
letter-spacing: .08em;
font-size: .82rem;
text-transform: uppercase;
padding: .55rem 1.1rem;
border-width: 1px;
transition: background .12s ease, color .12s ease, border-color .12s ease, opacity .12s ease;
}
.btn:focus, .btn:focus-visible { box-shadow: none; outline: 1px solid var(--f-fg); outline-offset: 2px; }

.btn-dark, .btn-primary {
background: var(--f-fg);
color: var(--f-bg);
border-color: var(--f-fg);
}
.btn-dark:hover, .btn-primary:hover {
background: var(--f-bg);
color: var(--f-fg);
border-color: var(--f-fg);
}

.btn-outline-dark, .btn-outline-primary, .btn-outline-secondary {
background: transparent;
color: var(--f-fg);
border-color: var(--f-fg);
}
.btn-outline-dark:hover, .btn-outline-primary:hover, .btn-outline-secondary:hover {
background: var(--f-fg);
color: var(--f-bg);
}

.btn-link {
color: var(--f-fg);
text-transform: none;
letter-spacing: 0;
text-decoration: underline;
text-underline-offset: 3px;
padding: 0;
}

.btn-sm { font-size: .72rem; padding: .35rem .75rem; }

.table {
color: var(--f-fg);
border-color: var(--f-rule);
margin-bottom: 0;
}
.table > :not(caption) > * > * {
background: transparent;
border-bottom-color: var(--f-rule);
padding: .85rem .75rem;
}
.table > thead > tr > th {
border-bottom: 1px solid var(--f-fg);
font-size: .68rem;
font-weight: 500;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-muted);
}
.table-hover > tbody > tr:hover { background: var(--f-stripe-bg); }

.card {
border-radius: 0;
border: 1px solid var(--f-rule);
background: var(--f-bg);
}
.card-header, .card-footer {
background: transparent;
border-color: var(--f-rule);
border-radius: 0;
}

.alert {
border-radius: 0;
border-width: 0;
border-left: 3px solid var(--f-fg);
background: var(--f-stripe-bg);
color: var(--f-fg);
}
.alert-danger  { border-left-color: var(--f-red); }
.alert-warning { border-left-color: var(--f-fg-muted); }
.alert-info    { border-left-color: var(--f-fg-muted); }
.alert-success { border-left-color: var(--f-fg); }

.alert-success::before,
.alert-danger::before,
.alert-warning::before,
.alert-info::before {
font-weight: 700;
margin-right: .45em;
font-variant-emoji: text;   
}
.alert-success::before { content: "\2713"; }   
.alert-danger::before  { content: "\2715"; }   
.alert-warning::before { content: "\0021"; }   
.alert-info::before    { content: "\2139"; }   

.dropdown-menu {
border-radius: 0;
border: 1px solid var(--f-rule);
background: var(--f-bg);
box-shadow: 0 8px 24px rgba(0,0,0,.06);
padding: .4rem 0;
font-size: .9rem;
}
.dropdown-item {
color: var(--f-fg);
padding: .5rem 1rem;
opacity: .85;
transition: none;
}
.dropdown-item:hover, .dropdown-item:focus {

background: transparent;
color: var(--f-fg);
opacity: 1;
text-shadow: 0 0 0.6px currentColor, 0 0 0.6px currentColor;
}

.pagination .page-link {
border-radius: 0;
border-color: var(--f-rule);
color: var(--f-fg);
background: var(--f-bg);
font-size: .82rem;
letter-spacing: .08em;
text-transform: uppercase;
}
.pagination .page-item.active .page-link {
background: var(--f-fg);
color: var(--f-bg);
border-color: var(--f-fg);
}
.pagination .page-item.disabled .page-link { color: var(--f-fg-faint); }

.badge {
border-radius: 0;
font-weight: 500;
letter-spacing: .12em;
text-transform: uppercase;
font-size: .65rem;
padding: .25rem .5rem;
background: var(--f-fg);
color: var(--f-bg);
}
.badge.bg-secondary { background: var(--f-fg-muted) !important; color: var(--f-bg); }
.badge.bg-light     { background: var(--f-stripe-bg) !important; color: var(--f-fg); border: 1px solid var(--f-rule); }

code, kbd, pre, samp {
font-family: var(--f-mono);
font-size: .85em;
}
code { color: var(--f-fg); background: var(--f-stripe-bg); padding: .1em .4em; }
pre code { background: transparent; padding: 0; }

.bg-body-tertiary { background: var(--f-stripe-bg) !important; }

.f-foot {
margin-top: auto;
padding: 1.5rem 0;

border-top: 0;

background: transparent;
font-size: .75rem;
color: var(--f-fg-muted);
}

.f-foot-mark {
font-family: var(--f-serif);
font-size: .95rem;
font-weight: 400;
letter-spacing: -0.02em;
}
.f-foot-mark em { font-style: normal; opacity: .35; }
.f-foot-link,
.f-foot-link:link,
.f-foot-link:visited,
.f-foot-link:hover,
.f-foot-link:focus {
color: inherit;
text-decoration: none;
}

.f-debug {
position: fixed;
bottom: 0; left: 0; right: 0;
z-index: 1070;
background: var(--f-fg);
color: var(--f-bg);
padding: .5rem 0;
font-family: var(--f-mono);
font-size: .72rem;
}
.f-debug code { background: transparent; color: var(--f-bg); padding: 0; }
.f-debug .f-eyebrow { color: var(--f-bg); opacity: .65; margin-right: .75rem; }

.f-cookie {

position: fixed;
left: 1rem;
right: auto;
bottom: calc(1rem + env(safe-area-inset-bottom));
max-width: min(420px, calc(100vw - 2rem));
z-index: 1075;

background: color-mix(in srgb, var(--f-bg) 62%, transparent);
-webkit-backdrop-filter: saturate(160%) blur(14px);
backdrop-filter: saturate(160%) blur(14px);
border: 1px solid color-mix(in srgb, var(--f-fg) 35%, transparent);
padding: .9rem 1rem;
font-size: .85rem;
box-shadow: 0 10px 30px color-mix(in srgb, var(--f-fg) 14%, transparent);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
.f-cookie { background: var(--f-bg); border-color: var(--f-fg); }
}
.f-cookie .container {
padding: 0;
max-width: none;
}

.f-totop {
position: fixed;
right: 24px;
bottom: calc(24px + env(safe-area-inset-bottom));
width: 44px;
height: 44px;
border-radius: 50%;
background: var(--f-accent);
color: #fff;
border: none;
cursor: pointer;
display: grid;
place-items: center;
opacity: 0;
visibility: hidden;
transform: translateY(10px);
z-index: 1076;
box-shadow: 0 6px 20px rgba(18, 14, 12, .20);
-webkit-backdrop-filter: saturate(1.2);
backdrop-filter: saturate(1.2);
transition: opacity .25s ease, transform .25s ease, visibility .25s ease, filter .2s;
}

html[data-bs-theme="dark"] .f-totop {
color: #170b0b;
box-shadow: 0 6px 20px rgba(0, 0, 0, .45);
}
.f-totop.show { opacity: 1; visibility: visible; transform: none; }
.f-totop:hover { filter: brightness(1.08); transform: translateY(-2px); }
.f-totop svg { display: block; }
@media (max-width: 720px) {
.f-totop { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: 42px; height: 42px; }
}

.f-tool-card,
.f-tool-card:link,
.f-tool-card:visited,
.f-tool-card:active {
position: relative;
overflow: hidden;
border: 1px solid color-mix(in srgb, var(--f-fg) 14%, transparent);
border-radius: 16px;
color: var(--f-fg);
background: linear-gradient(180deg,
color-mix(in srgb, var(--f-accent, #af3a1a) 5%, var(--bs-body-bg)) 0%,
color-mix(in srgb, var(--bs-body-bg) 84%, transparent) 100%);
text-decoration: none;
transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
box-shadow: 0 10px 26px -22px color-mix(in srgb, var(--f-fg) 40%, transparent) !important;
outline: none !important;
}
.f-tool-card::before {
content: ''; position: absolute; inset: 0 0 auto 0; height: 3px;
background: linear-gradient(90deg, var(--f-accent, #af3a1a),
color-mix(in srgb, var(--f-accent, #af3a1a) 25%, transparent));
opacity: .55; transition: opacity .16s ease;
}
.f-tool-card:hover,
.f-tool-card:focus,
.f-tool-card:focus-visible {
border-color: color-mix(in srgb, var(--f-accent, #af3a1a) 45%, transparent);
color: var(--f-fg);
text-decoration: none;
transform: translateY(-2px);
box-shadow: 0 18px 36px -24px color-mix(in srgb, var(--f-accent, #af3a1a) 55%, #000) !important;
outline: none !important;
}
.f-tool-card:hover::before,
.f-tool-card:focus-visible::before { opacity: 1; }

.f-drop {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
min-height: 15rem;
padding: 2rem 1.5rem;
cursor: pointer;
border: 2px dashed color-mix(in srgb, var(--f-accent, #af3a1a) 34%, color-mix(in srgb, var(--f-fg) 24%, transparent));
border-radius: 18px;
background: linear-gradient(180deg,
color-mix(in srgb, var(--f-accent, #af3a1a) 5%, var(--bs-body-bg)) 0%,
color-mix(in srgb, var(--bs-body-bg) 86%, transparent) 100%);
transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.f-drop::before {
content: '';
width: 2.9rem; height: 2.9rem;
margin-bottom: .7rem;
background: var(--f-accent, #af3a1a);
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l5 5h-3v6h-4V8H7l5-5zM5 19h14v2H5z'/%3E%3C/svg%3E") center / contain no-repeat;
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l5 5h-3v6h-4V8H7l5-5zM5 19h14v2H5z'/%3E%3C/svg%3E") center / contain no-repeat;
opacity: .82;
transition: transform .18s ease, opacity .18s ease;
}
.f-drop:hover {
border-color: color-mix(in srgb, var(--f-accent, #af3a1a) 60%, transparent);
background: linear-gradient(180deg,
color-mix(in srgb, var(--f-accent, #af3a1a) 8%, var(--bs-body-bg)) 0%,
color-mix(in srgb, var(--bs-body-bg) 82%, transparent) 100%);
box-shadow: 0 18px 38px -26px color-mix(in srgb, var(--f-accent, #af3a1a) 60%, #000);
}
.f-drop:hover::before { transform: translateY(-2px); opacity: 1; }
.f-drop.is-drag {
border-style: solid;
border-color: var(--f-accent, #af3a1a);
background: color-mix(in srgb, var(--f-accent, #af3a1a) 13%, var(--bs-body-bg));
box-shadow: 0 0 0 4px color-mix(in srgb, var(--f-accent, #af3a1a) 16%, transparent);
transform: scale(1.004);
}
.f-drop.is-drag::before { transform: translateY(-3px) scale(1.06); opacity: 1; }

.f-q-hide { display: none !important; }

.f-q { scroll-margin-top: 6rem; }

.f-q-err {
display: inline-block;
background: var(--f-red, #d9534f);
color: #fff;
font-family: var(--f-sans);
font-size: .62rem;
font-weight: 700;
letter-spacing: .08em;
line-height: 1;
padding: .25rem .45rem;
margin-right: .55rem;
text-transform: uppercase;
vertical-align: middle;
position: relative;
top: -1px;
}

.f-q:has(.f-q-err) {
border-left: 3px solid var(--f-red, #d9534f);
padding-left: 1.1rem;
margin-left: -1.1rem;
}
.f-q:has(.f-q-err) .f-q-label {
color: var(--f-red, #d9534f);
font-weight: 600;
}
.f-q:has(.f-q-err) .f-q-num {
color: var(--f-red, #d9534f);
}

.f-alert {
border-left: 3px solid var(--f-fg);
background: color-mix(in srgb, var(--f-fg) 4%, transparent);
padding: .9rem 1.1rem;
margin: 0 0 1.25rem;
}
.f-alert__title {
font-family: var(--f-sans);
font-size: .68rem;
font-weight: 600;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--f-fg);
margin: 0 0 .25rem;
}
.f-alert__body {
font-size: .95rem;
color: var(--f-fg);
margin: 0;
}
.f-alert__body a {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
.f-alert--error {
border-left-color: var(--f-red, #d9534f);
background: color-mix(in srgb, var(--f-red, #d9534f) 6%, transparent);
}
.f-alert--error .f-alert__title,
.f-alert--error .f-alert__body { color: var(--f-red, #d9534f); }

.f-alert--success {
border-left-color: #2e7d32;
background: color-mix(in srgb, #2e7d32 6%, transparent);
}
.f-alert--success .f-alert__title,
.f-alert--success .f-alert__body { color: #2e7d32; }

.f-alert--info {
border-left-color: #0066b3;
background: color-mix(in srgb, #0066b3 6%, transparent);
}
.f-alert--info .f-alert__title,
.f-alert--info .f-alert__body { color: #0066b3; }

.f-alert--warning {
border-left-color: #b8860b;
background: color-mix(in srgb, #b8860b 6%, transparent);
}
.f-alert--warning .f-alert__title,
.f-alert--warning .f-alert__body { color: #b8860b; }

.f-blank {  }

.f-dist-table { table-layout: fixed; }
.f-dist-table .f-dist-c1 { width: 26%; }
.f-dist-table .f-dist-c2 { width: 12%; }
.f-dist-table .f-dist-c3 { width: 50%; }
.f-dist-table .f-dist-c4 { width: 12%; }

.f-maint {
max-width: 40rem;
margin: 0 auto;
padding: 4.5rem 1.25rem 5.5rem;
min-height: 84vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: 1.5rem;
}
.f-maint-eyebrow {
font-family: var(--f-sans);
text-transform: uppercase;
letter-spacing: .22em;
font-size: .72rem;
font-weight: 600;
color: #6e1621;                       
margin: 0;
}
[data-bs-theme="dark"] .f-maint-eyebrow { color: #cc3843; }
.f-maint-title {

font-family: 'Fraunces', 'Instrument Serif', 'Instrument Serif Fallback', Georgia, serif;
font-weight: 600;
font-size: clamp(2.5rem, 7.5vw, 4rem);
line-height: 1.05;
color: var(--f-fg);
margin: 0;
max-width: 28rem;
letter-spacing: -.005em;
}
.f-maint-rule {
display: block;
width: 2.5rem;
height: 2px;
border-radius: 2px;
background: #6e1621;
opacity: .8;
margin: .25rem 0 0;
}
[data-bs-theme="dark"] .f-maint-rule { background: #cc3843; }

.text-muted { color: var(--f-fg-muted) !important; }

.bg-primary, .bg-dark { background: var(--f-fg) !important; color: var(--f-bg); }
.text-primary { color: var(--f-fg) !important; }

.f-tabs {
border-bottom: 1px solid var(--f-rule);
margin: 0 -2.5rem 2.5rem;
padding: 0 2.5rem;
display: flex;
flex-wrap: nowrap;
align-items: baseline;
gap: .15rem;
overflow-x: auto;
scrollbar-width: thin;
-webkit-overflow-scrolling: touch;
position: sticky;

top: var(--f-nav-h);
transition: top .28s ease;
z-index: 20;
background: var(--f-bg);
}
.f-tabs::-webkit-scrollbar { height: 3px; }
.f-tabs::-webkit-scrollbar-thumb { background: var(--f-rule); border-radius: 3px; }
.f-tabs a { flex: 0 0 auto; white-space: nowrap; }
@supports (backdrop-filter: blur(8px)) {
.f-tabs {
background: color-mix(in srgb, var(--f-bg) 97%, transparent);
backdrop-filter: blur(12px) saturate(1.4);
-webkit-backdrop-filter: blur(12px) saturate(1.4);
}
}
@media (max-width: 768px) {
.f-tabs {
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem;
}
}

.f-balances {
display: flex;
flex-wrap: wrap;
gap: 0;
border-top: 1px solid var(--f-rule);
border-bottom: 1px solid var(--f-rule);
}
.f-balances > div {
flex: 1 1 8rem;
min-width: 8rem;
padding: 1rem 1.25rem;
border-left: 1px solid var(--f-rule);
}
.f-balances > div:first-child {
border-left: none;
padding-left: 0;
}
.f-tabs a {
color: var(--f-fg-muted);
text-decoration: none;
font-size: .7rem;
font-weight: 500;
letter-spacing: .13em;
text-transform: uppercase;
padding: .55rem .9rem;
border-bottom: 2px solid transparent;
margin-bottom: -1px;
border-radius: 4px 4px 0 0;
transition: color .14s ease, border-color .14s ease, background .14s ease;
}
.f-tabs a:hover {
color: var(--f-fg);
background: color-mix(in srgb, var(--f-fg) 5%, transparent);
border-bottom-color: color-mix(in srgb, var(--f-fg) 30%, transparent);
}
.f-tabs a.active {
color: var(--f-fg);
border-bottom-color: var(--f-fg);
}
.f-tabs a.active:hover {
background: transparent;
border-bottom-color: var(--f-fg);
}
.f-tabs a:focus-visible {
outline: 2px solid var(--f-accent, var(--f-fg));
outline-offset: -2px;
}

.f-tabs-spacer {
flex: 0 0 auto;
width: 1.5rem;
align-self: stretch;
border-bottom: 1px solid transparent;
margin-bottom: -1px;
}

.f-tabs-primary {
flex-wrap: wrap;
overflow-x: visible;
row-gap: .15rem;
column-gap: .1rem;
padding-bottom: .15rem;
}
.f-tabs-primary .f-tabs-spacer {
flex-basis: 100%;
width: 0;
height: 0;
border: 0;
margin: 0;
}
.f-tabs-primary a {
font-size: .68rem;
padding: .5rem .75rem;
border-radius: 5px;
border-bottom-width: 0;
margin-bottom: 0;
}
.f-tabs-primary a.active {
background: color-mix(in srgb, var(--f-fg) 8%, transparent);
color: var(--f-fg);
}
.f-tabs-primary a.active:hover {
background: color-mix(in srgb, var(--f-fg) 8%, transparent);
}

.f-subtabs {
display: flex;
flex-wrap: wrap;
gap: 0;
margin-top: -1rem;
margin-bottom: 1.5rem;
padding-left: .25rem;
}
.f-subtabs a {
color: var(--f-fg-muted);
text-decoration: none;
font-size: .65rem;
font-weight: 500;
letter-spacing: .12em;
text-transform: uppercase;
padding: .4rem .75rem;
border-bottom: 1px solid transparent;
transition: color .12s, border-color .12s;
}
.f-subtabs a:hover { color: var(--f-fg); }
.f-subtabs a.active {
color: var(--f-fg);
border-bottom-color: var(--f-fg);
}

.f-subtabs-pills {
margin-top: -.75rem;
margin-bottom: 2rem;
padding-left: 0;
gap: .25rem;
}
.f-subtabs-pills a {
border: 1px solid transparent;
border-bottom: 1px solid transparent;
border-radius: 999px;
padding: .3rem .8rem;
font-size: .62rem;
letter-spacing: .14em;
}
.f-subtabs-pills a:hover {
background: var(--f-rule);
color: var(--f-fg);
}
.f-subtabs-pills a.active {
background: var(--f-fg);
color: var(--f-bg);
border-color: var(--f-fg);
}

@media (max-width: 767.98px) {
.f-tabs,
.f-subtabs {
flex-wrap: nowrap;
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
scrollbar-width: none;
-ms-overflow-style: none;
-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 1.75rem), transparent);
mask-image: linear-gradient(90deg, #000 calc(100% - 1.75rem), transparent);
}
.f-tabs::-webkit-scrollbar,
.f-subtabs::-webkit-scrollbar { display: none; }
.f-tabs a,
.f-subtabs a {
flex: 0 0 auto;
padding-left: .55rem;
padding-right: .55rem;
}

.f-tabs-spacer { display: none; }
}

.f-nav-collapse {
margin-bottom: 2rem;
}
.f-nav-collapse > summary {
list-style: none;
cursor: pointer;
user-select: none;
display: flex;
align-items: baseline;
gap: .5rem;
padding: .65rem 0;
border-bottom: 1px solid var(--f-rule);
}
.f-nav-collapse > summary::-webkit-details-marker { display: none; }
.f-nav-collapse > summary::before {
content: '▸';
color: var(--f-fg-muted);
font-size: .7rem;
display: inline-block;
transition: transform 120ms ease;
transform-origin: center;
width: .8em;
}
.f-nav-collapse[open] > summary::before { transform: rotate(90deg); }

.f-nav-collapse[open] > .f-tabs:first-of-type {
border-top: none;
}

.f-list-toolbar {
display: flex;
flex-wrap: wrap;
gap: .75rem;
align-items: center;
padding: .75rem 0;
border-bottom: 1px solid var(--f-rule);
margin-bottom: 1rem;
}
.f-list-toolbar .form-control,
.f-list-toolbar .form-select {
border: 0;
background: var(--f-stripe-bg);
padding: .4rem .75rem;
font-size: .85rem;
}

.f-stat {
border: 1px solid var(--f-rule);
padding: 1.5rem 1.25rem;
background: var(--f-bg);
}
.f-stat .f-eyebrow { display: block; margin-bottom: .65rem; }
.f-stat .stat-value {
font-family: var(--f-serif);
font-size: 2.25rem;
font-weight: 400;
letter-spacing: -0.03em;
line-height: 1;
}
.f-stat .stat-sub {
color: var(--f-fg-muted);
font-size: .8rem;
margin-top: .35rem;
}

.f-qr-frame {
display: inline-block;
border: 1px solid var(--f-rule);
padding: 1rem;
background: #fff;
line-height: 0;
}
.f-qr-frame img,
.f-qr-frame canvas,
.f-qr-frame svg {
display: block;
}

.f-dl {
margin: 0;
}
.f-dl > div {
display: flex;
align-items: baseline;
gap: 1.5rem;
padding: .85rem 0;
border-bottom: 1px solid var(--f-rule);
}
.f-dl dt {
flex: 0 0 220px;
font-size: .72rem;
font-weight: 500;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-muted);
}
.f-dl dd { flex: 1; margin: 0; }

@media (prefers-reduced-motion: reduce) {
* { transition: none !important; animation: none !important; }
}

.f-page-fluid {
width: 100%;
max-width: none;
padding-left: 2.5rem;
padding-right: 2.5rem;
}
@media (max-width: 768px) {
.f-page-fluid {
padding-left: 1rem;
padding-right: 1rem;
}
}

.f-admin {
max-width: none;
margin: 0;
padding: 0;
}

.f-admin-header {
margin-bottom: 2rem;
padding: 1.5rem 0 0;
}
.f-admin .f-admin-header .f-eyebrow::before {
content: "— ";
opacity: .55;
}
.f-admin .f-admin-header .f-eyebrow {
font-size: .7rem;
letter-spacing: .25em;
text-transform: uppercase;
opacity: .45;
margin-bottom: 0;
}
.f-admin-ghost .f-admin-header .f-eyebrow {
color: var(--f-fg);
opacity: .55;
}

.f-admin-body {
padding-top: 1rem;
}

.f-stats-row {
display: flex;
flex-wrap: wrap;
gap: 2.25rem;
padding: 1rem 0 1.25rem;
margin-bottom: 1.5rem;
border-bottom: 1px solid var(--f-rule);
}
.f-kpi .v {
font-family: var(--f-serif);
font-size: 1.55rem;
font-weight: 400;
line-height: 1.1;
font-variant-numeric: tabular-nums;
letter-spacing: -.01em;
}
.f-kpi .l {
font-size: .65rem;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-muted);
margin-top: .25rem;
}

.f-empty {
text-align: center;
color: var(--f-fg-muted);
font-size: .9rem;
padding: 2.5rem 1rem;
font-style: italic;
}

.f-eyebrow-sub {
font-size: .62rem;
font-weight: 600;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--f-fg-muted);
margin: 2rem 0 .75rem;
}
.f-eyebrow-sub::before { content: "— "; opacity: .55; }

.f-admin .alert {
border-radius: 3px;
font-size: .9rem;
border-width: 1px;
}

.f-admin .btn {
border-radius: 3px;
font-size: .85rem;
}
.f-admin .form-label {
font-size: .72rem;
font-weight: 500;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--f-fg-muted);
}

@media (max-width: 480px) {

.f-admin { padding: 0; }
}

.f-admin,
.lca-toast {

--lca-card:    color-mix(in srgb, var(--f-bg) 66%, transparent);
--lca-card-2:  color-mix(in srgb, var(--f-fg) 3%,  transparent);
--lca-line:    color-mix(in srgb, var(--f-fg) 12%, transparent);
--lca-line-2:  color-mix(in srgb, var(--f-fg) 6%,  transparent);

--lca-green:   #1a9c66;
--lca-amber:   #c17a00;
--lca-radius:    18px;
--lca-radius-sm: 12px;
--lca-radius-xs: 10px;

--f-accent:      #6e1621;
--f-accent-soft: #8f2a20;
}
[data-bs-theme="dark"] .f-admin,
[data-bs-theme="dark"] .lca-toast {
--lca-card:    color-mix(in srgb, var(--f-bg) 62%, transparent);
--lca-card-2:  color-mix(in srgb, var(--f-fg) 4%,  transparent);
--lca-line:    color-mix(in srgb, var(--f-fg) 14%, transparent);
--lca-line-2:  color-mix(in srgb, var(--f-fg) 7%,  transparent);
--lca-green:   #54d199;
--lca-amber:   #ffc061;
--f-accent:      #cc3843;   
--f-accent-soft: #a82f38;
}

.f-admin .f-admin-header .f-eyebrow { color: var(--f-accent); opacity: .78; }

.f-ox-accent { color: var(--f-accent); font-weight: 600; }

.f-oxblood { color: #6e1621; }
html[data-bs-theme="dark"] .f-oxblood { color: #cc3843; }
.f-admin .f-tabs-primary a.active,
.f-admin .f-tabs-primary a.active:hover {
background: color-mix(in srgb, var(--f-accent) 12%, transparent);
color: var(--f-accent);
}
.f-admin .f-subtabs-pills a.active {
background: var(--f-accent);
color: #fff;
border-color: var(--f-accent);
}
.f-admin .lca-card::before {
content: '';
position: absolute; top: 0; left: 0; right: 0; height: 3px;
border-radius: var(--lca-radius) var(--lca-radius) 0 0;
background: linear-gradient(90deg, var(--f-accent),
color-mix(in srgb, var(--f-accent) 22%, transparent));
pointer-events: none;
}

.f-admin .f-tabs-primary {

position: static;
border-bottom: 0;
margin: 0 0 2rem;
padding: 6px;
gap: 3px;
row-gap: 3px;
align-items: center;
background: color-mix(in srgb, var(--f-fg) 4%, var(--bs-body-bg));
border: 1px solid color-mix(in srgb, var(--f-fg) 11%, transparent);
border-radius: 15px;
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--f-fg) 5%, transparent);
}
.f-admin .f-tabs-primary a {
font-size: .66rem;
letter-spacing: .09em;
padding: .44rem .72rem;
border-radius: 9px;
border: 0;
margin: 0;
color: var(--f-fg-muted);
transition: background .14s ease, color .14s ease;
}
.f-admin .f-tabs-primary a:hover {
background: color-mix(in srgb, var(--f-accent) 9%, transparent);
color: var(--f-accent);
border-color: transparent;
}
.f-admin .f-tabs-primary a.active,
.f-admin .f-tabs-primary a.active:hover {
background: var(--f-accent);
color: #fff;
box-shadow: 0 5px 13px -5px color-mix(in srgb, var(--f-accent) 62%, #000);
}

.f-admin .f-tabs-primary .f-tabs-spacer {
flex-basis: 100%;
width: auto;
height: 1px;
margin: 3px 4px;
border: 0;
background: color-mix(in srgb, var(--f-fg) 12%, transparent);
}

.f-admin .f-tabs-primary .f-ghost-tab {
color: color-mix(in srgb, var(--f-fg-muted) 70%, var(--f-accent));
}
.f-admin .f-tabs-primary .f-ghost-tab:hover {
background: color-mix(in srgb, var(--f-accent) 9%, transparent);
color: var(--f-accent);
border-color: transparent;
}

.f-admin .f-tabs-ghost-label {
color: var(--f-accent);
opacity: .72;
font-size: .6rem;
letter-spacing: .16em;
margin: 0 0 .45rem 2px;
}
.f-admin .f-tabs-ghost {
margin-top: 0;
border-color: color-mix(in srgb, var(--f-accent) 32%, transparent);
background: color-mix(in srgb, var(--f-accent) 5%, var(--bs-body-bg));
}
.f-admin .f-tabs-primary .f-ghost-tab.active { color: #fff; }
.f-admin .f-tabs-primary .f-ghost-tab::before { opacity: .5; font-size: .72em; }

.f-admin-header {
padding: 2rem 0 0;
margin-bottom: 1.25rem;
}

.f-admin .f-admin-header .f-eyebrow {
opacity: .55;
color: var(--f-fg-muted);
}
.f-admin-title {
font-family: var(--f-serif);
font-weight: 400;

text-transform: none;
font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.15rem);
line-height: 1.08;
letter-spacing: -.015em;
margin: .35rem 0 0;
}
.f-admin-title .accent { color: var(--f-accent); }

.f-admin-title .f-admin-count {
font-family: var(--f-sans);
font-size: .5em;
font-weight: 500;
letter-spacing: .02em;
color: var(--f-fg-faint);
vertical-align: .35em;
margin-left: .3em;
}
.f-admin-lede {
color: var(--f-fg-muted);
font-size: .9rem;
line-height: 1.55;
max-width: 62ch;
margin: .5rem 0 0;
}

.lca-card {
position: relative;
background: var(--lca-card);
border: 1px solid var(--lca-line);
border-radius: var(--lca-radius);
padding: 1rem 1.05rem 1.05rem;
margin-bottom: .7rem;
-webkit-backdrop-filter: saturate(150%) blur(14px);
backdrop-filter: saturate(150%) blur(14px);
}
.lca-card + .lca-card { margin-top: 0; }
.lca-card-top {
display: flex;
align-items: center;
gap: .65rem;
}
.lca-av {
width: 34px;
height: 34px;
border-radius: 50%;
display: grid;
place-items: center;
font-size: .72rem;
font-weight: 700;
color: #fff;
flex: none;
background: var(--f-accent);   
}
.lca-who  { font-weight: 600; font-size: .875rem; line-height: 1.2; }
.lca-sub  { font-size: .74rem; color: var(--f-fg-muted); margin-top: .1rem; }
.lca-dates {
margin: .7rem 0 0;
font-size: .84rem;
font-variant-numeric: tabular-nums;
}

.lca-memo {
margin-top: .5rem;
font-size: .78rem;
color: var(--f-fg-muted);
font-style: italic;
padding-left: .6rem;
border-left: 2px solid var(--lca-line);
}

.lca-memo.own {
border-left-color: color-mix(in oklab, var(--f-accent) 45%, var(--lca-line));
font-style: normal;
}
.lca-tag {
margin-left: auto;
font-size: .66rem;
font-weight: 600;
letter-spacing: .1em;
text-transform: uppercase;
padding: .25rem .55rem;
border-radius: 999px;
border: 1px solid var(--lca-line);
color: var(--f-fg-muted);
background: var(--lca-card-2);
white-space: nowrap;
}

.lca-wallet { display: flex; gap: .55rem; margin: .8rem 0 0; }
.lca-coin {
flex: 1;
border: 1px solid var(--lca-line);
border-radius: var(--lca-radius-sm);
padding: .55rem .65rem;
background: var(--lca-card-2);
}
.lca-coin .n {
display: block;
font-family: var(--f-serif);
font-size: 1.45rem;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.lca-coin .l {
font-size: .62rem;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--f-fg-muted);
margin-top: .25rem;
}
.lca-coin .n.tick { animation: lcaPop .5s ease; color: var(--f-accent); }
@keyframes lcaPop {
0% { transform: scale(1); }
35% { transform: scale(1.22); }
100% { transform: scale(1); }
}

.lca-cov {
margin-top: .75rem;
border-radius: var(--lca-radius-sm);
padding: .6rem .7rem;
font-size: .8rem;
line-height: 1.45;
border: 1px solid transparent;
display: flex;
gap: .55rem;
align-items: flex-start;
}
.lca-cov.ok {
background:   color-mix(in srgb, var(--lca-green) 14%, transparent);
border-color: color-mix(in srgb, var(--lca-green) 34%, transparent);
}
.lca-cov.warn {
background:   color-mix(in srgb, var(--lca-amber) 15%, transparent);
border-color: color-mix(in srgb, var(--lca-amber) 40%, transparent);
}
.lca-cov .dot {
width: .95rem;
height: .95rem;
flex: none;
margin-top: .12rem;
display: grid;
place-items: center;
font-size: .7rem;
font-weight: 700;
line-height: 1;
font-variant-emoji: text;
border-radius: 50%;
}

.lca-cov.ok   .dot { color: var(--lca-green); }
.lca-cov.warn .dot { color: var(--lca-amber); }
.lca-cov.ok   .dot::before { content: "\2713"; }   
.lca-cov.warn .dot::before { content: "\0021"; }   
.lca-cov .txt b { font-weight: 600; }
.lca-cov .roster { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .45rem; }
.lca-cov .rav {
width: 22px;
height: 22px;
border-radius: 50%;
display: grid;
place-items: center;
font-size: .56rem;
font-weight: 700;
color: #fff;
position: relative;
background: var(--f-fg-faint);
}
.lca-cov .rav.off { opacity: .34; }
.lca-cov .rav.off::after {
content: "";
position: absolute;
inset: 0;
border-radius: 50%;
box-shadow: 0 0 0 1.5px var(--lca-amber) inset;
}

.lca-cov .rav.self {
background: var(--f-accent);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--f-accent) 26%, transparent);
}

.lca-chip {
font-size: .78rem;
padding: .45rem .65rem;
border-radius: var(--lca-radius-xs);
cursor: pointer;
border: 1px solid var(--lca-line);
background: var(--lca-card-2);
color: var(--f-fg);
font-weight: 500;
}
.lca-chip:hover { border-color: color-mix(in srgb, var(--f-accent) 45%, transparent); }
.lca-chip[aria-pressed="true"] {
border-color: var(--f-accent);
background: color-mix(in srgb, var(--f-accent) 16%, transparent);
}

.lca-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .45rem;
padding: .55rem .95rem;
border-radius: var(--lca-radius-sm);
cursor: pointer;
font: inherit;
font-weight: 600;
font-size: .82rem;
border: 0;
color: #fff;
background: linear-gradient(180deg, var(--f-accent), color-mix(in srgb, var(--f-accent) 78%, #000));
box-shadow: 0 8px 22px -12px color-mix(in srgb, var(--f-accent) 70%, transparent);
}
.lca-btn:hover  { filter: brightness(1.06); color: #fff; }
.lca-btn:active { transform: translateY(1px); }
.lca-btn[disabled] { opacity: .4; cursor: not-allowed; filter: none; }
.lca-btn.ghost {
background: none;
border: 1px solid var(--lca-line);
color: var(--f-fg);
box-shadow: none;
}
.lca-btn.ghost:hover { color: var(--f-fg); border-color: var(--f-accent); }
.lca-btn.ok {
background: linear-gradient(180deg, var(--lca-green), color-mix(in srgb, var(--lca-green) 74%, #000));
box-shadow: 0 8px 22px -12px color-mix(in srgb, var(--lca-green) 70%, transparent);
}

.lca-btn.danger {
background: none;
border: 1px solid color-mix(in srgb, var(--f-red, #d5562c) 55%, transparent);
color: var(--f-red, #d5562c);
box-shadow: none;
}
.lca-btn.danger:hover { color: #fff; background: var(--f-red, #d5562c); border-color: var(--f-red, #d5562c); }
.lca-btn-row {
display: flex;
flex-wrap: wrap;
gap: .45rem;
margin-top: .85rem;
}

.lca-toast {
position: fixed;
left: 1rem;
right: 1rem;
bottom: 1rem;
z-index: 4997;   
max-width: 30rem;
margin: 0 auto;
display: flex;
align-items: center;
gap: .55rem;
padding: .7rem .8rem;
border-radius: var(--lca-radius-sm);
background: var(--lca-card);
border: 1px solid var(--lca-line);
font-size: .8rem;
-webkit-backdrop-filter: saturate(150%) blur(14px);
backdrop-filter: saturate(150%) blur(14px);
transform: translateY(160%);
opacity: 0;
pointer-events: none;
transition: transform .4s cubic-bezier(.32,.72,0,1), opacity .3s ease;
}
.lca-toast.show { transform: translateY(0); opacity: 1; }
.lca-toast .tdot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--lca-green);
flex: none;
}

.lca-fade { animation: lcaIn .28s ease; }
@keyframes lcaIn {
from { opacity: 0; transform: translateY(6px); }
to   { opacity: 1; transform: none; }
}

.att-toast {
position: fixed;
left: 1rem;
right: 1rem;
bottom: 1rem;
z-index: 4997;
max-width: 30rem;
margin: 0 auto;
display: flex;
align-items: center;
gap: .55rem;
padding: .7rem .85rem;
border-radius: 12px;
background: var(--f-fg);
color: var(--f-bg);
font-size: .82rem;
box-shadow: 0 10px 34px rgba(0, 0, 0, .22);
transform: translateY(160%);
opacity: 0;
pointer-events: none;
transition: transform .4s cubic-bezier(.32, .72, 0, 1), opacity .3s ease;
}
.att-toast.show { transform: translateY(0); opacity: 1; }
.att-toast .att-toast-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--f-accent);
flex: none;
}
@media (prefers-reduced-motion: reduce) {
.att-toast { transition: opacity .3s ease; transform: none; }
}

.f-admin .btn {
border-radius: var(--lca-radius-xs);
font-size: .82rem;
}
.f-admin .form-control,
.f-admin .form-select {
border: 1px solid var(--lca-line);
background: var(--lca-card-2);
border-radius: var(--lca-radius-xs);
color: var(--f-fg);
}
.f-admin .form-control:focus,
.f-admin .form-select:focus {
border-color: var(--f-accent);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--f-accent) 18%, transparent);
background: var(--lca-card-2);
color: var(--f-fg);
}
.f-admin .alert { border-radius: var(--lca-radius-sm); }

.f-admin .f-list-toolbar {
padding: .6rem .75rem;
border: 1px solid var(--lca-line);
border-radius: var(--lca-radius-sm);
background: var(--lca-card);
-webkit-backdrop-filter: saturate(150%) blur(14px);
backdrop-filter: saturate(150%) blur(14px);
gap: .5rem;
}
.f-admin .f-list-toolbar .form-control,
.f-admin .f-list-toolbar .form-select {
border: 1px solid var(--lca-line-2);
background: var(--lca-card-2);
border-radius: var(--lca-radius-xs);
padding: .35rem .65rem;
font-size: .8rem;
}
.f-admin .f-list-toolbar .btn {
border-radius: var(--lca-radius-xs);
border-color: var(--lca-line);
color: var(--f-fg-muted);
}
.f-admin .f-list-toolbar .btn:hover {
border-color: var(--f-accent);
color: var(--f-accent);
background: color-mix(in srgb, var(--f-accent) 10%, transparent);
}

.f-admin .table {
--bs-table-bg: transparent;
font-size: .9rem;
margin-top: 1.1rem;
border-color: var(--lca-line-2);
}
.f-admin .table > thead > tr > th {
font-family: var(--f-sans);
font-size: .62rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-faint);
border-bottom: 1px solid var(--lca-line);
padding-bottom: .6rem;
white-space: nowrap;
}

.f-admin .table > tbody > tr > td,
.f-admin .table > tbody > tr > th {
background: transparent;
border-bottom: 1px solid var(--lca-line-2);
padding-top: .58rem;
padding-bottom: .58rem;
color: var(--f-fg);
}
.f-admin .table > tbody > tr:last-child > td { border-bottom: 0; }
.f-admin .table > tbody > tr > td.text-end,
.f-admin .table > thead > tr > th.text-end { font-variant-numeric: tabular-nums; }
.f-admin .table > tbody > tr:hover > td {
background: color-mix(in srgb, var(--f-accent) 5%, transparent);
}
.f-admin .table code { color: var(--f-fg-muted); }

.f-admin .f-list-pager {
align-items: center;
gap: .75rem;
font-variant-numeric: tabular-nums;
}
.f-admin .f-list-pager a {
text-decoration: none;
padding: .3rem .7rem;
border: 1px solid var(--lca-line);
border-radius: 999px;
color: var(--f-fg-muted);
}
.f-admin .f-list-pager a:hover {
border-color: var(--f-accent);
color: var(--f-accent);
}

html.f-noglass .f-admin {
--lca-card:   var(--f-bg);
--lca-card-2: var(--f-stripe-bg);
}
html.f-noglass .f-admin .lca-card,
html.f-noglass .f-admin .lca-toast,
html.f-noglass .f-admin .f-list-toolbar {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

@media (prefers-reduced-motion: reduce) {
.lca-fade,
.lca-coin .n.tick { animation: none; }
.lca-toast { transition: none; }
.lca-btn:active { transform: none; }
}

@media (max-width: 480px) {
.lca-card { padding: .85rem .8rem .9rem; border-radius: var(--lca-radius-sm); }
.lca-wallet { gap: .4rem; }
.f-admin .f-list-toolbar { padding: .5rem .55rem; }
}

.f-search-modal {
position: fixed;
inset: 0;
z-index: 1080;
display: flex;
align-items: flex-start;
justify-content: center;
padding: 6rem 1rem 1rem;
}
.f-search-modal[hidden] { display: none; }

.f-search-backdrop {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, .35);
backdrop-filter: blur(2px);
-webkit-backdrop-filter: blur(2px);
}

.f-search-panel {
position: relative;
width: 100%;
max-width: 36rem;
background: var(--f-bg);
border: 1px solid var(--f-rule);
border-radius: 4px;
box-shadow: 0 1rem 3rem rgba(0,0,0,.18);
max-height: 72vh;
display: flex;
flex-direction: column;
}

.f-search-bar {
display: flex;
align-items: center;
gap: .85rem;
padding: 1.1rem 1.35rem .85rem;
border-bottom: 1px solid var(--f-rule);
}
.f-search-icon {
width: 1.1rem;
height: 1.1rem;
color: var(--f-fg-muted);
flex: 0 0 auto;
}
.f-search-input {
flex: 1 1 auto;
border: 0;
outline: 0;
background: transparent;
color: var(--f-fg);
font-family: var(--f-serif);
font-size: 1.4rem;
font-weight: 400;
letter-spacing: -.01em;
padding: .2rem 0;
}
.f-search-input::placeholder {
color: var(--f-fg-muted);
opacity: .55;
font-style: italic;
}
.f-search-close {
border: 1px solid var(--f-rule);
background: transparent;
color: var(--f-fg-muted);
font-size: .62rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
padding: .25rem .55rem;
border-radius: 3px;
cursor: pointer;
transition: color .12s, border-color .12s;
}
.f-search-close:hover { color: var(--f-fg); border-color: var(--f-fg); }

.f-search-results {
list-style: none;
margin: 0;
padding: .25rem 0;
overflow-y: auto;
flex: 1 1 auto;
}
.f-search-results:empty { display: none; }

.f-search-result {
display: block;
padding: .85rem 1.35rem;
color: var(--f-fg);
text-decoration: none;
border-left: 2px solid transparent;
transition: background .1s, border-color .1s;
}

button.f-search-result {
width: 100%;
text-align: left;
background: none;
border-top: 0;
border-right: 0;
border-bottom: 0;
font: inherit;
cursor: pointer;
}
.f-search-result:hover,
.f-search-result.is-active {
background: rgba(0,0,0,.04);
border-left-color: var(--f-fg);
color: var(--f-fg);
text-decoration: none;
}
.f-search-result .l {
font-family: var(--f-serif);
font-size: 1.05rem;
font-weight: 400;
line-height: 1.2;
letter-spacing: -.01em;
}
.f-search-result .c {
margin-top: .15rem;
font-size: .6rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--f-fg-muted);
}
.f-search-result mark {
background: transparent;
color: var(--f-fg);
font-weight: 600;
padding: 0;
}

.f-search-empty {
text-align: center;
padding: 2.5rem 1.5rem;
color: var(--f-fg-muted);
font-style: italic;
font-size: .9rem;
margin: 0;
}
.f-search-empty[hidden] { display: none; }

.f-nav-overlay__search.f-nav-overlay__search--live {
display: block;
margin: .5rem 1.5rem 1.25rem;
align-items: initial;
}
.f-nav-overlay__search--live .f-nav-overlay__search-bar {
display: flex;
align-items: center;
gap: .75rem;
padding: .85rem 0;
border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.f-nav-overlay__search--live .f-nav-overlay__search-bar svg {
width: 1.1rem;
height: 1.1rem;
color: currentColor;
opacity: .55;
flex: 0 0 auto;
}
.f-nav-overlay__search--live .f-nav-overlay__search-bar input {
flex: 1 1 auto;
width: 100%;
min-width: 0;
border: 0;
outline: 0;
background: transparent;
color: inherit;
font-family: var(--f-serif);
font-size: 1.35rem;
font-weight: 400;
letter-spacing: -.01em;
padding: .1rem 0;
appearance: none;
-webkit-appearance: none;
border-radius: 0;
box-shadow: none;
}
.f-nav-overlay__search--live .f-nav-overlay__search-bar input::placeholder {
color: currentColor;
opacity: .45;
font-style: italic;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results {
list-style: none;
margin: .5rem 0 0;
padding: 0;
display: block;
width: 100%;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results:empty { display: none; }
.f-nav-overlay__search--live .f-nav-overlay__search-results li {
margin: 0;
display: block;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results li a {
display: block;
padding: .9rem 0;
color: inherit;
text-decoration: none;
border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}
.f-nav-overlay__search--live .f-nav-overlay__search-results li:last-child a {
border-bottom: 0;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results li a .l {
font-family: var(--f-serif);
font-size: 1.2rem;
font-weight: 400;
line-height: 1.25;
display: block;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results li a .c {
margin-top: .2rem;
font-size: .6rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
opacity: .55;
display: block;
}
.f-nav-overlay__search--live .f-nav-overlay__search-results li a mark {
background: transparent;
color: inherit;
font-weight: 600;
padding: 0;
}

@media (max-width: 480px) {
.f-search-modal { padding: 4rem .75rem .75rem; }
.f-search-input { font-size: 1.2rem; }
.f-search-result .l { font-size: 1rem; }
.f-search-close { display: none; }
}

.f-itunes {

--it-accent:       #d4ff3a;
--it-accent-soft:  rgba(212, 255, 58, .18);
--it-radius:       12px;
--it-radius-sm:    8px;
--it-radius-art:   6px;

background: var(--it-bg-grad) fixed;
color: var(--it-fg);
max-width: 88rem;
margin: 0 auto;
padding: 1.5rem 2rem 8rem;
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;
font-weight: 400;
letter-spacing: -0.005em;
}

:root .f-itunes,
[data-bs-theme="dark"] .f-itunes {
--it-bg:           #0a0a0a;
--it-bg-grad:      radial-gradient(ellipse at top, #1a1a1f 0%, #0a0a0a 60%);
--it-surface:      rgba(255, 255, 255, .04);
--it-surface-2:    rgba(255, 255, 255, .07);
--it-surface-3:    rgba(255, 255, 255, .11);
--it-border:       rgba(255, 255, 255, .08);
--it-border-hi:    rgba(255, 255, 255, .16);
--it-fg:           #ffffff;
--it-fg-2:         rgba(255, 255, 255, .72);
--it-fg-3:         rgba(255, 255, 255, .48);
--it-art-empty:    #1a1a1a;
--it-shadow:       0 8px 32px rgba(0, 0, 0, .5);
--it-shadow-lift:  0 16px 48px rgba(0, 0, 0, .6);
--it-glass-bg:     rgba(20, 20, 22, .85);
--it-glass-border: rgba(255, 255, 255, .1);
--it-danger-bg:    rgba(255, 80, 80, .15);
--it-danger-fg:    #ff8a8a;
}
[data-bs-theme="light"] .f-itunes {
--it-bg:           #fafafa;
--it-bg-grad:      radial-gradient(ellipse at top, #ffffff 0%, #f3f3f5 60%);
--it-surface:      rgba(0, 0, 0, .035);
--it-surface-2:    rgba(0, 0, 0, .06);
--it-surface-3:    rgba(0, 0, 0, .1);
--it-border:       rgba(0, 0, 0, .08);
--it-border-hi:    rgba(0, 0, 0, .18);
--it-fg:           #0a0a0a;
--it-fg-2:         rgba(10, 10, 10, .68);
--it-fg-3:         rgba(10, 10, 10, .45);
--it-art-empty:    #ececec;
--it-shadow:       0 4px 16px rgba(0, 0, 0, .06);
--it-shadow-lift:  0 12px 36px rgba(0, 0, 0, .12);
--it-glass-bg:     rgba(252, 252, 252, .82);
--it-glass-border: rgba(0, 0, 0, .08);
--it-danger-bg:    rgba(220, 38, 38, .1);
--it-danger-fg:    #b91c1c;
}

@media (max-width: 768px) {
.f-itunes { padding: 1rem 1rem 8rem; }
}

[data-bs-theme="dark"]  body:has(.f-itunes) { background: #0a0a0a; }
[data-bs-theme="light"] body:has(.f-itunes) { background: #fafafa; }

.f-itunes a { color: inherit; text-decoration: none; }
.f-itunes a:hover { color: var(--it-fg); }

.f-itunes-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 2rem;
flex-wrap: wrap;
margin-bottom: 2rem;
padding-bottom: 1.25rem;
border-bottom: 1px solid var(--it-border);
}
.f-itunes-title {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 700;
letter-spacing: -0.03em;
line-height: 1;
margin: 0;
background: linear-gradient(180deg, var(--it-fg) 0%, var(--it-fg-2) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.f-eyebrow,
.f-itunes p.f-eyebrow {

font-size: .72rem;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--it-fg-3);
margin: 0 0 .35rem;
}
.f-itunes-header-links {
display: flex;
gap: .5rem;
flex-wrap: wrap;
}
.f-itunes-header-links a,
.f-itunes-backlink {
display: inline-flex;
align-items: center;
gap: .35rem;
padding: .5rem 1rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 999px;
color: var(--it-fg-2);
font-size: .8rem;
font-weight: 600;
transition: background .15s, border-color .15s, color .15s;
}
.f-itunes-header-links a:hover,
.f-itunes-backlink:hover {
background: var(--it-surface-2);
border-color: var(--it-border-hi);
color: var(--it-fg);
}

.f-itunes-search-bar {
margin: 0 0 2.5rem;
padding: 0;
border: 0;
}
.f-itunes-search-bar input[type="search"] {
width: 100%;
padding: 1.1rem 1.5rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 999px;
color: var(--it-fg);
font-family: inherit;
font-size: 1rem;
font-weight: 500;
outline: 0;
transition: background .15s, border-color .15s;
}
.f-itunes-search-bar input[type="search"]::placeholder { color: var(--it-fg-3); font-weight: 500; font-style: normal; }
.f-itunes-search-bar input[type="search"]:focus {
background: var(--it-surface-2);
border-color: var(--it-border-hi);
}

.f-itunes-filters {
display: flex;
gap: .75rem;
flex-wrap: wrap;
margin: 0 0 2rem;
}
.f-itunes-search,
.f-itunes-genre,
.f-itunes-sort {
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 999px;
color: var(--it-fg);
font-family: inherit;
font-size: .85rem;
padding: .65rem 1.1rem;
}
.f-itunes-search { flex: 1 1 16rem; }
.f-itunes-search::placeholder { color: var(--it-fg-3); }
.f-itunes-search:focus,
.f-itunes-genre:focus,
.f-itunes-sort:focus {
background: var(--it-surface-2);
border-color: var(--it-border-hi);
outline: 0;
}

.f-itunes-hero {
display: grid;
grid-template-columns: minmax(0, 22rem) 1fr;
gap: 3rem;
align-items: center;
padding: 3rem;
margin: 0 0 3rem;
background: linear-gradient(135deg, var(--it-surface-2) 0%, var(--it-surface) 100%);
border: 1px solid var(--it-border);
border-radius: 24px;
position: relative;
overflow: hidden;
}
.f-itunes-hero::before {

content: "";
position: absolute;
inset: -50% -30% auto auto;
width: 80%;
height: 200%;
background: radial-gradient(ellipse at center, rgba(212, 255, 58, .08) 0%, transparent 60%);
pointer-events: none;
}
.f-itunes-hero-art {
position: relative;
z-index: 1;
aspect-ratio: 1 / 1;
background-size: cover;
background-position: center;
background-color: var(--it-art-empty);
border-radius: var(--it-radius);
box-shadow: var(--it-shadow-lift);
transition: transform .25s ease-out;
}
.f-itunes-hero-art:hover { transform: scale(1.02); }
.f-itunes-hero-art.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 4rem; font-weight: 400;
}
.f-itunes-hero-text { position: relative; z-index: 1; }
.f-itunes-hero-title {
font-size: clamp(2rem, 4vw, 3.5rem);
font-weight: 700;
letter-spacing: -0.025em;
line-height: 1.05;
margin: .5rem 0 .75rem;
}
.f-itunes-hero-title a:hover { opacity: 1; }
.f-itunes-hero-artist {
font-size: 1.15rem;
color: var(--it-fg-2);
margin: 0 0 2rem;
font-weight: 500;
}
.f-itunes-hero-artist a {
color: var(--it-fg);
border-bottom: 1px solid var(--it-border-hi);
padding-bottom: 1px;
}
.f-itunes-hero-artist a:hover { border-bottom-color: var(--it-fg); }
@media (max-width: 768px) {
.f-itunes-hero {
grid-template-columns: 1fr;
padding: 2rem;
gap: 2rem;
}
.f-itunes-hero-art { max-width: 18rem; }
}

.f-itunes-section { margin: 0 0 3.5rem; }
.f-itunes-section-header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 1rem;
margin: 0 0 1.5rem;
}
.f-itunes-section-header p,
.f-itunes-section-header > .f-eyebrow {
font-size: 1.5rem;
font-weight: 700;
letter-spacing: -0.015em;
text-transform: none;
color: var(--it-fg);
margin: 0;
}
.f-itunes-section-link {
font-size: .8rem;
font-weight: 600;
color: var(--it-fg-3);
transition: color .15s;
text-transform: none;
letter-spacing: 0;
}
a.f-itunes-section-link:hover { color: var(--it-fg); }

.f-itunes-rails-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
gap: 2.5rem;
margin: 0 0 3.5rem;
padding: 0;
border: 0;
}

.f-itunes-strip {
display: grid;
grid-auto-flow: column;
grid-auto-columns: 12rem;
gap: 1.25rem;
overflow-x: auto;
padding: .25rem .25rem 1rem;
scroll-snap-type: x mandatory;
scrollbar-width: thin;
scrollbar-color: var(--it-border-hi) transparent;
}
.f-itunes-strip::-webkit-scrollbar { height: 6px; }
.f-itunes-strip::-webkit-scrollbar-thumb { background: var(--it-border-hi); border-radius: 3px; }
.f-itunes-strip-tile {
position: relative;
scroll-snap-align: start;
display: block;
}
.f-itunes-strip-item {
display: flex;
flex-direction: column;
gap: .5rem;
}
.f-itunes-strip-art {
aspect-ratio: 1 / 1;
background-size: cover;
background-position: center;
background-color: var(--it-art-empty);
border-radius: var(--it-radius-art);
box-shadow: 0 4px 12px rgba(0,0,0,.4);
transition: transform .25s ease-out, box-shadow .25s;
}
.f-itunes-strip-item:hover .f-itunes-strip-art {
transform: translateY(-4px);
box-shadow: 0 12px 28px rgba(0,0,0,.55);
}
.f-itunes-strip-art.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 2.5rem; font-weight: 400;
}

.f-itunes-tile-play {
position: absolute;
top: .5rem;
right: .5rem;
width: 2rem;
height: 2rem;
padding: 0;
border: 0;
border-radius: 50%;
background: var(--it-accent, #d4ff3a);
color: #000;
font-size: .85rem;
line-height: 1;
display: flex; align-items: center; justify-content: center;
cursor: pointer;
z-index: 3;
box-shadow: 0 4px 10px rgba(0,0,0,.4);
transition: transform .12s ease-out, background .15s, box-shadow .15s;
}
.f-itunes-tile-play:hover,
.f-itunes-tile-play:focus-visible {
transform: scale(1.1);
box-shadow: 0 6px 14px rgba(212,255,58,.45);
outline: 0;
}
.f-itunes-tile-play:active { transform: scale(.95); }
@media (max-width: 480px) {
.f-itunes-tile-play { width: 1.75rem; height: 1.75rem; font-size: .75rem; }
}

.f-itunes-rail-tile {
position: relative;
}
.f-itunes-rail-tile .f-itunes-tile-play {
top: 50%;
right: .35rem;
width: 1.5rem;
height: 1.5rem;
font-size: .6rem;
transform: translateY(-50%);
}
.f-itunes-rail-tile .f-itunes-tile-play:hover,
.f-itunes-rail-tile .f-itunes-tile-play:focus-visible {
transform: translateY(-50%) scale(1.12);
}
.f-itunes-strip-title {
font-size: .92rem;
font-weight: 600;
line-height: 1.3;
color: var(--it-fg);
margin-top: .25rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.f-itunes-strip-artist {
font-size: .78rem;
color: var(--it-fg-3);
font-weight: 500;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.f-itunes-rail {
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 16px;
padding: 1.25rem;
}
.f-itunes-rail-label {
font-size: .75rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--it-fg-3);
margin: 0 0 1rem;
}
.f-itunes-rail-list { list-style: none; margin: 0; padding: 0; }
.f-itunes-rail-item {
display: flex;
gap: .85rem;
padding: .55rem;
margin: 0 -.55rem;
border-radius: 8px;
color: var(--it-fg);
transition: background .15s;
border: 0;
align-items: center;
}
.f-itunes-rail-item:hover { background: var(--it-surface-2); color: var(--it-fg); opacity: 1; }
.f-itunes-rail-art {
flex: 0 0 auto; width: 3rem; height: 3rem;
background-size: cover; background-position: center;
background-color: var(--it-art-empty);
border-radius: 4px;
position: relative;
}
.f-itunes-rail-art.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 1.2rem;
}
.f-itunes-rail-meta { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.f-itunes-rail-title {
font-size: .92rem;
font-weight: 600;
color: var(--it-fg);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
font-family: inherit;
line-height: 1.3;
}
.f-itunes-rail-sub { font-size: .75rem; color: var(--it-fg-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f-itunes-rail-item--dim { opacity: .5; }
.f-itunes-rail--compact .f-itunes-rail-art { width: 2.5rem; height: 2.5rem; }

.f-itunes-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
gap: 1.5rem;
margin: 0 0 3rem;
}
.f-itunes-tile {
display: flex; flex-direction: column; gap: .55rem;
color: var(--it-fg);
transition: transform .2s;
}
.f-itunes-tile:hover { color: var(--it-fg); }
.f-itunes-tile-art {
position: relative;
aspect-ratio: 1 / 1;
background-size: cover;
background-position: center;
background-color: var(--it-art-empty);
border-radius: var(--it-radius-art);
box-shadow: 0 4px 12px rgba(0,0,0,.4);
transition: transform .25s, box-shadow .25s;
overflow: hidden;
}
.f-itunes-tile:hover .f-itunes-tile-art {
transform: translateY(-6px);
box-shadow: 0 16px 36px rgba(0,0,0,.65);
}
.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
}
.f-itunes-tile-art-mark { color: var(--it-fg-3); font-size: 3rem; font-weight: 400; }
.f-itunes-tile-flag {
position: absolute; top: .65rem; left: .65rem;
background: var(--it-accent);
color: #000;
font-size: .6rem; font-weight: 700;
text-transform: uppercase; letter-spacing: 0.12em;
padding: .25rem .55rem;
border-radius: 999px;
}
.f-itunes-tile-flag--inline {
position: static;
margin-left: .5rem;
display: inline-block;
vertical-align: 3px;
}
.f-itunes-tile-title {
font-size: .95rem; font-weight: 600;
color: var(--it-fg); line-height: 1.3;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.f-itunes-tile-meta { font-size: .8rem; color: var(--it-fg-3); }
.f-itunes-tile--dim { opacity: .4; }

.f-itunes-genre-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
gap: 1rem;
}
.f-itunes-genre-card {
position: relative;
padding: 1.5rem 1.5rem 1.25rem;
background: linear-gradient(135deg, var(--it-surface-2) 0%, var(--it-surface) 100%);
border: 1px solid var(--it-border);
border-radius: 16px;
overflow: hidden;
transition: border-color .15s, transform .2s;
}
.f-itunes-genre-card:hover {
border-color: var(--it-border-hi);
transform: translateY(-2px);
}
.f-itunes-genre-card::after {

content: "";
position: absolute;
inset: auto -30% -50% auto;
width: 70%; height: 140%;
background: radial-gradient(ellipse, rgba(212, 255, 58, .06) 0%, transparent 60%);
pointer-events: none;
}
.f-itunes-genre-name {
display: block;
font-size: 1.4rem;
font-weight: 700;
letter-spacing: -0.01em;
margin: 0 0 .25rem;
position: relative;
}
.f-itunes-genre-count {
display: block;
font-size: .78rem;
color: var(--it-fg-3);
margin-bottom: 1rem;
position: relative;
text-transform: none;
letter-spacing: 0;
}
.f-itunes-genre-actions {
display: flex; gap: .5rem;
position: relative;
}
.f-itunes-genre-actions a {
flex: 1;
text-align: center;
padding: .5rem .75rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 999px;
font-size: .75rem;
font-weight: 600;
color: var(--it-fg-2);
text-transform: none;
letter-spacing: 0;
transition: background .15s, color .15s;
opacity: 1;
}
.f-itunes-genre-actions a:hover {
background: var(--it-accent);
color: #000;
}

.f-itunes-artist-list { list-style: none; margin: 0; padding: 0; }
.f-itunes-artist-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 1.25rem;
margin-bottom: .5rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 12px;
color: var(--it-fg);
transition: background .15s, border-color .15s;
}
.f-itunes-artist-row:hover {
background: var(--it-surface-2);
border-color: var(--it-border-hi);
color: var(--it-fg);
}
.f-itunes-artist-row:hover .f-itunes-artist-name { text-decoration: none; }
.f-itunes-artist-name { font-size: 1rem; font-weight: 600; }
.f-itunes-artist-count {
font-size: .75rem;
color: var(--it-fg-3);
text-transform: none;
letter-spacing: 0;
}

.f-itunes-artist-header {
display: grid;
grid-template-columns: minmax(0, 16rem) 1fr;
gap: 2.5rem;
align-items: end;
padding: 3rem 2rem;
margin: 0 0 3rem -2rem;
width: calc(100% + 4rem);
background: linear-gradient(180deg, var(--it-surface-2) 0%, transparent 100%);
border-radius: 0 0 24px 24px;
}
.f-itunes-artist-cover {
aspect-ratio: 1 / 1;
background-size: cover; background-position: center;
background-color: var(--it-art-empty);
border-radius: 50%;
box-shadow: var(--it-shadow-lift);
}
.f-itunes-artist-bio {
max-width: 42em;
line-height: 1.6;
color: var(--it-fg-2);
}
@media (max-width: 768px) {
.f-itunes-artist-header {
grid-template-columns: 1fr;
padding: 2rem 1rem;
margin-left: -1rem;
width: calc(100% + 2rem);
}
.f-itunes-artist-cover { max-width: 10rem; }
}

.f-itunes-playlist-list { list-style: none; margin: 0; padding: 0; }
.f-itunes-playlist-row {
display: flex;
gap: 1.25rem;
align-items: center;
padding: 1rem;
margin-bottom: .65rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 12px;
color: var(--it-fg);
transition: background .15s, border-color .15s;
}
.f-itunes-playlist-row:hover {
background: var(--it-surface-2);
border-color: var(--it-border-hi);
color: var(--it-fg);
}
.f-itunes-playlist-cover {
flex: 0 0 auto;
width: 4rem; height: 4rem;
background-color: var(--it-art-empty);
border-radius: 8px;
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 2rem; font-weight: 400;
}
.f-itunes-playlist-meta { min-width: 0; flex: 1 1 auto; }
.f-itunes-playlist-title {
display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
font-size: 1.05rem;
font-weight: 700;
line-height: 1.3;
margin: 0;
font-family: inherit;
}
.f-itunes-playlist-sub { font-size: .8rem; color: var(--it-fg-3); }
.f-itunes-playlist-blurb { font-size: .85rem; color: var(--it-fg-2); margin-top: .25rem; }
.f-itunes-playlist-list--compact .f-itunes-playlist-cover { width: 3rem; height: 3rem; font-size: 1.4rem; }

.f-itunes-library { list-style: none; margin: 0; padding: 0; }
.f-itunes-library-row {
display: grid;
grid-template-columns: 3rem 1fr auto;
gap: 1rem;
align-items: center;
padding: .75rem 1rem;
border-radius: 8px;
transition: background .15s;
}
.f-itunes-library-row:hover { background: var(--it-surface); }
.f-itunes-library-art {
width: 3rem; height: 3rem;
background-size: cover; background-position: center;
background-color: var(--it-art-empty);
border-radius: 4px;
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 1.2rem;
}
.f-itunes-library-meta { min-width: 0; }
.f-itunes-library-title {
display: block; color: var(--it-fg);
font-size: .95rem; font-weight: 600;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.f-itunes-library-artist { font-size: .8rem; color: var(--it-fg-3); margin: 0; }
.f-itunes-library-player {
grid-column: 1 / -1;
margin-top: .5rem;
width: 100%;
height: 2.2rem;
}

.f-itunes-page {
display: grid;
grid-template-columns: minmax(0, 1fr) 18rem;
gap: 3rem;
align-items: start;
}
.f-itunes-page-aside {
display: flex; flex-direction: column; gap: 1.5rem;
position: sticky; top: 5rem;
}
@media (max-width: 900px) {
.f-itunes-page { grid-template-columns: 1fr; gap: 2rem; }
.f-itunes-page-aside { position: static; }
}

.f-itunes-track-layout {
display: grid;
grid-template-columns: minmax(0, 22rem) 1fr;
gap: 3rem;
align-items: start;
margin-bottom: 2rem;
}
@media (max-width: 768px) {
.f-itunes-track-layout { grid-template-columns: 1fr; gap: 2rem; }
}
.f-itunes-track-art {
aspect-ratio: 1 / 1;
background-size: cover; background-position: center;
background-color: var(--it-art-empty);
border-radius: var(--it-radius);
box-shadow: var(--it-shadow-lift);
position: relative;
overflow: hidden;
}
.f-itunes-track-art.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
}
.f-itunes-track-info { padding-top: .5rem; }
.f-itunes-track-title {
font-size: clamp(2rem, 3.5vw, 3rem);
font-weight: 700;
letter-spacing: -0.025em;
line-height: 1.05;
margin: 0 0 .75rem;
}
.f-itunes-track-artist {
font-size: 1.1rem;
color: var(--it-fg-2);
margin: 0 0 1.5rem;
font-weight: 500;
}
.f-itunes-track-meta {
display: grid;
grid-template-columns: 5rem 1fr;
gap: .5rem 1rem;
font-size: .85rem;
margin: 0 0 2rem;
}
.f-itunes-track-meta dt { color: var(--it-fg-3); text-transform: uppercase; letter-spacing: 0.08em; font-size: .72rem; font-weight: 700; }
.f-itunes-track-meta dd { margin: 0; color: var(--it-fg); }

.f-itunes-player audio {
width: 100%;
height: 2.5rem;
border-radius: 999px;
}
.f-itunes-preview-note {
font-size: .75rem;
color: var(--it-accent);
text-transform: uppercase;
letter-spacing: 0.14em;
font-weight: 700;
margin: 0 0 .5rem;
}

.f-itunes-buy,
.f-itunes-play-now {
display: inline-flex;
align-items: center;
gap: .65rem;
padding: .85rem 1.75rem;
background: var(--it-accent);
color: #000;
border: 0;
border-radius: 999px;
font-family: inherit;
font-size: .9rem;
font-weight: 700;
letter-spacing: 0;
text-transform: none;
cursor: pointer;
transition: transform .15s, box-shadow .15s, filter .15s;
box-shadow: 0 4px 16px rgba(212, 255, 58, .25);
}
.f-itunes-buy:hover,
.f-itunes-play-now:hover {
transform: translateY(-1px);
filter: brightness(1.08);
box-shadow: 0 8px 24px rgba(212, 255, 58, .4);
color: #000;
}
.f-itunes-buy-price { font-weight: 700; }
.f-itunes-buy-form { display: inline-block; }
.f-itunes-secondary {
display: inline-flex;
align-items: center;
padding: .75rem 1.5rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 999px;
color: var(--it-fg-2);
font-weight: 600; font-size: .85rem;
}
.f-itunes-secondary:hover { background: var(--it-surface-2); color: var(--it-fg); }

.f-itunes-badge {
display: inline-block;
padding: .25rem .6rem;
font-size: .65rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
border-radius: 999px;
margin-left: .5rem;
vertical-align: 3px;
}
.f-itunes-badge--soft { background: var(--it-surface-3); color: var(--it-fg-2); }
.f-itunes-status-flag {
background: var(--it-danger-bg); color: var(--it-danger-fg);
padding: .2rem .55rem;
border-radius: 999px;
font-size: .65rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
}

.f-itunes-e-badge {
display: inline-flex;
align-items: center; justify-content: center;
width: 1.1rem; height: 1.1rem;
background: var(--it-fg-2);
color: var(--it-bg);
font-size: .58rem;
font-weight: 700;
border-radius: 3px;
margin-left: .4rem;
vertical-align: 3px;
}

.f-itunes-empty {
text-align: center;
padding: 6rem 2rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 24px;
}
.f-itunes-empty p {
font-size: 1.1rem;
color: var(--it-fg-2);
margin: 0 0 1rem;
}
.f-itunes-empty-reset {
color: var(--it-accent);
font-weight: 700;
}
.f-itunes-empty-reset:hover { color: var(--it-fg); }

.f-itunes-attribution {
margin: 2rem 0 0;
padding-top: 1.25rem;
border-top: 1px solid var(--it-border);
font-size: .78rem;
color: var(--it-fg-3);
}
.f-itunes-attribution a {
color: var(--it-fg-2);
border-bottom: 1px solid var(--it-border-hi);
padding-bottom: 1px;
}
.f-itunes-attribution a:hover { color: var(--it-fg); border-bottom-color: var(--it-fg-2); }

.f-itunes-upload-form { max-width: 36rem; }
.f-itunes-field {
display: flex; flex-direction: column;
gap: .35rem;
margin: 0 0 1.25rem;
}
.f-itunes-field > span:first-child {
font-size: .8rem;
font-weight: 600;
color: var(--it-fg-2);
}
.f-itunes-field > span em {
color: var(--it-fg-3);
font-style: normal;
font-weight: 400;
margin-left: .4rem;
}
.f-itunes-field input[type="text"],
.f-itunes-field input[type="number"],
.f-itunes-field input[type="file"],
.f-itunes-field select,
.f-itunes-field textarea {
padding: .75rem 1rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 8px;
color: var(--it-fg);
font-family: inherit;
font-size: .9rem;
}
.f-itunes-field input:focus,
.f-itunes-field select:focus,
.f-itunes-field textarea:focus {
outline: 0;
background: var(--it-surface-2);
border-color: var(--it-border-hi);
}
.f-itunes-check {
display: flex; gap: .75rem;
margin: 0 0 1rem;
padding: .85rem 1rem;
background: var(--it-surface);
border: 1px solid var(--it-border);
border-radius: 10px;
cursor: pointer;
transition: background .15s, border-color .15s;
}
.f-itunes-check:hover { background: var(--it-surface-2); border-color: var(--it-border-hi); }
.f-itunes-check input { margin-top: .25rem; accent-color: var(--it-accent); }
.f-itunes-check strong { display: block; font-size: .9rem; }
.f-itunes-check em {
display: block; margin-top: .15rem;
font-style: normal; font-size: .78rem; color: var(--it-fg-3);
}
.f-itunes-form-actions { margin-top: 1.5rem; }
.f-itunes-fine-print {
font-size: .75rem;
color: var(--it-fg-3);
margin: 1rem 0 0;
}

.f-itunes-mini-player {
position: fixed;
left: 1rem; right: 1rem; bottom: 1rem;
z-index: 1040;
background: var(--it-glass-bg);
backdrop-filter: blur(24px) saturate(180%);
-webkit-backdrop-filter: blur(24px) saturate(180%);
border: 1px solid var(--it-glass-border);
border-radius: 16px;
box-shadow: 0 16px 48px rgba(0, 0, 0, .6);
color: var(--it-fg);
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;

--it-accent:       #d4ff3a;
--it-accent-soft:  rgba(212, 255, 58, .18);
}
[data-bs-theme="dark"] .f-itunes-mini-player {
--it-glass-bg:     rgba(20, 20, 22, .85);
--it-glass-border: rgba(255, 255, 255, .1);
--it-fg:           #ffffff;
--it-fg-2:         rgba(255, 255, 255, .72);
--it-fg-3:         rgba(255, 255, 255, .48);
--it-surface-2:    rgba(255, 255, 255, .07);
--it-art-empty:    #1a1a1a;
}
[data-bs-theme="light"] .f-itunes-mini-player {
--it-glass-bg:     rgba(252, 252, 252, .82);
--it-glass-border: rgba(0, 0, 0, .08);
--it-fg:           #0a0a0a;
--it-fg-2:         rgba(10, 10, 10, .68);
--it-fg-3:         rgba(10, 10, 10, .45);
--it-surface-2:    rgba(0, 0, 0, .06);
--it-art-empty:    #ececec;
}
.f-itunes-mini-player[hidden] { display: none !important; }
body.has-itunes-mini { padding-bottom: 6.5rem; }

.f-itunes-mini-player-inner {
display: grid;
grid-template-columns: 3.5rem minmax(0, 1fr) auto;
gap: 1rem;
align-items: center;
padding: .75rem 1.25rem;
max-width: 88rem;
margin: 0 auto;
}
.f-itunes-mini-art {
width: 3.5rem; height: 3.5rem;
background-size: cover; background-position: center;
background-color: var(--it-art-empty);
border-radius: 6px;
}
.f-itunes-mini-art.f-itunes-tile-art-blank {
display: flex; align-items: center; justify-content: center;
color: var(--it-fg-3); font-size: 1.5rem; font-weight: 400;
}
.f-itunes-mini-meta { min-width: 0; }
.f-itunes-mini-title {
display: block;
font-size: .95rem;
font-weight: 700;
color: var(--it-fg);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
font-family: inherit;
}
.f-itunes-mini-title:hover { color: var(--it-fg); text-decoration: underline; }
.f-itunes-mini-artist {
font-size: .78rem;
color: var(--it-fg-2);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.f-itunes-mini-controls { display: flex; align-items: center; gap: .35rem; }
.f-itunes-mini-btn {
background: transparent;
border: 0;
color: var(--it-fg-2);
width: 2.5rem; height: 2.5rem;
border-radius: 50%;
cursor: pointer;
display: inline-flex; align-items: center; justify-content: center;
font-size: .9rem; line-height: 1;
transition: background .15s, color .15s, transform .1s;
}
.f-itunes-mini-btn:hover { background: var(--it-surface-2); color: var(--it-fg); }
.f-itunes-mini-btn:active { transform: scale(.92); }
[data-mini-toggle] {
background: var(--it-accent);
color: #000;
width: 2.75rem; height: 2.75rem;
font-size: 1.05rem;
box-shadow: 0 4px 14px rgba(212, 255, 58, .45);
}
[data-mini-toggle]:hover { background: var(--it-accent); color: #000; filter: brightness(1.08); }
.f-itunes-mini-btn--icon svg { width: 16px; height: 16px; }
#f-itunes-mini-audio { display: none; }

@media (max-width: 480px) {
.f-itunes-mini-player { left: .5rem; right: .5rem; bottom: .5rem; }
.f-itunes-mini-player-inner { padding: .65rem .85rem; gap: .65rem; }
.f-itunes-mini-btn { width: 2.25rem; height: 2.25rem; }
[data-mini-toggle] { width: 2.5rem; height: 2.5rem; }
}

.f-itunes-radio-header { margin-bottom: 2rem; }
.f-itunes-radio-actions { margin-bottom: 2.5rem; }

.f-itunes-discover { padding-bottom: 8rem; }

.f-itunes-source-chip {
display: inline-block;
padding: .12rem .55rem;
margin-left: .4rem;
vertical-align: 2px;
background: var(--it-surface-3);
color: var(--it-fg-3);
font-size: .6rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
border-radius: 999px;
}

.f-mw-24      { max-width: 24rem; }

.f-mw-32      { max-width: 32rem; }

.f-mw-36      { max-width: 36rem; }
.f-mw-38      { max-width: 38rem; }
.f-mw-42      { max-width: 42rem; }

.f-mw-56      { max-width: 56rem; }

.f-mw-160px   { max-width: 160px; }
.f-mw-180px   { max-width: 180px; }
.f-mw-200px   { max-width: 200px; }
.f-mw-240px   { max-width: 240px; }
.f-mw-280px   { max-width: 280px; }
.f-mw-320px   { max-width: 320px; }
.f-mw-640px   { max-width: 640px; }

.f-mw-32ch    { max-width: 32ch; }
.f-mw-48ch    { max-width: 48ch; }

.f-w-1px      { width: 1px; }
.f-w-60px     { width: 60px; }
.f-w-90px     { width: 90px; }
.f-w-120px    { width: 120px; }
.f-w-220px    { width: 220px; }
.f-w-6        { width: 6rem; }
.f-w-11       { width: 11rem; }
.f-w-1pct     { width: 1%; }
.f-w-12pct    { width: 12%; }
.f-w-32pct    { width: 32%; }

html, html[data-bs-theme="light"] {

--cal-bg:     #fdf7f4;   
--cal-req:    #e4a99b;   
--cal-border: #d3ab9f;   
--cal-mut:    #73605a;   
--cal-acc:    #6e1621;   
--cal-chip:   #e6c6bc;   
--cal-ink:    #351f1c;   

--cal-panel:   #ffffff;   
--cal-grid:    #ddbdb1;   
--cal-headbg:  #6e1621;   
--cal-headfg:  #f6dcd6;   
--cal-cell:    #fdf7f4;   
--cal-today:   #e4a99b;   
--cal-weekend: #efd7ce;   
--cal-outside: #f3e7e0;   
--cal-shadow:  0 10px 30px -14px rgba(110,50,25,.40), 0 2px 5px -2px rgba(90,40,20,.12);
}
html[data-bs-theme="dark"] {

--cal-bg:     #211512;   
--cal-req:    #3a201a;   
--cal-border: #3a2c26;
--cal-mut:    #b09a90;   
--cal-acc:    #cc3843;   
--cal-chip:   #33221d;   
--cal-ink:    #f3e7e1;   

--cal-panel:   #2a1a16;
--cal-grid:    #45302a;
--cal-headbg:  #6e1621;   
--cal-headfg:  #f6dcd6;   
--cal-cell:    #211512;
--cal-today:   #5a1c22;   
--cal-weekend: #1b100d;
--cal-outside: #1d120f;
--cal-shadow:  0 12px 34px -16px rgba(0,0,0,.65), 0 2px 6px -2px rgba(0,0,0,.4);
}

.f-cal-wrap {
border: 1px solid var(--cal-grid);
border-radius: 16px;
overflow: hidden;
padding: 0;
background: var(--cal-panel);
box-shadow: var(--cal-shadow);
}
.f-cal {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 1px;                    
background: var(--cal-grid);
padding: 1px;
}

.f-cal-header {
background: var(--cal-headbg);
padding: 11px 0;
font-size: 0.66rem;
text-transform: uppercase;
letter-spacing: 0.11em;
color: var(--cal-headfg);
opacity: 1;
font-weight: 800;
text-align: center;
border: 0;
}
.f-cal-cell {
background: var(--cal-cell);
padding: 0.5rem 0.6rem 0.6rem;
min-height: 124px;
position: relative;
overflow: hidden;
border: 0;                   
border-radius: 0;
transition: background-color 0.15s ease;
}
.f-cal-week .f-cal-cell { min-height: 360px; }
.f-cal-cell.is-weekend { background: var(--cal-weekend); }
.f-cal-cell.is-outside { background: var(--cal-outside); }

.f-cal-cell.is-today { background: var(--cal-today); }
.f-cal-cell.is-today::after {
content: '';
position: absolute;
top: 8px;
right: 9px;
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--cal-acc);
}
.f-cal-cell.is-outside .cal-date,
.f-cal-cell.is-outside .cal-entry,
.f-cal-cell.is-outside .cal-holiday-label { opacity: 0.38; }
.f-cal-cell.is-clickable { cursor: pointer; }
.f-cal-cell.is-clickable:hover {
background-color: color-mix(in srgb, var(--cal-acc) 9%, var(--cal-cell));
}
.f-cal-cell.is-clickable.is-holiday:hover { filter: brightness(1.05); }
.cal-date-row {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 0.4rem;
margin-bottom: 0.45rem;
min-height: 1.75rem;
}
.cal-holiday-label {
font-family: var(--f-serif);
font-size: 0.68rem;
font-style: italic;
color: var(--bs-body-color);
opacity: 0.7;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1 1 auto;
min-width: 0;
text-align: right;
letter-spacing: -0.01em;
}
.cal-date {
font-family: var(--f-sans);
font-size: 0.82rem;
line-height: 1;
color: var(--cal-mut);
opacity: 1;
flex: 0 0 auto;
letter-spacing: 0;
font-weight: 700;
font-variant-numeric: lining-nums;
}
.cal-date.is-today { color: var(--cal-acc); font-weight: 700; }

.cal-entry {
font-size: 0.72rem;
line-height: 1.3;
margin-bottom: 2px;
display: flex;
align-items: baseline;
gap: 4px;
min-width: 0;
color: var(--cal-ink);
font-weight: 500;
border-radius: 6px;
padding: 1px 6px 2px;
background: var(--cal-chip);
}
.cal-entry.is-pending { font-style: italic; opacity: 0.6; font-weight: 400; }
.cal-entry.is-mine {
background: color-mix(in srgb, var(--cal-acc) 18%, var(--cal-chip));
font-weight: 600;
}
.cal-entry.is-mine .cal-glyph { opacity: 1; color: var(--cal-acc); }
.cal-entry-link { display: contents; }
.cal-glyph {
flex-shrink: 0;
width: 1.2em;
text-align: center;
opacity: 1;
font-variant-emoji: text;
font-size: 0.85em;
line-height: 1;
color: color-mix(in srgb, var(--cal-acc) 80%, var(--cal-mut));
}
.f-glyph-pie { width: 0.92em; height: 0.92em; vertical-align: -0.11em; display: inline-block; }
.cal-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (min-width: 992px) {
.f-cal-cell .cal-entry { display: flex; font-size: 0.72rem; line-height: 1.3; margin-bottom: 2px; }
}
@media (max-width: 575px) {
.f-cal-cell { padding: 0.35rem 0.4rem 0.45rem; min-height: 92px; }
.f-cal-week .f-cal-cell { min-height: 200px; }
.f-cal-header { font-size: 0.6rem; padding: 0.4rem 0.35rem; letter-spacing: 0.08em; }
.cal-entry { font-size: 0.7rem; gap: 0.3rem; }
.cal-date { font-size: 0.78rem; }
.cal-holiday-label { font-size: 0.58rem; letter-spacing: 0; }
}

.f-away-cal   { display:grid; grid-template-columns:repeat(5,1fr); gap:0;
border-radius:12px; overflow:hidden; }
.f-away-dow   { font-size:.58rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
color:var(--cal-headfg); background:var(--cal-headbg);
text-align:center; padding:6px 0; }
.f-away-cell  { border:0; min-height:66px;
padding:6px 8px; overflow:visible; background:var(--cal-cell); position:relative;
transition:background-color .13s ease; }

.f-away-cell.is-out .f-away-date,
.f-away-cell.is-out .f-away-dept,
.f-away-cell.is-out .f-away-name { opacity:.4; }
.f-away-cell.is-today::after { content:''; position:absolute; top:6px; right:7px;
width:4px; height:4px; border-radius:50%; background:var(--cal-acc); }
.f-away-date  { font-weight:700; font-size:.66rem; line-height:1;
color:var(--cal-mut); margin-bottom:4px; }
.f-away-cell.is-today .f-away-date { color:var(--cal-acc); }
.f-away-dept  { font-size:.5rem; letter-spacing:.06em; text-transform:uppercase;
color:var(--cal-mut); font-weight:700; opacity:.7;
line-height:1.15; white-space:normal; margin:7px 0 3px; padding-top:5px;
border-top:1px solid color-mix(in srgb,var(--cal-border) 70%,transparent); }
.f-away-date + .f-away-dept { margin-top:1px; padding-top:0; border-top:0; }
.f-away-name  { font-size:.6rem; line-height:1.3; white-space:normal; overflow:visible;
display:flex; align-items:baseline; gap:4px; border-radius:6px;
padding:1px 5px 2px; margin:0 0 2px; color:var(--cal-ink);
background:var(--cal-chip); }
.f-away-glyph { opacity:1; font-size:.62rem; flex:none;
color:color-mix(in srgb,var(--cal-acc) 80%,var(--cal-mut)); }
.f-away-ico   { opacity:.6; }

.att-card {
background: var(--cal-bg);
border: 1px solid var(--cal-border);
border-radius: 14px;
padding: .8rem .95rem;
box-shadow: 0 1px 2px rgba(0,0,0,.05);
transition: border-color .14s ease, box-shadow .14s ease;
}
[data-bs-theme="dark"] .att-card { box-shadow: 0 1px 3px rgba(0,0,0,.35); }

.att-card-tap { cursor: pointer; }
.att-card-tap:hover { border-color: color-mix(in srgb, var(--cal-acc) 28%, var(--cal-border)); }
.lca-card-tap { cursor: pointer; }

.att-badge {
display: inline-flex; align-items: center;
font-family: var(--f-sans); font-weight: 600;
border-radius: 999px; padding: .18em .62em; line-height: 1.35;
white-space: nowrap; vertical-align: middle;
}
.att-badge-status {
text-transform: uppercase; letter-spacing: .11em;
color: var(--f-fg-muted);
background: color-mix(in srgb, var(--cal-chip) 75%, transparent);
border: 1px solid var(--cal-border);
}
.att-badge-muted {
letter-spacing: .04em; color: var(--f-fg-muted);
background: color-mix(in srgb, var(--cal-chip) 60%, transparent);
border: 1px solid var(--cal-border);
}

.att-badge-cover {
letter-spacing: .04em; color: #7a5200;
background: #fbeeca; border: 1px solid #f0d9a0;
}
[data-bs-theme="dark"] .att-badge-cover {
color: #e7c778; background: #2c2410; border-color: #4a3c18;
}

.att-card .btn { border-radius: 999px; }
.att-card .att-action-form .btn-dark,
.att-card .att-move-form .btn-dark {
--bs-btn-bg: var(--f-accent);
--bs-btn-border-color: var(--f-accent);
--bs-btn-hover-bg: var(--f-accent-soft);
--bs-btn-hover-border-color: var(--f-accent-soft);
--bs-btn-active-bg: var(--f-accent-soft);
--bs-btn-active-border-color: var(--f-accent-soft);
--bs-btn-disabled-bg: var(--f-accent);
--bs-btn-disabled-border-color: var(--f-accent);
}

.att-note-details { margin-top: .5rem; }
.att-note-summary {
list-style: none; display: inline-flex; align-items: center; gap: .35rem;
font-family: var(--f-sans); font-size: .68rem; font-weight: 600;
letter-spacing: .1em; text-transform: uppercase; color: var(--f-fg-muted);
}
.att-note-summary::-webkit-details-marker { display: none; }
.att-note-summary::before {
content: "\203A"; display: inline-block; font-size: 1.1em; line-height: 0;
transition: transform .15s ease;
}
.att-note-details[open] .att-note-summary::before { transform: rotate(90deg); }

.att-modal .modal-content {
border: 1px solid var(--cal-border);
border-radius: 18px;
background: var(--f-bg);
overflow: hidden;
box-shadow: 0 24px 60px -18px rgba(0,0,0,.4);
}
.att-modal .modal-header {
border-bottom: 1px solid var(--cal-border);
background: var(--cal-headbg);
padding: .72rem 1rem;
align-items: center;
}

.att-modal { padding-top: env(safe-area-inset-top, 0px); }
.att-modal .modal-title { color: var(--cal-headfg); }
.att-modal .modal-body { padding: 1rem 1.05rem 1.15rem; }

.att-modal .modal-body { max-height: min(72vh, 620px); overflow-y: auto; }

.att-modal { --f-accent: #6e1621; --f-accent-soft: #8f2a20; }
[data-bs-theme="dark"] .att-modal { --f-accent: #cc3843; --f-accent-soft: #a82f38; }

.att-modal .modal-dialog {
background: transparent !important;
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
box-shadow: none !important;
}

.att-modal .modal-content {
border-radius: 20px;
box-shadow: 0 30px 70px -20px rgba(40,8,12,.5), 0 4px 14px -6px rgba(0,0,0,.28);
}
.att-modal .modal-header {
background: linear-gradient(180deg,
color-mix(in srgb, var(--cal-headbg) 86%, #fff 14%),
color-mix(in srgb, var(--cal-headbg) 84%, #000 16%));
border-bottom: 1px solid color-mix(in srgb, var(--f-red) 50%, var(--cal-headbg));
box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 15%, transparent);
}

.att-modal .btn-close { opacity: .7; filter: invert(1) grayscale(1) brightness(1.9); }
.att-modal .btn-close:hover { opacity: 1; }

.f-author-priv { color: var(--f-red); font-weight: 600; }

#f-ptr {

position: fixed; top: calc(env(safe-area-inset-top, 0px) - 14px); left: 50%;
transform: translateX(-50%);
width: 34px; height: 34px; border-radius: 50%;
background: var(--f-bg);
box-shadow: 0 6px 18px -6px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.15);
display: flex; align-items: center; justify-content: center;
opacity: 0; z-index: 2147483200; pointer-events: none;
}
#f-ptr .f-ptr-spin {
width: 18px; height: 18px; border-radius: 50%;
border: 2px solid color-mix(in srgb, var(--f-accent) 28%, transparent);
border-top-color: var(--f-accent);
display: block;
}
#f-ptr.f-ptr-ready { box-shadow: 0 6px 20px -5px color-mix(in srgb, var(--f-accent) 55%, #000); }
#f-ptr.f-ptr-loading .f-ptr-spin { animation: f-ptr-rot .7s linear infinite; }
@keyframes f-ptr-rot { to { transform: rotate(360deg); } }

.f-tx-wide { --f-accent: #6e1621; --f-accent-soft: #8f2a20; }
[data-bs-theme="dark"] .f-tx-wide { --f-accent: #cc3843; --f-accent-soft: #a82f38; }
.f-tx-wide .f-eyebrow { color: var(--f-accent); opacity: .82; }
.f-tx-wide .badge.bg-secondary-subtle {
background: color-mix(in srgb, var(--f-accent) 13%, transparent) !important;
color: var(--f-accent) !important;
}
.f-tx-wide .display-6 .accent,
.f-tx-wide a.text-reset:hover { color: var(--f-accent); }

.f-announce {
border: 1px solid var(--cal-border);
border-left: 4px solid var(--f-accent);
background: var(--cal-chip);
color: var(--cal-ink);
border-radius: 10px;
padding: .75rem 1.05rem;
font-size: .92rem;
font-weight: 500;
letter-spacing: .01em;
box-shadow: 0 1px 3px rgba(0,0,0,.06);
display: flex;
align-items: baseline;
gap: .55rem;
}
.f-announce::before {
content: "—";
color: var(--f-accent);
font-weight: 700;
flex: none;
}
[data-bs-theme="dark"] .f-announce { box-shadow: 0 1px 4px rgba(0,0,0,.35); }

.att-away-tabs {
display: inline-flex; gap: 4px; margin-bottom: 12px;
background: color-mix(in srgb, var(--f-fg) 6%, transparent);
padding: 3px; border-radius: 11px;
}
.att-away-tab {
border: 0; background: none; font: inherit; font-size: .8rem; font-weight: 600;
padding: 5px 13px; border-radius: 8px; cursor: pointer; color: var(--f-fg-muted);
display: inline-flex; align-items: center; gap: .4em;
}
.att-away-tab.is-active {
background: var(--f-bg); color: var(--f-fg); box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.att-away-tab-n { font-size: .85em; font-weight: 700; color: var(--f-accent); }

.att-away-loading { opacity: .5; transition: opacity .12s ease; pointer-events: none; }

.att-proof-link {
display: inline-flex; align-items: center; gap: .3em;
font-family: var(--f-sans); font-size: .72rem; font-weight: 600;
letter-spacing: .04em; text-transform: uppercase;
color: var(--f-accent); text-decoration: none;
}
.att-proof-link:hover, .att-proof-link:focus-visible {
text-decoration: underline; text-underline-offset: 2px;
}
.att-proof-clip { font-size: .95em; opacity: .85; filter: grayscale(1); }

.att-report-table { font-variant-numeric: tabular-nums; }
.att-band {
display: inline-block; font-family: var(--f-sans);
font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
border-radius: 999px; padding: .12em .6em;
color: var(--f-fg-muted);
background: color-mix(in srgb, var(--f-fg) 7%, transparent);
}
.att-band-watch    { color: #7a5200; background: #fbeeca; }
.att-band-elevated { color: #9a3412; background: #fbe3d3; }
.att-band-high     { color: #fff; background: var(--f-accent); }
[data-bs-theme="dark"] .att-band-watch    { color: #e7c778; background: #2c2410; }
[data-bs-theme="dark"] .att-band-elevated { color: #f0a878; background: #331a10; }
html.f-noglass .att-band-watch,
html.f-noglass .att-band-elevated,
html.f-noglass .att-band-high {
color: var(--f-fg-muted); background: color-mix(in srgb, var(--f-fg) 9%, transparent);
}

.f-admin-disclaimer {
display: block;
max-width: 60ch;
margin: 4rem auto 1.5rem;
padding-top: 1.5rem;
border-top: 1px solid var(--f-rule);
text-align: center;
}
.f-admin-disclaimer .f-eyebrow {
color: color-mix(in srgb, var(--f-accent) 45%, var(--f-fg-muted));
}
.f-admin-disclaimer p:last-child {
font-family: var(--f-serif);
font-size: 1.02rem;
line-height: 1.5;
color: var(--f-fg-muted);
font-style: italic;
}

.att-panel {
background: color-mix(in srgb, var(--bs-body-bg) 55%, transparent);
border: 1px solid color-mix(in srgb, var(--f-accent) 16%, var(--bs-border-color));
border-radius: 14px;
}
.att-panel .f-eyebrow {
color: color-mix(in srgb, var(--f-accent) 55%, var(--bs-secondary-color));
}
.att-panel .form-control,
.att-panel .btn { border-radius: 9px; }

.f-minw-130   { min-width: 130px; }

.f-minw-200   { min-width: 200px; }
.f-minw-280   { min-width: 280px; }

.f-flex-min   { min-width: 0; flex: 1 1 auto; }

.f-mw-160-280 { min-width: 160px; max-width: 280px; }

.f-sq-160     { width: 160px; height: 160px; }
.f-sq-180     { width: 180px; height: 180px; }
.f-sq-240     { width: 240px; height: 240px; }

.f-fs-60      { font-size: 0.6em; }
.f-fs-65      { font-size: 0.65em; }
.f-fs-70      { font-size: 0.7em; }
.f-fs-78      { font-size: 0.78em; }
.f-fs-85      { font-size: 0.85em; }
.f-email-preview { width: 100%; height: 22rem; border: 1px solid var(--f-rule, #ddd); border-radius: .4rem; margin-top: .4rem; background: #fff; }
.f-wrap-anywhere { white-space: normal; word-break: break-word; }
.f-col-shrink { width: 1%; white-space: nowrap; }
.f-chart { display: block; }
.f-chart text { font-family: var(--f-mono, ui-monospace, monospace); }
.f-name-cell  { min-width: 9rem; overflow-wrap: anywhere; }
.f-ref-cell   { min-width: 13.5rem; overflow-wrap: anywhere; text-wrap: balance; }

.f-fs-95rem   { font-size: 0.95rem; }

.f-break-all  { word-break: break-all; }
.f-pre        { white-space: pre-wrap; }
.f-pre-break  { white-space: pre-wrap; word-break: break-all; }

.f-ellipsis   { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.f-scroll-y     { max-height: 300px; overflow: auto; }
.f-scroll-y-14r { max-height: 14rem; overflow: auto; font-size: 0.75rem; }

.f-cursor-pointer { cursor: pointer; }

.f-offscreen {
position: fixed;
left: -9999px;
top: -9999px;
width: 1px;
height: 1px;
pointer-events: none;
}

.f-divider-l       { border-left: 2px solid var(--f-rule, #ddd); }
.f-divider-l-eee   { border-left: 2px solid var(--f-rule, #eee); }
.f-divider-l-cur   { border-left: 2px solid currentColor; }
.f-divider-b       { border-bottom: 1px solid var(--f-rule, #eee); }
.f-dashed          { border: 1px dashed var(--f-rule, #ccc); }
.f-dashed-tap      { border: 1px dashed var(--f-rule); cursor: pointer; }
.f-border-2px      { border-width: 2px; }

.f-color-danger   { color: #e34c4c; }

.f-list-bare      { list-style: none; }
.f-flex-right-pad { flex: 1; text-align: right; padding-top: 1rem; }

.f-art[data-art-url] { background-size: cover; background-position: center; }

.f-w-12pct-right { width: 12%; text-align: right; }

.f-mono-85       { font-family: ui-monospace, SFMono-Regular, monospace; font-size: 0.85rem; }
.f-pt-6          { padding-top: 6rem; }

.f-log-table              { table-layout: fixed; min-width: 61.5rem; }
.f-log-table th,
.f-log-table td           { overflow-wrap: anywhere; }
.f-log-table .f-col-when { width: 8rem;   }
.f-log-table .f-col-ch   { width: 4.5rem; }
.f-log-table .f-col-kind { width: 7rem;   }
.f-log-table .f-col-to   { width: 15rem;  }
.f-log-table .f-col-ok   { width: 5rem;   }
.f-log-table .f-col-msg  { width: 22rem;  }

.f-log-table td .badge    { white-space: nowrap; }

.f-vhidden {
position: absolute !important;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}

@media (min-width: 992px) {

.f-nav { z-index: 1030; }

.f-nav:not([data-overflow="1"]) .f-nav-list,
.f-nav:not([data-overflow="1"]) .f-nav-right { position: static; }
.f-nav-list::after { bottom: 0; }
.f-nav:not([data-overflow="1"]) .f-nav-list .dropdown,
.f-nav:not([data-overflow="1"]) .f-nav-right .dropdown { position: static; }

.f-nav:not([data-overflow="1"]) .f-nav-list .dropdown-menu,
.f-nav:not([data-overflow="1"]) .f-nav-right .dropdown-menu {
display: block;
position: absolute !important;
inset: 100% 0 auto 0 !important;
transform: none !important;
margin: 0 !important;
width: auto !important;
min-width: 0 !important;
border: 0;
border-radius: 0;
background: var(--f-fg);

-webkit-backdrop-filter: none;
backdrop-filter: none;
border-bottom: 1px solid color-mix(in srgb, var(--f-bg) 18%, transparent);

padding: 0 max(1.5rem, calc((100% - 1140px) / 2));
overflow: hidden;
max-height: 0;
visibility: hidden;
transition:
max-height .5s cubic-bezier(.32, .72, 0, 1),
visibility 0s linear .5s,
padding    .5s cubic-bezier(.32, .72, 0, 1);
}
.f-nav:not([data-overflow="1"]) .f-nav-list .dropdown-menu.show,
.f-nav:not([data-overflow="1"]) .f-nav-right .dropdown-menu.show {
max-height: min(70vh, 480px);
visibility: visible;
overflow-y: auto;
padding-top: 1.5rem;
padding-bottom: 2.2rem;
transition:
max-height .56s cubic-bezier(.32, .72, 0, 1),
padding    .56s cubic-bezier(.32, .72, 0, 1);
}

.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu .dropdown-item,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu .dropdown-header,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu .f-account-subitem {
opacity: 0;
transform: translateY(-8px);
transition: opacity .3s ease, transform .3s cubic-bezier(.32, .72, 0, 1);

color: var(--f-bg);
}
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu .dropdown-item {
padding-left: 0;
padding-right: 0;
}
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .dropdown-item,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .dropdown-header,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .f-account-subitem {
opacity: .85;
transform: none;
}
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .dropdown-item:hover,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .dropdown-item:focus,
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show .f-account-subitem:hover { opacity: 1; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(1) > * { transition-delay: .08s; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(2) > * { transition-delay: .12s; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(3) > * { transition-delay: .16s; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(4) > * { transition-delay: .20s; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(5) > * { transition-delay: .24s; }
.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show li:nth-child(n+6) > * { transition-delay: .28s; }

body::before {
content: "";
position: fixed;
inset: 0;
z-index: 1020;
background: color-mix(in srgb, var(--f-fg) 30%, transparent);
-webkit-backdrop-filter: blur(5px) saturate(120%);
backdrop-filter: blur(5px) saturate(120%);
opacity: 0;
pointer-events: none;
transition: opacity .4s ease;
}
body:has(.f-nav:not([data-overflow="1"]) .f-nav-row .dropdown-menu.show)::before {
opacity: 1;
}
}

@media (prefers-reduced-motion: reduce) {
.f-nav .dropdown-menu,
.f-nav .dropdown-menu .dropdown-item,
.f-nav .dropdown-menu .dropdown-header,
.f-nav .dropdown-menu .f-account-subitem,
body::before { transition: none !important; }
}

@media (min-width: 992px) {
.f-nav.f-panel-swap .f-nav-row .dropdown-menu {
max-height: min(70vh, 480px);
padding-top: 1.5rem;
padding-bottom: 2.2rem;
opacity: 0;
transition: opacity .26s ease, visibility 0s linear .26s;
}
.f-nav.f-panel-swap .f-nav-row .dropdown-menu.show {
opacity: 1;
visibility: visible;
transition: opacity .26s ease .05s;
}
}

.f-ghost-tab { color: var(--bs-warning-text-emphasis); }
.f-ghost-tab::before { content: "◈ "; opacity: .6; font-size: .8em; }
.f-ghost-tab:hover { color: var(--bs-warning-text-emphasis); background: color-mix(in srgb, var(--bs-warning) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--bs-warning) 45%, transparent); }
.f-ghost-tab.active { color: var(--bs-warning-text-emphasis); border-bottom-color: var(--bs-warning); }

.illic-root { max-width: 60rem; margin: 0 auto; padding: 1rem 1.5rem 1.25rem; font-family: var(--f-sans); color: #000; text-transform: none; }
[data-bs-theme="dark"] .illic-root { color: #fff; }
.illic-root .illic-mark { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-size: 1.875rem; letter-spacing: -.03em; margin: 0 0 1rem; text-shadow: 0 0 4px rgba(0,0,0,.1); }
.illic-hero-wrap { max-width: 42rem; margin: 0 0 5rem; }
.illic-root .illic-hero { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-weight: 400; font-size: 3.75rem; line-height: .9; letter-spacing: -.03em; margin: 0; text-transform: none; text-shadow: 1px 1px 2px rgba(0,0,0,.05); }
@media (min-width: 768px) { .illic-root .illic-hero { font-size: 5rem; } }
[data-bs-theme="dark"] .illic-root .illic-hero { text-shadow: 1px 1px 2px rgba(255,255,255,.06); }

.illic-about { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 0 0 5rem; }
.illic-about-label { border-left: 1px solid #000; padding-left: 1.5rem; }
[data-bs-theme="dark"] .illic-about-label { border-left-color: #fff; }
.illic-root .illic-h { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-weight: 400; font-style: italic; font-size: 2.25rem; line-height: 1; margin: 0; text-shadow: 1px 1px 2px rgba(0,0,0,.05); }
.illic-about-body { max-width: 40rem; }
.illic-root .illic-lead { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-size: clamp(1.6rem, 4vw, 1.875rem); line-height: 1.15; margin: 0 0 1rem; text-shadow: 1px 1px 2px rgba(0,0,0,.05); }
.illic-root .illic-accent { font-style: italic; }
.illic-root .illic-sub { font-size: 1rem; font-weight: 300; line-height: 1.7; color: #64748B; margin: 0; max-width: 36rem; }

.illic-connect { margin: 0 0 5rem; }
.illic-connect-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 2rem; flex-wrap: wrap; }
.illic-root .illic-tag { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .625rem; text-transform: uppercase; letter-spacing: .2em; color: #64748B; opacity: .7; margin: 0; }
.illic-links { display: grid; grid-template-columns: 1fr; border-top: 1px solid rgba(0,0,0,.1); }
[data-bs-theme="dark"] .illic-links { border-top-color: rgba(255,255,255,.12); }
@media (min-width: 768px) { .illic-links { grid-template-columns: 1fr 1fr; } }
.illic-root .illic-links a { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem 1rem; border-bottom: 1px solid rgba(0,0,0,.06); color: #000; text-decoration: none; transition: background .3s ease; }
[data-bs-theme="dark"] .illic-root .illic-links a { color: #fff; border-bottom-color: rgba(255,255,255,.08); }
.illic-root .illic-links a:hover { background: rgba(0,0,0,.02); }
[data-bs-theme="dark"] .illic-root .illic-links a:hover { background: rgba(255,255,255,.03); }
.illic-root .illic-num { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .625rem; color: rgba(0,0,0,.4); transition: color .3s ease; }
[data-bs-theme="dark"] .illic-root .illic-num { color: rgba(255,255,255,.4); }
.illic-root .illic-links a:hover .illic-num { color: #000; }
[data-bs-theme="dark"] .illic-root .illic-links a:hover .illic-num { color: #fff; }
.illic-root .illic-label { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-size: 1.25rem; transition: font-style .3s ease; }
.illic-root .illic-links a:hover .illic-label { font-style: italic; }

.illic-root .illic-outro { font-family: 'Instrument Serif', 'Instrument Serif Fallback', serif; font-weight: 400; font-style: italic; font-size: clamp(2.5rem, 8vw, 3.75rem); line-height: .8; letter-spacing: -.02em; margin: 0; text-shadow: 1px 1px 2px rgba(0,0,0,.05); }

@media (max-width: 767.98px) {
.f-modules-table thead { display: none; }

.f-modules-table,
.f-modules-table tbody,
.f-modules-table tr,
.f-modules-table td {
display: block;
width: auto;
}

.f-modules-table tr {
border: 1px solid var(--bs-border-color, #dee2e6);
border-radius: .5rem;
padding: .75rem;
margin-bottom: .75rem;
}

.f-modules-table td {
border: 0;
padding: .35rem 0;
}

.f-modules-table td::before {
content: attr(data-label);
display: block;
font-size: .7rem;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--bs-secondary-color, #6c757d);
margin-bottom: .15rem;
}

.f-modules-table td code { display: inline-block; margin-bottom: .15rem; }

.f-modules-table .form-select { width: 100%; }
}

.f-respend-verdict { border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .5rem; }
.f-respend-go   { background: #e8f5e9; }
.f-respend-done { background: #fff8e1; }
.f-respend-stop { background: #fdecea; }
[data-bs-theme="dark"] .f-respend-go   { background: #10281a; }
[data-bs-theme="dark"] .f-respend-done { background: #2a230d; }
[data-bs-theme="dark"] .f-respend-stop { background: #2d1414; }

.f-w-90  { width: 90px; }
.f-w-130 { width: 130px; }
.f-w-160 { width: 160px; }
.f-w-220 { width: 220px; }
.f-w-340 { width: 340px; }
.f-w-60  { width: 60px; }
.f-h-6px { height: 6px; }
.f-progress-dyn { width: 0; }

.f-spark { color: var(--bs-body-color); display: block; max-width: 100%; }

.f-dash-sec + .f-dash-sec { border-top: 1px solid var(--bs-border-color); margin-top: 1.75rem; padding-top: 1.75rem; }

.f-tx-cell { width: 100%; max-width: 0; }
.f-tx-line { display: flex; gap: .4rem; align-items: baseline; white-space: nowrap; overflow: hidden; }
.f-tx-line > code, .f-tx-line > .text-muted { overflow: hidden; text-overflow: ellipsis; flex: 0 1 auto; }
.f-tx-line > .badge { flex: 0 0 auto; }
.f-tx-trunc { display: inline-block; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

td.f-oneline { width: 100%; max-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.f-cat-row { margin-bottom: .35rem; }
.f-cat-label { flex: 0 0 7.5rem; }
.f-cat-bar { display: block; height: 6px; background: rgba(0,0,0,.08); border-radius: 3px; overflow: hidden; }
.f-cat-fill { display: block; height: 100%; background: #1a1a1a; border-radius: 3px; }

[data-bs-theme="dark"] .f-cat-bar  { background: rgba(255,255,255,.12); }
[data-bs-theme="dark"] .f-cat-fill { background: #e6e6ee; }
.f-wp-0 { width: 0%; }
.f-wp-5 { width: 5%; }
.f-wp-10 { width: 10%; }
.f-wp-15 { width: 15%; }
.f-wp-20 { width: 20%; }
.f-wp-25 { width: 25%; }
.f-wp-30 { width: 30%; }
.f-wp-35 { width: 35%; }
.f-wp-40 { width: 40%; }
.f-wp-45 { width: 45%; }
.f-wp-50 { width: 50%; }
.f-wp-55 { width: 55%; }
.f-wp-60 { width: 60%; }
.f-wp-65 { width: 65%; }
.f-wp-70 { width: 70%; }
.f-wp-75 { width: 75%; }
.f-wp-80 { width: 80%; }
.f-wp-85 { width: 85%; }
.f-wp-90 { width: 90%; }
.f-wp-95 { width: 95%; }
.f-wp-100 { width: 100%; }

.f-group-main { flex: 1 1 auto; min-width: 0; }
.f-group-main > summary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

main .table-sm th, main .table-sm td { padding: .15rem .35rem; } 
main .btn-sm { padding-top: .05rem; padding-bottom: .05rem; }
.f-cat-row { margin-bottom: .2rem; }

.f-tx-wide { max-width: 100%; width: 100%; padding-left: 0; padding-right: 0; }
.f-tx-wide > * { padding-left: 0; padding-right: 0; }
.f-tx-wide .table-responsive { padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }
.f-tx-wide .table { width: 100%; margin-bottom: 0; }

.f-tx-wide > header,
.f-tx-wide > .d-flex,
.f-tx-wide > form.row,
.f-tx-wide > nav,
.f-tx-wide > p { padding-left: 1rem; padding-right: 1rem; }

.f-tx-comment-col { max-width: 34rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f-tx-comment-col span[title] { display: inline-block; max-width: 31rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

.f-tx-wide .f-row-odd > td { background: var(--bs-tertiary-bg, #f6f6f6); }
.f-tx-wide .f-row-even > td { background: transparent; }
.f-tx-wide tbody tr.f-cursor-pointer:hover > td { background: var(--bs-secondary-bg, #ececec); }

main table > tbody > tr:nth-child(odd) > td,
main table > tbody > tr:nth-child(odd) > th {
background: var(--bs-tertiary-bg, #f6f6f6); 
}
main table > tbody > tr:nth-child(even) > td,
main table > tbody > tr:nth-child(even) > th {
background: transparent;
}

.f-habit-days {
position: relative;
width: 100%;
height: 60px;
margin-top: .25rem;
overflow: hidden;
}
.f-habit-bar {
position: absolute;
bottom: 0;
border-radius: 1px;
background: currentColor;
opacity: .55;
}
.f-habit-bar.f-day-past   { opacity: .55; }
.f-habit-bar.f-day-future { opacity: .22; }
.f-habit-bar.f-day-today  {
opacity: 1;
background: var(--f-red, #d72020);
box-shadow: 0 0 0 1px var(--f-red, #d72020);
}

.f-legend-past   { color: currentColor; opacity: .55; }
.f-legend-today  { color: var(--f-red, #d72020); font-weight: 600; }
.f-legend-future { color: currentColor; opacity: .35; }

.f-over-limit { color: var(--f-red, #d72020); font-weight: 500; }

.f-paybar {
display: flex;
width: 100%;
height: 18px;
border-radius: 3px;
overflow: hidden;
background: var(--bs-tertiary-bg, #eee);
}
.f-payseg { height: 100%; }
.f-pay-spent   { background: #8a1515; }
.f-pay-paydown { background: #c47b2a; }
.f-pay-bills   { background: #1f1f1f; }
.f-pay-dues    { background: #6c6c6c; }
.f-pay-savings { background: #b48a3c; }
.f-pay-free    { background: #2e7d5b; }
.f-pay-legend { display: inline-flex; align-items: center; gap: .35rem; }
.f-paykey { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; }

[data-bs-theme="dark"] .f-pay-bills { background: #d9d9e2; }
[data-bs-theme="dark"] .f-pay-dues  { background: #8f8f9c; }
[data-bs-theme="dark"] .f-paybar    { background: rgba(255,255,255,.10); }

.f-money-cal {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 0;
background: var(--bs-body-bg);
border: 1.5px solid var(--bs-border-color);
}
.f-money-cal .f-cal-header {
background: var(--bs-body-bg);
padding: 0.5rem 0.55rem;
font-size: 0.66rem;
text-transform: uppercase;
letter-spacing: 0.14em;
opacity: 0.85;
font-weight: 500;
border-bottom: 1px solid var(--bs-border-color);
}
.f-money-cal .f-cal-cell {
background: var(--bs-body-bg);
padding: 0.4rem 0.45rem 0.5rem;
min-height: 96px;
position: relative;
overflow: hidden;
border-right: 1px solid var(--bs-border-color);
border-bottom: 1px solid var(--bs-border-color);
}
.f-money-cal .f-cal-cell:nth-child(7n) { border-right: 0; }
.f-money-cal .f-cal-cell.is-weekend {
background-image: repeating-linear-gradient(45deg,
var(--bs-tertiary-bg) 0, var(--bs-tertiary-bg) 1px,
transparent 1px, transparent 7px);
}
.f-money-cal .f-cal-cell.is-today { background: var(--bs-secondary-bg); }
.f-money-cal .f-cal-cell.is-outside .cal-date,
.f-money-cal .f-cal-cell.is-outside .f-money-entry { opacity: 0.38; }
.f-money-cal .cal-date-row { margin-bottom: 0.3rem; }
.f-money-cal .cal-date.is-today {
background: var(--f-fg, #111);
color: var(--f-bg, #fff);
border-radius: 50%;
display: inline-flex;
width: 1.5rem; height: 1.5rem;
align-items: center; justify-content: center;
}
.f-money-entry {
display: flex;
justify-content: space-between;
gap: 0.3rem;
font-size: 0.66rem;
line-height: 1.35;
overflow: hidden;
}
.f-money-entry .f-money-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
min-width: 0;
}
.f-money-entry .f-money-amt {
font-family: var(--bs-font-monospace, monospace);
white-space: nowrap;
}
.f-money-in .f-money-amt { color: #2e7d5b; font-weight: 600; }
.f-money-in .f-money-name { color: #2e7d5b; }
.f-money-out .f-money-amt { color: var(--bs-body-color); }
@media (max-width: 768px) {
.f-money-cal .f-cal-cell { min-height: 74px; padding: 0.3rem 0.3rem 0.4rem; }
.f-money-entry { font-size: 0.58rem; }
}

.f-money-cal .f-cal-cell.is-clickable { cursor: pointer; }
.f-money-cal .f-cal-cell.is-clickable:hover { background-color: var(--bs-tertiary-bg); }
.f-money-modal-in { color: #2e7d5b; font-weight: 600; }

.f-due-act {
width: 5.4rem;
display: inline-block;
text-align: center;
}

.f-rec-acts {
display: grid;
grid-template-columns: repeat(2, 8.5rem);
gap: 0.25rem;
justify-content: end;
margin-top: 0.25rem;
}
.f-rec-acts form { margin: 0; }
.f-rec-acts .btn { width: 100%; }

.container > p.f-eyebrow:not(:first-child),
main > p.f-eyebrow:not(:first-child),
.container > div:has(> p.f-eyebrow):not(:first-child),
main > div:has(> p.f-eyebrow):not(:first-child) {
border-top: 1px solid var(--bs-border-color);
margin-top: 1.75rem;
padding-top: 1.75rem;
}

.container > p.f-eyebrow:has(+ h1),
main > p.f-eyebrow:has(+ h1) {
border-top: 0;
margin-top: 0;
padding-top: 0;
}

td.f-income, .f-income { color: #2e7d32 !important; }
[data-bs-theme="dark"] td.f-income,
[data-bs-theme="dark"] .f-income,
html.dark td.f-income, html.dark .f-income { color: #66bb6a !important; }

.f-money-name-only {
display: block;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.f-cal-cell .f-money-amt { display: none; }

.f-cal-cell .f-money-suffix { display: none; }
.f-w-12ch { width: 12ch; }
html {
scroll-behavior: smooth;

background: var(--bs-body-bg, #fff);
}
body { background: transparent; }

@view-transition { navigation: none; }

@media (display-mode: standalone) and (pointer: coarse) {
@view-transition { navigation: none; }
::view-transition-old(root),
::view-transition-new(root) { animation: none; }

.f-nav, .f-pin { view-transition-name: none; }

.f-nav {
padding-top: calc(var(--f-nav-pad) + max(env(safe-area-inset-top, 0px), 59px));
}
html::before {
height: max(env(safe-area-inset-top, 0px), 59px);
}

.f-pin {
top: max(env(safe-area-inset-top, 0px), 59px);
}

html:has(.f-nav)::before { content: none; }
.f-nav::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: max(env(safe-area-inset-top, 0px), 59px);
background: var(--f-chrome, #000);
z-index: 4;
pointer-events: none;
}
html.f-noglass .f-nav::before { background: var(--f-solid, #000); }

.f-nav {
animation: none !important;
}

.f-tabs {
top: calc(var(--f-nav-h) + max(env(safe-area-inset-top, 0px), 59px));
}

.att-modal { padding-top: max(env(safe-area-inset-top, 0px), 59px); }

body.f-roleplay .f-nav         { padding-top: var(--f-nav-pad); }
body.f-roleplay .f-nav::before { height: 0; }
body.f-roleplay .f-pin         { top: 0; }
body.f-roleplay .f-tabs        { top: var(--f-nav-h); }
}

body.f-roleplay { padding-top: 2.6rem; }
.f-roleplay-banner {
position: fixed; top: 0; left: 0; right: 0; z-index: 2147483600;
background: #6e1621; color: #f6dcd6;
display: flex; align-items: center; justify-content: space-between;
gap: 1rem; padding: .35rem .85rem;
font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif;
font-size: .82rem; line-height: 1.3;
border-bottom: 2px solid #e0442c;
box-shadow: 0 1px 0 rgba(0,0,0,.25);
}
.f-roleplay-banner code {
color: #fff; background: transparent; padding: 0;
font-family: ui-monospace, Menlo, Consolas, monospace;
}
.f-roleplay-banner__label  { display: inline-flex; align-items: center; gap: .5rem; flex-wrap: wrap; min-width: 0; }
.f-roleplay-banner__sep    { opacity: .5; }
.f-roleplay-banner__quiet  { color: #e0a79f; }
.f-roleplay-banner__form   { margin: 0; flex-shrink: 0; }
.f-roleplay-banner__form button {
appearance: none; background: transparent; border: 1px solid #f6dcd6;
color: #f6dcd6; padding: .25rem .8rem;
font: inherit; font-size: .78rem; cursor: pointer;
transition: background .12s, color .12s;
}
.f-roleplay-banner__form button:hover { background: #f6dcd6; color: #6e1621; }
@media (max-width: 575.98px) {
.f-roleplay-banner { font-size: .72rem; padding: .3rem .6rem; }
.f-roleplay-banner__quiet { display: none; }
body.f-roleplay { padding-top: 2.2rem; }
}
@media (display-mode: standalone) and (pointer: coarse) {
.f-roleplay-banner { padding-top: calc(.3rem + max(env(safe-area-inset-top, 0px), 59px)); }
body.f-roleplay    { padding-top: calc(2.2rem + max(env(safe-area-inset-top, 0px), 59px)); }
}

@font-face {
font-family: 'Instrument Serif';
font-style: normal;
font-weight: 400;
font-display: optional;
src: url('/assets/fonts/instrument-serif-latin-dl.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Instrument Serif';
font-style: italic;
font-weight: 400;
font-display: optional;
src: url('/assets/fonts/instrument-serif-italic-latin-dl.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {

font-family: 'Fraunces';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/assets/fonts/fraunces-display-latin.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'JetBrains Mono';
font-style: normal;
font-weight: 100 800;
font-display: optional;
src: url('/assets/fonts/jetbrains-mono-var-latin.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {

font-family: 'Instrument Sans';
font-style: normal;
font-weight: 400 700;
font-display: optional;
src: url('/assets/fonts/instrument-sans-var-latin-dl.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Instrument Sans';
font-style: italic;
font-weight: 400 700;
font-display: optional;
src: url('/assets/fonts/instrument-sans-var-italic-latin-dl.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
font-family: 'Instrument Sans Fallback';
src: local('Helvetica Neue'), local('Arial');
size-adjust: 104.39%;
ascent-override: 92.92%;
descent-override: 23.95%;
line-gap-override: 0%;
}
@font-face {
font-family: 'Instrument Serif Fallback';
src: local('Times New Roman'), local('Times');
size-adjust: 76.89%;
ascent-override: 128.75%;
descent-override: 40.32%;
line-gap-override: 0%;
}

@media (prefers-reduced-motion: no-preference) {
.container, .container-sm, .container-md,
.container-lg, .container-xl, .container-xxl {
transition: max-width .28s ease;
}

.f-nav .f-nav-row {
transition: max-width .28s ease, padding .22s ease, gap .22s ease;
}

.f-pin {
transition: transform .28s ease, padding .22s ease, font-size .22s ease;
}
.f-mark-word { transition: font-size .22s ease; }
}

.f-habit-line { width: 100%; height: 60px; display: block; margin-top: .25rem; overflow: visible; }
.f-habit-line polyline { fill: none; stroke: currentColor; stroke-width: 1.5px; }
.f-habit-line .f-line-actual { opacity: .55; }
.f-habit-line .f-line-future { opacity: .25; stroke-dasharray: 3 3; }
.f-habit-dot { stroke: currentColor; stroke-width: 5px; stroke-linecap: round; opacity: .55; }
.f-habit-dot.f-day-future { opacity: .22; }
.f-habit-dot.f-day-today { stroke: var(--f-red, #d72020); opacity: 1; stroke-width: 6.5px; }

@media (max-width: 768px) {
.f-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
.f-tx-tools[open] { display: block; max-width: min(92vw, 26rem); }
.f-tx-tools form { flex-wrap: wrap; }
@media (max-width: 640px) {
.f-tx-tools .form-control,
.f-tx-tools .form-select { flex: 1 1 9rem; min-width: 0; width: auto; }
}

.f-blobs { display: none; }

body.f-noglass .f-blobs { display: none; }

.f-frame {
position: fixed;
inset: 8px;
border-radius: 16px;
pointer-events: none;

z-index: 5000;
box-shadow: 0 0 0 100vmax #000;
border: 1px solid rgba(255, 255, 255, .16);
}

@supports (height: 100lvh) {
.f-frame {
bottom: auto;
height: calc(100lvh - 16px);
}
}
body.f-noglass .f-frame { display: none; }

@media (max-width: 768px) {
.f-frame { display: none; }
}

@supports (padding: env(safe-area-inset-left)) {
body {
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
}
}

.f-yeardots {
display: grid;
grid-template-rows: repeat(7, 6px);
grid-auto-flow: column;
grid-auto-columns: minmax(0, 1fr);
row-gap: 3px;
column-gap: 1px;
width: 100%;
padding-bottom: 2px;
}
.f-yeardots .f-yd {
width: 100%;
max-width: 4px;
height: 4px;
border-radius: 50%;
background: currentColor;
opacity: .16;
place-self: center;
}
.f-yeardots .f-yd.is-away { opacity: .9; }
.f-yeardots .f-yd.is-today { box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 35%, transparent); opacity: .6; }

html.f-theming,
html.f-theming *,
html.f-theming *::before,
html.f-theming *::after {

transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
html.f-theming,
html.f-theming *,
html.f-theming *::before,
html.f-theming *::after { transition: none !important; }
}

html:not(.f-noglass) .f-frame {
border-color: rgba(255, 255, 255, .22);
box-shadow:
inset 0 1px 0 0 rgba(255, 255, 255, .34),
inset 0 64px 96px -76px rgba(255, 255, 255, .16),
inset 0 -80px 110px -90px rgba(150, 66, 54, .18),
0 0 60px -2px rgba(176, 92, 78, .20),
0 0 0 100vmax #000;
}

html[data-bs-theme="dark"]:not(.f-noglass) .f-frame {
border-color: rgba(255, 255, 255, .13);
box-shadow:
inset 0 1px 0 0 rgba(255, 255, 255, .20),
inset 0 64px 96px -82px rgba(255, 255, 255, .08),
0 0 0 100vmax #000;
}
body:not(.f-noglass)::after {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
z-index: -1;

background:
radial-gradient(46vw 30vh at 50% 62vh,
rgba(206,150,132,.1000) 0%, rgba(206,150,132,.0300) 50.4%, rgba(206,150,132,.0211) 55.8%, rgba(206,150,132,.0113) 61.2%, rgba(206,150,132,.0033) 66.6%, rgba(206,150,132,0) 72%);
}

html[data-bs-theme="dark"] body:not(.f-noglass)::after {
background: none;
}

.f-vsp,
td.f-vsp,
tr.f-vsp > td.f-vsp {
padding: 0 !important;
border: 0 !important;
margin: 0 !important;
background: none !important;
line-height: 0;
}
tr.f-vsp { background: none !important; }

