@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;800&family=JetBrains+Mono:wght@400;500&family=Montserrat:wght@500;600;700&family=Noto+Sans+SC:wght@400;500;700;900&family=Roboto:wght@400;500;700;900&family=Space+Grotesk:wght@400;500;700&display=swap");

/* Endfield Style — component stylesheet. Colors, spacing, radii, shadows and sizes come from tokens.css (tokens.json).
   Motion lives here because tokens.json has no motion family. */
:root {
  --dur-instant: 0.05s;
  --dur-fast: 0.2s;
  --dur-base: 0.3s;
  --dur-slow: 0.5s;
  --ease-std: ease-in-out;
  --ease-out: ease-out;
  --ease-curtain: cubic-bezier(1, 0, 0.7, 1);
  --ease-snap: cubic-bezier(0.16, 1, 0.3, 1);   /* arrives fast, settles: rows stepping in, things appearing */
  --ease-mech: cubic-bezier(0.7, 0, 0.2, 1);    /* starts slow, stops hard: wipes, fills, tabs, sheets, every exit */
  --dur-press: 0.1s;
  --dur-wipe: 0.28s;
  --dur-tab: 0.4s;
  --stagger-row: 38ms;
  --stagger-segment: 45ms;
  --stagger-block: 100ms;
}

body { margin: 0; font-family: var(--font-sans); background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }

