/* Fonts, document appearance, shared icons and controls. */
@import url('../assets/fonts/pretendard/pretendard.css');
.empty-state {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  min-inline-size: 0;
  padding: var(--space-xl);
  color: var(--color-gray-5);
  font-size: var(--font-size-md);
  line-height: var(--line-height-md);
  text-align: center;
}
.empty-state__icon {
  inline-size: 52px;
  block-size: auto;
  flex-shrink: 0;
}
@font-face {
  font-family: Hahmlet;
  src: url('../assets/fonts/hahmletMedium.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

:root { background: var(--color-app-surround); scrollbar-color: var(--color-gray-4) transparent; }
::-webkit-scrollbar, ::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--color-gray-4); border-radius: 0; }
:root .scrollbar-host { scrollbar-width: none; }
.scrollbar-host::-webkit-scrollbar { display: none; }
.scrollbar-thumb {
  position: fixed;
  z-index: 2;
  inline-size: var(--scrollbar-size);
  max-block-size: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--color-gray-4);
  opacity: 0;
  pointer-events: none;
  transition: opacity calc(var(--duration-lg) * 2) var(--motion-easing);
  transform: translateX(-100%);
  touch-action: none;
  user-select: none;
  cursor: default;
}
.scrollbar-thumb--active { opacity: 1; pointer-events: auto; transition-duration: 0s; }
@media (pointer: coarse) {
  /* Keep the indicator slim when the user's text size grows. */
  .scrollbar-thumb { inline-size: min(var(--space-xs), 4px); }
}
@media (forced-colors: active) {
  .scrollbar-thumb { background: CanvasText; forced-color-adjust: none; }
}

