:root{--bg: #f1f4f9;--surface: #ffffff;--surface-2: #f6f8fc;--sunken: #e6ebf3;--line: #dbe2ec;--line-2: #c4cedb;--fg: #131a26;--fg-2: #46526a;--fg-3: #69768b;--accent: #2563eb;--on-accent: #ffffff;--good: #1c8754;--warn: #a5680b;--bad: #bf392e;--info: #2e63c6;--hard: #c2610f;--accent-soft: color-mix(in srgb, var(--accent) 13%, transparent);--shadow-1: 0 1px 2px rgb(19 26 38 / .06);--shadow-2: 0 2px 6px rgb(19 26 38 / .06), 0 16px 40px rgb(19 26 38 / .1);--b0: var(--sunken);--b1: #e9a39b;--b2: #eec27f;--b3: #bfd6fb;--b4: #6fa0f3;--b5: #2563eb;--r: 14px;--pad: 20px;--f-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--f-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--tabbar-h: 64px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1117;--surface: #141a23;--surface-2: #19212c;--sunken: #222b37;--line: #232d3a;--line-2: #33404f;--fg: #e6ebf2;--fg-2: #a4afbf;--fg-3: #7f8a9b;--accent: #60a5fa;--on-accent: #06101f;--good: #4bc489;--warn: #e3aa4e;--bad: #f27468;--info: #7ba7f3;--hard: #f0954b;--shadow-1: 0 1px 2px rgb(0 0 0 / .35);--shadow-2: 0 2px 6px rgb(0 0 0 / .3), 0 16px 40px rgb(0 0 0 / .4);--b1: #9c4a42;--b2: #a07a3a;--b3: #2f4a78;--b4: #3b82f6;--b5: #60a5fa;color-scheme:dark}}:root[data-theme=dark]{--bg: #0d1117;--surface: #141a23;--surface-2: #19212c;--sunken: #222b37;--line: #232d3a;--line-2: #33404f;--fg: #e6ebf2;--fg-2: #a4afbf;--fg-3: #7f8a9b;--accent: #60a5fa;--on-accent: #06101f;--good: #4bc489;--warn: #e3aa4e;--bad: #f27468;--info: #7ba7f3;--hard: #f0954b;--shadow-1: 0 1px 2px rgb(0 0 0 / .35);--shadow-2: 0 2px 6px rgb(0 0 0 / .3), 0 16px 40px rgb(0 0 0 / .4);--b1: #9c4a42;--b2: #a07a3a;--b3: #2f4a78;--b4: #3b82f6;--b5: #60a5fa;color-scheme:dark}*{box-sizing:border-box}html{font-size:15px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);line-height:1.5;min-height:100vh;-webkit-tap-highlight-color:transparent}@property --tint{syntax: "<color>"; inherits: true; initial-value: transparent;}:root{--constellation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%232563eb' stroke-opacity='.09'%3E%3Cpath d='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'%3E%3Canimate attributeName='d' dur='90s' repeatCount='indefinite' values='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7;M34.3 42.5 112 85 204.2 28.1 291.1 101.9M112 85 142.5 172.9 68 210.9M142.5 172.9 252.9 197.2 291.1 101.9M252.9 197.2 314.1 275.3 222.4 325.2 116.2 303.3 68 210.9M116.2 303.3 142.5 172.9;M32.5 44.3 115.5 84.1 206.3 28.2 288.2 100.7M115.5 84.1 145 176.2 69 213.3M145 176.2 252.6 193.6 288.2 100.7M252.6 193.6 315 273.4 220.5 327.6 115.1 301 69 213.3M115.1 301 145 176.2;M30 45 118 81.5 208 29.4 286.4 98.2M118 81.5 148.7 177.9 68.6 215.9M148.7 177.9 250.5 190.6 286.4 98.2M250.5 190.6 316.7 272.2 220 330.7 115.3 298.4 68.6 215.9M115.3 298.4 148.7 177.9;M27.5 44.3 119 78 208.9 31.2 286.1 95.1M119 78 152.9 177.5 67.1 218M152.9 177.5 247.2 189.1 286.1 95.1M247.2 189.1 318.7 272.1 221.2 333.6 116.7 296.2 67.1 218M116.7 296.2 152.9 177.5;M25.7 42.5 118.1 74.5 208.8 33.3 287.3 92.2M118.1 74.5 156.2 175 64.7 219M156.2 175 243.6 189.4 287.3 92.2M243.6 189.4 320.6 273 223.6 335.5 119 295.1 64.7 219M119 295.1 156.2 175;M25 40 115.5 72 207.6 35 289.8 90.4M115.5 72 157.9 171.3 62.1 218.6M157.9 171.3 240.6 191.5 289.8 90.4M240.6 191.5 321.8 274.7 226.7 336 121.6 295.3 62.1 218.6M121.6 295.3 157.9 171.3;M25.7 37.5 112 71 205.8 35.9 292.9 90.1M112 71 157.5 167.1 60 217.1M157.5 167.1 239.1 194.8 292.9 90.1M239.1 194.8 321.9 276.7 229.6 334.8 123.8 296.7 60 217.1M123.8 296.7 157.5 167.1;M27.5 35.7 108.5 71.9 203.7 35.8 295.8 91.3M108.5 71.9 155 163.8 59 214.7M155 163.8 239.4 198.4 295.8 91.3M239.4 198.4 321 278.6 231.5 332.4 124.9 299 59 214.7M124.9 299 155 163.8;M30 35 106 74.5 202 34.6 297.6 93.8M106 74.5 151.3 162.1 59.4 212.1M151.3 162.1 241.5 201.4 297.6 93.8M241.5 201.4 319.3 279.8 232 329.3 124.7 301.6 59.4 212.1M124.7 301.6 151.3 162.1;M32.5 35.7 105 78 201.1 32.8 297.9 96.9M105 78 147.1 162.5 60.9 210M147.1 162.5 244.8 202.9 297.9 96.9M244.8 202.9 317.3 279.9 230.8 326.4 123.3 303.8 60.9 210M123.3 303.8 147.1 162.5;M34.3 37.5 105.9 81.5 201.2 30.7 296.7 99.8M105.9 81.5 143.8 165 63.3 209M143.8 165 248.4 202.6 296.7 99.8M248.4 202.6 315.4 279 228.4 324.5 121 304.9 63.3 209M121 304.9 143.8 165;M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'/%3E%3C/path%3E%3C/g%3E%3Cg fill='%232563eb' fill-opacity='.2'%3E%3Ccircle cx='35' cy='40' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='35;34.3;32.5;30;27.5;25.7;25;25.7;27.5;30;32.5;34.3;35'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='40;42.5;44.3;45;44.3;42.5;40;37.5;35.7;35;35.7;37.5;40'/%3E%3C/circle%3E%3Ccircle cx='108.5' cy='84' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='108.5;112;115.5;118;119;118.1;115.5;112;108.5;106;105;105.9;108.5'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='84;85;84.1;81.5;78;74.5;72;71;71.9;74.5;78;81.5;84'/%3E%3C/circle%3E%3Ccircle cx='202.4' cy='29' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='202.4;204.2;206.3;208;208.9;208.8;207.6;205.8;203.7;202;201.1;201.2;202.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='29;28.1;28.2;29.4;31.2;33.3;35;35.9;35.8;34.6;32.8;30.7;29'/%3E%3C/circle%3E%3Ccircle cx='294.2' cy='101.6' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='294.2;291.1;288.2;286.4;286.1;287.3;289.8;292.9;295.8;297.6;297.9;296.7;294.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='101.6;101.9;100.7;98.2;95.1;92.2;90.4;90.1;91.3;93.8;96.9;99.8;101.6'/%3E%3C/circle%3E%3Ccircle cx='142.1' cy='168.7' r='3'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='142.1;142.5;145;148.7;152.9;156.2;157.9;157.5;155;151.3;147.1;143.8;142.1'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='168.7;172.9;176.2;177.9;177.5;175;171.3;167.1;163.8;162.1;162.5;165;168.7'/%3E%3C/circle%3E%3Ccircle cx='65.9' cy='209.4' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='65.9;68;69;68.6;67.1;64.7;62.1;60;59;59.4;60.9;63.3;65.9'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='209.4;210.9;213.3;215.9;218;219;218.6;217.1;214.7;212.1;210;209;209.4'/%3E%3C/circle%3E%3Ccircle cx='251.4' cy='200.5' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='251.4;252.9;252.6;250.5;247.2;243.6;240.6;239.1;239.4;241.5;244.8;248.4;251.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='200.5;197.2;193.6;190.6;189.1;189.4;191.5;194.8;198.4;201.4;202.9;202.6;200.5'/%3E%3C/circle%3E%3Ccircle cx='314.2' cy='277.3' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='314.2;314.1;315;316.7;318.7;320.6;321.8;321.9;321;319.3;317.3;315.4;314.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='277.3;275.3;273.4;272.2;272.1;273;274.7;276.7;278.6;279.8;279.9;279;277.3'/%3E%3C/circle%3E%3Ccircle cx='225.3' cy='324' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='225.3;222.4;220.5;220;221.2;223.6;226.7;229.6;231.5;232;230.8;228.4;225.3'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='324;325.2;327.6;330.7;333.6;335.5;336;334.8;332.4;329.3;326.4;324.5;324'/%3E%3C/circle%3E%3Ccircle cx='118.4' cy='304.7' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='118.4;116.2;115.1;115.3;116.7;119;121.6;123.8;124.9;124.7;123.3;121;118.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='304.7;303.3;301;298.4;296.2;295.1;295.3;296.7;299;301.6;303.8;304.9;304.7'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");--constellation-static: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%232563eb' stroke-opacity='.09'%3E%3Cpath d='M30 40 112 78 205 32 292 96M112 78 150 170 64 214M150 170 246 196 292 96M246 196 318 276 226 330 120 300 64 214M120 300 150 170'/%3E%3C/g%3E%3Cg fill='%232563eb' fill-opacity='.2'%3E%3Ccircle cx='30' cy='40' r='2'/%3E%3Ccircle cx='112' cy='78' r='2.5'/%3E%3Ccircle cx='205' cy='32' r='2'/%3E%3Ccircle cx='292' cy='96' r='2.5'/%3E%3Ccircle cx='150' cy='170' r='3'/%3E%3Ccircle cx='64' cy='214' r='2'/%3E%3Ccircle cx='246' cy='196' r='2.5'/%3E%3Ccircle cx='318' cy='276' r='2'/%3E%3Ccircle cx='226' cy='330' r='2.5'/%3E%3Ccircle cx='120' cy='300' r='2'/%3E%3C/g%3E%3C/svg%3E");transition:--tint .6s ease}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--constellation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%2360a5fa' stroke-opacity='.08'%3E%3Cpath d='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'%3E%3Canimate attributeName='d' dur='90s' repeatCount='indefinite' values='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7;M34.3 42.5 112 85 204.2 28.1 291.1 101.9M112 85 142.5 172.9 68 210.9M142.5 172.9 252.9 197.2 291.1 101.9M252.9 197.2 314.1 275.3 222.4 325.2 116.2 303.3 68 210.9M116.2 303.3 142.5 172.9;M32.5 44.3 115.5 84.1 206.3 28.2 288.2 100.7M115.5 84.1 145 176.2 69 213.3M145 176.2 252.6 193.6 288.2 100.7M252.6 193.6 315 273.4 220.5 327.6 115.1 301 69 213.3M115.1 301 145 176.2;M30 45 118 81.5 208 29.4 286.4 98.2M118 81.5 148.7 177.9 68.6 215.9M148.7 177.9 250.5 190.6 286.4 98.2M250.5 190.6 316.7 272.2 220 330.7 115.3 298.4 68.6 215.9M115.3 298.4 148.7 177.9;M27.5 44.3 119 78 208.9 31.2 286.1 95.1M119 78 152.9 177.5 67.1 218M152.9 177.5 247.2 189.1 286.1 95.1M247.2 189.1 318.7 272.1 221.2 333.6 116.7 296.2 67.1 218M116.7 296.2 152.9 177.5;M25.7 42.5 118.1 74.5 208.8 33.3 287.3 92.2M118.1 74.5 156.2 175 64.7 219M156.2 175 243.6 189.4 287.3 92.2M243.6 189.4 320.6 273 223.6 335.5 119 295.1 64.7 219M119 295.1 156.2 175;M25 40 115.5 72 207.6 35 289.8 90.4M115.5 72 157.9 171.3 62.1 218.6M157.9 171.3 240.6 191.5 289.8 90.4M240.6 191.5 321.8 274.7 226.7 336 121.6 295.3 62.1 218.6M121.6 295.3 157.9 171.3;M25.7 37.5 112 71 205.8 35.9 292.9 90.1M112 71 157.5 167.1 60 217.1M157.5 167.1 239.1 194.8 292.9 90.1M239.1 194.8 321.9 276.7 229.6 334.8 123.8 296.7 60 217.1M123.8 296.7 157.5 167.1;M27.5 35.7 108.5 71.9 203.7 35.8 295.8 91.3M108.5 71.9 155 163.8 59 214.7M155 163.8 239.4 198.4 295.8 91.3M239.4 198.4 321 278.6 231.5 332.4 124.9 299 59 214.7M124.9 299 155 163.8;M30 35 106 74.5 202 34.6 297.6 93.8M106 74.5 151.3 162.1 59.4 212.1M151.3 162.1 241.5 201.4 297.6 93.8M241.5 201.4 319.3 279.8 232 329.3 124.7 301.6 59.4 212.1M124.7 301.6 151.3 162.1;M32.5 35.7 105 78 201.1 32.8 297.9 96.9M105 78 147.1 162.5 60.9 210M147.1 162.5 244.8 202.9 297.9 96.9M244.8 202.9 317.3 279.9 230.8 326.4 123.3 303.8 60.9 210M123.3 303.8 147.1 162.5;M34.3 37.5 105.9 81.5 201.2 30.7 296.7 99.8M105.9 81.5 143.8 165 63.3 209M143.8 165 248.4 202.6 296.7 99.8M248.4 202.6 315.4 279 228.4 324.5 121 304.9 63.3 209M121 304.9 143.8 165;M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'/%3E%3C/path%3E%3C/g%3E%3Cg fill='%2360a5fa' fill-opacity='.18'%3E%3Ccircle cx='35' cy='40' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='35;34.3;32.5;30;27.5;25.7;25;25.7;27.5;30;32.5;34.3;35'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='40;42.5;44.3;45;44.3;42.5;40;37.5;35.7;35;35.7;37.5;40'/%3E%3C/circle%3E%3Ccircle cx='108.5' cy='84' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='108.5;112;115.5;118;119;118.1;115.5;112;108.5;106;105;105.9;108.5'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='84;85;84.1;81.5;78;74.5;72;71;71.9;74.5;78;81.5;84'/%3E%3C/circle%3E%3Ccircle cx='202.4' cy='29' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='202.4;204.2;206.3;208;208.9;208.8;207.6;205.8;203.7;202;201.1;201.2;202.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='29;28.1;28.2;29.4;31.2;33.3;35;35.9;35.8;34.6;32.8;30.7;29'/%3E%3C/circle%3E%3Ccircle cx='294.2' cy='101.6' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='294.2;291.1;288.2;286.4;286.1;287.3;289.8;292.9;295.8;297.6;297.9;296.7;294.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='101.6;101.9;100.7;98.2;95.1;92.2;90.4;90.1;91.3;93.8;96.9;99.8;101.6'/%3E%3C/circle%3E%3Ccircle cx='142.1' cy='168.7' r='3'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='142.1;142.5;145;148.7;152.9;156.2;157.9;157.5;155;151.3;147.1;143.8;142.1'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='168.7;172.9;176.2;177.9;177.5;175;171.3;167.1;163.8;162.1;162.5;165;168.7'/%3E%3C/circle%3E%3Ccircle cx='65.9' cy='209.4' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='65.9;68;69;68.6;67.1;64.7;62.1;60;59;59.4;60.9;63.3;65.9'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='209.4;210.9;213.3;215.9;218;219;218.6;217.1;214.7;212.1;210;209;209.4'/%3E%3C/circle%3E%3Ccircle cx='251.4' cy='200.5' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='251.4;252.9;252.6;250.5;247.2;243.6;240.6;239.1;239.4;241.5;244.8;248.4;251.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='200.5;197.2;193.6;190.6;189.1;189.4;191.5;194.8;198.4;201.4;202.9;202.6;200.5'/%3E%3C/circle%3E%3Ccircle cx='314.2' cy='277.3' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='314.2;314.1;315;316.7;318.7;320.6;321.8;321.9;321;319.3;317.3;315.4;314.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='277.3;275.3;273.4;272.2;272.1;273;274.7;276.7;278.6;279.8;279.9;279;277.3'/%3E%3C/circle%3E%3Ccircle cx='225.3' cy='324' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='225.3;222.4;220.5;220;221.2;223.6;226.7;229.6;231.5;232;230.8;228.4;225.3'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='324;325.2;327.6;330.7;333.6;335.5;336;334.8;332.4;329.3;326.4;324.5;324'/%3E%3C/circle%3E%3Ccircle cx='118.4' cy='304.7' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='118.4;116.2;115.1;115.3;116.7;119;121.6;123.8;124.9;124.7;123.3;121;118.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='304.7;303.3;301;298.4;296.2;295.1;295.3;296.7;299;301.6;303.8;304.9;304.7'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");--constellation-static: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%2360a5fa' stroke-opacity='.08'%3E%3Cpath d='M30 40 112 78 205 32 292 96M112 78 150 170 64 214M150 170 246 196 292 96M246 196 318 276 226 330 120 300 64 214M120 300 150 170'/%3E%3C/g%3E%3Cg fill='%2360a5fa' fill-opacity='.18'%3E%3Ccircle cx='30' cy='40' r='2'/%3E%3Ccircle cx='112' cy='78' r='2.5'/%3E%3Ccircle cx='205' cy='32' r='2'/%3E%3Ccircle cx='292' cy='96' r='2.5'/%3E%3Ccircle cx='150' cy='170' r='3'/%3E%3Ccircle cx='64' cy='214' r='2'/%3E%3Ccircle cx='246' cy='196' r='2.5'/%3E%3Ccircle cx='318' cy='276' r='2'/%3E%3Ccircle cx='226' cy='330' r='2.5'/%3E%3Ccircle cx='120' cy='300' r='2'/%3E%3C/g%3E%3C/svg%3E")}}:root[data-theme=dark]{--constellation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%2360a5fa' stroke-opacity='.08'%3E%3Cpath d='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'%3E%3Canimate attributeName='d' dur='90s' repeatCount='indefinite' values='M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7;M34.3 42.5 112 85 204.2 28.1 291.1 101.9M112 85 142.5 172.9 68 210.9M142.5 172.9 252.9 197.2 291.1 101.9M252.9 197.2 314.1 275.3 222.4 325.2 116.2 303.3 68 210.9M116.2 303.3 142.5 172.9;M32.5 44.3 115.5 84.1 206.3 28.2 288.2 100.7M115.5 84.1 145 176.2 69 213.3M145 176.2 252.6 193.6 288.2 100.7M252.6 193.6 315 273.4 220.5 327.6 115.1 301 69 213.3M115.1 301 145 176.2;M30 45 118 81.5 208 29.4 286.4 98.2M118 81.5 148.7 177.9 68.6 215.9M148.7 177.9 250.5 190.6 286.4 98.2M250.5 190.6 316.7 272.2 220 330.7 115.3 298.4 68.6 215.9M115.3 298.4 148.7 177.9;M27.5 44.3 119 78 208.9 31.2 286.1 95.1M119 78 152.9 177.5 67.1 218M152.9 177.5 247.2 189.1 286.1 95.1M247.2 189.1 318.7 272.1 221.2 333.6 116.7 296.2 67.1 218M116.7 296.2 152.9 177.5;M25.7 42.5 118.1 74.5 208.8 33.3 287.3 92.2M118.1 74.5 156.2 175 64.7 219M156.2 175 243.6 189.4 287.3 92.2M243.6 189.4 320.6 273 223.6 335.5 119 295.1 64.7 219M119 295.1 156.2 175;M25 40 115.5 72 207.6 35 289.8 90.4M115.5 72 157.9 171.3 62.1 218.6M157.9 171.3 240.6 191.5 289.8 90.4M240.6 191.5 321.8 274.7 226.7 336 121.6 295.3 62.1 218.6M121.6 295.3 157.9 171.3;M25.7 37.5 112 71 205.8 35.9 292.9 90.1M112 71 157.5 167.1 60 217.1M157.5 167.1 239.1 194.8 292.9 90.1M239.1 194.8 321.9 276.7 229.6 334.8 123.8 296.7 60 217.1M123.8 296.7 157.5 167.1;M27.5 35.7 108.5 71.9 203.7 35.8 295.8 91.3M108.5 71.9 155 163.8 59 214.7M155 163.8 239.4 198.4 295.8 91.3M239.4 198.4 321 278.6 231.5 332.4 124.9 299 59 214.7M124.9 299 155 163.8;M30 35 106 74.5 202 34.6 297.6 93.8M106 74.5 151.3 162.1 59.4 212.1M151.3 162.1 241.5 201.4 297.6 93.8M241.5 201.4 319.3 279.8 232 329.3 124.7 301.6 59.4 212.1M124.7 301.6 151.3 162.1;M32.5 35.7 105 78 201.1 32.8 297.9 96.9M105 78 147.1 162.5 60.9 210M147.1 162.5 244.8 202.9 297.9 96.9M244.8 202.9 317.3 279.9 230.8 326.4 123.3 303.8 60.9 210M123.3 303.8 147.1 162.5;M34.3 37.5 105.9 81.5 201.2 30.7 296.7 99.8M105.9 81.5 143.8 165 63.3 209M143.8 165 248.4 202.6 296.7 99.8M248.4 202.6 315.4 279 228.4 324.5 121 304.9 63.3 209M121 304.9 143.8 165;M35 40 108.5 84 202.4 29 294.2 101.6M108.5 84 142.1 168.7 65.9 209.4M142.1 168.7 251.4 200.5 294.2 101.6M251.4 200.5 314.2 277.3 225.3 324 118.4 304.7 65.9 209.4M118.4 304.7 142.1 168.7'/%3E%3C/path%3E%3C/g%3E%3Cg fill='%2360a5fa' fill-opacity='.18'%3E%3Ccircle cx='35' cy='40' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='35;34.3;32.5;30;27.5;25.7;25;25.7;27.5;30;32.5;34.3;35'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='40;42.5;44.3;45;44.3;42.5;40;37.5;35.7;35;35.7;37.5;40'/%3E%3C/circle%3E%3Ccircle cx='108.5' cy='84' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='108.5;112;115.5;118;119;118.1;115.5;112;108.5;106;105;105.9;108.5'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='84;85;84.1;81.5;78;74.5;72;71;71.9;74.5;78;81.5;84'/%3E%3C/circle%3E%3Ccircle cx='202.4' cy='29' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='202.4;204.2;206.3;208;208.9;208.8;207.6;205.8;203.7;202;201.1;201.2;202.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='29;28.1;28.2;29.4;31.2;33.3;35;35.9;35.8;34.6;32.8;30.7;29'/%3E%3C/circle%3E%3Ccircle cx='294.2' cy='101.6' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='294.2;291.1;288.2;286.4;286.1;287.3;289.8;292.9;295.8;297.6;297.9;296.7;294.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='101.6;101.9;100.7;98.2;95.1;92.2;90.4;90.1;91.3;93.8;96.9;99.8;101.6'/%3E%3C/circle%3E%3Ccircle cx='142.1' cy='168.7' r='3'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='142.1;142.5;145;148.7;152.9;156.2;157.9;157.5;155;151.3;147.1;143.8;142.1'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='168.7;172.9;176.2;177.9;177.5;175;171.3;167.1;163.8;162.1;162.5;165;168.7'/%3E%3C/circle%3E%3Ccircle cx='65.9' cy='209.4' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='65.9;68;69;68.6;67.1;64.7;62.1;60;59;59.4;60.9;63.3;65.9'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='209.4;210.9;213.3;215.9;218;219;218.6;217.1;214.7;212.1;210;209;209.4'/%3E%3C/circle%3E%3Ccircle cx='251.4' cy='200.5' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='251.4;252.9;252.6;250.5;247.2;243.6;240.6;239.1;239.4;241.5;244.8;248.4;251.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='200.5;197.2;193.6;190.6;189.1;189.4;191.5;194.8;198.4;201.4;202.9;202.6;200.5'/%3E%3C/circle%3E%3Ccircle cx='314.2' cy='277.3' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='314.2;314.1;315;316.7;318.7;320.6;321.8;321.9;321;319.3;317.3;315.4;314.2'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='277.3;275.3;273.4;272.2;272.1;273;274.7;276.7;278.6;279.8;279.9;279;277.3'/%3E%3C/circle%3E%3Ccircle cx='225.3' cy='324' r='2.5'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='225.3;222.4;220.5;220;221.2;223.6;226.7;229.6;231.5;232;230.8;228.4;225.3'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='324;325.2;327.6;330.7;333.6;335.5;336;334.8;332.4;329.3;326.4;324.5;324'/%3E%3C/circle%3E%3Ccircle cx='118.4' cy='304.7' r='2'%3E%3Canimate attributeName='cx' dur='90s' repeatCount='indefinite' values='118.4;116.2;115.1;115.3;116.7;119;121.6;123.8;124.9;124.7;123.3;121;118.4'/%3E%3Canimate attributeName='cy' dur='90s' repeatCount='indefinite' values='304.7;303.3;301;298.4;296.2;295.1;295.3;296.7;299;301.6;303.8;304.9;304.7'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");--constellation-static: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg fill='none' stroke='%2360a5fa' stroke-opacity='.08'%3E%3Cpath d='M30 40 112 78 205 32 292 96M112 78 150 170 64 214M150 170 246 196 292 96M246 196 318 276 226 330 120 300 64 214M120 300 150 170'/%3E%3C/g%3E%3Cg fill='%2360a5fa' fill-opacity='.18'%3E%3Ccircle cx='30' cy='40' r='2'/%3E%3Ccircle cx='112' cy='78' r='2.5'/%3E%3Ccircle cx='205' cy='32' r='2'/%3E%3Ccircle cx='292' cy='96' r='2.5'/%3E%3Ccircle cx='150' cy='170' r='3'/%3E%3Ccircle cx='64' cy='214' r='2'/%3E%3Ccircle cx='246' cy='196' r='2.5'/%3E%3Ccircle cx='318' cy='276' r='2'/%3E%3Ccircle cx='226' cy='330' r='2.5'/%3E%3Ccircle cx='120' cy='300' r='2'/%3E%3C/g%3E%3C/svg%3E")}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--tint) 20%,transparent),transparent 60vh),var(--constellation) 0 0 / 360px 360px}@media(prefers-reduced-motion:reduce){body:before{background:linear-gradient(180deg,color-mix(in srgb,var(--tint) 20%,transparent),transparent 60vh),var(--constellation-static) 0 0 / 360px 360px}}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);margin:0;line-height:1.15;letter-spacing:-.012em;font-weight:650;text-wrap:balance}p{margin:0}code{font-family:var(--f-mono);font-size:.9em}.ic{flex:none;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.muted{color:var(--fg-3)}.muted-2{color:var(--fg-2)}.small{font-size:.86rem}.strong{font-weight:700}.mono{font-family:var(--f-mono)}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.center{text-align:center;justify-content:center}.pad{padding:12px}.clamp1,.clamp2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.clamp1{-webkit-line-clamp:1}.clamp2{-webkit-line-clamp:2}.eyebrow{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3);font-weight:700}.row{display:flex;gap:8px;align-items:center}.row>input{flex:1;min-width:0}.row-wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}kbd{font-family:var(--f-mono);font-size:.7rem;padding:1px 6px;border-radius:5px;border:1px solid currentColor;opacity:.55;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s}.btn:hover{background:var(--surface-2);border-color:var(--fg-3)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--fg));border-color:transparent}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--surface-2);border-color:transparent}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover{background:color-mix(in srgb,var(--bad) 86%,#000);border-color:transparent}.btn-sm{padding:6px 10px;font-size:.87rem;border-radius:8px}.btn-lg{padding:12px 18px;font-size:1.05rem;border-radius:12px}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--fg-2);cursor:pointer;flex:none}.icon-btn:hover{background:var(--surface-2);color:var(--fg)}.link{border:0;background:none;color:var(--accent);font-weight:700;cursor:pointer;padding:4px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field>span{font-weight:700;font-size:.9rem;color:var(--fg-2)}input:not([type=checkbox]):not([type=range]),select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);font-size:16px;min-width:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.dw-field{display:flex;align-items:center;gap:10px;width:100%;height:46px;padding:0 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg-3);font-size:16px;text-align:left;cursor:pointer}.dw-field:hover{background:var(--surface-2)}.dw-field:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.dw-field-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-weight:700}.dw-field-v:first-letter{text-transform:uppercase}.dw-field-v.dw-empty{color:var(--fg-3);font-weight:500}.dw-field-edit{flex:none;font-size:.8rem;font-weight:700;color:var(--accent)}.dw-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;display:flex;align-items:flex-end;background:#00000080;animation:inFade .18s ease-out both}.dw-sheet{width:100%;background:var(--surface);border-top:1px solid var(--line);border-radius:24px 24px 0 0;padding:10px 16px max(24px,env(safe-area-inset-bottom));box-shadow:var(--shadow-2);animation:dwUp .26s cubic-bezier(.22,1,.36,1) both}@keyframes dwUp{0%{transform:translateY(40px);opacity:0}}@media(min-width:1024px){.dw-bg{align-items:center;justify-content:center;padding:16px}.dw-sheet{max-width:400px;padding:18px;border:1px solid var(--line);border-radius:20px}.dw-grip{display:none!important}}.dw-grip{display:block;width:40px;height:5px;margin:0 auto 14px;border-radius:99px;background:var(--line-2)}.dw-title{margin:0;font-size:.82rem;font-weight:700;color:var(--fg-3)}.dw-long{margin:2px 0 0;font-family:var(--f-display);font-size:1.32rem;font-weight:700;color:var(--fg)}.dw-long:first-letter{text-transform:uppercase}.dw-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.dw-chip{height:32px;padding:0 12px;border-radius:99px;border:1px solid var(--line-2);background:none;color:var(--fg);font-size:.78rem;font-weight:700;cursor:pointer}.dw-chip:hover{background:var(--surface-2)}.dw-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.dw-wheels{position:relative;display:flex;gap:6px;height:200px;margin-top:14px}.dw-band{position:absolute;left:0;right:0;top:80px;height:40px;border-radius:12px;background:var(--accent-soft)}.dw-wheel{position:relative;min-width:0}.dw-day{flex:.8}.dw-month{flex:1.6}.dw-year{flex:1}.dw-scroll{height:200px;padding-right:22px;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-user-select:none;user-select:none;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent)}.dw-scroll::-webkit-scrollbar{display:none}@media(pointer:fine){.dw-scroll{cursor:grab}}.dw-opt{display:flex;align-items:center;justify-content:center;width:100%;height:40px;border:0;background:none;scroll-snap-align:center;font-size:17px;font-weight:500;color:var(--fg-3);cursor:inherit;transition:color .15s}.dw-opt.on{color:var(--accent);font-weight:800}.dw-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dw-steps{position:absolute;top:80px;right:2px;height:40px;display:flex;flex-direction:column;justify-content:center}.dw-steps button{width:22px;height:18px;display:grid;place-items:center;border:0;border-radius:6px;background:none;color:var(--fg-2);cursor:pointer}.dw-steps button:hover:not(:disabled){background:var(--sunken);color:var(--fg)}.dw-steps button:disabled{opacity:.3;cursor:default}.dw-warn{margin:10px 0 0;font-size:.85rem;font-weight:700;color:var(--bad)}.dw-actions{display:flex;gap:8px;margin-top:16px}.dw-actions .btn{flex:1;height:48px;border-radius:99px;justify-content:center}input[type=range]{flex:1;accent-color:var(--accent)}.check{display:flex;gap:10px;align-items:center;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent)}.form-err{color:var(--bad);font-weight:700}.form-info{color:var(--good);font-weight:700}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:12px;background:var(--sunken)}.seg button{border:0;background:transparent;padding:9px 10px;border-radius:9px;font-weight:700;color:var(--fg-2);cursor:pointer}.seg button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}.splash{min-height:100vh;display:grid;place-items:center}.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);padding:clamp(22px,5vw,34px);display:flex;flex-direction:column;gap:20px}.plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plans[data-n="1"]{grid-template-columns:1fr}.btn.plan{flex-direction:column;height:auto;padding:14px 10px;gap:2px}.btn.plan small{white-space:normal;text-align:center}.btn.plan b{font-size:1.35rem}.plan-consent{display:flex;gap:8px;align-items:flex-start;color:var(--fg-2);margin-bottom:10px}.plan-consent input{margin-top:2px;accent-color:var(--accent)}.auth-brand{display:flex;gap:14px;align-items:center}.auth-brand h1{font-size:1.7rem;font-weight:750}.auth-title{font-size:1.2rem}.auth-foot{text-align:center}.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:22px;padding:18px 12px 16px;border-right:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px;border:0;background:none;cursor:pointer;text-align:left}.logo{display:block;flex:none;object-fit:contain}.brand b{font-family:var(--f-display);font-size:1.2rem;display:block;line-height:1;font-weight:750;letter-spacing:-.02em}.brand-year{display:block;margin-top:3px;font-size:.72rem;font-weight:650;color:var(--fg-3);letter-spacing:.04em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{--c: var(--accent);position:relative;display:flex;align-items:center;gap:11px;padding:10px;border-radius:10px;border:0;background:none;cursor:pointer;color:var(--fg-2);font-weight:700;text-align:left;width:100%;transition:color .2s}.nav-item:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 13%,transparent),color-mix(in srgb,var(--c) 2%,transparent));color:var(--fg)}.nav-item.on{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 24%,transparent),color-mix(in srgb,var(--c) 5%,transparent));color:color-mix(in srgb,var(--c) 70%,var(--fg))}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:0 3px 3px 0;background:var(--c);transform:translateY(-50%);transition:height .2s}.nav-item.on:before{height:20px}.nav-item .count{margin-left:auto;font-family:var(--f-mono);font-size:.72rem;padding:1px 7px;border-radius:99px;background:var(--accent);color:var(--on-accent)}.side-foot{margin-top:auto}.main{min-width:0}.app.focus{grid-template-columns:minmax(0,1fr)}.app.focus .sidebar{display:none}.page{max-width:1080px;margin:0 auto;padding:28px clamp(16px,3vw,36px) 48px;display:flex;flex-direction:column;gap:22px}.page.narrow{max-width:720px}.page-title{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:750}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--pad);box-shadow:var(--shadow-1);min-width:0;display:flex;flex-direction:column;gap:14px}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.panel-h h2,.h2{font-size:1.12rem}.panel-h p{color:var(--fg-3);font-size:.88rem}.back{align-self:flex-start;margin:-8px 0 -10px -6px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.hero h1{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:750;margin:4px 0 6px}.hero .eyebrow:first-letter{text-transform:uppercase}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-1)}.tile b{font-family:var(--f-display);font-size:1.6rem;font-weight:750;display:flex;align-items:center;gap:6px}.tile b small{font-size:.9rem;color:var(--fg-3);font-weight:500}.tile .ic{color:var(--hard)}.subject{display:flex;flex-direction:column;gap:12px}.subject-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.subject-h h2{font-size:1.3rem;display:flex;align-items:center;gap:10px}.dot{width:12px;height:12px;border-radius:4px;display:inline-block}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.deck-card{text-align:left;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--r);border:1px solid var(--line);border-top:4px solid var(--deck, var(--accent));background:var(--surface);box-shadow:var(--shadow-1);cursor:pointer;transition:transform .15s,box-shadow .15s}.deck-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.deck-title{font-family:var(--f-display);font-size:1.15rem;font-weight:650;line-height:1.2}.deck-counts{display:flex;gap:6px;flex-wrap:wrap}.deck-foot{display:flex;justify-content:space-between}.pill{font-size:.78rem;font-weight:700;padding:2px 9px;border-radius:99px}.pill.weak{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}.pill.new{background:color-mix(in srgb,var(--info) 13%,transparent);color:var(--info)}.bar{height:8px;border-radius:99px;background:var(--sunken);overflow:hidden;min-width:40px}.bar i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .3s}.boxes{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--b0)}.boxes i{display:block;height:100%}.b0{background:var(--b0)}.b1{background:var(--b1)}.b2{background:var(--b2)}.b3{background:var(--b3)}.b4{background:var(--b5)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.lg-ok{background:var(--accent)}.lg-ko{background:color-mix(in srgb,var(--accent) 30%,var(--sunken))}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;border:1.5px dashed var(--line-2);border-radius:var(--r)}.empty-ic{width:54px;height:54px;border-radius:16px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.deck-head{display:flex;flex-direction:column;gap:6px;padding-left:14px;border-left:4px solid var(--deck, var(--accent))}.deck-head h1{font-size:clamp(1.6rem,3.6vw,2.3rem);font-weight:750}.deck-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat-row div{display:flex;flex-direction:column}.stat-row b{font-family:var(--f-display);font-size:1.6rem;font-weight:750;line-height:1.1}.stat-row span{color:var(--fg-3);font-size:.86rem}.mastery{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.search{display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line-2);border-radius:10px;color:var(--fg-3);min-width:0;flex:0 1 260px}.search input{border:0!important;padding:8px 0!important;outline:0!important;background:transparent!important}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:99px;padding:5px 12px;font-weight:700;font-size:.86rem;cursor:pointer;color:var(--fg-2)}.chip-btn.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.card-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.card-list>li{border-bottom:1px solid var(--line)}.card-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 4px;border:0;background:none;text-align:left;cursor:pointer}.card-row:hover{background:var(--surface-2)}.card-row-q{min-width:0}.card-row-a{padding:0 4px 14px 26px;display:flex;flex-direction:column;gap:6px}.mini-opts{margin:0;padding-left:18px;color:var(--fg-2)}.mini-opts .ok{color:var(--good);font-weight:700}.st{width:10px;height:10px;border-radius:50%}.st-new{background:var(--line-2)}.st-learning{background:var(--b2)}.st-weak{background:var(--bad)}.st-mastered{background:var(--b5)}.danger-zone{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.danger-zone h3{font-size:1rem}.study{max-width:760px;width:100%;margin:0 auto;padding:16px clamp(16px,3vw,32px) 32px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:18px}.study-top{display:flex;align-items:center;gap:10px;padding-top:env(safe-area-inset-top,0px)}.study-progress{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.study-label{display:flex;justify-content:space-between;gap:10px}.chip{font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--accent-soft);color:var(--accent);letter-spacing:.02em}.chip-soft{background:var(--sunken);color:var(--fg-2)}.chip-new{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info)}.flash{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);padding:clamp(20px,4vw,38px);display:flex;flex-direction:column;gap:18px;animation:cardIn .3s cubic-bezier(.2,.7,.2,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.99)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.flash-meta{display:flex;flex-wrap:wrap;gap:6px}.flash-front{display:flex;flex-direction:column;gap:10px}.flash .term{font-family:var(--f-display);font-size:clamp(1.6rem,5vw,2.3rem);font-weight:750;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}.flash .q{font-size:clamp(1.12rem,3.2vw,1.4rem);line-height:1.45;font-weight:700;white-space:pre-line}.flash .term+.q,.flash .q.sub{font-size:1.02rem;font-weight:400;color:var(--fg-2)}.cloze-gap{display:inline-block;border-bottom:2.5px solid var(--accent);margin:0 2px;white-space:pre}.cloze-fill{background:var(--accent-soft);color:var(--accent);padding:0 4px;border-radius:5px}.hint p{display:flex;gap:8px;align-items:flex-start;color:var(--warn);font-weight:700}.hint .btn{margin-left:-10px}.flash-back{border-top:1.5px dashed var(--line-2);padding-top:18px;display:flex;flex-direction:column;gap:14px;animation:rise .25s both}.flash-back .ans{font-size:clamp(1.1rem,3vw,1.35rem);font-weight:700;line-height:1.4;white-space:pre-line}.ans-sub{font-weight:400;color:var(--fg-2)}.extra{background:var(--surface-2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;white-space:pre-line}.opts{display:flex;flex-direction:column;gap:8px}.opt{display:flex;gap:12px;align-items:center;text-align:left;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;font-weight:700}.opt:not([disabled]):hover{border-color:var(--accent);background:var(--accent-soft)}.opt[disabled]{cursor:default}.opt>span:nth-child(2){flex:1}.opt-l{width:28px;height:28px;border-radius:8px;background:var(--sunken);display:grid;place-items:center;font-family:var(--f-mono);font-size:.85rem;flex:none}.opt.ok,.tf.ok{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good);opacity:1}.opt.ko,.tf.ko{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent);color:var(--bad);opacity:1}.opt.dim,.tf.dim{opacity:.5}.tf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.study-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,var(--bg) 30%);margin-top:auto}.reveal{width:100%}.grade-q{font-weight:700;color:var(--fg-2);text-align:center}.grades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.grade{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;font-weight:700;transition:transform .12s,border-color .15s,background .15s}.grade:hover{transform:translateY(-2px)}.grade small{font-family:var(--f-mono);font-size:.74rem;color:var(--fg-3);font-weight:400}.grade.g0{color:var(--bad)}.grade.g1{color:var(--hard)}.grade.g2{color:var(--good)}.grade.g3{color:var(--info)}.grade.g0:hover,.grade.g0.sugg{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}.grade.g1:hover{border-color:var(--hard);background:color-mix(in srgb,var(--hard) 8%,transparent)}.grade.g2:hover,.grade.g2.sugg{border-color:var(--good);background:color-mix(in srgb,var(--good) 8%,transparent)}.grade.g3:hover{border-color:var(--info);background:color-mix(in srgb,var(--info) 8%,transparent)}.grade.sugg{box-shadow:0 0 0 3px var(--accent-soft)}.done{align-items:center;text-align:center;padding:36px 20px;margin-top:8vh}.done h1{font-size:1.9rem}.done-ic{width:64px;height:64px;border-radius:20px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.dist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;max-width:460px}.dist-i{display:flex;flex-direction:column;padding:10px 4px;border-radius:12px;background:var(--surface-2);font-size:.82rem;font-weight:700}.dist-i b{font-family:var(--f-display);font-size:1.5rem}.dist-i.g0{color:var(--bad)}.dist-i.g1{color:var(--hard)}.dist-i.g2{color:var(--good)}.dist-i.g3{color:var(--info)}.study .empty{margin-top:10vh}.bars{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px;height:150px;align-items:end}.bar-col{height:100%;display:flex;align-items:flex-end}.bar-col i{display:flex;flex-direction:column-reverse;width:100%;min-height:2px;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--accent) 30%,var(--sunken));overflow:hidden}.bar-col em{display:block;width:100%;background:var(--accent)}.bars-axis{display:flex;justify-content:space-between}.mastery-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mastery-row{width:100%;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr) minmax(120px,1.2fr);gap:12px;align-items:center;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer}.mastery-pct{display:flex;gap:8px;align-items:center}.mastery-pct .bar{flex:1}.captcha{min-height:65px}.mfa-steps{display:grid;gap:12px;margin:0 0 14px;padding-left:20px}.mfa-steps li>span{display:block}.mfa-qr{display:block;margin:10px 0 6px;background:#fff;border-radius:10px;padding:8px;border:1px solid var(--line)}.mfa input{max-width:160px;letter-spacing:.2em}.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.admin-tabs button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg-2);border-radius:99px;padding:6px 14px;font-weight:700;cursor:pointer}.admin-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.admin-badge{background:var(--bad);color:#fff;border-radius:99px;font-size:.72rem;padding:0 6px;line-height:1.5}.admin-search{width:100%;margin-bottom:10px}.admin-reports,.admin-decks,.admin-subjects{list-style:none;margin:0;padding:0}.admin-reports li{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.report-msg{margin:0;padding:8px 12px;border-left:3px solid var(--warn);background:var(--surface-2);border-radius:6px}.report-card{display:grid;gap:4px}.admin-decks li{border-bottom:1px solid var(--line)}.admin-decks li.archived{opacity:.6}.admin-deck-h{display:flex;align-items:center;gap:10px;width:100%;padding:10px 2px;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.admin-deck-h>span{flex:1;min-width:0}.admin-deck-cards{display:grid;gap:8px;padding:0 0 12px 22px}.admin-subjects li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.admin-subjects li>span:nth-child(2){flex:1;min-width:0}.subject-thumb{width:64px;height:40px;border-radius:8px;overflow:hidden;flex:none}.subject-thumb img,.subject-preview img{width:100%;height:100%;object-fit:cover;display:block}.subject-preview{position:relative;display:block;height:120px;border-radius:14px;overflow:hidden}.subject-preview b{position:absolute;left:14px;top:10px;color:#fff;text-shadow:0 1px 8px rgb(0 0 0 / .5)}.color-choices{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.color-dot{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}.color-dot.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--surface) inset}.gauge{display:grid;gap:6px;margin-bottom:12px}.gauge-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.gauge-bar{height:10px;border-radius:99px;background:var(--sunken);overflow:hidden}.gauge-bar i{display:block;height:100%;background:var(--accent)}.gauge-bar.warn i{background:var(--warn)}.user-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 14px}.user-facts dt{color:var(--fg-3)}.user-facts dd{margin:0}.card-editor textarea{resize:vertical}.admin-log{list-style:none;margin:0;padding:0}.admin-log li{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:100;animation:rise .15s both}body.modal-open .dtop,body.modal-open .mtop{visibility:hidden}.modal{width:100%;max-width:440px;background:var(--surface);border-radius:18px;padding:20px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:14px}.modal-h{display:flex;justify-content:space-between;align-items:center;gap:10px}.modal-h h2{font-size:1.2rem}.modal-f{display:flex;justify-content:flex-end;gap:8px}.confirm-bg{background:#0a0e1680;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.modal.confirm{max-width:400px;align-items:center;text-align:center;gap:8px;padding:28px 24px 22px;border:1px solid var(--line);border-radius:22px;animation:confirmIn .22s cubic-bezier(.2,.8,.2,1) both}@keyframes confirmIn{0%{opacity:0;transform:translateY(12px) scale(.96)}}.confirm-ic{display:grid;place-items:center;width:60px;height:60px;margin-bottom:10px;border-radius:50%;color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 6%,transparent)}.confirm.is-danger .confirm-ic{color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,transparent);box-shadow:0 0 0 8px color-mix(in srgb,var(--bad) 6%,transparent)}.confirm h2{font-size:1.3rem;line-height:1.25}.confirm>p{margin:0;color:var(--fg-2);line-height:1.5;max-width:32ch}.confirm-detail{display:flex;align-items:center;gap:12px;width:100%;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-family:var(--f-display);font-weight:700;text-align:left}.confirm-detail .dot{flex:none}.confirm-detail>span{min-width:0;overflow-wrap:anywhere}.confirm-f{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:14px}.confirm-f .btn{padding:12px 14px;border-radius:12px;white-space:normal}@media(prefers-reduced-motion:reduce){.modal.confirm{animation:none}}.toasts{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:var(--shadow-2);animation:rise .2s both}.toast.err{background:var(--bad);color:#fff}@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.page{padding:18px 16px calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom,0px))}.toasts{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom,0px))}.app.focus~.toasts{bottom:24px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.mastery-row{grid-template-columns:minmax(0,1fr) auto}.mastery-row .boxes,.mastery-row .mastery-pct{grid-column:1 / -1}}@media(max-width:560px){html{font-size:14.5px}.deck-actions .btn{flex:1 1 100%}.grades{gap:6px}.grade{padding:10px 2px;font-size:.92rem}.grade kbd,.reveal kbd{display:none}.stat-row b{font-size:1.3rem}.bars{gap:2px}.search{flex:1 1 100%}.danger-zone .btn{width:100%}}@media(hover:none){.deck-card:hover,.grade:hover{transform:none}}@media(min-width:861px){.study-actions{position:static;margin-top:0;background:none}}.nav>div{display:contents}.nav-label{margin:14px 10px 4px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-weight:700}.nav-sep{height:1px;background:var(--line);margin:10px 8px}.nav-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-subj{display:inline-grid;place-items:center;border-radius:6px;color:#fff;font-family:var(--f-display);font-weight:750;font-size:.72rem;flex:none;line-height:1;background-image:linear-gradient(135deg,rgb(255 255 255 / .28),transparent 70%)}.link-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--accent);font-weight:700;padding:2px 0;cursor:pointer}.page.wide{max-width:1240px}.subj-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.subj-title{display:flex;align-items:center;gap:14px;min-width:0}.subj-title h1{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:750}.subj-badge{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;font-family:var(--f-display);font-weight:750;font-size:1.4rem;flex:none;box-shadow:var(--shadow-1)}.subj-tabs{min-width:280px}.subj-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.course-link{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:var(--accent-soft);color:var(--accent);font-weight:700;cursor:pointer;text-align:left;transition:background .15s,transform .1s}.course-link span{flex:1}.course-link:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.course-link:active{transform:translateY(1px)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#00000073;display:flex;justify-content:flex-end;animation:rise .15s both}.drawer{width:min(760px,100%);height:100%;background:var(--bg);display:flex;flex-direction:column;box-shadow:var(--shadow-2);animation:slideIn .25s cubic-bezier(.2,.7,.2,1) both}@keyframes slideIn{0%{transform:translate(40px);opacity:0}}.drawer-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) 18px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.drawer-h>div{min-width:0}.drawer-body{flex:1;overflow-y:auto;padding:18px clamp(14px,3vw,28px) 40px;overscroll-behavior:contain}.course{display:grid;grid-template-columns:250px minmax(0,1fr);gap:36px;align-items:start}.course.compact{display:block}.c-toc{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 4px 20px 0}.c-toc-list{display:flex;flex-direction:column;gap:1px}.c-toc-item{display:flex;gap:8px;align-items:baseline;text-align:left;border:0;background:none;padding:6px 10px;border-radius:8px;color:var(--fg-2);cursor:pointer;font-size:.88rem;line-height:1.35;border-left:2px solid transparent}.c-toc-item:hover{background:var(--surface-2);color:var(--fg)}.c-toc-item.on{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent);border-radius:0 8px 8px 0}.c-toc-item.l1,.course:has(.c-sec.l3) .c-toc-item.l2{font-weight:700;color:var(--fg);margin-top:8px}.c-toc-item.l3,.course:not(:has(.c-sec.l3)) .c-toc-item.l2{padding-left:18px}.c-toc-num{font-family:var(--f-mono);font-size:.75rem;color:var(--fg-3);flex:none}.c-toc-item.on .c-toc-num{color:var(--accent)}.c-toc-mobile{display:none}.c-article{min-width:0;max-width:780px;display:flex;flex-direction:column;gap:18px;font-size:1.04rem;line-height:1.7}.c-head{display:flex;flex-direction:column;gap:10px;padding:26px 28px;border-radius:20px;color:#fff;background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--deck, var(--accent)) 55%,#fff 0%) 0%,transparent 55%),linear-gradient(135deg,var(--deck, var(--accent)),color-mix(in srgb,var(--deck, var(--accent)) 70%,#000));box-shadow:var(--shadow-2)}.c-head h1{font-size:clamp(1.5rem,3.6vw,2.2rem);font-weight:750;line-height:1.15}.c-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.85rem;opacity:.9}.c-meta span{display:inline-flex;align-items:center;gap:6px}.c-lead{font-size:.98rem;line-height:1.6;opacity:.95;border-top:1px solid rgb(255 255 255 / .25);padding-top:12px}.c-lead strong{background:none;color:inherit}.c-sec{scroll-margin-top:84px}.c-sec.part{margin-top:18px;padding:4px 0 0}.c-sec.part>.c-h{font-size:clamp(1.35rem,3vw,1.75rem);font-weight:750;padding-bottom:12px;border-bottom:2px solid var(--line);margin-bottom:4px}.c-sec.part>.c-h .c-num{background:var(--fg);color:var(--bg);font-size:.78rem;padding:4px 10px;text-transform:uppercase;letter-spacing:.06em}.c-sec.part>.c-p{color:var(--fg-2);font-style:italic}.c-sec.leaf{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px clamp(18px,3vw,28px);box-shadow:var(--shadow-1)}.c-h{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:1.22rem;font-weight:700;line-height:1.25}.c-h-t{min-width:0}.c-num{flex:none;display:inline-grid;place-items:center;min-width:38px;height:30px;padding:0 9px;border-radius:9px;background:var(--deck, var(--accent));color:#fff;font-family:var(--f-mono);font-size:.82rem;font-weight:500;letter-spacing:0}.c-sec.recap{background:color-mix(in srgb,var(--warn) 9%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}.c-num.recap{background:var(--warn);min-width:30px}.c-p{margin:0 0 10px}.c-p:last-child{margin-bottom:0}.c-article strong{font-weight:700;color:var(--fg);background:linear-gradient(transparent 62%,color-mix(in srgb,var(--deck, var(--accent)) 22%,transparent) 62%);padding:0 1px}.c-article em{color:var(--fg-2)}.c-article code{font-family:var(--f-mono);font-size:.88em;background:var(--sunken);padding:1px 6px;border-radius:6px}.c-list{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.c-list:last-child{margin-bottom:0}.c-ul>li{position:relative;padding-left:22px}.c-ul>li:before{content:"";position:absolute;left:4px;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--deck, var(--accent))}.c-list .c-list{margin:8px 0 2px;padding:10px 0 10px 14px;border-left:2px solid var(--line);gap:6px;font-size:.97rem}.c-list .c-ul>li:before{width:6px;height:6px;border-radius:2px;background:transparent;border:1.5px solid var(--deck, var(--accent))}.c-ol{counter-reset:c-ol}.c-ol>li{counter-increment:c-ol;position:relative;padding-left:38px;min-height:28px}.c-ol>li:before{content:counter(c-ol);position:absolute;left:0;top:.12em;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--f-mono);font-size:.8rem;font-weight:500}.c-table-wrap{overflow-x:auto;margin:4px 0 12px;border:1px solid var(--line);border-radius:14px}.c-table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.45}.c-table th,.c-table td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.c-table th{background:color-mix(in srgb,var(--deck, var(--accent)) 12%,var(--surface));font-family:var(--f-display);font-weight:700;white-space:nowrap}.c-table tr:last-child td{border-bottom:0}.c-table tbody tr:nth-child(2n) td{background:var(--surface-2)}.c-table td:first-child{font-weight:700}.c-table strong{background:none}.c-sec-f{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-2);display:flex}.c-practice{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:var(--accent);font-weight:700;font-size:.9rem;cursor:pointer;padding:4px 0}.c-practice:hover{text-decoration:underline}.c-count{font-family:var(--f-mono);font-size:.74rem;font-weight:500;padding:1px 8px;border-radius:99px;background:var(--accent-soft)}.c-sec.c-target{animation:target 2.2s ease-out}@keyframes target{0%,35%{box-shadow:0 0 0 3px var(--accent),var(--shadow-2)}to{box-shadow:0 0 0 0 transparent,var(--shadow-1)}}.course.compact .c-head{padding:18px 20px}.course.compact .c-article{max-width:none}@media(max-width:1000px){.course{display:block}.c-toc{display:none}.c-toc-mobile{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.c-toc-mobile .c-toc-list{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px}}@media(max-width:860px){.c-sec{scroll-margin-top:70px}.subj-tabs{min-width:0;width:100%}}@media(max-width:560px){.c-article{font-size:1rem;line-height:1.65}.c-sec.leaf{padding:18px 16px;border-radius:16px}.c-head{padding:22px 18px;border-radius:18px}.c-h{font-size:1.1rem;align-items:flex-start}.drawer{width:100%}}.study-label>span:first-child{flex:1;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.study-label>span:last-child{flex:none;white-space:nowrap}.pill.a-ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}.pill.a-warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.pill.a-none{background:var(--sunken);color:var(--fg-3)}.a-docs{display:flex;flex-direction:column;gap:8px}.a-doc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.a-doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;min-width:0;transition:border-color .15s,background .15s}.a-doc:hover{border-color:var(--deck, var(--accent));background:var(--surface-2)}.a-doc>svg{color:var(--fg-3);flex:none}.a-doc-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--deck, var(--accent));background:color-mix(in srgb,var(--deck, var(--accent)) 13%,transparent)}.a-doc-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.a-doc-t b{font-weight:700;line-height:1.25}.a-head{display:flex;flex-direction:column;gap:10px}.a-parts{display:flex;flex-direction:column;gap:8px}.a-part{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);text-align:left;cursor:pointer}.a-part:hover{border-color:var(--deck, var(--accent))}.a-part>svg{color:var(--fg-3)}.a-part-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.rich{display:flex;flex-direction:column;gap:8px;line-height:1.55;min-width:0}.rich ul,.rich ol{padding-left:1.3em;display:flex;flex-direction:column;gap:4px}.rich-code{font-family:var(--f-mono);font-size:.84rem;line-height:1.5;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto;white-space:pre;margin:0}.rich.extra{white-space:normal}.a-read{display:flex;flex-direction:column;gap:22px}.a-read-part{display:flex;flex-direction:column;gap:14px}.a-read-part h3{font-size:1.05rem;padding-bottom:6px;border-bottom:1px solid var(--line)}.a-read-q{display:flex;flex-direction:column;gap:8px}.a-q-title{font-weight:700;line-height:1.4}h2.a-q-title{font-size:1.15rem}.a-q-n{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;margin-right:8px;border-radius:8px;font-family:var(--f-mono);font-size:.8rem;background:var(--accent-soft);color:var(--accent);vertical-align:1px}.a-read-opts{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.a-read-opts li{display:flex;gap:10px;align-items:baseline}.a-read-opts .opt-l{width:24px;height:24px;font-size:.78rem}.a-read-ans summary,.a-intro summary{cursor:pointer;font-weight:700;color:var(--accent);font-size:.9rem;width:fit-content}.a-read-ans[open] summary,.a-intro[open] summary{margin-bottom:8px}.a-q{gap:16px}.a-intro{background:var(--surface-2);border-radius:12px;padding:10px 14px}.opt.on{border-color:var(--accent);background:var(--accent-soft)}.opt.on .opt-l{background:var(--accent);color:var(--on-accent)}.opt.unsure{border-style:dashed;opacity:.8}.a-q .opt>span:nth-child(2){font-weight:600}.a-unsure{font-size:.72rem;font-weight:700;color:var(--fg-3);white-space:nowrap}.a-sol-wrap{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.a-sol{display:flex;flex-direction:column;gap:8px}.a-sol-note{font-size:.86rem;color:var(--warn);background:color-mix(in srgb,var(--warn) 11%,transparent);border-radius:10px;padding:8px 12px}.a-verdict{font-weight:750;font-family:var(--f-display);font-size:1.05rem}.a-verdict.ok{color:var(--good)}.a-verdict.ko{color:var(--bad)}.a-again{border-color:color-mix(in srgb,var(--bad) 45%,var(--line-2));color:var(--bad)}.a-score{font-size:1.1rem}.a-score b{font-family:var(--f-display);font-size:2.2rem;font-weight:750}.a-misses{text-align:left;width:100%;display:flex;flex-direction:column;gap:6px}.a-misses ul{padding-left:1.2em;display:flex;flex-direction:column;gap:4px;font-size:.92rem}a.btn{text-decoration:none}@media(max-width:640px){.a-doc-list{grid-template-columns:1fr}.a-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1*clamp(16px,3vw,36px));padding:0 clamp(16px,3vw,36px) 4px;scrollbar-width:none}.a-chips>*{flex:none}}.chip-exam{background:color-mix(in srgb,var(--hard) 15%,transparent);color:var(--hard)}.card-row-q .chip-exam{font-size:.68rem;padding:1px 7px;margin-right:4px;vertical-align:1px}.flash-meta{align-items:center}.trash-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--fg-3);padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:transparent;cursor:pointer}.trash-btn:hover{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line));background:color-mix(in srgb,var(--bad) 8%,transparent)}.card-code{display:block;font-family:var(--f-mono);font-size:.8rem;font-weight:500;line-height:1.5;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;overflow-x:auto;white-space:pre}.card-txt{display:block;white-space:pre-line}.inline-code{font-family:var(--f-mono);font-size:.88em;font-weight:450;background:var(--code-bg);border:1px solid var(--line);border-radius:5px;padding:.05em .35em;white-space:pre-wrap;color:var(--fg)}.flash .ans .card-txt{white-space:pre-line}.card-row-code .card-txt{display:none}.card-row-ans .card-txt{display:inline}.trash-link{color:var(--fg-3)}.trash-link:hover{color:var(--bad)}.trash-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line)}.trash-row .card-row-q{flex:1;min-width:0}math{font-family:"Cambria Math","STIX Two Math","Latin Modern Math",math;font-size:1.08em}.math-display{display:block;margin:10px 0;overflow-x:auto;text-align:center}.math-display math{font-size:1.2em}.math-error{color:var(--bad)}.import-list{list-style:none;margin:0;padding:0}.import-list li{display:grid;gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}.import-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.import-h b{overflow-wrap:anywhere}.import-status{font-weight:700;font-size:.92rem}.import-pret .import-status{color:var(--good)}.import-erreur .import-status,.import-refuse .import-status,.import-pas_un_cours .import-status{color:var(--bad)}.import-matiere_inconnue .import-status,.import-conteste .import-status{color:var(--warn)}.removed-list{list-style:none;margin:0;padding:0}.removed-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.panel-h h2 svg{vertical-align:-2px}.toast-act{pointer-events:auto;margin-left:12px;padding:2px 10px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;font-weight:750;cursor:pointer}.toast{pointer-events:auto}.hits{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.hit{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow-1)}.hit-main{flex:1;min-width:0;text-align:left;display:flex;flex-direction:column;gap:4px;background:none;border:0;padding:0;cursor:pointer;color:inherit}.hit-main b{font-size:1.02rem}.hit-snip{color:var(--fg-2);font-size:.9rem;line-height:1.45}.hit mark,.hit-main mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}@media(max-width:640px){.hit{flex-direction:column;align-items:stretch}}:root{--tk-kw: #008000;--tk-type: #b00040;--tk-cls: #0000ff;--tk-fn: #0000ff;--tk-call: #687822;--tk-str: #ba2121;--tk-num: #666666;--tk-com: #3d7b7b;--tk-op: #666666;--tk-ann: #aa22ff;--code-bg: #ffffff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--tk-kw: #4ec98b;--tk-type: #ff6b9a;--tk-cls: #7cb2ff;--tk-fn: #7cb2ff;--tk-call: #c7d36f;--tk-str: #ff8a80;--tk-num: #a3adbb;--tk-com: #84b8b8;--tk-op: #a3adbb;--tk-ann: #c792ea;--code-bg: #0f141b}}:root[data-theme=dark]{--tk-kw: #4ec98b;--tk-type: #ff6b9a;--tk-cls: #7cb2ff;--tk-fn: #7cb2ff;--tk-call: #c7d36f;--tk-str: #ff8a80;--tk-num: #a3adbb;--tk-com: #84b8b8;--tk-op: #a3adbb;--tk-ann: #c792ea;--code-bg: #0f141b}pre.code{display:block;font-family:var(--f-mono);font-size:.82rem;font-weight:450;line-height:1.55;text-align:left;color:var(--fg);background:var(--code-bg);border:1px solid var(--line);border-radius:10px;padding:10px 14px 10px 6px;margin:0;overflow-x:auto;white-space:pre;-webkit-overflow-scrolling:touch}pre.code.plain{padding-left:14px}.flash pre.code{margin:10px 0}pre.code>code{display:block;background:none;border:0;padding:0;margin:0;border-radius:0;font:inherit;color:inherit}.code-line{display:inline}.code-n{display:inline-block;width:2.2em;padding-right:.9em;text-align:right;color:var(--fg-3);opacity:.7;font-size:.85em;-webkit-user-select:none;user-select:none}.code-n:before{content:attr(data-n)}.tk-kw{color:var(--tk-kw);font-weight:700}.tk-type{color:var(--tk-type);font-weight:700}.tk-cls{color:var(--tk-cls);font-weight:700}.tk-fn{color:var(--tk-fn)}.tk-call{color:var(--tk-call)}.tk-str{color:var(--tk-str)}.tk-num,.tk-op{color:var(--tk-num)}.tk-com{color:var(--tk-com);font-style:italic}.tk-ann{color:var(--tk-ann)}.c-fig{margin:4px 0 8px;display:flex;flex-direction:column;align-items:center;gap:6px}.c-fig img{max-width:100%;height:auto;mix-blend-mode:multiply}.c-fig figcaption{font-size:.85rem;color:var(--fg-3);text-align:center}.course pre.c-code{margin:4px 0 8px}html{scrollbar-gutter:stable}.page-anim{min-width:0}.page-anim.in-left{animation:inLeft .24s cubic-bezier(.2,.7,.2,1) both}.page-anim.in-right{animation:inRight .24s cubic-bezier(.2,.7,.2,1) both}.page-anim.in-fade{animation:inFade .18s ease-out both}.page-anim.in-quick{animation:inQuick .2s ease-out both}@keyframes inQuick{0%{opacity:0}}@keyframes inLeft{0%{transform:translate(36px);opacity:.35}}@keyframes inRight{0%{transform:translate(-36px);opacity:.35}}@keyframes inFade{0%{opacity:.4}}@media(prefers-reduced-motion:reduce){.page-anim{animation:none!important}}.main{position:relative;overflow-x:clip}.ptr{position:fixed;top:calc(env(safe-area-inset-top,0px) + 4px);left:50%;z-index:60;width:38px;height:38px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-2);display:grid;place-items:center;color:var(--accent);pointer-events:none}.ptr-ic{display:grid}.ptr-ic.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grabber{display:none;width:40px;height:5px;border-radius:99px;background:var(--line-2);margin:0 auto 8px}@media(max-width:860px){.grabber{display:block}}.drawer,.modal,.study{transition:transform .18s ease-out}.study-top,.drawer-h{position:relative}.study-top>.grabber,.drawer-h>.grabber{position:absolute;top:-6px;left:50%;transform:translate(-50%);margin:0}.page.narrow{max-width:1080px}.page.narrow>*{width:100%;max-width:720px}.page.narrow>.back{width:auto}.trash-label-short{display:none}@media(max-width:440px){.trash-label{display:none}.trash-label-short{display:inline}}.panel-h h2{display:flex;align-items:center;gap:8px}.info-sec h2{display:flex;align-items:center;gap:10px;font-size:1.12rem}.info-sec h2 svg{color:var(--accent);flex:none}.info-sec ul{padding-left:1.2em;display:flex;flex-direction:column;gap:8px;line-height:1.55;color:var(--fg-2)}.info-sec b{color:var(--fg)}.side-foot{display:flex;flex-direction:column;gap:8px}.credit{font-size:.7rem;color:var(--fg-3);opacity:.8;line-height:1.3}.page-credit{text-align:center;font-size:.72rem;color:var(--fg-3);opacity:.8;padding:0 16px 28px}@media(min-width:861px){.page-credit{display:none}}@media(max-width:860px){.page-anim>.page{padding-bottom:16px}.page-credit{padding-bottom:calc(var(--tabbar-h) + 20px + env(safe-area-inset-bottom,0px))}}.legal-links{display:block;margin-top:4px}.legal-links a{color:inherit}.auth-legal{text-align:center;margin-top:16px}.credit .credit-sep,.page-credit .credit-br{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .c-fig img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}}:root[data-theme=dark] .c-fig img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.c-ex{margin:6px 0 8px;padding:12px 14px 14px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 5%,transparent);display:flex;flex-direction:column;gap:10px;min-width:0}.c-ex-h{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:750;letter-spacing:.02em;color:var(--accent);margin:0}.c-ex .c-fig{margin:0}.c-ex .c-fig img{max-height:340px;width:auto}.c-ex .c-p{margin:0}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.admin .tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.admin .tile .small{display:block;margin-top:2px}.admin-error{border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}.admin-error p{margin:6px 0 0}.admin-bars .bar-col{position:relative;cursor:default}.admin-bars .bar-col i.solid{background:var(--accent)}.admin-bars .bar-col:hover i.solid{background:color-mix(in srgb,var(--accent) 75%,var(--fg))}.admin-bars .bar-col:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);white-space:nowrap;font-size:.75rem;font-weight:600;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 7px;box-shadow:0 4px 12px #0000001f;pointer-events:none;z-index:2}.admin-bars .bar-col:first-child:hover:after{left:0;transform:none}.admin-bars .bar-col:last-child:hover:after{left:auto;right:0;transform:none}.admin-table th{white-space:nowrap}.admin-table td.num{text-align:right;font-variant-numeric:tabular-nums}.admin-chip{margin-left:6px;font-size:.68rem}.stats-tabs{max-width:420px;margin:0 0 16px}:root{--glass-bg: rgb(255 255 255 / .62);--glass-line: rgb(255 255 255 / .55);--glass-shadow: 0 10px 30px rgb(19 26 38 / .14), 0 1px 2px rgb(19 26 38 / .08), inset 0 1px 0 rgb(255 255 255 / .7)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--glass-bg: rgb(30 37 50 / .55);--glass-line: rgb(255 255 255 / .1);--glass-shadow: 0 10px 30px rgb(0 0 0 / .45), inset 0 1px 0 rgb(255 255 255 / .08)}}:root[data-theme=dark]{--glass-bg: rgb(30 37 50 / .55);--glass-line: rgb(255 255 255 / .1);--glass-shadow: 0 10px 30px rgb(0 0 0 / .45), inset 0 1px 0 rgb(255 255 255 / .08)}.glass{background:var(--glass-bg);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow)}.glass.lg-on{background:color-mix(in srgb,var(--bg) 40%,transparent)}.dtop{position:sticky;top:12px;z-index:40;display:flex;justify-content:center;padding:12px clamp(16px,3vw,36px) 0;pointer-events:none}.top-search{pointer-events:auto;width:100%;max-width:620px;height:48px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 10px 0 18px;color:var(--fg-3);cursor:pointer;text-align:left;font-size:1rem}.top-search:focus-visible,.glass-search:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.ts-ph{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f162242;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overscroll-behavior:contain}.sp-col{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);left:16px;right:16px;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 32px);display:flex;flex-direction:column;gap:10px}.sp-field{flex:none;height:48px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 6px 0 18px;color:var(--accent);background:var(--surface);outline:2px solid var(--accent);outline-offset:-1px;will-change:transform}.sp-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:0;color:var(--fg);font-size:1rem;text-overflow:ellipsis}.sp-field input::-webkit-search-cancel-button{display:none}.sp-close,.sp-x{flex:none;width:36px;height:36px;border:0;border-radius:50%;display:grid;place-items:center;background:none;color:var(--fg-2);cursor:pointer}.sp-close:hover,.sp-x:hover{background:var(--sunken)}.sp-rest{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px}.sp-filters{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.sp-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg-3);font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-1)}.sp-chip:before{content:"";width:8px;height:8px;border-radius:50%;border:2px solid var(--c)}.sp-chip.on{color:var(--fg);border-color:color-mix(in srgb,var(--c) 45%,var(--line));background:color-mix(in srgb,var(--c) 12%,var(--surface))}.sp-chip.on:before{background:var(--c)}.sp-hint{margin-left:auto;padding:4px 10px;border-radius:999px;background:var(--surface);color:var(--fg-3);font-size:.78rem;box-shadow:var(--shadow-1)}.sp-card{min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-2);padding:6px}.sp-empty{margin:0;padding:18px;text-align:center;color:var(--fg-2)}.sp-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 4px}.sp-clear{border:0;background:none;color:var(--accent);font-size:.85rem;font-weight:700;cursor:pointer}.sp-list{list-style:none;margin:0;padding:0}.sp-li{position:relative;display:flex;align-items:center;margin-bottom:2px;overflow:hidden}.sp-row{flex:1;min-width:0;height:64px;display:flex;align-items:center;gap:12px;padding:0 10px;border:0;border-radius:12px;background:none;text-align:left;cursor:pointer}.sp-li:has(.sp-x) .sp-row{padding-right:48px}.sp-row:hover,.sp-row:focus-visible{background:var(--surface-2);outline:0}.sp-x{position:absolute;right:8px;width:32px;height:32px}.sp-pastille{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:800}.sp-pastille.sp-clock{background:var(--sunken);color:var(--fg-2)}.sp-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sp-txt b,.sp-txt small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-txt small{color:var(--fg-3);font-size:.85rem}.sp-txt mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}.sp-more{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;padding:12px;border:0;border-top:1px solid var(--line);background:none;color:var(--accent);font-weight:700;cursor:pointer}.sp-field input{flex:1;min-width:0;width:auto!important;border:0!important;outline:0!important;background:transparent!important;padding:0!important;color:var(--fg);font-size:1rem}.mtop,.mbar,.msheet-bg{display:none}@media(max-width:860px){:root{--tabbar-h: 78px}.main{padding-top:calc(env(safe-area-inset-top,0px) + 66px)}.dtop{display:none}.mtop{display:flex;gap:10px;position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;z-index:40;pointer-events:none}.mtop>*{pointer-events:auto}.glass-btn{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--fg);cursor:pointer;position:relative;padding:0}.glass-btn.logo-btn{overflow:hidden}.glass-btn .logo{width:30px;height:23px}.glass-search{flex:1;min-width:0;height:46px;border-radius:999px;display:flex;align-items:center;gap:10px;padding:0 16px;color:var(--fg-3);font:inherit;font-size:.95rem;cursor:pointer;text-align:left}.glass-search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-search.on{color:var(--accent)}.mbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);height:64px;padding:6px;border-radius:999px;z-index:50}.mbar-ind{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px)/5);border-radius:999px;background:var(--accent);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 40%,transparent);transform:translate(calc(var(--i, 0) * 100%));transition:transform .45s cubic-bezier(.34,1.36,.5,1),opacity .2s}.mtab{position:relative;z-index:1;border:0;background:none;border-radius:999px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;color:var(--fg-2);font:inherit;font-size:.68rem;font-weight:700;cursor:pointer;transition:color .25s;-webkit-tap-highlight-color:transparent}.mtab span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.mtab.on{color:#fff}.mtab:active{transform:scale(.94)}.mtab .nav-subj{border-radius:7px;font-size:.8rem}.mtab.on .nav-subj{box-shadow:0 0 0 2px #ffffffd9}.msheet-bg{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0000002e;animation:inFade .18s ease-out both}.msheet{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 86px);border-radius:26px;padding:12px 10px 10px;display:flex;flex-direction:column;gap:4px;transform-origin:30% 100%;animation:sheetPop .32s cubic-bezier(.3,1.3,.5,1) both}.msheet .eyebrow{margin:0 8px 4px}.msheet-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;border-radius:18px;padding:10px;text-align:left;color:var(--fg);font:inherit;cursor:pointer}.msheet-item:active,.msheet-item.on{background:color-mix(in srgb,var(--accent) 14%,transparent)}.msheet-item>svg{margin-left:auto;color:var(--accent)}.msheet-item .nav-subj{border-radius:10px;font-size:1rem}.msheet-t{display:flex;flex-direction:column;min-width:0}.msheet-t small{color:var(--fg-3);font-size:.78rem}.ptr{top:calc(env(safe-area-inset-top,0px) + 62px)}.page-anim{transform-origin:50% 40vh;will-change:transform}.page-peek{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;padding-top:calc(env(safe-area-inset-top,0px) + 66px);overflow:hidden;pointer-events:none;transform-origin:50% 40vh;will-change:transform,opacity}}@media(min-width:861px){.page-peek{display:none}}@keyframes sheetPop{0%{transform:translateY(16px) scale(.96);opacity:0}}@media(prefers-reduced-motion:reduce){.mbar-ind,.msheet{animation:none!important;transition:none!important}}@media(max-width:860px){.msheet{background:color-mix(in srgb,var(--surface) 88%,transparent)}}@media(max-width:860px){.study{padding-bottom:12px}.study-actions{bottom:calc(env(safe-area-inset-bottom,0px) + 10px);margin-left:-6px;margin-right:-6px;padding:10px;gap:8px;border-radius:26px;background:var(--glass-bg);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);z-index:5}.grade-q{font-size:.85rem}.grades{gap:8px}.grade{min-height:62px;justify-content:center;padding:12px 2px;border-radius:18px;font-size:1.02rem;background:color-mix(in srgb,var(--surface) 72%,transparent)}.reveal{min-height:56px;border-radius:18px;font-size:1.05rem}}.mat-list{display:flex;flex-direction:column;gap:6px}.mat-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);cursor:pointer;transition:background .15s,border-color .15s}.mat-row.on{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-soft)}.mat-row input{position:absolute;opacity:0;pointer-events:none}.mat-box{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center;color:transparent;transition:background .15s,border-color .15s}.mat-row.on .mat-box{background:var(--accent);border-color:var(--accent);color:#fff}.mat-row input:focus-visible+.mat-box{outline:2px solid var(--accent);outline-offset:2px}.mat-t{flex:1;min-width:0;display:flex;flex-direction:column}.mat-t small{font-size:.8rem}.onboarding .main{padding-top:env(safe-area-inset-top,0px)}.onboarding .page{padding-top:32px;padding-bottom:140px}.onboarding .page.narrow{max-width:784px}.onboard-ok{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%);z-index:60;min-width:min(320px,calc(100vw - 32px));min-height:58px;justify-content:center;border-radius:999px;font-size:1.1rem;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent),0 12px 32px color-mix(in srgb,var(--accent) 45%,transparent);animation:onboardGlow 2.2s ease-in-out infinite}@keyframes onboardGlow{50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 10%,transparent),0 12px 32px color-mix(in srgb,var(--accent) 45%,transparent)}}@media(prefers-reduced-motion:reduce){.onboard-ok{animation:none}}.to-top,.fscroll{display:none}@media(max-width:860px){.to-top{display:grid;place-items:center;position:fixed;right:14px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);width:46px;height:46px;padding:0;border-radius:50%;z-index:41;color:var(--fg);cursor:pointer;opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:opacity .2s,transform .3s cubic-bezier(.34,1.4,.5,1)}.to-top.on{opacity:1;transform:none;pointer-events:auto}.fscroll{display:block;position:fixed;right:0;top:calc(env(safe-area-inset-top,0px) + 74px);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 70px);width:52px;z-index:42;pointer-events:none;opacity:0;transition:opacity .25s}.fscroll.on{opacity:1}.fscroll-thumb{position:absolute;top:0;right:4px;width:38px;height:46px;border-radius:23px 8px 8px 23px;display:grid;place-items:center;color:var(--accent);background:var(--glass-bg);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);touch-action:none;will-change:transform;transition:background .15s,color .15s,width .15s}.fscroll.on .fscroll-thumb{pointer-events:auto}.fscroll.drag .fscroll-thumb{background:var(--accent);color:#fff;width:44px}.fscroll-labels{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);display:grid;justify-items:end;gap:6px;pointer-events:none}.fscroll-labels>span{max-width:calc(100vw - 90px)}.fscroll-near{padding:3px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--fg-2);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--line);box-shadow:0 4px 14px #0000001f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fscroll-near.d1{opacity:.85}.fscroll-near.d2{opacity:.6;font-size:.72rem}.fscroll-label{padding:9px 16px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px #00000040}}.dp{position:relative;max-width:720px;display:flex;align-items:stretch;gap:6px;z-index:20}.dp-arrow{flex:none;width:44px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg-2);display:grid;place-items:center;cursor:pointer;transition:background .15s,opacity .15s}.dp-arrow.next svg{transform:rotate(180deg)}.dp-arrow:disabled{opacity:.35;cursor:default}.dp-arrow:not(:disabled):active{background:var(--accent-soft)}.dp-btn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:48px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:700;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.dp.open .dp-btn{border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2));box-shadow:0 0 0 3px var(--accent-soft)}.dp-n{flex:none;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--deck, var(--accent)) 14%,transparent);color:var(--deck, var(--accent))}.dp-t{flex:1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.3;font-size:.95rem}.dp-chev{flex:none;display:grid;color:var(--fg-3);transform:rotate(-90deg);transition:transform .25s cubic-bezier(.3,1.3,.5,1)}.dp.open .dp-chev{transform:rotate(90deg)}.dp-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:6px;border-radius:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 98%,transparent);-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);box-shadow:0 18px 48px #0000002e;transform-origin:50% 0;opacity:0;transform:translateY(-8px) scale(.97);visibility:hidden;transition:opacity .18s ease,transform .26s cubic-bezier(.25,1.2,.4,1),visibility 0s linear .26s}.dp.open .dp-menu{opacity:1;transform:none;visibility:visible;transition:opacity .18s ease,transform .26s cubic-bezier(.25,1.2,.4,1),visibility 0s}.dp-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px;border:0;border-radius:12px;background:none;color:var(--fg);text-align:left;cursor:pointer}.dp-item:hover{background:var(--accent-soft)}.dp-item.on{background:color-mix(in srgb,var(--deck, var(--accent)) 12%,transparent);color:var(--deck, var(--accent))}.dp-k{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--bg);color:var(--fg-2)}.dp-item.on .dp-k{background:var(--deck, var(--accent));color:#fff}.dp-it{flex:1;min-width:0;display:flex;flex-direction:column}.dp-it b{font-size:.92rem;line-height:1.3}.dp-it small{font-size:.76rem;color:var(--fg-3)}@media(prefers-reduced-motion:reduce){.dp-menu,.dp-chev{transition:none!important}}.pill.exam{background:color-mix(in srgb,var(--hard) 14%,transparent);color:var(--hard)}.c-sec-f{flex-wrap:wrap;gap:6px 18px}.c-chapter-f{margin:4px 0 14px;padding:0 0 12px;border-top:0;border-bottom:1px dashed var(--line-2)}.c-practice.exam{color:var(--hard)}.c-practice.exam .c-count{background:color-mix(in srgb,var(--hard) 14%,transparent)}.controle-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.controle-list li{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);font-weight:650}.controle-list li>span{flex:1;min-width:0;overflow-wrap:anywhere}.controle-list .dot{flex:none}.subject-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.subject-btn{--sub: var(--accent);position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-start;justify-content:flex-start;aspect-ratio:16 / 9;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(135deg,var(--sub),color-mix(in srgb,var(--sub) 45%,#000));box-shadow:var(--shadow-1);cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.subject-btn>img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.subject-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(120% 90% at 0% 0%,rgb(0 0 0 / .65),transparent 60%),linear-gradient(180deg,transparent 55%,rgb(0 0 0 / .35))}.subject-name{display:inline-flex;align-items:flex-start;line-height:1.3;gap:10px;max-width:calc(100% - 32px);font-family:var(--f-display);font-size:1.25rem;font-weight:750;letter-spacing:-.01em;color:#fff;text-align:left;text-shadow:0 2px 12px rgb(0 0 0 / .5);overflow-wrap:anywhere;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.subject-name .dot{flex:none;margin-top:calc((1.3em - 12px)/2);box-shadow:0 0 0 2px #ffffffb3}.subject-btn>svg{position:absolute;right:14px;bottom:14px;color:#fff;opacity:.75;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}.subject-btn:hover,.subject-btn:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-2)}.subject-btn:hover>img,.subject-btn:focus-visible>img{transform:scale(1.07)}.subject-btn:hover .subject-name{transform:translate(3px)}.subject-btn:hover>svg{transform:translate(4px);opacity:1}@media(max-width:860px){.subject-btn{aspect-ratio:5 / 2}}.controle-list{gap:12px}.controle-list li{padding:6px 8px 6px 6px;font-family:var(--f-display);font-size:1.15rem;font-weight:750;transition:transform .15s,box-shadow .15s}.controle-list li:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.controle-list .dot{width:14px;height:14px}.controle-open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:16px 14px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px}.controle-open>span{flex:1;min-width:0;overflow-wrap:anywhere}.controle-head{display:flex;flex-direction:column;gap:12px}.controle-head h2{font-size:1.2rem}.controle-del:hover{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}