/* ---------- helpers ---------- */
.efs-row { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; padding: var(--space-6); }
.efs-stack { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); }
.efs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.efs-hatch { background-image: repeating-linear-gradient(-45deg, var(--hatch) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); }
.efs-hatch-bold { background-image: repeating-linear-gradient(-45deg, var(--hatch) 0 var(--hatch-stripe-bold), transparent var(--hatch-stripe-bold) var(--hatch-pitch)); }
.efs-dots { background-image: radial-gradient(var(--rule) 1px, transparent 1.5px); background-size: var(--dot-pitch) var(--dot-pitch); }
.efs-flicker { animation: efs-flicker 0.9s linear both; }
@keyframes efs-flicker { 0% { opacity: 0; } 10% { opacity: .5; } 11% { opacity: 0; } 20% { opacity: .5; } 21% { opacity: 0; } 40% { opacity: .5; } 41% { opacity: 0; } 100% { opacity: 1; } }
@keyframes efs-wipe-in { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes efs-power { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes efs-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes efs-come { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
@keyframes efs-run { from { transform: translateX(-100%); } to { transform: translateX(400%); } }
.efs-come { animation: efs-come 0.32s var(--ease-snap) both; animation-delay: calc(var(--i, 0) * var(--stagger-row)); }
@media (prefers-reduced-motion: reduce) { .efs-flicker, .efs-come { animation: none; } }

/* Contours: two faint patches of open, flowing lines (upper right, lower left). Put it inside a positioned container. */
.efs-contours { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.efs-contours::before, .efs-contours::after { content: ""; position: absolute; aspect-ratio: 4 / 3; background: var(--contour); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.efs-contours::before { right: -9%; top: -14%; width: min(64%, 820px); -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20960%20720%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%221%22%3E%3Cdefs%3E%3CradialGradient%20id=%22f%22%20cx=%22.5%22%20cy=%22.5%22%20r=%22.55%22%3E%3Cstop%20offset=%22.4%22%20stop-color=%22%23fff%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23000%22/%3E%3C/radialGradient%3E%3Cmask%20id=%22m%22%3E%3Crect%20width=%22960%22%20height=%22720%22%20fill=%22url%28%23f%29%22/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%22url%28%23m%29%22%3E%3Cpath%20d=%22M863%200%20864%204%20868%207%20880%209%20924%209%20960%206%20M425%200%20436%202%20451%200%20M777%200%20768%208%20762%2016%20757%2028%20756%2036%20759%2044%20764%2050%20772%2055%20784%2058%20800%2059%20820%2056%20896%2036%20920%2032%20960%2028%20M373%200%20362%2016%20359%2024%20357%2032%20360%2041%20364%2045%20372%2047%20384%2047%20396%2044%20468%2021%20500%2013%20524%2012%20580%2013%20676%205%20696%207%20709%2012%20716%2020%20723%2048%20730%2060%20736%2065%20744%2070%20764%2076%20788%2078%20812%2077%20838%2072%20908%2055%20932%2052%20960%2053%20M153%200%20160%2012%20168%2020%20177%2024%20192%2026%20211%2024%20232%2019%20256%2011%20281%200%20M329%200%20320%2016%20315%2032%20312%2048%20313%2060%20316%2069%20324%2078%20332%2082%20344%2085%20372%2084%20432%2072%20472%2067%20527%2048%20570%2036%20612%2028%20644%2025%20664%2026%20679%2032%20687%2040%20700%2064%20710%2076%20724%2084%20744%2090%20772%2093%20808%2092%20840%2089%20912%2076%20936%2075%20960%2077%20M92%200%20100%205%20108%2012%20127%2044%20132%2048%20140%2052%20152%2053%20168%2053%20244%2044%20260%2046%20268%2051%20274%2060%20284%2088%20296%20104%20312%20115%20344%20126%20352%20132%20356%20137%20360%20148%20361%20164%20353%20224%20356%20234%20364%20239%20372%20238%20384%20233%20477%20168%20491%20156%20501%20144%20508%20132%20523%20100%20537%2080%20548%2071%20564%2061%20580%2054%20600%2048%20628%2045%20640%2046%20649%2048%20661%2056%20680%2083%20689%2092%20704%2099%20724%20103%20764%20106%20816%20106%20852%20104%20916%2096%20960%2096%20M0%20136%204%20140%2012%20144%2020%20145%2028%20144%2036%20141%2040%20138%2044%20132%2045%20128%2044%20122%2040%20117%2028%20112%2012%20114%205%20116%200%20120%20M24%200%2052%2016%2062%2024%2068%2032%2069%2040%2068%2045%2061%2056%2049%2064%2032%2070%200%2074%20M0%20171%2016%20174%2036%20174%2052%20171%2068%20164%2077%20156%2083%20148%2098%20116%20106%20104%20116%2094%20128%2087%20152%2079%20188%2072%20212%2070%20228%2072%20237%2076%20246%2084%20270%20132%20292%20160%20297%20168%20299%20176%20298%20184%20281%20216%20281%20224%20285%20232%20302%20252%20322%20268%20340%20276%20356%20278%20372%20275%20388%20267%20400%20257%20432%20224%20448%20211%20468%20197%20517%20168%20534%20156%20541%20148%20546%20140%20555%20112%20564%2096%20577%2084%20596%2075%20612%2072%20620%2073%20628%2076%20636%2084%20648%20104%20655%20112%20664%20117%20676%20119%20852%20120%20928%20114%20960%20113%20M0%20190%2024%20192%2048%20192%2073%20188%2092%20182%20102%20176%20111%20168%20116%20160%20130%20128%20136%20120%20144%20112%20158%20104%20176%2098%20192%2097%20204%2099%20214%20104%20221%20112%20225%20124%20227%20140%20224%20152%20220%20160%20212%20171%20196%20188%20189%20200%20189%20212%20196%20224%20208%20236%20220%20244%20276%20270%20316%20291%20336%20298%20352%20300%20372%20296%20392%20286%20408%20273%20443%20236%20461%20220%20488%20203%20520%20191%20548%20186%20600%20185%20624%20182%20644%20174%20676%20153%20688%20147%20708%20140%20728%20136%20752%20134%20776%20133%20872%20137%20960%20128%20M0%20208%2032%20209%20100%20207%20124%20210%20144%20220%20184%20251%20208%20265%20268%20290%20316%20314%20332%20319%20348%20319%20372%20313%20396%20301%20417%20284%20452%20247%20468%20233%20488%20220%20512%20210%20540%20205%20604%20205%20640%20200%20656%20195%20671%20188%20701%20168%20716%20159%20732%20154%20748%20150%20784%20148%20852%20153%20880%20153%20904%20151%20960%20142%20M0%20229%2036%20226%2068%20225%2092%20227%20112%20232%20136%20243%20180%20275%20200%20287%20260%20312%20308%20340%20320%20343%20332%20343%20344%20341%20360%20336%20396%20317%20424%20296%20463%20256%20476%20245%20492%20234%20512%20226%20540%20221%20616%20218%20664%20212%20692%20203%20705%20196%20737%20176%20748%20171%20764%20167%20796%20165%20856%20169%20884%20169%20912%20167%20960%20157%20M0%20363%2056%20400%2072%20406%2092%20411%20112%20412%20136%20411%20212%20399%20228%20398%20244%20399%20276%20406%20292%20405%20304%20401%20316%20394%20356%20360%20429%20308%20484%20257%20498%20248%20512%20242%20528%20237%20544%20235%20632%20230%20708%20222%20734%20216%20770%20196%20792%20189%20816%20187%20872%20187%20900%20185%20924%20182%20960%20174%20M0%20430%2076%20432%20172%20424%20196%20423%20220%20426%20264%20435%20280%20435%20292%20433%20308%20428%20328%20416%20342%20404%20371%20372%20388%20356%20445%20312%20492%20271%20504%20263%20520%20256%20540%20250%20564%20247%20664%20240%20704%20242%20764%20251%20784%20252%20796%20248%20804%20241%20818%20224%20824%20219%20836%20214%20861%20208%20928%20200%20960%20193%20M960%20593%20942%20604%20932%20612%20923%20624%20922%20632%20924%20637%20932%20642%20944%20645%20960%20646%20M0%20469%2080%20450%20120%20443%20152%20440%20176%20439%20196%20441%20248%20453%20264%20454%20284%20453%20304%20448%20324%20438%20345%20424%20360%20410%20397%20368%20425%20344%20512%20280%20528%20272%20548%20265%20576%20259%20616%20254%20648%20253%20676%20254%20696%20256%20716%20261%20788%20285%20808%20288%20822%20288%20832%20286%20842%20280%20848%20272%20857%20252%20862%20244%20868%20238%20876%20233%20900%20226%20960%20218%20M960%20574%20928%20590%20905%20608%20888%20628%20884%20636%20882%20644%20885%20652%20889%20656%20904%20662%20928%20666%20960%20666%20M0%20492%2080%20466%20108%20459%20136%20455%20160%20453%20184%20455%20200%20458%20236%20468%20256%20471%20280%20469%20308%20461%20336%20448%20359%20432%20376%20416%20414%20372%20444%20348%20540%20290%20563%20280%20584%20274%20611%20268%20636%20266%20660%20265%20680%20268%20700%20272%20716%20277%20772%20301%20792%20308%20820%20314%20848%20316%20870%20312%20878%20308%20883%20304%20889%20296%20900%20268%20904%20262%20912%20256%20922%20252%20932%20250%20960%20249%20M960%20556%20920%20575%20892%20596%20872%20616%20852%20640%20843%20656%20842%20664%20843%20668%20848%20672%20868%20678%20916%20684%20960%20685%20M0%20511%2088%20478%20112%20472%20132%20469%20152%20468%20172%20469%20188%20473%20224%20484%20244%20487%20260%20486%20276%20484%20312%20473%20344%20459%20374%20440%20391%20424%20428%20383%20441%20372%20456%20362%20476%20351%20534%20328%20575%20300%20590%20292%20612%20284%20632%20280%20664%20280%20680%20283%20696%20287%20718%20296%20768%20324%20796%20333%20824%20337%20896%20344%20920%20349%20932%20354%20941%20360%20952%20372%20960%20384%20M960%20532%20928%20546%20908%20557%20892%20571%20848%20617%20824%20639%20796%20659%20750%20684%20741%20692%20737%20700%20740%20708%20745%20712%20752%20715%20764%20716%20784%20714%20832%20704%20860%20701%20896%20701%20960%20705%20M0%20527%2028%20518%2088%20494%20108%20488%20124%20485%20144%20484%20160%20485%20172%20489%20208%20502%20228%20505%20244%20504%20264%20500%20308%20488%20352%20471%20388%20452%20412%20433%20449%20396%20472%20381%20496%20372%20548%20358%20568%20350%20584%20340%20613%20312%20627%20304%20640%20300%20652%20299%20664%20300%20676%20303%20689%20308%20701%20316%20708%20324%20711%20332%20708%20339%20703%20344%20676%20360%20666%20368%20661%20376%20658%20384%20658%20400%20665%20420%20676%20435%20688%20444%20698%20448%20712%20451%20740%20454%20772%20452%20792%20446%20800%20439%20805%20428%20807%20416%20806%20388%20810%20376%20816%20371%20824%20368%20848%20365%20868%20367%20888%20372%20904%20378%20919%20388%20930%20400%20940%20416%20946%20432%20948%20448%20947%20460%20945%20468%20940%20476%20936%20480%20928%20485%20920%20487%20880%20494%20872%20497%20865%20504%20862%20516%20865%20548%20862%20564%20857%20576%20849%20588%20828%20612%20808%20628%20788%20639%20764%20650%20708%20668%20699%20672%20692%20678%20688%20684%20686%20696%20689%20708%20696%20720%20M0%20543%2032%20534%2092%20512%20116%20507%20132%20506%20144%20508%20153%20512%20176%20526%20188%20528%20216%20526%20256%20517%20352%20489%20404%20470%20436%20452%20488%20412%20516%20399%20540%20391%20564%20386%20580%20384%20596%20385%20608%20390%20616%20396%20626%20408%20648%20444%20656%20452%20668%20460%20680%20465%20694%20468%20764%20477%20780%20482%20792%20488%20800%20496%20807%20508%20823%20560%20823%20572%20821%20580%20812%20596%20804%20604%20794%20612%20772%20623%20752%20628%20736%20629%20720%20627%20696%20619%20680%20616%20664%20615%20644%20617%20620%20624%20596%20633%20571%20648%20552%20664%20540%20676%20533%20688%20530%20696%20531%20700%20534%20704%20548%20706%20600%20702%20624%20703%20641%20708%20658%20720%20M0%20564%2024%20564%2036%20568%2039%20572%2039%20576%2036%20596%2036%20604%2039%20612%2048%20620%2060%20624%2072%20625%2088%20624%20100%20622%20116%20617%20132%20608%20184%20568%20200%20558%20221%20548%20253%20536%20291%20524%20376%20504%20404%20496%20424%20488%20447%20476%20508%20435%20529%20424%20544%20418%20560%20415%20572%20415%20584%20417%20596%20422%20604%20429%20612%20438%20629%20464%20636%20471%20644%20477%20656%20482%20667%20484%20716%20489%20735%20492%20748%20496%20762%20504%20772%20515%20777%20528%20778%20548%20775%20564%20768%20577%20760%20583%20752%20586%20736%20589%20684%20592%20652%20596%20616%20606%20584%20619%20556%20636%20526%20660%20498%20688%20472%20720%20M0%20626%208%20633%2020%20639%2036%20644%2052%20646%2072%20647%2096%20647%20116%20645%20136%20640%20152%20634%20164%20627%20217%20580%20236%20568%20251%20560%20285%20548%20356%20532%20392%20521%20420%20510%20448%20497%20528%20453%20548%20447%20560%20446%20568%20447%20579%20452%20587%20460%20594%20472%20604%20496%20612%20505%20620%20508%20628%20509%20688%20507%20704%20509%20716%20512%20726%20516%20734%20524%20737%20532%20736%20540%20732%20546%20727%20552%20708%20562%20689%20568%20628%20582%20604%20588%20580%20598%20556%20610%20532%20628%20508%20649%20438%20720%20M0%20655%2040%20662%20112%20669%20140%20669%20162%20664%20180%20657%20196%20648%20212%20636%20260%20598%20292%20579%20408%20532%20500%20493%20520%20487%20536%20486%20543%20488%20548%20492%20551%20500%20552%20508%20550%20520%20546%20532%20529%20564%20501%20608%20474%20644%20442%20680%20402%20720%20M0%20671%2044%20678%20112%20689%20136%20689%20163%20684%20184%20676%20207%20664%20292%20605%20316%20590%20344%20576%20392%20555%20440%20536%20468%20528%20480%20527%20488%20527%20496%20532%20498%20540%20497%20548%20489%20568%20474%20592%20450%20624%20424%20656%20400%20681%20359%20720%20M0%20686%2036%20691%2084%20703%20104%20706%20132%20705%20160%20700%20188%20690%20216%20676%20304%20616%20352%20589%20380%20576%20404%20567%20424%20562%20440%20561%20448%20565%20450%20568%20450%20576%20444%20592%20430%20612%20414%20632%20392%20656%20323%20720%20M0%20701%2024%20705%2068%20716%2090%20720%20M125%20720%20164%20713%20204%20698%20240%20679%20302%20636%20336%20616%20364%20603%20376%20599%20388%20598%20396%20599%20399%20604%20395%20616%20387%20628%20362%20656%20312%20701%20293%20720%20M189%20720%20248%20701%20260%20699%20263%20700%20264%20704%20259%20720%22/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20960%20720%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%221%22%3E%3Cdefs%3E%3CradialGradient%20id=%22f%22%20cx=%22.5%22%20cy=%22.5%22%20r=%22.55%22%3E%3Cstop%20offset=%22.4%22%20stop-color=%22%23fff%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23000%22/%3E%3C/radialGradient%3E%3Cmask%20id=%22m%22%3E%3Crect%20width=%22960%22%20height=%22720%22%20fill=%22url%28%23f%29%22/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%22url%28%23m%29%22%3E%3Cpath%20d=%22M863%200%20864%204%20868%207%20880%209%20924%209%20960%206%20M425%200%20436%202%20451%200%20M777%200%20768%208%20762%2016%20757%2028%20756%2036%20759%2044%20764%2050%20772%2055%20784%2058%20800%2059%20820%2056%20896%2036%20920%2032%20960%2028%20M373%200%20362%2016%20359%2024%20357%2032%20360%2041%20364%2045%20372%2047%20384%2047%20396%2044%20468%2021%20500%2013%20524%2012%20580%2013%20676%205%20696%207%20709%2012%20716%2020%20723%2048%20730%2060%20736%2065%20744%2070%20764%2076%20788%2078%20812%2077%20838%2072%20908%2055%20932%2052%20960%2053%20M153%200%20160%2012%20168%2020%20177%2024%20192%2026%20211%2024%20232%2019%20256%2011%20281%200%20M329%200%20320%2016%20315%2032%20312%2048%20313%2060%20316%2069%20324%2078%20332%2082%20344%2085%20372%2084%20432%2072%20472%2067%20527%2048%20570%2036%20612%2028%20644%2025%20664%2026%20679%2032%20687%2040%20700%2064%20710%2076%20724%2084%20744%2090%20772%2093%20808%2092%20840%2089%20912%2076%20936%2075%20960%2077%20M92%200%20100%205%20108%2012%20127%2044%20132%2048%20140%2052%20152%2053%20168%2053%20244%2044%20260%2046%20268%2051%20274%2060%20284%2088%20296%20104%20312%20115%20344%20126%20352%20132%20356%20137%20360%20148%20361%20164%20353%20224%20356%20234%20364%20239%20372%20238%20384%20233%20477%20168%20491%20156%20501%20144%20508%20132%20523%20100%20537%2080%20548%2071%20564%2061%20580%2054%20600%2048%20628%2045%20640%2046%20649%2048%20661%2056%20680%2083%20689%2092%20704%2099%20724%20103%20764%20106%20816%20106%20852%20104%20916%2096%20960%2096%20M0%20136%204%20140%2012%20144%2020%20145%2028%20144%2036%20141%2040%20138%2044%20132%2045%20128%2044%20122%2040%20117%2028%20112%2012%20114%205%20116%200%20120%20M24%200%2052%2016%2062%2024%2068%2032%2069%2040%2068%2045%2061%2056%2049%2064%2032%2070%200%2074%20M0%20171%2016%20174%2036%20174%2052%20171%2068%20164%2077%20156%2083%20148%2098%20116%20106%20104%20116%2094%20128%2087%20152%2079%20188%2072%20212%2070%20228%2072%20237%2076%20246%2084%20270%20132%20292%20160%20297%20168%20299%20176%20298%20184%20281%20216%20281%20224%20285%20232%20302%20252%20322%20268%20340%20276%20356%20278%20372%20275%20388%20267%20400%20257%20432%20224%20448%20211%20468%20197%20517%20168%20534%20156%20541%20148%20546%20140%20555%20112%20564%2096%20577%2084%20596%2075%20612%2072%20620%2073%20628%2076%20636%2084%20648%20104%20655%20112%20664%20117%20676%20119%20852%20120%20928%20114%20960%20113%20M0%20190%2024%20192%2048%20192%2073%20188%2092%20182%20102%20176%20111%20168%20116%20160%20130%20128%20136%20120%20144%20112%20158%20104%20176%2098%20192%2097%20204%2099%20214%20104%20221%20112%20225%20124%20227%20140%20224%20152%20220%20160%20212%20171%20196%20188%20189%20200%20189%20212%20196%20224%20208%20236%20220%20244%20276%20270%20316%20291%20336%20298%20352%20300%20372%20296%20392%20286%20408%20273%20443%20236%20461%20220%20488%20203%20520%20191%20548%20186%20600%20185%20624%20182%20644%20174%20676%20153%20688%20147%20708%20140%20728%20136%20752%20134%20776%20133%20872%20137%20960%20128%20M0%20208%2032%20209%20100%20207%20124%20210%20144%20220%20184%20251%20208%20265%20268%20290%20316%20314%20332%20319%20348%20319%20372%20313%20396%20301%20417%20284%20452%20247%20468%20233%20488%20220%20512%20210%20540%20205%20604%20205%20640%20200%20656%20195%20671%20188%20701%20168%20716%20159%20732%20154%20748%20150%20784%20148%20852%20153%20880%20153%20904%20151%20960%20142%20M0%20229%2036%20226%2068%20225%2092%20227%20112%20232%20136%20243%20180%20275%20200%20287%20260%20312%20308%20340%20320%20343%20332%20343%20344%20341%20360%20336%20396%20317%20424%20296%20463%20256%20476%20245%20492%20234%20512%20226%20540%20221%20616%20218%20664%20212%20692%20203%20705%20196%20737%20176%20748%20171%20764%20167%20796%20165%20856%20169%20884%20169%20912%20167%20960%20157%20M0%20363%2056%20400%2072%20406%2092%20411%20112%20412%20136%20411%20212%20399%20228%20398%20244%20399%20276%20406%20292%20405%20304%20401%20316%20394%20356%20360%20429%20308%20484%20257%20498%20248%20512%20242%20528%20237%20544%20235%20632%20230%20708%20222%20734%20216%20770%20196%20792%20189%20816%20187%20872%20187%20900%20185%20924%20182%20960%20174%20M0%20430%2076%20432%20172%20424%20196%20423%20220%20426%20264%20435%20280%20435%20292%20433%20308%20428%20328%20416%20342%20404%20371%20372%20388%20356%20445%20312%20492%20271%20504%20263%20520%20256%20540%20250%20564%20247%20664%20240%20704%20242%20764%20251%20784%20252%20796%20248%20804%20241%20818%20224%20824%20219%20836%20214%20861%20208%20928%20200%20960%20193%20M960%20593%20942%20604%20932%20612%20923%20624%20922%20632%20924%20637%20932%20642%20944%20645%20960%20646%20M0%20469%2080%20450%20120%20443%20152%20440%20176%20439%20196%20441%20248%20453%20264%20454%20284%20453%20304%20448%20324%20438%20345%20424%20360%20410%20397%20368%20425%20344%20512%20280%20528%20272%20548%20265%20576%20259%20616%20254%20648%20253%20676%20254%20696%20256%20716%20261%20788%20285%20808%20288%20822%20288%20832%20286%20842%20280%20848%20272%20857%20252%20862%20244%20868%20238%20876%20233%20900%20226%20960%20218%20M960%20574%20928%20590%20905%20608%20888%20628%20884%20636%20882%20644%20885%20652%20889%20656%20904%20662%20928%20666%20960%20666%20M0%20492%2080%20466%20108%20459%20136%20455%20160%20453%20184%20455%20200%20458%20236%20468%20256%20471%20280%20469%20308%20461%20336%20448%20359%20432%20376%20416%20414%20372%20444%20348%20540%20290%20563%20280%20584%20274%20611%20268%20636%20266%20660%20265%20680%20268%20700%20272%20716%20277%20772%20301%20792%20308%20820%20314%20848%20316%20870%20312%20878%20308%20883%20304%20889%20296%20900%20268%20904%20262%20912%20256%20922%20252%20932%20250%20960%20249%20M960%20556%20920%20575%20892%20596%20872%20616%20852%20640%20843%20656%20842%20664%20843%20668%20848%20672%20868%20678%20916%20684%20960%20685%20M0%20511%2088%20478%20112%20472%20132%20469%20152%20468%20172%20469%20188%20473%20224%20484%20244%20487%20260%20486%20276%20484%20312%20473%20344%20459%20374%20440%20391%20424%20428%20383%20441%20372%20456%20362%20476%20351%20534%20328%20575%20300%20590%20292%20612%20284%20632%20280%20664%20280%20680%20283%20696%20287%20718%20296%20768%20324%20796%20333%20824%20337%20896%20344%20920%20349%20932%20354%20941%20360%20952%20372%20960%20384%20M960%20532%20928%20546%20908%20557%20892%20571%20848%20617%20824%20639%20796%20659%20750%20684%20741%20692%20737%20700%20740%20708%20745%20712%20752%20715%20764%20716%20784%20714%20832%20704%20860%20701%20896%20701%20960%20705%20M0%20527%2028%20518%2088%20494%20108%20488%20124%20485%20144%20484%20160%20485%20172%20489%20208%20502%20228%20505%20244%20504%20264%20500%20308%20488%20352%20471%20388%20452%20412%20433%20449%20396%20472%20381%20496%20372%20548%20358%20568%20350%20584%20340%20613%20312%20627%20304%20640%20300%20652%20299%20664%20300%20676%20303%20689%20308%20701%20316%20708%20324%20711%20332%20708%20339%20703%20344%20676%20360%20666%20368%20661%20376%20658%20384%20658%20400%20665%20420%20676%20435%20688%20444%20698%20448%20712%20451%20740%20454%20772%20452%20792%20446%20800%20439%20805%20428%20807%20416%20806%20388%20810%20376%20816%20371%20824%20368%20848%20365%20868%20367%20888%20372%20904%20378%20919%20388%20930%20400%20940%20416%20946%20432%20948%20448%20947%20460%20945%20468%20940%20476%20936%20480%20928%20485%20920%20487%20880%20494%20872%20497%20865%20504%20862%20516%20865%20548%20862%20564%20857%20576%20849%20588%20828%20612%20808%20628%20788%20639%20764%20650%20708%20668%20699%20672%20692%20678%20688%20684%20686%20696%20689%20708%20696%20720%20M0%20543%2032%20534%2092%20512%20116%20507%20132%20506%20144%20508%20153%20512%20176%20526%20188%20528%20216%20526%20256%20517%20352%20489%20404%20470%20436%20452%20488%20412%20516%20399%20540%20391%20564%20386%20580%20384%20596%20385%20608%20390%20616%20396%20626%20408%20648%20444%20656%20452%20668%20460%20680%20465%20694%20468%20764%20477%20780%20482%20792%20488%20800%20496%20807%20508%20823%20560%20823%20572%20821%20580%20812%20596%20804%20604%20794%20612%20772%20623%20752%20628%20736%20629%20720%20627%20696%20619%20680%20616%20664%20615%20644%20617%20620%20624%20596%20633%20571%20648%20552%20664%20540%20676%20533%20688%20530%20696%20531%20700%20534%20704%20548%20706%20600%20702%20624%20703%20641%20708%20658%20720%20M0%20564%2024%20564%2036%20568%2039%20572%2039%20576%2036%20596%2036%20604%2039%20612%2048%20620%2060%20624%2072%20625%2088%20624%20100%20622%20116%20617%20132%20608%20184%20568%20200%20558%20221%20548%20253%20536%20291%20524%20376%20504%20404%20496%20424%20488%20447%20476%20508%20435%20529%20424%20544%20418%20560%20415%20572%20415%20584%20417%20596%20422%20604%20429%20612%20438%20629%20464%20636%20471%20644%20477%20656%20482%20667%20484%20716%20489%20735%20492%20748%20496%20762%20504%20772%20515%20777%20528%20778%20548%20775%20564%20768%20577%20760%20583%20752%20586%20736%20589%20684%20592%20652%20596%20616%20606%20584%20619%20556%20636%20526%20660%20498%20688%20472%20720%20M0%20626%208%20633%2020%20639%2036%20644%2052%20646%2072%20647%2096%20647%20116%20645%20136%20640%20152%20634%20164%20627%20217%20580%20236%20568%20251%20560%20285%20548%20356%20532%20392%20521%20420%20510%20448%20497%20528%20453%20548%20447%20560%20446%20568%20447%20579%20452%20587%20460%20594%20472%20604%20496%20612%20505%20620%20508%20628%20509%20688%20507%20704%20509%20716%20512%20726%20516%20734%20524%20737%20532%20736%20540%20732%20546%20727%20552%20708%20562%20689%20568%20628%20582%20604%20588%20580%20598%20556%20610%20532%20628%20508%20649%20438%20720%20M0%20655%2040%20662%20112%20669%20140%20669%20162%20664%20180%20657%20196%20648%20212%20636%20260%20598%20292%20579%20408%20532%20500%20493%20520%20487%20536%20486%20543%20488%20548%20492%20551%20500%20552%20508%20550%20520%20546%20532%20529%20564%20501%20608%20474%20644%20442%20680%20402%20720%20M0%20671%2044%20678%20112%20689%20136%20689%20163%20684%20184%20676%20207%20664%20292%20605%20316%20590%20344%20576%20392%20555%20440%20536%20468%20528%20480%20527%20488%20527%20496%20532%20498%20540%20497%20548%20489%20568%20474%20592%20450%20624%20424%20656%20400%20681%20359%20720%20M0%20686%2036%20691%2084%20703%20104%20706%20132%20705%20160%20700%20188%20690%20216%20676%20304%20616%20352%20589%20380%20576%20404%20567%20424%20562%20440%20561%20448%20565%20450%20568%20450%20576%20444%20592%20430%20612%20414%20632%20392%20656%20323%20720%20M0%20701%2024%20705%2068%20716%2090%20720%20M125%20720%20164%20713%20204%20698%20240%20679%20302%20636%20336%20616%20364%20603%20376%20599%20388%20598%20396%20599%20399%20604%20395%20616%20387%20628%20362%20656%20312%20701%20293%20720%20M189%20720%20248%20701%20260%20699%20263%20700%20264%20704%20259%20720%22/%3E%3C/g%3E%3C/svg%3E"); }
.efs-contours::after { left: -6%; bottom: -18%; width: min(46%, 560px); -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20720%20540%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%221%22%3E%3Cdefs%3E%3CradialGradient%20id=%22f%22%20cx=%22.5%22%20cy=%22.5%22%20r=%22.55%22%3E%3Cstop%20offset=%22.4%22%20stop-color=%22%23fff%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23000%22/%3E%3C/radialGradient%3E%3Cmask%20id=%22m%22%3E%3Crect%20width=%22720%22%20height=%22540%22%20fill=%22url%28%23f%29%22/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%22url%28%23m%29%22%3E%3Cpath%20d=%22M0%2014%2018%200%20M0%2063%2024%2045%2044%2034%20136%205%20156%202%20168%203%20176%2010%20184%2026%20188%2029%20192%2029%20200%2027%20212%2021%20239%200%20M0%2097%2028%2078%2056%2063%2084%2051%20108%2045%20116%2045%20120%2047%20124%2051%20128%2074%20132%2081%20137%2084%20144%2085%20160%2082%20180%2071%20204%2054%20232%2031%20264%200%20M325%200%20327%2024%20328%2030%20333%2036%20344%2038%20356%2036%20376%2028%20396%2018%20426%200%20M489%200%20488%2020%20490%2024%20496%2027%20504%2026%20516%2020%20528%2012%20541%200%20M0%20125%2032%20108%2044%20104%2052%20103%2060%20105%2076%20122%2084%20125%2092%20127%20108%20127%20128%20126%20156%20119%20168%20113%20184%20101%20255%2032%20292%200%20M600%200%20604%202%20608%207%20610%2012%20611%2020%20609%2032%20600%2064%20599%2080%20600%2085%20604%2092%20608%2094%20616%2096%20628%2094%20640%2088%20656%2075%20671%2060%20684%2044%20692%2032%20700%2016%20704%200%20M0%20166%2040%20169%2088%20160%20108%20159%20120%20161%20128%20164%20148%20176%20156%20179%20168%20180%20177%20176%20188%20167%20236%20105%20252%2090%20264%2083%20276%2081%20308%2078%20332%2072%20356%2062%20408%2036%20424%2031%20430%2032%20435%2036%20440%2056%20444%2064%20452%2069%20460%2070%20468%2069%20480%2065%20496%2057%20568%2010%20580%203%20589%200%20M0%20202%2028%20201%2076%20188%2096%20186%20112%20190%20148%20207%20160%20209%20173%20208%20184%20204%20195%20196%20240%20149%20252%20140%20264%20133%20276%20130%20284%20130%20294%20132%20308%20138%20316%20138%20328%20131%20360%20109%20372%20103%20384%20100%20400%20101%20436%20109%20452%20107%20468%2099%20536%2052%20552%2043%20564%2040%20572%2041%20576%2044%20577%2048%20576%2088%20578%20100%20582%20108%20588%20115%20596%20120%20604%20123%20616%20123%20632%20117%20652%20102%20720%2035%20M0%20228%2024%20225%2068%20212%2088%20209%20104%20211%20148%20227%20160%20229%20172%20228%20192%20223%20232%20198%20244%20194%20256%20196%20280%20206%20288%20208%20296%20207%20306%20204%20316%20198%20348%20166%20360%20156%20372%20150%20384%20147%20396%20149%20404%20157%20420%20196%20431%20212%20444%20221%20452%20224%20456%20224%20462%20220%20466%20212%20474%20156%20478%20140%20486%20124%20496%20109%20509%2096%20524%2086%20536%2082%20540%2082%20544%2085%20557%20112%20572%20132%20592%20151%20604%20159%20616%20161%20628%20156%20672%20120%20680%20115%20688%20112%20692%20113%20694%20116%20701%20132%20706%20140%20720%20151%20M0%20251%2020%20248%2068%20234%2084%20231%20100%20232%20140%20243%20160%20245%20188%20243%20224%20232%20236%20230%20248%20230%20280%20236%20296%20235%20308%20232%20317%20228%20328%20220%20356%20196%20364%20192%20372%20190%20380%20192%20388%20197%20417%20228%20439%20244%20452%20251%20464%20255%20472%20256%20480%20255%20485%20252%20489%20244%20490%20192%20493%20176%20496%20164%20502%20152%20508%20143%20516%20136%20524%20132%20532%20133%20540%20136%20556%20148%20572%20168%20600%20214%20612%20227%20620%20232%20628%20231%20632%20227%20649%20196%20660%20184%20668%20179%20676%20176%20688%20176%20720%20183%20M0%20277%2060%20258%2084%20253%20100%20253%20136%20259%20156%20260%20180%20259%20228%20255%20276%20257%20300%20256%20324%20249%20356%20230%20364%20227%20372%20226%20380%20227%20388%20231%20430%20256%20464%20272%20492%20282%20508%20283%20514%20280%20516%20277%20518%20268%20511%20216%20512%20193%20516%20182%20520%20176%20526%20172%20532%20170%20540%20172%20552%20183%20560%20194%20585%20240%20604%20264%20616%20276%20632%20287%20644%20293%20656%20296%20664%20293%20667%20288%20668%20280%20669%20240%20672%20228%20677%20220%20684%20214%20692%20211%20704%20210%20720%20214%20M0%20320%2025%20300%2037%20292%2055%20284%2072%20280%2092%20278%20136%20278%20204%20273%20260%20277%20284%20276%20324%20270%20364%20257%20380%20255%20392%20256%20404%20260%20512%20308%20524%20313%20536%20315%20544%20315%20552%20310%20557%20300%20564%20280%20568%20277%20572%20278%20634%20316%20664%20332%20692%20344%20708%20346%20716%20343%20718%20340%20720%20332%20718%20320%20708%20284%20707%20268%20708%20264%20712%20259%20720%20257%20M0%20522%2027%20504%2054%20480%2070%20460%2076%20448%2078%20440%2077%20432%2070%20424%2060%20419%2036%20410%2024%20402%2016%20393%200%20370%20M14%20540%2064%20507%2076%20502%2084%20500%2088%20503%2089%20508%2085%20540%20M142%20540%20168%20517%20188%20492%20195%20480%20200%20468%20202%20456%20200%20448%20196%20442%20189%20436%20164%20427%20154%20420%20148%20412%20132%20379%20120%20364%20116%20361%20108%20359%2084%20364%2076%20364%2068%20361%2061%20356%2058%20352%2055%20344%2055%20336%2060%20325%2068%20320%2080%20318%20104%20321%20112%20320%20147%20300%20164%20294%20180%20291%20200%20290%20252%20297%20268%20297%20348%20287%20384%20280%20396%20280%20412%20281%20436%20288%20464%20299%20492%20313%20536%20338%20552%20345%20564%20346%20572%20345%20592%20334%20600%20331%20612%20331%20624%20334%20640%20341%20660%20352%20720%20391%20M190%20540%20210%20508%20224%20480%20231%20460%20234%20440%20232%20428%20225%20416%20216%20409%20192%20396%20181%20388%20172%20376%20164%20360%20161%20344%20161%20336%20164%20328%20168%20321%20173%20316%20188%20310%20208%20309%20248%20320%20264%20321%20320%20310%20372%20312%20412%20302%20424%20301%20440%20304%20460%20310%20484%20321%20508%20336%20544%20362%20556%20368%20564%20371%20572%20372%20580%20371%20608%20360%20616%20358%20628%20359%20644%20363%20656%20369%20672%20380%20708%20411%20720%20419%20M261%20540%20337%20480%20350%20468%20357%20456%20357%20448%20352%20445%20348%20444%20300%20454%20284%20453%20276%20448%20272%20440%20263%20384%20264%20372%20268%20364%20283%20352%20300%20342%20316%20336%20328%20335%20340%20337%20352%20341%20376%20352%20384%20354%20392%20351%20412%20332%20424%20324%20440%20320%20456%20322%20476%20330%20494%20340%20516%20356%20548%20384%20564%20393%20572%20395%20584%20394%20612%20384%20624%20381%20636%20381%20648%20385%20660%20391%20671%20400%20704%20434%20712%20439%20720%20442%20M388%20540%20400%20521%20402%20508%20400%20500%20396%20497%20388%20495%20376%20498%20368%20504%20356%20517%20341%20540%20M414%20540%20431%20512%20437%20492%20436%20476%20425%20448%20422%20432%20421%20404%20423%20380%20427%20364%20432%20353%20440%20344%20448%20341%20456%20340%20468%20342%20480%20346%20492%20353%20515%20372%20548%20408%20560%20416%20568%20418%20580%20418%20624%20403%20636%20402%20644%20404%20653%20408%20664%20417%20688%20446%20696%20453%20708%20459%20720%20461%20M438%20540%20456%20508%20461%20496%20464%20484%20463%20468%20450%20428%20446%20404%20447%20388%20451%20376%20456%20368%20464%20364%20472%20363%20480%20365%20492%20372%20500%20379%20515%20396%20537%20432%20544%20440%20552%20445%20560%20448%20572%20447%20584%20443%20616%20429%20628%20426%20636%20426%20644%20429%20654%20436%20675%20464%20684%20472%20692%20476%20700%20478%20720%20478%20M572%20540%20583%20520%20594%20488%20598%20480%20608%20469%20620%20462%20628%20462%20636%20466%20656%20488%20664%20494%20672%20497%20692%20499%20720%20495%20M671%20540%20682%20532%20692%20527%20708%20521%20720%20519%22/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20720%20540%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%221%22%3E%3Cdefs%3E%3CradialGradient%20id=%22f%22%20cx=%22.5%22%20cy=%22.5%22%20r=%22.55%22%3E%3Cstop%20offset=%22.4%22%20stop-color=%22%23fff%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23000%22/%3E%3C/radialGradient%3E%3Cmask%20id=%22m%22%3E%3Crect%20width=%22720%22%20height=%22540%22%20fill=%22url%28%23f%29%22/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%22url%28%23m%29%22%3E%3Cpath%20d=%22M0%2014%2018%200%20M0%2063%2024%2045%2044%2034%20136%205%20156%202%20168%203%20176%2010%20184%2026%20188%2029%20192%2029%20200%2027%20212%2021%20239%200%20M0%2097%2028%2078%2056%2063%2084%2051%20108%2045%20116%2045%20120%2047%20124%2051%20128%2074%20132%2081%20137%2084%20144%2085%20160%2082%20180%2071%20204%2054%20232%2031%20264%200%20M325%200%20327%2024%20328%2030%20333%2036%20344%2038%20356%2036%20376%2028%20396%2018%20426%200%20M489%200%20488%2020%20490%2024%20496%2027%20504%2026%20516%2020%20528%2012%20541%200%20M0%20125%2032%20108%2044%20104%2052%20103%2060%20105%2076%20122%2084%20125%2092%20127%20108%20127%20128%20126%20156%20119%20168%20113%20184%20101%20255%2032%20292%200%20M600%200%20604%202%20608%207%20610%2012%20611%2020%20609%2032%20600%2064%20599%2080%20600%2085%20604%2092%20608%2094%20616%2096%20628%2094%20640%2088%20656%2075%20671%2060%20684%2044%20692%2032%20700%2016%20704%200%20M0%20166%2040%20169%2088%20160%20108%20159%20120%20161%20128%20164%20148%20176%20156%20179%20168%20180%20177%20176%20188%20167%20236%20105%20252%2090%20264%2083%20276%2081%20308%2078%20332%2072%20356%2062%20408%2036%20424%2031%20430%2032%20435%2036%20440%2056%20444%2064%20452%2069%20460%2070%20468%2069%20480%2065%20496%2057%20568%2010%20580%203%20589%200%20M0%20202%2028%20201%2076%20188%2096%20186%20112%20190%20148%20207%20160%20209%20173%20208%20184%20204%20195%20196%20240%20149%20252%20140%20264%20133%20276%20130%20284%20130%20294%20132%20308%20138%20316%20138%20328%20131%20360%20109%20372%20103%20384%20100%20400%20101%20436%20109%20452%20107%20468%2099%20536%2052%20552%2043%20564%2040%20572%2041%20576%2044%20577%2048%20576%2088%20578%20100%20582%20108%20588%20115%20596%20120%20604%20123%20616%20123%20632%20117%20652%20102%20720%2035%20M0%20228%2024%20225%2068%20212%2088%20209%20104%20211%20148%20227%20160%20229%20172%20228%20192%20223%20232%20198%20244%20194%20256%20196%20280%20206%20288%20208%20296%20207%20306%20204%20316%20198%20348%20166%20360%20156%20372%20150%20384%20147%20396%20149%20404%20157%20420%20196%20431%20212%20444%20221%20452%20224%20456%20224%20462%20220%20466%20212%20474%20156%20478%20140%20486%20124%20496%20109%20509%2096%20524%2086%20536%2082%20540%2082%20544%2085%20557%20112%20572%20132%20592%20151%20604%20159%20616%20161%20628%20156%20672%20120%20680%20115%20688%20112%20692%20113%20694%20116%20701%20132%20706%20140%20720%20151%20M0%20251%2020%20248%2068%20234%2084%20231%20100%20232%20140%20243%20160%20245%20188%20243%20224%20232%20236%20230%20248%20230%20280%20236%20296%20235%20308%20232%20317%20228%20328%20220%20356%20196%20364%20192%20372%20190%20380%20192%20388%20197%20417%20228%20439%20244%20452%20251%20464%20255%20472%20256%20480%20255%20485%20252%20489%20244%20490%20192%20493%20176%20496%20164%20502%20152%20508%20143%20516%20136%20524%20132%20532%20133%20540%20136%20556%20148%20572%20168%20600%20214%20612%20227%20620%20232%20628%20231%20632%20227%20649%20196%20660%20184%20668%20179%20676%20176%20688%20176%20720%20183%20M0%20277%2060%20258%2084%20253%20100%20253%20136%20259%20156%20260%20180%20259%20228%20255%20276%20257%20300%20256%20324%20249%20356%20230%20364%20227%20372%20226%20380%20227%20388%20231%20430%20256%20464%20272%20492%20282%20508%20283%20514%20280%20516%20277%20518%20268%20511%20216%20512%20193%20516%20182%20520%20176%20526%20172%20532%20170%20540%20172%20552%20183%20560%20194%20585%20240%20604%20264%20616%20276%20632%20287%20644%20293%20656%20296%20664%20293%20667%20288%20668%20280%20669%20240%20672%20228%20677%20220%20684%20214%20692%20211%20704%20210%20720%20214%20M0%20320%2025%20300%2037%20292%2055%20284%2072%20280%2092%20278%20136%20278%20204%20273%20260%20277%20284%20276%20324%20270%20364%20257%20380%20255%20392%20256%20404%20260%20512%20308%20524%20313%20536%20315%20544%20315%20552%20310%20557%20300%20564%20280%20568%20277%20572%20278%20634%20316%20664%20332%20692%20344%20708%20346%20716%20343%20718%20340%20720%20332%20718%20320%20708%20284%20707%20268%20708%20264%20712%20259%20720%20257%20M0%20522%2027%20504%2054%20480%2070%20460%2076%20448%2078%20440%2077%20432%2070%20424%2060%20419%2036%20410%2024%20402%2016%20393%200%20370%20M14%20540%2064%20507%2076%20502%2084%20500%2088%20503%2089%20508%2085%20540%20M142%20540%20168%20517%20188%20492%20195%20480%20200%20468%20202%20456%20200%20448%20196%20442%20189%20436%20164%20427%20154%20420%20148%20412%20132%20379%20120%20364%20116%20361%20108%20359%2084%20364%2076%20364%2068%20361%2061%20356%2058%20352%2055%20344%2055%20336%2060%20325%2068%20320%2080%20318%20104%20321%20112%20320%20147%20300%20164%20294%20180%20291%20200%20290%20252%20297%20268%20297%20348%20287%20384%20280%20396%20280%20412%20281%20436%20288%20464%20299%20492%20313%20536%20338%20552%20345%20564%20346%20572%20345%20592%20334%20600%20331%20612%20331%20624%20334%20640%20341%20660%20352%20720%20391%20M190%20540%20210%20508%20224%20480%20231%20460%20234%20440%20232%20428%20225%20416%20216%20409%20192%20396%20181%20388%20172%20376%20164%20360%20161%20344%20161%20336%20164%20328%20168%20321%20173%20316%20188%20310%20208%20309%20248%20320%20264%20321%20320%20310%20372%20312%20412%20302%20424%20301%20440%20304%20460%20310%20484%20321%20508%20336%20544%20362%20556%20368%20564%20371%20572%20372%20580%20371%20608%20360%20616%20358%20628%20359%20644%20363%20656%20369%20672%20380%20708%20411%20720%20419%20M261%20540%20337%20480%20350%20468%20357%20456%20357%20448%20352%20445%20348%20444%20300%20454%20284%20453%20276%20448%20272%20440%20263%20384%20264%20372%20268%20364%20283%20352%20300%20342%20316%20336%20328%20335%20340%20337%20352%20341%20376%20352%20384%20354%20392%20351%20412%20332%20424%20324%20440%20320%20456%20322%20476%20330%20494%20340%20516%20356%20548%20384%20564%20393%20572%20395%20584%20394%20612%20384%20624%20381%20636%20381%20648%20385%20660%20391%20671%20400%20704%20434%20712%20439%20720%20442%20M388%20540%20400%20521%20402%20508%20400%20500%20396%20497%20388%20495%20376%20498%20368%20504%20356%20517%20341%20540%20M414%20540%20431%20512%20437%20492%20436%20476%20425%20448%20422%20432%20421%20404%20423%20380%20427%20364%20432%20353%20440%20344%20448%20341%20456%20340%20468%20342%20480%20346%20492%20353%20515%20372%20548%20408%20560%20416%20568%20418%20580%20418%20624%20403%20636%20402%20644%20404%20653%20408%20664%20417%20688%20446%20696%20453%20708%20459%20720%20461%20M438%20540%20456%20508%20461%20496%20464%20484%20463%20468%20450%20428%20446%20404%20447%20388%20451%20376%20456%20368%20464%20364%20472%20363%20480%20365%20492%20372%20500%20379%20515%20396%20537%20432%20544%20440%20552%20445%20560%20448%20572%20447%20584%20443%20616%20429%20628%20426%20636%20426%20644%20429%20654%20436%20675%20464%20684%20472%20692%20476%20700%20478%20720%20478%20M572%20540%20583%20520%20594%20488%20598%20480%20608%20469%20620%20462%20628%20462%20636%20466%20656%20488%20664%20494%20672%20497%20692%20499%20720%20495%20M671%20540%20682%20532%20692%20527%20708%20521%20720%20519%22/%3E%3C/g%3E%3C/svg%3E"); }
.efs-contours--tr::after, .efs-contours--bl::before { display: none; }

/* Reading column: plain sans, generous leading; links are ink over a yellow underblock. */
.efs-reading { max-width: 640px; font: 400 17px/1.85 var(--font-sans); color: var(--ink); }
.efs-reading ::selection, .efs-reading mark { background: var(--mark); color: inherit; }
.efs-reading a { color: var(--ink); text-decoration: none; background: linear-gradient(var(--signal), var(--signal)) 0 100% / 100% 0.4em no-repeat; transition: background-size var(--dur-fast) var(--ease-mech); }
.efs-reading a:hover { background-size: 100% 100%; color: var(--on-signal); }
[data-theme="dark"] .efs-reading a { background: none; text-decoration: underline; text-decoration-color: var(--trace); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }

.efs-icon { display: inline-block; flex: none; vertical-align: middle; }

/* ---------- Button ---------- */
.efs-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); box-sizing: border-box; border: 0; margin: 0; cursor: pointer; font-family: var(--font-sans); font-weight: 500; line-height: 1; border-radius: var(--radius-sm); box-shadow: var(--shadow-control); transition: background-color var(--dur-fast), border-radius var(--dur-fast), color var(--dur-fast); white-space: nowrap; }
.efs-btn--md { height: var(--size-control-md); min-width: 150px; padding: 0 var(--space-8) 0 var(--space-12); font-size: 16px; }
.efs-btn--sm { height: var(--size-control-sm); min-width: 96px; padding: 0 var(--space-4) 0 var(--space-8); font-size: 13px; }
.efs-btn--lg { height: var(--size-control-lg); min-width: 240px; padding: 0 var(--space-10) 0 var(--space-16); font-size: 21px; }
.efs-btn__bar { position: absolute; top: 50%; height: 55%; transform: translateY(-50%); clip-path: polygon(0 0, 25% 0, 25% 100%, 0 100%); transition: clip-path var(--dur-fast), transform var(--dur-fast); }
.efs-btn--md .efs-btn__bar { left: var(--space-3); width: 12px; }
.efs-btn--sm .efs-btn__bar { left: var(--space-2); width: 10px; height: 50%; }
.efs-btn--lg .efs-btn__bar { left: var(--space-4); width: 15px; }
.efs-btn:hover:not(:disabled) { border-radius: var(--radius-md); }
.efs-btn:hover:not(:disabled) .efs-btn__bar { clip-path: polygon(0 20%, 100% 50%, 0 80%, 0 80%); transform: translate(8px, -50%); }
.efs-btn--lg:hover:not(:disabled) .efs-btn__bar { transform: translate(10.5px, -50%); }
.efs-btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.efs-btn--dark { background: var(--control); color: var(--on-control); }
.efs-btn--dark .efs-btn__bar { background: var(--signal); }
.efs-btn--dark:hover:not(:disabled) { background: var(--control-hover); }
.efs-btn--dark:active:not(:disabled) { background: var(--control-active); }
.efs-btn--light { background: var(--control-alt); color: var(--on-control-alt); }
.efs-btn--light .efs-btn__bar { background: var(--control-disabled); }
.efs-btn--light:hover:not(:disabled) { background: var(--control-alt-hover); }
.efs-btn--signal { background: var(--signal); color: var(--on-signal); }
.efs-btn--signal .efs-btn__bar { background: var(--on-signal); }
.efs-btn--signal:hover:not(:disabled) { background: var(--signal-hover); }
.efs-btn--signal:active:not(:disabled) { background: var(--signal-active); }
.efs-btn:active:not(:disabled) { transform: translateY(1px) scale(0.985); transition-duration: var(--dur-press); }
.efs-btn--danger { background: var(--paper-raised); color: var(--danger-text); box-shadow: var(--shadow-control), inset 0 0 0 1px var(--rule); }
.efs-btn--danger .efs-btn__bar { background: var(--danger); }
.efs-btn--danger:hover:not(:disabled) { background: var(--danger); color: var(--on-status); }
.efs-btn--danger:hover:not(:disabled) .efs-btn__bar { background: var(--on-status); }
.efs-btn[aria-busy="true"] { cursor: progress; pointer-events: none; background-image: repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.16) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); }
.efs-btn--signal[aria-busy="true"], .efs-btn--light[aria-busy="true"], .efs-btn--danger[aria-busy="true"] { background-image: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.18) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); }
.efs-btn:disabled { cursor: not-allowed; background: var(--control-disabled); color: var(--on-control-disabled); box-shadow: none; }
.efs-btn:disabled .efs-btn__bar { background: var(--on-control-disabled); }

/* ---------- IconButton (knob) ---------- */
.efs-knob { position: relative; display: inline-grid; place-items: center; box-sizing: border-box; border: 0; padding: 0; margin: 0; cursor: pointer; border-radius: var(--radius-round); color: var(--ink); background: var(--paper-raised); transition: background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-base); }
.efs-knob--md { width: var(--size-knob); height: var(--size-knob); box-shadow: inset 0 0 0 3px var(--panel-strong), inset 0 0 0 5px var(--paper-raised), var(--shadow-knob); }
.efs-knob--lg { width: var(--size-knob-lg); height: var(--size-knob-lg); box-shadow: inset 0 0 0 4.5px var(--panel-strong), inset 0 0 0 7.5px var(--paper-raised), var(--shadow-knob); }
.efs-knob--sm { width: var(--size-control-sm); height: var(--size-control-sm); box-shadow: inset 0 0 0 2px var(--panel-strong), var(--shadow-knob); }
.efs-knob:hover:not(:disabled) { background: var(--signal); color: var(--on-signal); }
.efs-knob:active:not(:disabled) { background: var(--signal-active); }
.efs-knob:disabled { cursor: not-allowed; color: var(--ink-3); }
.efs-knob:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.efs-knob--plain { background: transparent; box-shadow: none; color: inherit; }
.efs-knob--plain:hover:not(:disabled) { background: transparent; color: inherit; transform: rotate(90deg); }