body {
  color: var(--color-text);
  font: var(--font-weight-sm) var(--font-size-md)/var(--line-height-md) Pretendard, sans-serif;
  letter-spacing: 0;
  overflow: hidden;
}
.app, .sticky-heading { background: var(--color-canvas); }
.page-header {
  display: flex;
  align-items: center;
  min-block-size: calc(var(--control-size-lg) + env(safe-area-inset-top));
  padding: calc(var(--space-lg) + env(safe-area-inset-top)) max(var(--gutter-sm), env(safe-area-inset-right)) var(--space-lg) max(var(--gutter-sm), env(safe-area-inset-left));
  background: var(--color-canvas);
}
.brand {
  flex-shrink: 0;
  color: var(--color-primary);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-xl);
  line-height: var(--line-height-2xs);
}
.heading {
  inline-size: fit-content;
  max-inline-size: 100%;
  color: var(--color-text);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-xl);
  line-height: var(--line-height-lg);
  overflow-wrap: anywhere;
}
.text-muted, .status-message { color: var(--color-muted); font-size: var(--font-size-sm); line-height: var(--line-height-md); }
.text-primary { color: var(--color-primary); }
.text-link { color: var(--color-primary); text-decoration: underline; text-underline-offset: .2em; }
.page-loading { position: fixed; inset: 0; z-index: 100; display: grid; place-content: center; justify-items: center; gap: var(--space-xl); inline-size: min(100%, var(--app-max-width)); margin-inline: auto; background: var(--color-surface); color: var(--color-muted); }
.page-loading--leaving { animation: page-loading-exit var(--duration-md) var(--motion-easing) both; pointer-events: none; }
@keyframes page-loading-exit { from { opacity: 1; } to { opacity: 0; } }
.page-loading__retry { display: none; place-items: center; inline-size: var(--control-size-md); block-size: var(--control-size-md); border-radius: var(--radius-md); }
.page-loading__error { display: none; }
.page-loading[data-error] .loading-character { display: none; }
.page-loading[data-error] .page-loading__error { display: block; }
.page-loading[data-error] .page-loading__retry { display: grid; }
body[aria-busy='true'] > :not(.page-loading) { visibility: hidden; }
.loading-character { position: relative; inline-size: var(--loading-character-size); block-size: var(--loading-character-size); --loading-indicator-look-distance: calc(var(--space-xs) * .35); animation: loading-indicator-look calc(var(--duration-lg) * 16) var(--motion-ease-in-out) infinite both; }
.loading-character::before { content: ''; position: absolute; inset: 0; background: url('data:image/webp;base64,UklGRrIYAABXRUJQVlA4WAoAAAAQAAAAvwAAvwAAQUxQSC4MAAABDMdtG0mSlH/Ydc/M7jsiJoA/V0Fb9vfsABsuZmQwslCJiprRVnJjUDMNTUkFTYwoapIaWbbdsASYkMuhuHROAdv2Mrr0Je2/tm3btm3btm3btm3btm3r+JzmC77ratOZ5ks6692IYEXbNpR70zOlkjwa+JcbSZIkOR8FEuwrCPSAJBAGsp5ZNp696cyobAwfERAkyY3bjM6yeEAgCYAK8wHo+fzff/xND9GJPTWvZOZTQkdK70h6216ErPJGdMmsEUYZbYwxxxx5+LzzXkQv2jbLM6gxH2e6+ZbbaO/jz7/+vieff/P9jz/9/PP33nj5mfuvPHHHleaaMPeOM8t6SSnN8tp1HHnqhTc45JKHX/9sgKXGxG9evna/ZceBkpnsCZe7drXzyZff7fxnP/utll9OY526TvRoqKT97sED5huuPOxctLyoSu/yTbLivle/3c/fFpWqssoY25nO2TqNqfKyOsI3j51blHtqq6UWNsrcO5z/fD/nXely2yq/eGg0KkNUPL7tmO20SO9UR55nt+s/8oqhLlSXbdmClHX02YETlgWoXfDSFdNued2HVZhRCjvF5fdAZemHg8YA2RqL8E5w+AUPf3pgFYZKGxubZXT6dGMB7VhkVcUNt+SJbyGRRayHxbegpbung+ST9G/vEZY45W1bFVbUNiUi0m9bl+or+fhixsPe9HwapOuiL0YZumSUlGNV8cfe6L4hVeWMxiZJLOjxiUAmnPbsZ31HZMN84nsW9PFMkCVqy5a/e2gV39i0qejDSUGmaBtpixdMdbPZ9KnotUlSW0rb6Du+SZRYfBe0PD8GpLSfUkeOuuNH5BCNbQuH0XUJQUjo2+R9v65oEQs6ELJ0tlroaXIKbbuoNS4LMhHf8S5EKm2tI9L746YQKEFs9CXpIFvS6uec+EJkMOltZJNUM6ZkeGdE6+ViL1LCut9RmnpGHsPj0CsjgogbLT+VTKK+JayiXaImmMFUT6RaX7TurDX05fgRRQ4LfU1FUr566Gv0XGKXw+OJDNbq73iMio1tbwhiGPpmEhCxzPbGsEZTx9IZ3nWEYJfDIgkJu4Upm9lbC/dEyVexF5P3KAfS+6NGERnsRai5tUjBur3LYPKgwhhG0TaQxTCbVSaSXBLj8XTTxIY8kgK6pvPwnIhhVhpqGxupALu1tS3IoO9rtwS7kDDXb6RtcxRMw0zUa9qwjYyPLy7nbrwIGOcNUtxPY4TqcDq0soQMmoRf/vTLFCCZ5XU1EyPVXRnct8eR2PoQRTvwOjPYNYKJ7Qo6pYRGIlIqzIT0KIDgtM/cz+mIAJvtANqSJGNewNhiDlanuJdTRr9ozTNAYXD6fl4IH5BV92ewLSkTL4ZrO4K8SOXwV9NLGZtTwCTfkE6hmWjSJiUmVMMYtwibyOBkKkJbr7VO4U1DwCWpoC14PIELEmYdaE3c9OMrJ4J8arCLpenVHAQTLo23C7HxhH+zonDnmVTs9NwgecwspYy+w+gdk5qcAM5tQpL4qnoGyINzCRPpTBtXQzB6keaVGJAeZ0pl4h/IRH+WZJuM9NJNkzULZIWl/lNzODPYo5SxYZtsrVRUmGTVcNPXLSFjkPlLpOOC+HPvKgmN8hzXgGSQi5MxNgnv5PMvaoj0ZsEyocsHI4EIxymx3dg4IzWNIbJqq8LbjgJGeIt0IljxOBU5+xGsN9okOEDCwt11Trd1dveHOBdAKHBhMDI4nDAqvONHR8w2fu4EMKHLazmIQDc8ye5O8J3IGFw+zUlCCTdoBpCB7mkHkomY5mAPfURINSNL4t2too0CnRmsxyaZHZN/TXE1LqG595y1Nk4PRA6nBoYgt1dCAjGKdftF//PgKQgLEPAgMwRVIRxyZRoeKOhWkqafJwYZZMb8ksORzJEAg22QUlJnfqlVLssGOSXM4+qH6hwbQpw1OOKUJOSvuiVFB0AeFHPzUHe0AGul/XIqsxTRnGuCVjkcT6pmD0KwZUYKFK40fFSQTF3XSZjJd9jDVuQrrcnXLFnoDxEd8m3Ub6IACICnSLO052BUtNbkYEZOx/alIAvAiB8xbJnHEpknL9fGKX5cpWh3yAMwwW9kmtWeM7AtTvhDpIsCVhJmLZxpXvlPjDOcCiULpBdk84AMFnM2GNa+OTNy7JdY3j+MG4LVGva5kVlOMYXuhLY4P0judjat0mq4MHLPuMlJ0caQc3YKAImjtW6HdE14NGScAxs/MNahr/YBLQgviivJ+4JJ0c0hjmM5XhaeSDvBsbwPzs5N0xsioNl4EgP+twX6bFiB78aBZ/7NLCKcS/l2i0UNmRVkIgDP2pI8LQ9ZY5wRgt9wgLs25rKirQJwZpPVERPlXNIwig5lXh1u2SRLtKKLA7xP74lAuisAJ5JK7lzTxHMBCR2Vjt5M+q8QHfD2JIeDmsD1HBhN30zA2b0nrgz1m/bphbIlYXeN2AsIVyD1vnr3JGi74NMrZUVqQRdCx6is4ZSwoLFhKM1JWpHU0pxpBhEfRGfo6cNYg7QSRcCY33VDrYPNAukwjvM1XxiGe4d0Y3A8jkpi5Rh8PazYHPAoYfI1wOGQ2EfAuxMJV7VecbJAVwnJxg8OjqYizX50Mo0hmQpu8MwB2IaUaYc9LujHyUo0VjxkTE8zfsjHozRuuAsY/2eKANcmWA9PgoDG6HuFMAJa5hn48UsGV5PqeZsVtGsAcjiAsOe1erurzednf1qOdHtuomig37r+wWKRMEkZsccB6QUI45OV0/WwpQw5GbK4nz0m0DxU0Z66ho5lA7EaIZf+6ughxddDmt4eEUTYV9ffkwlWXdEgSFeXlcXvEm4PE+butnNx420d/rNo434e4YYxGsP/iwIm+ZFMYD/VHrrbbrQb4L30CXTeQNgc+5+ep5Yg5W5HQSd1/nKf/+HT7WN6g/TeWOEfvgsY7k3SzXvaN0cjrQYZQLjYv2e1fQs63vvxKVyM9xXppLtuMc1V3lh0HOLQVBvvm8/Nfrilb13Qvd5fHyxi7E9SFXD1bwss6Ha+gfQy2CGl4M3dQjRyXUkcbemsPr7/pgX0PUaY1n0mT+7IFetq3K9bg2T97Xv2fs7w3Upb9xswChQ8Tjb0dmpx4B2RN4NdCHla7mj1IAsrDSihcrcQ+lT2E/vgWwKuIcX6e+g8OPAHlyUMyqBMpHeG48dYr5LmRDUbnQWQ3Uqj6A7+YWNyuChE5KNUY2d0aUJ3h3khGy4eCjmw80HCkMr0wOSDr2xsZiagY4y6IiB7rYnDtIupcjWuqoecG/aK9NEoINgx8mfNvK+EnrfXwoaXaz8TVXUpOhEyYMdoX5LhKH4hi0KnzkvMg1qQZjrZM9WXdvwY6RPSgcbpKv97h7ErbH250RpRKbREBsNqepv6EpDAD/k8YWDDj9jglVjJr2r08suQz2E/fa+c5lgZ7X6dPsbAhRKuJdW8VhK0ZA63v2vr7bJpRx7Nzx89d/Mpu6w6x0Rjz/8CIc+Dyr2jDHqWwz4heif4y06l0cuiwqdSqDUa46hG2+/Tl+/+9fPH928fTNNM+S1pjt7SlSDiDNk227CQ8tQVWllqStPvq3efvueiQ7dZeZ6px5KdBt3Oq+lCclibdIPFdTUvxhp6V8CtpJhgStuwT1556sH77r3zpmsvv/j8c0455tD99thhkzWXmWuGScceSXSf58SGp7uHjmuHih4fHyRAHLGQYnp+g5q+3m+GUYZrcHG6ZpcUTQeJcIVunBgqS9eMHG/QUQlHUaFN0wQ6X5khl04Koj67TF6xr6+M52eWDJ0eJ4PVPyOrsJtiqlU4jr7eRkSdQ0FeRgpN2E4QLT0/F4isyp5oV2eMo34iZxEV6loNj+hX758fOlaHzl6k4PwcsoVqnrxW6OjDbUeMe25QHfTE+704rDY7irP1ivLLG9cfHYSMPtjxBl/5Q9sr3mr0FMnr24waf4oJL2/6ZtjwxNtf/PzXYVoP/fXrV+45d+dFxvLyNIEBg8c7+AMiIq2UQo+qg+7+5spVh09jio/6RCevHz9NPd10U000dl+nSSUSGLC5bICteOYrAxx1ph3w8X1HLz8mpDTFysPgvFhFeuuegCdANuVyWx92xpW33nHHzdece8Remy051Qjeycr0JvSSJdObB0s0nQ2pJ01VBQyaz5uGq1QpQsD/wxIAVlA4IF4MAAAQRQCdASrAAMAAPkkkjkUioiEhJnRp0FAJCUEOAOQHO/NSHf4f8of5177dqfxv4d6nhCfZX+y+67tlfo3/Ve4B+oX6zes5+t3v7/nHoA/k39i/33/C91H+7fqf7jPQA/V3/6dgB6AH8e/u/qpf739zPgU/a79vvgF/l397/+HWAegB1oH0QeAjuHeABWo0DbgvJLwmfXj0MeEl4b/i3sAfxf+t/9n+te6v/W+MH8t/zXsAfyr+pf9bsGehN+sROwDzOHSZEpw4AUcdfLlYJ/8iPP6RnKmjSrkAiQCeeJO1qTvB8kLBfPpsIZtxM/oeSwsbV9g2kYTGlzGv+ScsjiyThvvyoXba106b+GmEyXYT5RXhL8Jczu6MG9TJDp+RQSm6h1rMXqtdcAorFoeFpklGHWw71F76KBdjReaCf6P39LxP1vtuvzJuJ3oksiG5DAwg5UUktb5RwQ6wFGvyGKOyUHxmFQFQqI9/x9fGxGvaiPHH2rkXeSAnA6v/yMPmOBedn98F+goyXtuH2Vl8j5fAQ7FpaDNs7uYbuc85tGwnh9YvYK6mNojK3yEq4dNf7W80KLRWTDsr7w5X6vtfhW87aVr1EEvxUrJL1Hen34VYi0T0xb2YXjv0LiuASQapAdwQwqkfx4/xq4Zhh741Mj5jypZAXuhldvU3vim5qLb5ipNSY8Qc3XtmTsk34dGP//uWM2GUKZTuGNRr5XFFqNm8ej/IrH3m7CvPpMfTM05rVwAA/uQlgAAAAAoP+AFyaNUX+6UrP1zSFLmGR2pUPJJniyVRY/KQbYLitDi3nBL08PGqhqDac1DQrjtGkTePDhwZIxdsYvAv2FZyF5cMgfQb88cegl4A+9zsKX+AQb8afSXJpxZf6R9l5/pNYUTI78Gtd+vZsEn33pfWZZQ+iKiFx5UcVGSqFzxs86kaxQWuhzGzH3VPVf68nzuItvt1E/xL9iGkzc72L1pMGqT03m7C2kixqBSeHh9sP8udQtFwzxec9v9MRZn9/r89mi0KFbtU/KlJKEn3bys56c7Y/c7otBUOJd9tGwywoE3/9z8MfUvqNcIdJGwAsWOsGNuwmAWP+mo7eytX/kT1qzzvT+X0+re68BeT2V/xfam9BHbXLkJwS7SPpxwiqfpXyrz3T3mYpAlYyPb1spthzoJEv4mSAbVTtJAO+5avVTZzGHrF8qQMvhxeUD+PVaWvRZcqvojyjJqYv16zbezHKEZnj2hCgLXsqBa3RgM69o2pn73QBE3hbT9Yso4NUr+yOjZ0avKKQhS3oQ9RgbbGkiPm/YN3kS+g2/zvgT8Z6Su1nNxnvnt5Gjcoe6L/LBGaO6Bu3D4fmx4dX/XjZ6Ce+6sIRQbEbSf+39MQKo5fKlHAeNMcweL43flkJ0V6PzpTU/C+PfBj2IDjaRNQ5UuU6hOz4bE8/qfpsKLKhsWtwdn4J1kRxAoewF2nCYc5Acbx6JjH9xSTjJbj+DwOPQU/cArSe93TSiLpS33ekcuIR/KwXiLRq2rUo90Q+8uPi5H5wSNwzwbP/8tjjYD5EkkfytdBKbkEibFDekcHNi2YPAOP/RvNNvFJQuHKfFI92fcogLb1ff+o6CYtbm2F/+a+CSBIjP/h2bTfv1znT3B+a4rpQbFuR4Yf416Lj7ctJdar1bEXaCZg9+XHJsa86EHLc+zMPCL4BzOMiZXUbtaKjhBkGbMCa7sINm8SlEOk9WSBvyajjQ8dHNjoNE0ZXB1j4AH/FuVYOy3F/4twAvjmX1P0MQpiA4UO+Ym++xNP9hv/iMbnKx44drxZxUNkW0lVDl213Rl8TpW3d5VJZLn+G9+dsoGuzbrrhkuxz/wOYm5tZ+F8Hp00GRVfg51x//wzIUnYhEeNb/Ce8QvdvkezxHfqi8i3aDdiO2BmbP1aOUnefk6ZeCq6YfTTi9vVKjj2A9RTc6LlJZGXm96w4QaXOfKP5knAf1+LgDc7zynFlBz4aeIROKIZeuP1BkbxdEJRFbXJraK51kay4/mN9RmZvqcSn9hgDZZKidi/k/o+4NCPQEbKA9coNey8Jnz6GFcoRV1t27BVNbGT7SuN+nmXPfy6YOb4HZNp/RmNe/pF85Y4osZoYKVpJT/vTgSt+u49K2iJg/Sq1oE/0M7svk5gBCb60XAbGbP/SjyucNtiTTthlOEEF8Fx8UKf70NQvR8ztZ5VT1mWyhLJTu/fSg3c0R+8qzqNCNa4fPccB0wtl3krL4IdOg1EgUrl6aq3bK1fFodXntB0zNpvAACol7SXtHO+y6G/4sgBe0GzMbvtUeEUI24yL7aGokh0cYRmXp4FHL/Nm69InY4tz9M6mWUP8Gqwwn891LXTtaF+8gDV4B3F5T6ZwQ3voz/R2gMprudwe7v84Lvbt20ubGXKeBv//6tVvj/pxvXS3ZmY2eI7GZjOUb9m6x3Ac+uSDEdxG8u96ZzKvayGcfBvoW9U/ClGC3IF2c5KEVGN9lGZbAM26FKnjGdTo+5u98see7BgT3TwE371eNWuB4WxRt0zoImvejs2ylf7lORNFWVNUV6UgFb7gg/nY5iqmGuvQLklZPjtc/noKWQuxJk3vQrBL/fm+L7Y+EbW6HnL9k4VRtdTfWKS7tVvxPhm4H+Sz2FvjU66ZAjCI8NdfSefV2ucP3X2UD8qKh3pR8r1rEYxa9DVcNJF94uyHulYkhCWqzDPgz2g5TUc639guCDBAvdqRZV2Pk7iFVl3vBYZWHNU2i14l4zNeFIb0013IzsL4B6BCkqrEjp4JkcMlx/ZyhrtmrHIdPQTqvv2mzEmZbqsq+/GDWe5LlW/BhxvWY+ZE7Qr6+RGb5KMiz/bPiLIe7UtmHWbykrph+9YfFN+0+J4eaDmnX/1uC3I49aTSz1qi37Nq14wglO782aUBBmif9iwJmszcW7nejYwHrZjDAt7ID1ArUafXjuhZVtsQHx/xUvj+HjnVJvKBh7032NB7WTbxhqCmd4z4cr3jye6IS6TQCv8KN6ECN2Y6EOSdTGNrDXUBJCKnPa1UWp+MNPc9plMBSAEaiysCmqQ/wDl8/65G9NLjUWGS2iXRhUdegjOiZUA7jXhlxQeXRMh97bDVzdo5HwSZyBSiu6mJkAmu8OcX/eJ8d9y4TGm/fXfBQISHHOiJp6jjdREvEFR2r7nxZsR+XR/iRRpz6VUYGD59NQT6dG2nI4z1+nk1C9/vIRVcPyAUiS405b8l2pLglH9y6PD3I2+Im/bpkvJY3N2ZSRXvstNmWejlYphALteLQ7/MjR4PUwguL5yb52GcmjB38aGBXAs/2Lwl5I38+8jJO1nqJUY8oPbB6Jh2Am0bHipoXgN3vn825suETcS1OkJORgNRwb7+fnTrsJZM8KTo2xQ5AbwIlEmjXXTlylQop//OL//3KH/3jM//3gh/wwUckcQZifEGz+CNvdzCRE3toSIEWingzUOh65xFfcKPadJ3LuQRA+47YXwC1585Okhw/5FvgTcZPZldScQeAky2TlindiV7HBiAhQ/vF18spvIXUYNpsUvcWjiOJAIm/4HEd2WCvmrNxc+3I/ZSnp08+h0+/wS4gDxWbHagdHa2j8sT6XfP9l6UCK3V41jk4GSMKllvAB6cLNrm7BzvQan3tsxgb33VRT/IN2J/vjrNltum5Aqxun95HqO7QXqKAPrzFQqBYD7wkUJ8h/yZE5kc6aOlOiv6UCkDZv3q0aSX5fLzQ4iJUiZa7Ku4pwP9nHMwm8zT5Y0UTEd5/+TGTHm5+9fK2tzgphuQ6uYYJQ6/POi6OcI51j6QjIdUitE7T02KH/SgwdO89Fy7MTP9xhoLaPuPe8s3zmvm6bUfkBGBgPTmIBRj2+hq3if9IQ5GF9TbqcL8GRDT/jjPYCsKhWIHp8t5HosNlGCtxa5VOBrLlSfnUmglPEl/xsNM0UrRXs1q+VraNkImZBXB2kQnQ6HJynw/YjTFWhHvhw7gZ85C14gX03fhVk8gpJXQ6bLqs8RLF0W5CfHSnjmd8fhh7z2bCgKzkSzF9OIg3wIeF1/mW2f9XBQziQDT/gJ4+K4ylfmN3DCca3MBVQX0znMwGZClEcLtO3647cwYhkUyrt6B+JlDI80eLtxYD4ig5/AFczhDUvrDamcRTmKEASiK2503laoVrfr/q0uJ0ZUwaJRZzEYZ6gd7HktiP7nyHp1bZlGVjHjS1xzPi5bheTSk64LAs8rAAAAAAAAAAAA') center / contain no-repeat; }
.loading-character > .loading-indicator { gap: calc(var(--loading-character-size) / 8); min-inline-size: calc(var(--loading-character-size) * 5 / 16); position: absolute; inset-inline-start: 60%; inset-block-start: 45%; translate: -50% -50%; rotate: -30deg; min-block-size: 0; color: var(--color-text); --loading-indicator-look-distance: calc(var(--space-xs) * .65); }
.loading-character .loading-indicator__eye { inline-size: calc(var(--loading-character-size) / 16); block-size: calc(var(--loading-character-size) / 8); rotate: 18deg; }
.status-message[data-error="true"] { color: var(--color-accent); }
.loading-indicator { display: flex; align-items: center; justify-content: center; gap: var(--space-sm); min-inline-size: calc(var(--space-lg) + var(--space-xs)); min-block-size: 1lh; color: var(--color-muted); animation: loading-indicator-look calc(var(--duration-lg) * 16) var(--motion-ease-in-out) infinite both; }
.loading-indicator__eye { inline-size: var(--space-xs); block-size: var(--space-sm); border-radius: var(--radius-sm); background: currentColor; animation: loading-indicator-blink var(--duration-lg) ease-in-out both; }
.loading-indicator[data-wink] .loading-indicator__eye:first-child { --loading-indicator-eye-scale-y: 1; }
.loading-indicator[data-wink] .loading-indicator__eye:last-child { --loading-indicator-eye-scale-x: 1.4; }
@keyframes loading-indicator-look {
  0%, 100% { transform: translate(0, 0); }
  12%, 28% { transform: translate(var(--loading-indicator-look-distance, var(--space-xs)), 0); }
  42%, 58% { transform: translate(calc(var(--loading-indicator-look-distance, var(--space-xs)) * -1), 0); }
  72%, 84% { transform: translate(var(--loading-indicator-look-distance, var(--space-xs)), calc(var(--loading-indicator-look-distance, var(--space-xs)) * -1)); }
}
@keyframes loading-indicator-blink {
  0%, 100% { transform: scale(1); }
  42%, 60% { transform: scale(var(--loading-indicator-eye-scale-x, 1), var(--loading-indicator-eye-scale-y, .12)); }
}
@media (prefers-reduced-motion: reduce) {
  .page-loading--leaving, .loading-character, .loading-indicator, .loading-indicator__eye { animation: none; }
}
.form-control { inline-size: 100%; min-inline-size: 0; padding: var(--space-lg); color: var(--color-text); background: var(--color-canvas); border: var(--line-width) solid var(--color-outline); border-radius: var(--radius-sm); }
.form-control::placeholder { color: var(--color-muted); }
.check-control { appearance: auto; accent-color: var(--color-primary); inline-size: var(--icon-size-lg); block-size: var(--icon-size-lg); flex-shrink: 0; }
/* Hold the previous page until the next document is ready, then replace it
   without fading the whole screen or blending unrelated text and images. */
