/* Web fonts, served from this site. Generated by tools/fetch_fonts.py; don't edit by hand. */
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-ext-0-DLZZDiI9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-1-C0W8VQRD.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-ext-2-Ca2aRn8q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-3-Kk6lkzH4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-ext-4-DkBFK2Ys.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/AtkinsonHyperlegible-latin-5-BfnuZ9Vb.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-ext-6-B82pxkPf.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-7-C23fTOVi.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-ext-6-B82pxkPf.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-7-C23fTOVi.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-ext-6-B82pxkPf.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/BricolageGrotesque-latin-7-C23fTOVi.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/Caveat-latin-ext-8-CK30vzPY.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/Caveat-latin-9-CP6HlsNg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/Caveat-latin-ext-8-CK30vzPY.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/Caveat-latin-9-CP6HlsNg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Comic Neue';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/ComicNeue-latin-10-CASHThwK.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Comic Neue';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/ComicNeue-latin-11-jaSYHBrx.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Comic Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/ComicNeue-latin-12-CeWB7rrj.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Comic Neue';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/ComicNeue-latin-13-BK7dT9dQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/Vazirmatn-arabic-14-BYshqO73.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}
/* latin-ext */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-ext-15-D4_Uxkh3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-16-nhpIExMV.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/Vazirmatn-arabic-14-BYshqO73.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}
/* latin-ext */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-ext-15-D4_Uxkh3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-16-nhpIExMV.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/Vazirmatn-arabic-14-BYshqO73.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}
/* latin-ext */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-ext-15-D4_Uxkh3.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/Vazirmatn-latin-16-nhpIExMV.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --ns:#FFC917; --nsblue:#003082; --ink:#f4f6fb; --muted:#c3cbe0; --glass:#16203f; --glass2:rgba(255,255,255,.1); --edge:rgba(255,255,255,.18);
  --display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --read:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing:border-box;
}
:root[data-theme="light"],:root[data-theme="dark"]{--glass:#16203f}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --glass:#10162c; } }
*,*::before,*::after{box-sizing:inherit}
html,body{height:100%;margin:0;overflow:hidden;background:#0b1020;color:var(--ink);font-family:var(--read);-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ns);outline-offset:2px}

#stage{position:fixed;inset:0;overflow:hidden;overflow:clip}
.layer{position:absolute;inset:0;transition:filter .6s}
.layer svg{width:100%;height:100%;display:block}
#bg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.5);pointer-events:none;opacity:0;transition:opacity .6s}
#bg.dim::after{opacity:1}
#bg.dim{filter:brightness(.9) saturate(.95)}
#chars{position:absolute;inset:0;pointer-events:none}
.char{position:absolute;bottom:0;left:50%;height:min(90vh,150vw);transform:translateX(-50%);transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .5s;filter:drop-shadow(0 18px 30px rgba(0,0,0,.35))}
.char svg{height:100%;width:auto;display:block}
.char.off{opacity:0;transform:translateX(10%)}
@media (max-aspect-ratio:4/5){.char{top:calc(env(safe-area-inset-top,0px) + 58px);bottom:auto;height:min(80vh,170vw)}.char.player{top:auto;bottom:0;height:min(58vh,120vw)}}
.char.player{height:min(64vh,110vw);left:43%}
.char.player.off{transform:translateX(-50%) translateY(6%)}
.char.player:not(.off){transform:translateX(-50%)}
.suitcase{position:absolute;bottom:4vh;left:calc(43% + min(14vh,24vw));height:min(20vh,34vw);transition:opacity .5s}
.suitcase.off{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .breathe{animation:breathe 4.2s ease-in-out infinite;transform-origin:50% 100%;transform-box:fill-box}
  .blink{animation:blink 5s infinite;transform-box:fill-box;transform-origin:50% 50%}
  .pan{animation:pan linear infinite}
  .spin{animation:spin 9s linear infinite;transform-box:fill-box;transform-origin:50% 50%}
  .rain{animation:rain .55s linear infinite}
  .ride{animation:ride 16s linear infinite}
  #stage.shake{animation:shake .5s linear}
  .flash .led{animation:led .5s steps(2) infinite}
}
@keyframes breathe{50%{transform:translateY(-4px) scaleY(1.006)}}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
@keyframes pan{to{transform:translateX(-1600px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rain{from{transform:translate(0,-300px)}to{transform:translate(-60px,0)}}
@keyframes ride{from{transform:translateX(-900px)}to{transform:translateX(1700px)}}
@keyframes shake{20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
@keyframes led{50%{opacity:.25}}
.sfx{font-family:var(--display);font-weight:800;font-style:normal;letter-spacing:.03em;color:var(--ns);text-transform:uppercase;margin-right:2px}
.ex{display:none}
.pup{transition:transform .4s;transform-box:fill-box}svg[data-expr="sad"] .pup{transform:translateY(5px)}
/* sad eyes: a little less tall (lid, white and iris together), looking down */
.eyes{transition:transform .4s;transform-box:fill-box;transform-origin:50% 55%}svg[data-expr="sad"] .eyes{transform:scaleY(.8)}
svg[data-expr="sad"] .ex-sad,svg[data-expr="neutral"] .ex-neutral,svg[data-expr="smile"] .ex-smile,svg[data-expr="stern"] .ex-stern,svg[data-expr="surprised"] .ex-surprised{display:inline}
.scr-ok{display:none} svg.ok .scr-ok{display:inline} svg.ok .scr-idle{display:none}
.k1{display:none} .klass1 .k1{display:inline}
.flap{transition:transform .5s cubic-bezier(.3,.8,.3,1);transform-box:fill-box}.fl{transform-origin:left center}.fr{transform-origin:right center}
.g-ok .flap{transform:scaleX(.1)} .g-ok #gateLed{fill:#2ecc71} .g-err #gateLed,.g-off #gateLed{fill:#e74c3c} .g-off #gateT1,.g-off #gateT2{fill:#ff8a7a}
.door{transition:transform .7s cubic-bezier(.3,.8,.3,1);transform-box:fill-box;transform-origin:left center}.open .door{transform:scaleX(.08)}
.r-ok #readLed{fill:#2ecc71} .r-ok #readT{fill:#7ef0a8}
@media (prefers-reduced-motion:no-preference){.riding .dashes{animation:dash .42s linear infinite}.g-off #gateLed{animation:led .6s steps(2) infinite}}
@keyframes dash{to{transform:translateY(44px)}}
#phone{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:70px 16px 16px;background:rgba(5,8,18,.35)}
#phone[hidden]{display:none}
.ph{width:min(360px,100%);max-height:100%;display:flex;flex-direction:column;background:#f4f1ea;color:#1c2333;border-radius:34px;border:10px solid #15181f;box-shadow:0 30px 60px rgba(0,0,0,.45);overflow:hidden;animation:phoneIn .45s cubic-bezier(.2,.9,.3,1.2)}
@keyframes phoneIn{from{transform:translateY(40px) scale(.94);opacity:0}}
.phHead{display:flex;align-items:center;gap:10px;padding:16px 14px 12px;background:#0f5c4d;color:#fff}
.phHead .av{width:42px;height:42px;border-radius:50%;overflow:hidden;flex:none}.phHead .av svg{width:100%;height:100%}
.phHead b{font-family:var(--display);font-size:17px;display:block}.phHead small{opacity:.8;font-size:13px}
#phMsgs{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:8px;min-height:220px;background:#e9e3d8}
.bub{align-self:flex-start;max-width:88%;background:#fff;border-radius:4px 16px 16px 16px;padding:8px 11px 5px;font-size:17px;line-height:1.45;box-shadow:0 1px 1px rgba(0,0,0,.12);animation:textIn .3s ease-out}
.bub time{display:block;text-align:right;font-size:11px;color:#8a8f99}
.bub .ben{display:block;margin-top:4px;font-size:14px;color:#5b6272;font-style:italic}
.bub .ben[hidden]{display:none}
.bub .w{border-bottom-color:rgba(28,35,51,.35)} .bub .w.known{background:rgba(255,201,23,.3)}
.typing{align-self:flex-start;background:#fff;border-radius:16px;padding:10px 14px;display:flex;gap:5px}
.typing i{width:7px;height:7px;border-radius:50%;background:#9aa0aa;animation:bobdot 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes bobdot{50%{transform:translateY(-4px)}}
.phFoot{display:flex;gap:8px;align-items:center;padding:10px 12px 14px;background:#f4f1ea}
.phFoot .tool{background:#e2ddd2;color:#1c2333;border-color:#cfc8ba;display:inline-flex;align-items:center}
.phFoot .btn{margin-left:auto}.phFoot .btn[hidden]{display:none}
#stopBtn{position:absolute;right:max(18px,4vw);top:38%;z-index:17;width:min(26vw,128px);aspect-ratio:1;border-radius:50%;border:6px solid #f2f2f2;background:radial-gradient(circle at 35% 30%,#ff6a5c,#c62a1e 70%);color:#fff;font-family:var(--display);font-weight:800;font-size:clamp(20px,5vw,30px);letter-spacing:.04em;box-shadow:0 10px 0 #8a1a12,0 18px 30px rgba(0,0,0,.4);cursor:pointer}
#stopBtn:active,#stopBtn.on{transform:translateY(8px);box-shadow:0 2px 0 #8a1a12,0 8px 16px rgba(0,0,0,.4)}
#stopBtn.on{background:radial-gradient(circle at 35% 30%,#ffd56b,#e2a400 70%);color:#14204a}
#stopBtn[hidden],#phoneBtn[hidden]{display:none}
.chsel{width:100%;font:inherit;font-family:var(--display);font-size:15px;font-weight:600;color:inherit;background:var(--glass2);border:1px solid var(--edge);border-radius:12px;padding:10px 12px;cursor:pointer}.chsel option{color:#14204a;background:#fff}.chsel option:disabled{color:#8a90a6}
.scs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.scs button{text-align:left;border:1px solid var(--edge);background:var(--glass2);border-radius:12px;padding:8px 12px;cursor:pointer;line-height:1.3}
.scs b{font-family:var(--display);font-size:15px;display:block}.scs small{color:var(--muted);font-size:13px}
.scs button[aria-pressed="true"]{background:var(--ns);color:#14204a;border-color:var(--ns)}.scs button[aria-pressed="true"] small{color:#35406a}

#fader{position:absolute;inset:0;background:#05070f;opacity:0;pointer-events:none;transition:opacity .4s}
#fader.on{opacity:1}

.hud{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;display:flex;gap:8px;align-items:center;z-index:20}
.glass{background:var(--glass);border:2px solid #04060d;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.chip{display:flex;align-items:center;gap:7px;font-family:var(--display);font-weight:700;font-size:15px;padding:7px 12px;border-radius:999px}
.drop{width:10px;height:10px;background:#111;border-radius:2px;transform:rotate(45deg);box-shadow:inset 2px 2px 0 #555,0 0 0 1px rgba(255,255,255,.4)}
.spacer{flex:1}
@media (max-width:600px){.hud .lbl{display:none}.ibtn{width:36px;height:34px;padding:0;font-size:15px;display:inline-grid;place-items:center}.hud{gap:5px;left:8px;right:8px}.chip{padding:6px 9px;font-size:14px}.dueBadge{position:absolute;margin:0;transform:translate(12px,-12px)}#bookBtn{position:relative}}
@media (max-width:360px){.ibtn{width:32px}.hud{gap:3px}}
.hud{flex-wrap:wrap}
.ibtn{border-radius:999px;padding:7px 12px;cursor:pointer;font-family:var(--display);font-weight:600;font-size:15px}
.ibtn:hover{background:rgba(30,42,78,.85)}

#ui{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);width:min(980px,calc(100% - 24px));max-height:calc(100% - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 70px);display:flex;flex-direction:column;align-items:center;gap:30px;z-index:15;pointer-events:none}
#ui>*{pointer-events:auto}
#dialog{position:relative;width:100%;flex:none;padding:20px 22px 16px;cursor:pointer;transition:opacity .3s, transform .3s}
#dialog.hidden{opacity:0;transform:translateY(14px);pointer-events:none}
.plate{position:absolute;top:-18px;left:20px;display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:16px;padding:6px 14px 6px 8px;border-radius:999px;background:var(--ns);color:#14204a;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.plate[hidden]{display:none}
.plate.omroep{background:#d9dfeb;color:#1c2947}
.plate.you{background:#2fa36b;color:#fff}
.plate .av{width:30px;height:30px;border-radius:50%;overflow:hidden;background:#fff;display:none}
.plate.you .av{display:block}
.plate .av svg{width:100%;height:100%}
.plate:not(.you){padding-left:14px}
#text{margin:4px 0 0;font-size:clamp(19px,2.3vw,24px);line-height:1.5;min-height:1.5em}
#text.narr{font-style:italic;color:#e6eaf5;font-size:clamp(17px,2vw,21px)}
#text.in{animation:textIn .35s ease-out}
@keyframes textIn{from{opacity:0;transform:translateY(4px)}}
.tools{display:flex;gap:8px;margin-top:10px;align-items:center}
.tools[hidden]{display:none}
.tool{font-family:var(--display);font-weight:600;font-size:13px;border:1px solid var(--edge);background:var(--glass2);border-radius:999px;padding:5px 11px;cursor:pointer}
.tool .ic{width:15px;height:15px;vertical-align:-3px;margin-right:5px}
#trBtn{display:inline-flex;align-items:center}
#trBtn[hidden]{display:none}
.tool:disabled{opacity:.45;cursor:default}
#en{margin:8px 0 0;font-size:16px;color:var(--muted);font-style:italic}
#en[hidden]{display:none}
#next{margin-left:auto;border:0;background:var(--ns);color:#14204a;border-radius:999px;font-family:var(--display);font-weight:700;font-size:14px;padding:6px 14px;cursor:pointer}
#next[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){#next span{display:inline-block;animation:nudge 1s ease-in-out infinite}}
@keyframes nudge{50%{transform:translateX(3px)}}
.w{font:inherit;background:none;border:0;padding:0 1px;margin:0;cursor:pointer;color:inherit;border-bottom:2px dotted rgba(255,255,255,.45)}
.w:hover{border-bottom-color:var(--ns)}
.w.known{border-bottom:2px solid var(--ns);background:rgba(255,201,23,.12);border-radius:3px}

#choices{width:min(640px,100%);min-height:0;flex:0 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:2px 4px 4px;margin:-2px -4px -4px}
#choices:empty{display:none}
.choice{display:flex;align-items:center;gap:10px;padding:13px 14px 13px 18px;cursor:pointer;font-size:clamp(17px,2vw,20px);line-height:1.4;transition:transform .15s,background .15s;animation:textIn .3s ease-out both}
.choice:hover{background:#1f2c55}
.choice .t{flex:1}
.choice .cen{display:block;font-size:14px;color:var(--muted);font-style:italic;margin-top:3px;font-family:var(--read);font-weight:400}
.choice .cen[hidden]{display:none}
.choice .trc{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;flex:none}

.choice .trc .ic{width:15px;height:15px}
.choice.act .t{font-family:var(--display);font-weight:700}
.choice .say{flex:none}
.choice .go{flex:none;font-family:var(--display);font-weight:700;font-size:13px;color:#14204a;background:var(--ns);border-radius:999px;padding:5px 11px;white-space:nowrap}

#title{position:absolute;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 70px);text-align:center;z-index:12;padding:0 16px;pointer-events:none}
#title h1{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(40px,8vw,96px);letter-spacing:-.02em;line-height:.95;color:#fff;text-shadow:0 4px 30px rgba(0,30,80,.45)}
#title p{margin:12px 0 0;font-family:var(--display);font-weight:600;font-size:clamp(15px,2vw,20px);color:#14204a;display:inline-block;background:var(--ns);padding:5px 14px;border-radius:999px}
#title[hidden]{display:none}
.setup h2{font-family:var(--display);font-weight:700;font-size:16px;margin:2px 0 8px;color:var(--muted)}
.avs{display:flex;gap:8px;flex-wrap:wrap}
.avs button{width:58px;height:58px;border-radius:50%;padding:0;border:3px solid transparent;background:none;cursor:pointer;overflow:hidden}
.avs button[aria-pressed="true"]{border-color:var(--ns);box-shadow:0 0 0 3px rgba(255,201,23,.3)}
.avs svg{width:100%;height:100%;display:block}
.lvls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lvls button{text-align:left;border:1px solid var(--edge);background:var(--glass2);border-radius:12px;padding:9px 12px;cursor:pointer;line-height:1.3}
.lvls b{font-family:var(--display);font-size:16px;display:block}
.lvls small{color:var(--muted);font-size:13px}
.lvls button[aria-pressed="true"]{background:var(--ns);color:#14204a;border-color:var(--ns)}
.lvls button[aria-pressed="true"] small{color:#35406a}
.note{font-size:13px;color:var(--muted);margin:10px 0 0}
.row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.btn{font-family:var(--display);font-weight:700;font-size:16px;border:1px solid var(--edge);background:var(--glass2);border-radius:999px;padding:9px 18px;cursor:pointer}
.btn.primary{background:var(--ns);color:#14204a;border-color:var(--ns)}
@media (max-width:640px){.lvls{grid-template-columns:1fr}.lvls button{padding:7px 12px}.avs{gap:12px}.avs button{width:64px;height:64px}#dialog{padding:18px 16px 14px}}

#tip{position:fixed;z-index:40;padding:10px 12px;max-width:270px;font-size:15px}
#tip b{font-size:19px;font-family:var(--display)}
#tip .n{font-size:12px;color:var(--muted);margin-top:4px}
#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 64px);transform:translateX(-50%);z-index:50;padding:8px 16px;font-family:var(--display);font-weight:700;font-size:15px;border-radius:999px}
#sheet{position:fixed;inset:0;z-index:60;background:rgba(3,5,12,.9);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px}
#sheet[hidden],#tip[hidden],#toast[hidden]{display:none}
.sheetbox{width:min(460px,100%);max-height:80vh;overflow:auto;padding:18px}
.sheetbox h2{font-family:var(--display);font-size:24px;margin:0 0 10px}
.item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--edge)}
.item .t{flex:1}
.item small{color:var(--muted)}
.sr{position:absolute;left:-9999px}
.scs button.locked{opacity:.45;cursor:not-allowed}
/* compact, scrollable chapter list so the start button always stays reachable */
.scs{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;max-height:132px;overflow-y:auto;padding-right:4px;overscroll-behavior:contain}
.scs button{padding:5px 9px;border-radius:10px;line-height:1.2}
.scs b{font-size:13px}.scs small{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.setup{max-height:calc(100dvh - 210px);overflow-y:auto;overscroll-behavior:contain}
.setup>.row{position:sticky;bottom:-1px;margin-top:10px;padding:8px 0 2px;z-index:1}
@media (max-width:600px){.scs{max-height:104px}.setup{max-height:calc(100dvh - 170px)}.lvls button{padding:6px 10px}.lvls small{display:none}}
/* settings: the avatar button in the HUD, the settings sheet and welcome card (js/engine/settings.js) */
.ibtn.me{width:40px;height:36px;padding:2px;display:inline-grid;place-items:center}
.ibtn.me svg{width:30px;height:30px;border-radius:50%;display:block}
@media (max-width:600px){.ibtn.me{width:36px;height:34px}.ibtn.me svg{width:28px;height:28px}}
.prefs h3{font-family:var(--display);font-weight:700;font-size:16px;margin:16px 0 8px;color:var(--muted)}
.prefs h3 small{font-weight:600;font-size:13px;opacity:.8}
.prefs .note{margin:0 0 4px;font-size:16px;line-height:1.45}
.prefs .row{display:flex;justify-content:flex-end;margin-top:18px}

/* ---------- comic-book style: white speech bubbles, yellow captions, black ink, hand lettering ---------- */
:root,:root[data-theme="light"],:root[data-theme="dark"]{
  --display:"Comic Neue", "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --read:"Comic Neue", "Atkinson Hyperlegible", system-ui, sans-serif;
  --ink:#16161a; --muted:#55545c; --ns:#ffd23f;
  --glass:#fffdf6; --glass2:#f0ebdc; --edge:#3a3530; --line:#3a3530; --orange:#e63946; --blue:#2a6fdb;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --glass:#fffdf6; color-scheme:light; } }
.glass{border:2px solid var(--line);box-shadow:none;color:var(--ink)}
.ibtn:hover{background:#fff3c4}
#text.narr,.plate,.tool,.choice .go,#next,.btn,.chip b,.ibtn .lbl{font-style:italic}
.ibtn{line-height:1}
body.rtl [lang="en"],body.upright [lang="en"],[lang="zh"]{font-style:normal!important} /* Persian, Arabic and Chinese upright, whatever the element */
/* narration is a yellow caption box, spoken lines a white bubble */
#dialog:has(#text.narr){background:#fff4cc}
#text.narr{color:var(--ink)}
.w{border-bottom-color:rgba(22,22,26,.4)}
.w.known{background:rgba(255,210,63,.45);border-bottom-color:#c99a00}
.choice{background:#fffdf6}
.choice:hover{background:#fff3c4}
.choice .cen{color:var(--muted)}
.plate{background:#3f8f9a;color:#fff;border:2px solid var(--line);border-radius:10px;box-shadow:none}
.plate.omroep{background:#d9dfeb;color:var(--ink)}
.plate.you{background:#4c9a5f;color:#fff}
.tool{background:#fff;color:var(--ink);border:2px solid var(--line)}
.choice .trc,.choice .say{border-radius:50%;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.choice .go,#next,.btn.primary{background:var(--ns);color:var(--ink);border:2px solid var(--line);border-radius:10px}
.choice .go{font-size:15px;padding:5px 12px}
.btn{border:2px solid var(--line);color:var(--ink)}
#sheet{background:rgba(22,22,26,.55)}
/* answer choices: compact, and the characters move up while you choose, so faces stay free */
#ui{gap:24px}
#choices{gap:9px}
.choice{padding:10px 10px 10px 18px;font-size:clamp(17px,1.9vw,20px);line-height:1.35}
.choice .trc,.choice .say{width:36px;height:36px}
.choice .go{font-size:15px;padding:5px 12px}
#chars{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
@media (min-aspect-ratio:4/5){ #stage:has(#choices:not(:empty)) #chars{transform:translateY(-9vh)} }
/* phone HUD: round icon buttons, icon centred (the .ibtn padding above would win over the 600px rule) */
@media (max-width:600px){ .hud .ibtn{padding:0;width:38px;height:36px} }
#sheet .sheetbox.glass{background:var(--glass)}
.mini .mbox{color:var(--ink);border:2px solid var(--line)}
.mini .mbox:has(p.narr){background:#fff4cc}
/* ink outline around the characters, instead of the soft shadow */
.char{filter:drop-shadow(2px 0 0 var(--line)) drop-shadow(-2px 0 0 var(--line)) drop-shadow(0 2px 0 var(--line)) drop-shadow(0 -2px 0 var(--line))}
/* Mijn schrift: the small scene previews use the same style */
.mini .mopt{background:var(--glass);color:var(--ink);border:2px solid var(--line)}
.mini .mplate{background:#3f8f9a;color:#fff;border:1.5px solid var(--line);border-radius:7px;font-style:italic}
.mini .mplate.you{background:#4c9a5f}
.mini .mplate.omroep,.mini .mplate.ivr{background:#d9dfeb;color:var(--ink)}
.mini .mchar{filter:drop-shadow(1px 0 0 var(--line)) drop-shadow(-1px 0 0 var(--line)) drop-shadow(0 1px 0 var(--line)) drop-shadow(0 -1px 0 var(--line))}
.mini:has(.mchar) .mbg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.5)}
/* text colours readable on the light boxes (the yellow --ns is for fills, not text) */
.bonus{display:block;margin:2px 0 6px;color:#2f7a3e;font-family:var(--display);font-weight:700}
.sfx{color:#b4420e}
/* Comic Neue regular is thin: the story text uses the bold cut */
#text,.choice .t{font-weight:700}
/* the name plate with your avatar is taller: a smaller avatar and a bit more room above the text */
.plate.you{padding-top:2px;padding-bottom:2px}
.plate .av{width:26px;height:26px}
#dialog{padding-top:26px}
/* selected buttons (level, help language, sound, filters) keep the dark outline */
body .lvls button[aria-pressed="true"],body .scs button[aria-pressed="true"],body .hlps button[aria-pressed="true"],body .chips button[aria-pressed="true"]{border-color:var(--line)}
/* LIBRARY · the home screen with one tile per story (js/app/library.js) */
#library{position:fixed;inset:0;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 20px) 20px calc(env(safe-area-inset-bottom,0px) + 32px);
  background:radial-gradient(120% 70% at 80% 0%,rgba(255,201,23,.16),transparent 60%),linear-gradient(180deg,#14204a 0%,#0b1020 70%)}
#library[hidden]{display:none}
.libHead{display:flex;align-items:center;gap:12px;max-width:1080px;margin:0 auto}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand svg{width:52px;height:auto;flex:none}
.brand h1{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,44px);letter-spacing:-.02em;line-height:1}
.brand small{display:block;margin-top:3px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--muted)}
#library h2{max-width:1080px;margin:32px auto 14px;font-family:var(--display);font-weight:700;font-size:20px;color:var(--muted)}
.tiles{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px}
.tile{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;cursor:pointer;border-radius:20px;transition:transform .2s,box-shadow .2s}
.tile:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.4)}
.tile .cover{position:relative;display:block;aspect-ratio:16/10;background:#5a8fd6}
.tile .cover img{width:100%;height:100%;object-fit:cover;display:block}
.tile .ttl{position:absolute;left:16px;right:16px;bottom:12px;font-family:var(--display);font-weight:800;font-size:clamp(26px,3.4vw,32px);letter-spacing:-.02em;line-height:1;color:#fff;text-shadow:0 2px 18px rgba(0,30,80,.55)}
.tile .info{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1}
.tile p{margin:0;font-size:16px;line-height:1.4}
.tile p.tr{font-size:14px;color:var(--muted)}
.tile p.rtl{font-family:Vazirmatn,var(--read);text-align:right}
.tile .meta{margin-top:4px;font-family:var(--display);font-weight:600;font-size:14px;color:var(--muted)}
.tile .now{display:flex;align-items:center;gap:9px;margin-top:4px;font-family:var(--display);font-size:16px}
.lvb{padding:3px 9px;border-radius:999px;background:var(--glass2);border:1px solid var(--edge);font-weight:700;font-size:13px}
.tile .bar{display:block;height:7px;border-radius:4px;background:rgba(255,255,255,.18);overflow:hidden}
.tile .bar i{display:block;height:100%;background:var(--ns)}
.tile .go{margin-top:auto;padding-top:6px;align-self:flex-start;font-family:var(--display);font-weight:700;font-size:16px;background:var(--ns);color:#14204a;border-radius:999px;padding:9px 18px}
.tile.soon{cursor:default;align-items:center;justify-content:center;min-height:180px;border:2px dashed var(--edge);background:none;color:var(--muted);font-family:var(--display);font-weight:600}
.tile.soon:hover{transform:none;box-shadow:none}
@media (prefers-reduced-motion:reduce){.tile,.tile:hover{transition:none;transform:none}}
.libHead .me{cursor:pointer;padding:4px 12px 4px 4px;border:1px solid var(--edge)}
.libHead .me svg{width:30px;height:30px;border-radius:50%;display:block}
.libHead .me [dir="rtl"]{font-family:Vazirmatn,var(--read)}

/* comic-book style: paper with halftone dots, black ink, white tiles */
#library{background:linear-gradient(180deg,#fff8e6 0%,#f7ecd0 100%);color:var(--ink)}
.brand h1{color:var(--ink)}
.brand small,#library h2{color:var(--muted)}
.tile:hover{box-shadow:none}
.tile{background:#fffdf6}
.tile .go{background:var(--ns);color:var(--ink);border:2px solid var(--line);border-radius:10px;font-style:italic}
.tile .bar{background:#e8e2cf;border:1.5px solid var(--line)}
.tile.soon{border:2px dashed #8a8678;color:var(--muted);background:rgba(255,253,246,.6)}
.libHead .me{border:2px solid var(--line)}
/* loading screen: shown from the first paint until the library or the story's title screen is ready */
#loading{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;text-align:center;background:linear-gradient(180deg,#fff8e6 0%,#f7ecd0 100%);color:#16161a;font-family:"Comic Neue",system-ui,sans-serif;font-size:20px;font-style:italic}
#loading[hidden]{display:none}
#loading svg{width:72px;height:auto;animation:flap 1.1s ease-in-out infinite;transform-origin:50% 50%}
#loading p{margin:0}
@keyframes flap{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.55)}}
@media (prefers-reduced-motion:reduce){#loading svg{animation:none}}
/* the dropjes chip and the profile chip: the same height */
.libHead .chip{height:42px;box-sizing:border-box;padding-top:0;padding-bottom:0}
.libHead .me{padding-left:4px}
/* characters page (js/app/characters.js) */
.persExpr{max-width:1080px;margin:20px auto 14px;display:flex;flex-wrap:wrap;gap:8px}
.persGrid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.pers{margin:0;background:#fffdf6;border:2px solid var(--line);border-radius:16px;overflow:hidden;text-align:center}
.pers .art{height:230px;overflow:hidden;background:linear-gradient(180deg,#dfeaf5,#f4f0e4)}
.pers .art svg{height:340px;width:auto;display:block;margin:0 auto}
.pers figcaption{padding:8px 6px 10px}.pers b{display:block;font-family:var(--display)}.pers small{color:var(--muted)}
#library a.btn{text-decoration:none;color:var(--ink);white-space:nowrap}