/* ---------- Pager ---------- */
.efs-pager { position: relative; display: inline-flex; align-items: center; gap: var(--space-2); padding: 4px; border-radius: var(--radius-pill); background: var(--panel-strong); isolation: isolate; }
.efs-pager::before { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: -1; opacity: .5; background-image: repeating-linear-gradient(-45deg, var(--hatch) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); }
.efs-pager__count { display: inline-flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-4); font-family: var(--font-display); font-size: 18px; font-weight: 500; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.efs-pager__count b { font-weight: 700; }
.efs-pager__div { color: var(--ink-3); }
.efs-pager--dark { background: rgba(30, 30, 30, 0.8); }
.efs-pager--dark .efs-pager__count { color: #ffffff; }
.efs-pager--dark .efs-pager__div { color: #999999; }

/* ---------- NavRail ---------- */
.efs-rail { display: flex; flex-direction: column; align-items: stretch; box-sizing: border-box; width: var(--size-rail-app); height: 100%; min-height: 420px; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-raised); transition: width var(--dur-base); }
.efs-rail--expanded { width: 240px; }
.efs-rail__brand { display: flex; align-items: center; justify-content: center; height: 72px; font-family: var(--font-display); font-weight: 700; font-size: 13px; line-height: 1; letter-spacing: -0.02em; text-transform: uppercase; }
.efs-rail__list { list-style: none; margin: 0; padding: var(--space-2) 0; display: flex; flex-direction: column; gap: var(--space-1); flex: 1; }
.efs-rail__item { position: relative; display: flex; align-items: center; gap: var(--space-4); width: calc(100% - 12px); margin: 0 6px; height: var(--size-control-md); padding: 0 calc((var(--size-rail-app) - 12px - 24px) / 2); box-sizing: border-box; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink-2); cursor: pointer; font: 500 13px/1 var(--font-sans); text-align: left; transition: background-color var(--dur-fast), color var(--dur-fast); }
.efs-rail__item:hover { background: var(--panel-strong); color: var(--ink); }
.efs-rail__item.is-active { background: var(--label); color: var(--on-label); }
.efs-rail__item:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.efs-rail__label { white-space: nowrap; overflow: hidden; }
.efs-rail:not(.efs-rail--expanded) .efs-rail__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.efs-rail__action { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); margin: var(--space-2) 6px var(--space-4); padding: var(--space-4) 0; border: 0; border-radius: var(--radius-sm); background: var(--label); color: var(--on-label); cursor: pointer; font: 500 13px/1 var(--font-sans); transition: background-color var(--dur-fast), color var(--dur-fast); }
.efs-rail__action-text { writing-mode: vertical-rl; letter-spacing: -0.03em; }
.efs-rail--expanded .efs-rail__action { flex-direction: row; justify-content: center; }
.efs-rail--expanded .efs-rail__action-text { writing-mode: horizontal-tb; }
.efs-rail__action:hover { background: var(--signal); color: var(--on-signal); }
.efs-rail__action:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* ---------- Breadcrumb ---------- */
.efs-crumb { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); font: 500 13px/18px var(--font-sans); color: var(--ink-2); }
.efs-crumb__slash { font-family: var(--font-display); font-weight: 700; color: var(--ink); letter-spacing: -0.08em; margin-right: var(--space-1); }
.efs-crumb__sep { color: var(--ink-3); }
.efs-crumb a { color: inherit; text-decoration: none; }
.efs-crumb a:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--trace); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.efs-crumb__current { color: var(--ink); }
.efs-crumb__meta { margin-left: var(--space-4); color: var(--ink-2); font-variant-numeric: tabular-nums; }