@view-transition { navigation: auto; }
::view-transition-group(root),
::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
}
::view-transition-old(root), ::view-transition-new(root) {
  mix-blend-mode: normal;
}
::selection { background: var(--color-accent); color: var(--color-on-accent); }
/* Keep native focus and keyboard behavior without adding a focus frame. */
:focus { outline: none; }
.drop-target[data-drag-over="true"] { outline: var(--focus-width) solid var(--color-accent); outline-offset: var(--focus-offset); }
.icon-definitions { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }
.icon { inline-size: var(--icon-size-lg); block-size: var(--icon-size-lg); fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.icon--md { inline-size: var(--icon-size-md); block-size: var(--icon-size-md); }
.icon--sm { inline-size: var(--icon-size-sm); block-size: var(--icon-size-sm); }
.avatar { display: block; flex: 0 0 auto; inline-size: var(--avatar-size); block-size: var(--avatar-size); background: var(--color-canvas); border-radius: calc(var(--avatar-size) * var(--avatar-squircle-radius-ratio)); overflow: hidden; mask: var(--runtime-avatar-mask, none) center / 100% 100% no-repeat; }
[data-squircle-ready] .avatar { border-radius: 0; }
.avatar__image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center top;
}

.avatar-frame {
  inline-size: max-content;
}
.avatar-frame.card-border { --card-border-radius: calc(var(--avatar-size) * var(--avatar-squircle-radius-ratio)); }
.avatar-frame__image {
  inline-size: var(--avatar-size);
  block-size: var(--avatar-size);
  object-fit: cover;
  clip-path: var(--card-border-content-clip);
}
[data-profile-fallback] {
  position: relative;
  background: linear-gradient(to bottom, var(--color-gray-2), var(--color-gray-3));
}
[data-profile-fallback] > img { visibility: hidden; }
/* Portrait fallbacks replace the shared frame backing with the profile icon. */
[data-profile-fallback]::before,
.card-border[data-profile-fallback]::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: auto;
  background: var(--color-gray-1);
  mask: url('../assets/icons/ui/userFilled.svg') center / min(var(--avatar-fallback-icon-size), calc(var(--avatar-size) * .75)) no-repeat;
  pointer-events: none;
}
.visually-hidden { position: absolute; inline-size: var(--space-sm); block-size: var(--space-sm); clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.select-control { padding-inline-end: calc(var(--space-xl) + var(--space-lg)) !important; }
.icon-button { display: inline-grid; place-items: center; inline-size: var(--control-size-sm); block-size: var(--control-size-sm); flex-shrink: 0; border-radius: var(--radius-sm); color: var(--color-muted); transition: color var(--duration-sm), background-color var(--duration-sm); }
.text-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-sm); padding: var(--space-sm); min-block-size: var(--control-size-sm); color: var(--color-muted); border-radius: var(--radius-sm); font-size: var(--font-size-md); line-height: var(--line-height-md); transition: color var(--duration-sm), background-color var(--duration-sm); }
.icon-button:hover, .icon-button[aria-expanded='true'], .text-button:hover { color: var(--color-text); background: var(--color-surface); }
.icon-button:disabled, .text-button:disabled { color: var(--color-muted); background: none; }
.text-button--primary:not(:disabled) { color: var(--color-gray-1); background: var(--color-primary); }
.text-button--primary:hover:not(:disabled) { background: var(--color-accent); }
.navigation-link { color: var(--color-gray-4); font-weight: var(--font-weight-md); }
.navigation-link[aria-current="page"], .navigation-link[aria-pressed="true"] { color: var(--color-primary); font-weight: var(--font-weight-lg); }
.notification-dot {
  position: absolute;
  inset-block-start: var(--notification-dot-block-offset);
  inset-inline-start: calc(100% + var(--notification-dot-inline-offset));
  translate: -50% -50%;
  inline-size: var(--notification-dot-size);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-primary);
}
.data-table th, .data-table td { border-block-end: var(--line-width) solid var(--color-divider); }
.data-table thead { color: var(--color-gray-1); background: var(--color-primary); }
.speech-bubble { inline-size: fit-content; max-inline-size: 100%; padding: var(--space-lg); color: var(--color-text); background: var(--color-surface); border: var(--line-width) solid var(--color-divider); border-radius: var(--radius-md); border-start-start-radius: 0; font-size: var(--font-size-md); line-height: var(--line-height-md); white-space: pre-line; word-break: keep-all; }
.pill { padding: var(--space-sm) var(--space-lg); background: var(--color-canvas); border: var(--line-width) solid var(--color-divider); border-radius: var(--squircle-md); }
.pill code { font-family: inherit; }
.text-button.pill { font-weight: var(--font-weight-lg); }
.diagram-line { fill: none; stroke: var(--color-divider); stroke-width: var(--line-width); }
.diagram-line--reference { stroke: var(--color-outline); }
.diagram-line[data-active="true"] { stroke: var(--color-primary); stroke-width: var(--focus-width); }
button, input, textarea, select { overflow-wrap: anywhere; }
button:disabled, select:disabled, .diagram-node[data-active="false"], .diagram-line[data-active="false"] { opacity: .55; }
.diagram-node[data-active="true"] { opacity: 1; border-color: var(--color-outline); }
.diagram-node[data-active="true"]:not([aria-pressed="true"]) { color: var(--color-text); }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