/* ---------- Tabs ---------- */
.efs-tabs { display: flex; gap: var(--space-1); border-bottom: var(--stroke-rule) solid var(--label); }
.efs-tab { position: relative; height: 36px; padding: 0 var(--space-8) 0 var(--space-6); border: 0; margin: 0; cursor: pointer; background: var(--panel); color: var(--ink-2); font: 500 13px/1 var(--font-sans); clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 0 100%); transition: background-color var(--dur-fast), color var(--dur-fast); }
.efs-tab:hover { background: var(--panel-strong); color: var(--ink); }
.efs-tab.is-active { background: var(--label); color: var(--on-label); }
.efs-tab:focus-visible { outline: none; background: var(--signal); color: var(--on-signal); }
.efs-tab__count { margin-left: var(--space-2); font: 500 12px/1 var(--font-tech); opacity: .8; }

/* ---------- SectionTitle ---------- */
.efs-st { position: relative; display: inline-flex; flex-direction: column; gap: var(--space-3); color: var(--ink); }
.efs-st__code { font: 500 12px/15px var(--font-heading); text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-3); }
.efs-st__row { display: flex; align-items: center; gap: var(--space-3); }
.efs-st__block { position: relative; overflow: hidden; flex: none; }
.efs-st__inner { position: absolute; inset: 0; display: flex; align-items: center; justify-content: flex-end; padding-right: 4px; background: var(--rule); color: var(--ink); transform: translateX(-100%); transition: transform var(--dur-slow) var(--ease-out); }
.efs-st__arrow { transform: rotate(-45deg); transition: transform var(--dur-fast) var(--ease-out) var(--dur-base); }
.efs-st__block.is-active .efs-st__inner { transform: none; }
.efs-st__block.is-active .efs-st__arrow { transform: none; }
.efs-st__en { font-family: var(--font-heading); font-weight: 500; text-transform: uppercase; line-height: 1; }
.efs-st__title { margin: 0; font-family: var(--font-sans); font-weight: 700; line-height: 1; }
.efs-st--md .efs-st__block { width: 54px; height: 18px; }
.efs-st--md .efs-st__en { font-size: 20px; }
.efs-st--md .efs-st__title { font-size: 27px; }
.efs-st--lg .efs-st__block { width: 78px; height: 24px; }
.efs-st--lg .efs-st__en { font-size: 27px; }
.efs-st--lg .efs-st__title { font-size: 36px; }
@media (prefers-reduced-motion: reduce) { .efs-st__inner, .efs-st__arrow { transition: none; } }

/* ---------- SpecTag ---------- */
.efs-spec { display: inline-flex; align-items: stretch; height: var(--size-tag); font: 500 13px/24px var(--font-sans); white-space: nowrap; }
.efs-spec__label { padding: 0 var(--space-6); background: var(--label); color: var(--on-label); }
.efs-spec__value { padding: 0 var(--space-3); background: var(--panel); color: var(--ink); }
.efs-spec--lg { height: 27px; font-size: 16.5px; line-height: 27px; }
.efs-spec--lg .efs-spec__label { padding: 0 var(--space-8); }
.efs-spec--signal .efs-spec__label { background: var(--signal); color: var(--on-signal); }

/* ---------- Tag ---------- */
.efs-tag { display: inline-flex; align-items: center; gap: var(--space-1); height: 22px; padding: 0 var(--space-3); box-sizing: border-box; font: 500 13px/1 var(--font-sans); white-space: nowrap; }
.efs-tag--neutral { background: var(--panel-strong); color: var(--ink); }
.efs-tag--dark { background: var(--control); color: var(--on-control); }
.efs-tag--signal { background: var(--signal); color: var(--on-signal); }
.efs-tag--danger { background: var(--danger); color: var(--on-status); }
.efs-tag--warning { background: var(--warning); color: var(--on-status); }
.efs-tag--success { background: var(--success); color: var(--on-status); }
.efs-tag--info { background: var(--info); color: var(--on-status); }
.efs-tag--gain { background: var(--gain); color: var(--on-status); }
.efs-tag--outline { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-control); }
.efs-tag--live { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.efs-tag--standby { background: transparent; color: var(--ink-2); outline: 1px dashed var(--ink-2); outline-offset: -1px; }
.efs-tag--attention { background: var(--signal); color: var(--on-signal); font-weight: 700; }
a.efs-tag, button.efs-tag { --fill: var(--panel-strong); border: 0; cursor: pointer; text-decoration: none; padding-right: calc(var(--space-3) + var(--cut-sm)); background: linear-gradient(-45deg, transparent var(--cut-sm), var(--fill) calc(var(--cut-sm) + 0.5px)); color: var(--ink); transition: color var(--dur-fast); }
a.efs-tag:hover, button.efs-tag:hover, .efs-tag.is-on { --fill: var(--signal); color: var(--on-signal); }
a.efs-tag:focus-visible, button.efs-tag:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* ---------- Stat ---------- */
.efs-stat { display: inline-flex; flex-direction: column; gap: var(--space-2); color: var(--ink); }
.efs-stat__label { font: 500 12px/16px var(--font-tech); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-2); }
.efs-stat__value { display: flex; align-items: baseline; gap: var(--space-1); }
.efs-stat__num { font-family: var(--font-display); font-weight: 600; font-size: 48px; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.efs-stat--lg .efs-stat__num { font-size: 72px; }
.efs-stat__of, .efs-stat__unit { font-family: var(--font-display); font-weight: 500; font-size: 18px; line-height: 1; color: var(--ink-2); }
.efs-stat__caption { font: 400 13px/18px var(--font-sans); color: var(--ink-2); }
.efs-stat__bar { height: var(--stroke-bar); background: var(--panel-strong); }
.efs-stat__bar > span { display: block; height: 100%; background: var(--gain); }
.efs-stat--attention .efs-stat__num { background: var(--signal); color: var(--on-signal); padding: 0 var(--space-1); }

/* ---------- Card ---------- */
.efs-card { display: flex; flex-direction: column; background: var(--paper-raised); color: var(--ink); box-shadow: var(--shadow-raised); text-decoration: none; position: relative; transition: box-shadow var(--dur-base); }
.efs-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--stroke-strip); background: var(--trace); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-base) var(--ease-out); }
.efs-card:hover { box-shadow: var(--shadow-control); }
.efs-card:hover::after, .efs-card:focus-visible::after { transform: scaleX(1); }
.efs-card:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.efs-card__media { aspect-ratio: 16 / 9; background: var(--panel); overflow: hidden; display: grid; place-items: center; }
.efs-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.efs-card__body { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); }
.efs-card__top { display: flex; align-items: center; gap: var(--space-4); }
.efs-card__meta { font: 400 13px/18px var(--font-sans); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.efs-card__title { margin: 0; font: 500 18px/24px var(--font-sans); }
.efs-card__text { margin: 0; font: 400 15px/22px var(--font-sans); color: var(--ink-2); }

/* ---------- Table ---------- */
.efs-table { width: 100%; border-collapse: collapse; font: 400 15px/22px var(--font-sans); color: var(--ink); }
.efs-table th { text-align: left; padding: var(--space-3) var(--space-4); font: 500 12px/16px var(--font-tech); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-2); border-bottom: var(--stroke-rule) solid var(--label); white-space: nowrap; }
.efs-table td { padding: var(--space-3) var(--space-4); border-bottom: var(--stroke-hairline) solid var(--rule); }
.efs-table .is-num { text-align: right; font-family: var(--font-tech); font-weight: 500; font-variant-numeric: tabular-nums; }
.efs-table tbody tr { transition: background-color var(--dur-fast); }
.efs-table tbody tr:hover { background: var(--panel); }
.efs-table tbody tr.is-selected { background: var(--panel-strong); box-shadow: inset var(--stroke-bar) 0 0 var(--trace); }
.efs-table--clickable tbody tr { cursor: pointer; }
.efs-table--dense td { padding-top: var(--space-1); padding-bottom: var(--space-1); }

/* ---------- Progress ---------- */
.efs-progress { display: flex; flex-direction: column; gap: var(--space-2); min-width: 180px; }
.efs-progress__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); }
.efs-progress__label { font: 500 12px/16px var(--font-tech); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-2); }
.efs-progress__value { font: 600 18px/1 var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.efs-progress__track { height: 6px; background: var(--panel-strong); overflow: hidden; }
.efs-progress__fill { height: 100%; background: var(--signal); transform-origin: left; transition: width var(--dur-base) var(--ease-std); }
.efs-progress--gain .efs-progress__fill { background: var(--gain); }
.efs-progress--info .efs-progress__fill { background: var(--info); }
.efs-progress__segs { display: flex; gap: var(--space-1); }
.efs-progress__seg { flex: 1; height: var(--stroke-bar); background: var(--rule); transition: background-color var(--dur-base); }
.efs-progress__seg.is-on { background: var(--signal); }
.efs-progress__cells { position: relative; height: 10px; overflow: hidden; background: var(--panel-strong); -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 calc(100% / 24 - 2px), transparent calc(100% / 24 - 2px) calc(100% / 24)); mask-image: repeating-linear-gradient(90deg, #000 0 calc(100% / 24 - 2px), transparent calc(100% / 24 - 2px) calc(100% / 24)); }
.efs-progress__cells > i { position: absolute; inset: 0 auto 0 0; background: var(--signal); }
.efs-progress--gain .efs-progress__cells > i { background: var(--gain); }
.efs-progress--unknown .efs-progress__cells > i { width: 25%; animation: efs-run 1.6s steps(30) infinite; }
@media (prefers-reduced-motion: reduce) { .efs-progress--unknown .efs-progress__cells > i { animation: none; left: 0; width: 100%; opacity: .35; } }

/* ---------- Notice ---------- */
.efs-notice { display: flex; align-items: stretch; background: var(--panel); color: var(--ink); min-height: 48px; animation: efs-wipe-in var(--dur-wipe) var(--ease-mech) both; }
@media (prefers-reduced-motion: reduce) { .efs-notice { animation: none; } }
.efs-notice__glyph { flex: none; display: flex; align-items: center; justify-content: center; gap: var(--space-2); min-width: 90px; padding: 0 var(--space-3); box-sizing: border-box; color: var(--on-status); font: 700 12px/1 var(--font-sans); letter-spacing: 0.04em; text-transform: uppercase; }
.efs-notice--info .efs-notice__glyph { background: var(--info); }
.efs-notice--success .efs-notice__glyph { background: var(--success); }
.efs-notice--warning .efs-notice__glyph { background: var(--warning); }
.efs-notice--danger .efs-notice__glyph { background: var(--danger); }
.efs-notice--signal .efs-notice__glyph { background: var(--signal); color: var(--on-signal); }
.efs-notice__body { flex: 1; display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4) var(--space-6); }
.efs-notice__title { margin: 0; font: 700 13px/20px var(--font-sans); letter-spacing: 0.02em; text-transform: uppercase; }
.efs-notice__text { margin: 0; font: 400 15px/22px var(--font-sans); color: var(--ink-2); }
.efs-notice__action { display: flex; align-items: center; padding: 0 var(--space-6); }

/* ---------- TextField ---------- */
.efs-field { display: flex; flex-direction: column; gap: var(--space-2); min-width: 220px; }
.efs-field__label { font: 500 12px/16px var(--font-tech); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-2); }
.efs-field__label::before { content: "// "; color: var(--ink); font-weight: 700; }
.efs-input { box-sizing: border-box; height: var(--size-control-md); padding: 0 var(--space-4); border: var(--stroke-hairline) solid var(--line-control); border-radius: var(--radius-none); background: var(--paper-raised); color: var(--ink); font: 400 15px/22px var(--font-sans); transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.efs-input::placeholder { color: var(--ink-2); }
.efs-input:hover { border-color: var(--ink-2); }
.efs-input:focus { outline: none; border-color: var(--ink); box-shadow: var(--focus-ring); }
.efs-input:disabled { background: var(--panel); color: var(--ink-3); cursor: not-allowed; }
.efs-field--error .efs-input { border-color: var(--danger-text); }
.efs-field__hint { font: 400 12px/16px var(--font-sans); color: var(--ink-2); }
.efs-field__error { display: flex; align-items: center; gap: var(--space-1); font: 500 12px/16px var(--font-sans); color: var(--danger-text); }

/* ---------- Checkbox ---------- */
.efs-check { display: inline-flex; align-items: center; gap: var(--space-3); cursor: pointer; font: 400 15px/22px var(--font-sans); color: var(--ink); position: relative; }
.efs-check input { position: absolute; opacity: 0; width: 18px; height: 18px; margin: 0; cursor: inherit; }
.efs-check__box { display: grid; place-items: center; width: 18px; height: 18px; box-sizing: border-box; border: var(--stroke-hairline) solid var(--line-control); background: var(--paper-raised); color: transparent; transition: background-color var(--dur-fast), border-color var(--dur-fast); }
.efs-check:hover .efs-check__box { border-color: var(--ink); }
.efs-check input:checked + .efs-check__box { background: var(--signal); border-color: var(--ink); color: var(--on-signal); }
.efs-check input:focus-visible + .efs-check__box { box-shadow: var(--focus-ring); }
.efs-check input:disabled + .efs-check__box { background: var(--panel); border-color: var(--rule); }
.efs-check--disabled { cursor: not-allowed; color: var(--ink-3); }

/* ---------- Dialog ---------- */
.efs-overlay { position: fixed; inset: 0; display: grid; place-items: center; background: var(--scrim); z-index: 100; }
.efs-overlay { animation: efs-fade-in 0.2s var(--ease-std) both; }
.efs-overlay .efs-dialog { animation: efs-power var(--dur-wipe) var(--ease-mech) both; }
@media (prefers-reduced-motion: reduce) { .efs-overlay, .efs-overlay .efs-dialog { animation: none; } }
.efs-dialog { width: min(640px, calc(100vw - 36px)); background: var(--paper-raised); color: var(--ink); box-shadow: var(--shadow-overlay); }
.efs-dialog__head { position: relative; height: 84px; overflow: hidden; background-color: var(--chrome); background-image: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.35) 0 var(--hatch-stripe), transparent var(--hatch-stripe) 9px); color: var(--on-chrome); }
.efs-dialog__deco { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font: 700 72px/1 var(--font-display); letter-spacing: -0.04em; text-transform: uppercase; color: var(--chrome-deco); white-space: nowrap; pointer-events: none; }
.efs-dialog__title { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; font: 400 27px/1 var(--font-sans); white-space: nowrap; }
.efs-dialog__close { position: absolute; right: var(--space-4); top: 50%; margin-top: -15px; color: var(--on-chrome); }
.efs-dialog__body { padding: var(--space-8); font: 400 15px/22px var(--font-sans); color: var(--ink); background-image: radial-gradient(var(--rule) 1px, transparent 1.5px); background-size: var(--dot-pitch) var(--dot-pitch); }
.efs-dialog__foot { display: flex; justify-content: flex-end; gap: var(--space-4); padding: 0 var(--space-8) var(--space-8); }

/* ---------- Motifs ---------- */
.efs-tri { display: block; flex: none; }
.efs-ghost { display: block; font-family: var(--font-display); font-weight: 700; line-height: 0.8; letter-spacing: -0.04em; text-transform: uppercase; white-space: nowrap; user-select: none; }
.efs-ghost--hatch { color: transparent; background-image: repeating-linear-gradient(-45deg, var(--ink-3) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); -webkit-background-clip: text; background-clip: text; opacity: var(--opacity-ghost); }
.efs-ghost--ink { color: var(--ink); opacity: var(--opacity-ghost); }
.efs-ghost--solid { color: var(--panel-strong); }
.efs-brk { display: inline-flex; align-items: center; gap: var(--space-3); font-family: var(--font-display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; line-height: 1; color: var(--ink); }
.efs-brk__b { font-family: var(--font-sans); font-weight: 400; color: var(--ink-3); transform: scaleY(1.25); }
.efs-frame { position: relative; display: inline-block; padding: var(--space-4); }
.efs-frame::before, .efs-frame::after { content: ""; position: absolute; width: 12px; height: 12px; border-color: var(--ink); border-style: solid; pointer-events: none; }
.efs-frame::before { left: 0; top: 0; border-width: var(--stroke-rule) 0 0 var(--stroke-rule); }
.efs-frame::after { right: 0; bottom: 0; border-width: 0 var(--stroke-rule) var(--stroke-rule) 0; }
.efs-band { display: flex; flex-direction: column; justify-content: space-between; align-items: center; box-sizing: border-box; width: 72px; padding: var(--space-6) 0; }
.efs-band--signal { background: var(--signal); color: var(--on-signal); }
.efs-band--ink { background: var(--label); color: var(--on-label); }
.efs-band--panel { background: var(--panel-strong); color: var(--ink); }
.efs-band__text { writing-mode: vertical-rl; font: 700 36px/1 var(--font-display); letter-spacing: -0.02em; text-transform: uppercase; }
.efs-band__foot { writing-mode: vertical-rl; font: 500 12px/1 var(--font-tech); letter-spacing: 0.05em; text-transform: uppercase; }

/* ---------- Pair (eyebrow over a bold title) ---------- */
.efs-eyebrow { font: 600 11px/16px var(--font-display); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); }
.efs-pair { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; }
.efs-pair__title { margin: 0; font: 700 20px/24px var(--font-sans); color: var(--ink); }
.efs-pair--lg .efs-pair__title { font-size: 27px; line-height: 32px; }

/* ---------- IndexTag (No.024): ink block, bottom-right cut; signal when current ---------- */
.efs-index { --fill: var(--label); display: inline-flex; align-items: center; height: 22px; box-sizing: border-box; padding: 0 calc(6px + var(--cut-sm)) 0 var(--space-2); border: 0; background: linear-gradient(-45deg, transparent var(--cut-sm), var(--fill) calc(var(--cut-sm) + 0.5px)); color: var(--on-label); font: 600 13px/1 var(--font-tech); font-variant-numeric: tabular-nums; white-space: nowrap; text-decoration: none; }
.efs-index.is-current, a.efs-index:hover, button.efs-index:hover { --fill: var(--signal); color: var(--on-signal); }
a.efs-index, button.efs-index { cursor: pointer; transition: color var(--dur-fast); }
a.efs-index:focus-visible, button.efs-index:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* ---------- Facts: record fields split by hairlines ---------- */
.efs-facts { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; font: 500 13px/20px var(--font-tech); color: var(--ink-2); font-variant-numeric: tabular-nums; overflow: hidden; }
.efs-facts > li { padding: 0 var(--space-4); margin-left: -1px; border-left: var(--stroke-hairline) solid var(--rule); }
.efs-facts > li:first-child { padding-left: 0; border-left: 0; margin-left: 0; }

/* ---------- RecordList: one row per record; a trace bar drops and the row steps in on hover ---------- */
.efs-records { margin: 0; padding: 0; list-style: none; border-top: var(--stroke-hairline) solid var(--rule); }
.efs-records > li { border-bottom: var(--stroke-hairline) solid var(--rule); }
.efs-record { position: relative; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 0 var(--space-6); width: 100%; box-sizing: border-box; padding: var(--space-4) var(--space-3); border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; text-decoration: none; cursor: pointer; transition: background-color var(--dur-fast); }
.efs-record::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--stroke-bar); background: var(--trace); transform: scaleY(0); transform-origin: top; transition: transform 0.2s var(--ease-snap); }
.efs-record > * { transition: transform 0.25s var(--ease-snap); }
.efs-record:hover, .efs-record:focus-visible, .efs-record.is-selected { background: var(--panel); }
.efs-record:hover::before, .efs-record:focus-visible::before, .efs-record.is-selected::before { transform: none; }
.efs-record:hover > *, .efs-record:focus-visible > * { transform: translateX(6px); }
.efs-record:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--trace); }
.efs-record__date, .efs-record__count { font: 500 13px/20px var(--font-tech); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.efs-record__title { font: 400 16px/24px var(--font-sans); min-width: 0; }
.efs-record__count { text-align: right; }
@media (max-width: 560px) { .efs-record { grid-template-columns: auto minmax(0, 1fr) auto; row-gap: var(--space-1); } .efs-record__title { grid-column: 1 / -1; grid-row: 2; } }

/* ---------- Switch: square; on is a yellow track with an ink block ---------- */
.efs-switch { display: inline-flex; align-items: center; gap: var(--space-4); cursor: pointer; font: 400 15px/22px var(--font-sans); color: var(--ink); }
.efs-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.efs-switch__track { position: relative; flex: none; width: 48px; height: 26px; box-sizing: border-box; background: var(--panel-strong); box-shadow: inset 0 0 0 1px var(--line-control); transition: background-color var(--dur-wipe) var(--ease-mech); }
.efs-switch__track::before { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: var(--paper-raised); box-shadow: 0 0 0 1px var(--line-control); transition: transform var(--dur-wipe) var(--ease-mech), background-color var(--dur-wipe) var(--ease-mech); }
.efs-switch input:checked + .efs-switch__track { background: var(--signal); box-shadow: none; }
.efs-switch input:checked + .efs-switch__track::before { background: var(--on-signal); box-shadow: none; transform: translateX(22px); }
.efs-switch input:focus-visible + .efs-switch__track { box-shadow: var(--focus-ring); }
.efs-switch input:disabled + .efs-switch__track { opacity: .5; }
.efs-switch__text { display: flex; flex-direction: column; }
.efs-switch__hint { font: 400 12px/16px var(--font-sans); color: var(--ink-2); }
.efs-switch--row { display: flex; justify-content: space-between; padding: var(--space-4) 0; border-bottom: var(--stroke-hairline) solid var(--rule); }
@media (prefers-reduced-motion: reduce) { .efs-switch__track, .efs-switch__track::before { transition: none; } }

/* ---------- Segmented: ink frame; the current segment is solid ink, never yellow ---------- */
.efs-seg { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; box-shadow: inset 0 0 0 1px var(--ink); }
.efs-seg__opt { position: relative; display: grid; place-items: center; min-height: 36px; padding: 0 var(--space-6); cursor: pointer; font: 500 13px/1 var(--font-sans); color: var(--ink); transition: background-color var(--dur-wipe) var(--ease-mech), color var(--dur-wipe) var(--ease-mech); }
.efs-seg__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.efs-seg__opt:hover { background: var(--panel); }
.efs-seg__opt.is-on { background: var(--label); color: var(--on-label); }
.efs-seg__opt:has(input:focus-visible) { box-shadow: var(--focus-ring); z-index: 1; }

/* ---------- Panel: a plate with a heavy ink tab along its top edge ---------- */
.efs-panel { position: relative; min-width: 0; box-sizing: border-box; padding: var(--space-6); background: var(--paper-raised); color: var(--ink); box-shadow: inset 0 0 0 1px var(--rule); }
.efs-panel::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: var(--stroke-tab); background: var(--ink); transform: scaleX(0.14); transform-origin: left; transition: transform var(--dur-tab) var(--ease-mech); pointer-events: none; }
.efs-panel--tab-right::before { transform-origin: right; }
.efs-panel:hover::before, .efs-panel:focus-within::before { transform: none; }
.efs-panel--cut-br { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--cut-lg)), calc(100% - var(--cut-lg)) 100%, 0 100%); }
.efs-panel--cut-bl { clip-path: polygon(0 0, 100% 0, 100% 100%, var(--cut-lg) 100%, 0 calc(100% - var(--cut-lg))); }
.efs-panel--cut-tr { clip-path: polygon(0 0, calc(100% - var(--cut-lg)) 0, 100% var(--cut-lg), 100% 100%, 0 100%); }
.efs-panel--cut-tl { clip-path: polygon(var(--cut-lg) 0, 100% 0, 100% 100%, 0 100%, 0 var(--cut-lg)); }
.efs-panel[class*="efs-panel--cut-"]::after { content: ""; position: absolute; width: calc(var(--cut-lg) * 1.4142); height: 2px; background: var(--rule); transform-origin: 0 50%; pointer-events: none; }
.efs-panel--cut-br::after { left: calc(100% - var(--cut-lg)); top: calc(100% - 1px); transform: rotate(-45deg); }
.efs-panel--cut-bl::after { left: 0; top: calc(100% - var(--cut-lg) - 1px); transform: rotate(45deg); }
.efs-panel--cut-tr::after { left: calc(100% - var(--cut-lg)); top: -1px; transform: rotate(45deg); }
.efs-panel--cut-tl::after { left: 0; top: calc(var(--cut-lg) - 1px); transform: rotate(-45deg); }
.efs-panel__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); padding-top: var(--space-2); }
.efs-panel__action { font: 500 13px/20px var(--font-sans); color: var(--ink-2); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none; }
.efs-panel__action:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--trace); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.efs-figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: var(--space-4); padding-top: var(--space-4); border-top: var(--stroke-hairline) solid var(--rule); }

/* ---------- CommandBar: dark in both themes; the current section is a small yellow block ---------- */
.efs-cmd { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0 var(--space-8); padding: 0 var(--space-8); background: var(--chrome); color: var(--on-chrome); }
.efs-cmd__brand { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-3) 0; font: 700 14px/1 var(--font-display); letter-spacing: 0.08em; text-transform: uppercase; }
.efs-cmd__seal { display: grid; place-items: center; width: 30px; height: 30px; background: linear-gradient(-45deg, transparent var(--cut-sm), var(--signal) calc(var(--cut-sm) + 0.5px)); color: var(--on-signal); font: 700 17px/1 var(--font-display); letter-spacing: 0; }
.efs-cmd__nav { display: flex; flex-wrap: wrap; margin-right: auto; }
.efs-cmd__item { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 3px; min-height: 54px; padding: 0 calc(var(--space-6) + var(--cut-sm)) 0 var(--space-4); border: 0; background: transparent; color: var(--on-control); cursor: pointer; font: 600 14px/1.1 var(--font-sans); text-align: left; text-decoration: none; transition: background-color var(--dur-fast); }
.efs-cmd__item small { font: 600 10px/1 var(--font-display); letter-spacing: 0.12em; text-transform: uppercase; opacity: .72; }
.efs-cmd__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--stroke-strip); background: var(--signal); transform: scaleX(0); transform-origin: left; transition: transform 0.22s var(--ease-mech); }
.efs-cmd__item:hover { background: var(--control-active); }
.efs-cmd__item:not(.is-current):hover::after { transform: none; }
.efs-cmd__item.is-current { background: linear-gradient(-45deg, transparent var(--cut-sm), var(--signal) calc(var(--cut-sm) + 0.5px)); color: var(--on-signal); }
.efs-cmd__item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--signal); }
.efs-cmd__count { position: absolute; top: 6px; right: 4px; min-width: 16px; padding: 0 3px; box-sizing: border-box; background: var(--signal); color: var(--on-signal); outline: 2px solid var(--chrome); font: 700 10px/16px var(--font-tech); text-align: center; }
.efs-cmd__util { display: flex; align-items: center; gap: var(--space-6); font: 500 13px/1 var(--font-sans); color: var(--on-control); }

/* ---------- EmptyState: a hatched frame with one full sentence on paper ---------- */
.efs-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-6); padding: var(--space-12) var(--space-8); box-shadow: inset 0 0 0 1px var(--rule); background-image: repeating-linear-gradient(-45deg, var(--hatch) 0 var(--hatch-stripe), transparent var(--hatch-stripe) var(--hatch-pitch)); }
.efs-empty__text { margin: 0; max-width: 420px; padding: var(--space-3) var(--space-4); background: var(--paper); font: 400 15px/22px var(--font-sans); color: var(--ink); text-align: center; }

/* ---------- Marker: one line of ink on yellow that says what this is ---------- */
.efs-marker { padding: 0.1em 0.4em; background: linear-gradient(var(--signal), var(--signal)) left / 100% 100% no-repeat; color: var(--on-signal); font-weight: 700; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.efs-marker--animate { animation: efs-marker 0.42s var(--ease-mech) both; animation-delay: var(--delay, 0ms); }
@keyframes efs-marker { from { background-size: 0% 100%; color: var(--ink); } to { background-size: 100% 100%; } }
@media (prefers-reduced-motion: reduce) { .efs-marker--animate { animation: none; } }
