@layer reset{*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}ol,ul{padding:0;list-style:none}button{font:inherit}img,svg{display:block}[hidden]{display:none!important}}@layer tokens{:root{--violet-700:#1a3e55;--violet-600:#284b63;--violet-500:#365972;--violet-200:#d4e0e9;--violet-100:#eaf1f7;--sage-600:#4f996f;--sage-500:#5fa97f;--sage-100:#eaf3ee;--clay-600:#cf7147;--clay-500:#e08256;--clay-100:#fbefe8;--red-500:#d8574e;--red-100:#fbebe9;--gold-500:#c89a4a;--gold-600:#a67c2e;--gold-100:#faf0de;--white:#fff;--ink-900:#2a2632;--ink-600:#4a4553;--ink-400:#625c6e;--ink-300:#6b6459;--linen-200:#ece7de;--linen-100:#f1eee8;--warm-50:#f6f4ef;--color-primary:var(--violet-600);--color-primary-hover:var(--violet-700);--color-primary-soft:var(--violet-100);--color-primary-border:var(--violet-200);--color-on-primary:var(--white);--color-success:var(--sage-500);--color-success-soft:var(--sage-100);--color-attention:var(--clay-500);--color-attention-soft:var(--clay-100);--color-danger:var(--red-500);--color-danger-soft:var(--red-100);--color-spark:var(--gold-500);--color-spark-strong:var(--gold-600);--color-spark-soft:var(--gold-100);--text-strong:var(--ink-900);--text-body:var(--ink-600);--text-muted:var(--ink-400);--text-label:var(--ink-300);--surface-page:var(--linen-100);--surface-card:var(--white);--surface-inset:var(--warm-50);--surface-sunken:var(--linen-200);--border-soft:var(--linen-200);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:9px;--radius-md:13px;--radius-lg:17px;--radius-xl:22px;--radius-2xl:28px;--radius-pill:999px;--shadow-sm:0 2px 8px -4px #322c4633;--shadow-card:0 12px 30px -18px #322c4652;--shadow-pop:0 24px 60px -28px #322c4652;--shadow-focus:0 0 0 3px var(--violet-200);--text-display:28px;--text-h1:24px;--text-h2:20px;--text-title:17px;--text-body-size:15px;--text-small:13px;--text-caption:11px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--tracking-tight:-.01em;--tracking-label:.08em;--script-fallbacks:"Noto Sans Arabic Variable", "Noto Sans Hebrew Variable", "Noto Sans Thai Variable", "Noto Sans JP Variable", "Noto Sans KR Variable", "Noto Sans SC Variable";--font-display:"Google Sans Variable", var(--script-fallbacks), system-ui, sans-serif;--font-body:"Google Sans Variable", var(--script-fallbacks), system-ui, sans-serif;--font-content:"Noto Sans Variable", var(--script-fallbacks), system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--topbar-h:62px;--screen-max-w:460px;--font-ui:"Archivo Variable", system-ui, sans-serif;--font-dot:"Doto Variable", ui-monospace, monospace;--ground:var(--linen-100);--ink:var(--violet-700);--text:var(--ink-600);--muted:var(--ink-400);--stock:var(--clay-500);--stock-ink:var(--ink-900);--band:var(--violet-700);--band-text:var(--warm-50);--band-muted:color-mix(in oklab, var(--warm-50) 74%, var(--violet-700));--gutter:clamp(20px, 4vw, 64px);--page-max:1240px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dots-gap:24px;--dots-alpha:14%;--dots-size:1px}}@layer base{html{background:var(--ground);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scrollbar-color:var(--violet-500) var(--linen-200);font-size:100%}body{font-size:1.0625rem;line-height:1.55}::selection{background:var(--stock);color:var(--stock-ink)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--clay-600);outline-offset:3px}}@layer components{.jodis-demo{justify-items:center;gap:var(--space-6);display:grid}@media (width>=1100px){.jodis-demo{align-items:center;column-gap:var(--space-10);grid-template-columns:auto minmax(0,15rem);justify-self:end}}.jodis-phone{--k:.8;--bezel:10px;width:calc(360px * var(--k) + 2 * var(--bezel));padding:var(--bezel);border-radius:calc(46px * var(--k) + var(--bezel));background:var(--ink-900);box-shadow:0 40px 70px -40px #2a26328c}@media (width<=379px){.jodis-phone{--k:.72}}@media (width>=1100px){.jodis-phone{grid-row:span 2}}.jodis-phone__screen{width:calc(360px * var(--k));height:calc(740px * var(--k));border-radius:calc(46px * var(--k));background:var(--linen-100);position:relative;overflow:hidden}.jodis-phone__canvas{width:360px;height:740px;transform:scale(var(--k));transform-origin:0 0;color:var(--ink-600);font-family:var(--font-ui);-webkit-user-select:none;user-select:none;font-size:15px;line-height:1.35;position:absolute;top:0;left:0}.jodis-steps{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:30rem;display:grid}@media (width>=1100px){.jodis-steps{gap:var(--space-2);grid-template-columns:none}}.jodis-steps__button{align-items:baseline;gap:2px var(--space-3);width:100%;padding:var(--space-2) var(--space-3);margin-left:calc(-1 * var(--space-3));border-radius:var(--radius-md);color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:auto minmax(0,1fr);font-size:.9375rem;line-height:1.4;transition:background-color .2s;display:grid}.jodis-steps__button b{color:var(--text);font-size:1.0625rem;font-weight:700}.jodis-steps__button .jodis-steps__text{grid-column:2}.jodis-steps__button:disabled{cursor:default}@media (hover:hover){.jodis-steps__button:not(:disabled):hover{background:var(--linen-200)}}.jodis-steps__number{width:1.5rem;height:1.5rem;box-shadow:inset 0 0 0 2px var(--linen-200);color:var(--muted);border-radius:50%;place-items:center;font-size:.8125rem;font-weight:700;transition:background-color .2s,box-shadow .2s,color .2s;display:grid}.jodis-steps__item[aria-current=step] .jodis-steps__number{background:var(--stock);box-shadow:none;color:var(--stock-ink)}.jodis-steps__item[aria-current=step] b{color:var(--ink)}.jodis-demo__pause{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.875rem;font-weight:600;display:inline-flex}.jodis-demo__pause .jodis-icon{width:1rem;height:1rem}.jodis-demo__pause [data-when=paused],.jodis-demo__pause[data-paused] [data-when=playing]{display:none}.jodis-demo__pause[data-paused] [data-when=paused]{display:block}@media (hover:hover){.jodis-demo__pause:hover{background:var(--linen-200);color:var(--ink)}}@media (width>=1100px){.jodis-demo__pause{margin-left:calc(-1 * var(--space-3));justify-self:start}}.app-screen{background:var(--linen-100);opacity:0;visibility:hidden;flex-direction:column;transition:opacity .35s,visibility .35s;display:flex;position:absolute;inset:0}.jodis-phone:is([data-scene=home],[data-scene=rec],[data-scene=added]) [data-screen=home],.jodis-phone[data-scene=result] [data-screen=result],.jodis-phone[data-scene=study] [data-screen=study],.jodis-phone[data-scene=quiz] [data-screen=quiz]{opacity:1;visibility:visible}[data-tap]{position:relative}:is(.jodis-phone[data-scene=home][data-beat=tap] [data-screen=home] [data-tap=mic],.jodis-phone[data-scene=result][data-beat=tap] [data-tap=add],.jodis-phone[data-scene=study][data-beat=tap] [data-tap=card],.jodis-phone[data-scene=quiz][data-beat=tap] [data-tap=answer]):after{content:"";z-index:2;border:2px solid var(--white);background:#2a26324d;border-radius:50%;width:36px;height:36px;margin:-18px 0 0 -18px;animation:.45s cubic-bezier(.16,1,.3,1) both app-tap;position:absolute;top:50%;left:50%}@keyframes app-tap{0%{opacity:0;scale:1.6}}.app-topbar{border-bottom:1px solid var(--linen-200);background:var(--white);align-items:center;gap:12px;min-height:62px;padding-inline:22px;display:flex}.app-topbar__text{flex:1;min-width:0}.app-topbar__title{color:var(--ink-900);font-size:20px;font-weight:700;line-height:1.2}.app-topbar__pair{color:var(--ink-400);margin-top:2px;font-size:11px;font-weight:700}.app-topbar__action{color:var(--ink-900)}.app-card{border:1px solid var(--linen-200);border-radius:var(--radius-xl);background:var(--white);box-shadow:var(--shadow-card)}.app-label{color:var(--ink-300);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.app-home{flex-direction:column;flex:1;gap:12px;padding:14px 22px 18px;display:flex}.app-progress{padding:16px}.app-progress__row{color:var(--ink-900);justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:17px;font-weight:600;display:flex}.app-progress__row small{color:var(--ink-400);font-size:12px;font-weight:700}.app-progress__bar{border-radius:var(--radius-pill);background:var(--linen-200);height:8px}.app-progress__bar span{border-radius:inherit;background:var(--violet-600);width:27%;height:100%;display:block}.app-progress__currencies{gap:12px;margin-top:14px;display:flex}.app-pill{border-radius:var(--radius-md);background:var(--violet-100);color:var(--violet-600);flex:1;align-items:center;gap:8px;padding:10px 12px;display:flex}.app-pill[data-kind=sparks]{background:var(--gold-100);color:var(--gold-600)}.app-pill b{color:var(--ink-900);font-size:17px;font-weight:600}.app-cta{border-radius:var(--radius-xl);background:var(--warm-50);align-items:center;gap:14px;padding:14px 16px;display:flex}.app-cta__icon{border-radius:var(--radius-md);background:var(--violet-100);width:40px;height:40px;color:var(--violet-600);flex:none;place-items:center;display:grid}.app-cta__text{flex:1;min-width:0}.app-cta__text b{color:var(--ink-900);font-size:16px;font-weight:700;display:block}.app-cta__text small{color:var(--ink-400);margin-top:2px;font-size:12px;font-weight:600;display:block}.app-cta__go{background:var(--violet-600);width:32px;height:32px;color:var(--white);border-radius:50%;flex:none;place-items:center;display:grid}[data-after-add]{display:none}.jodis-phone[data-scene=added] [data-before-add]{display:none}.jodis-phone[data-scene=added] [data-after-add]{display:inline}.app-words{padding:14px 16px}.app-words__title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.app-words__columns{border-bottom:1px solid var(--linen-200);color:var(--ink-400);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;padding-bottom:6px;font-size:10px;display:flex}.app-words__row{border-bottom:1px solid var(--linen-200);color:var(--ink-900);align-items:baseline;gap:10px;padding:5px 0;font-size:14px;font-weight:700;display:flex}.app-words__row:last-child{border-bottom:none}.app-words__row>span:nth-child(2){margin-left:auto}.app-words__row[data-new-word]{display:none}.jodis-phone[data-scene=added] .app-words__row[data-new-word]{animation:1.6s ease-out both app-new-row;display:flex}@keyframes app-new-row{0%{background:var(--clay-100)}30%{background:var(--clay-100)}}.app-mastery{fill:none;stroke:var(--violet-200);stroke-width:2.6px;stroke-linecap:round;flex:none;align-self:center}.app-mastery [data-filled]{stroke:var(--violet-600)}.app-mastery[data-new]{stroke:var(--linen-200);stroke-width:1.6px}.app-dock{border-top:1px solid var(--linen-200);background:var(--white);margin-top:auto;padding:14px 26px 18px;position:relative}.app-dock__headline{color:var(--ink-900);text-align:center;margin-bottom:12px;font-size:13px;font-weight:700}.app-dock__controls{justify-content:space-around;align-items:flex-start;display:flex}.app-dock__control{flex-direction:column;align-items:center;gap:6px;display:flex}.app-dock__btn{background:var(--violet-100);width:44px;height:44px;color:var(--violet-600);border-radius:50%;place-items:center;display:grid}.app-dock__mic{transition:background-color .2s,color .2s;box-shadow:0 6px 16px -8px #284b6380}.jodis-phone[data-scene=rec] [data-screen=home] .app-dock__mic,[data-screen=result] .app-dock__mic{background:var(--violet-600);color:var(--white)}.app-dock__label{max-width:84px;color:var(--ink-300);text-align:center;font-size:11px;font-weight:700;line-height:1.3}[data-kind=mic] .app-dock__label{color:var(--ink-600);font-weight:800}.app-rec{border:1px solid var(--sage-500);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-pop);opacity:0;align-items:center;gap:12px;padding:12px 16px;transition:opacity .25s,translate .25s;display:flex;position:absolute;inset:auto 22px calc(100% + 10px);translate:0 8px}.jodis-phone[data-scene=rec] .app-rec{opacity:1;translate:0}.app-rec__glyph{background:var(--sage-100);width:44px;height:44px;color:var(--sage-500);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.jodis-phone[data-beat=recording] .app-rec__glyph{animation:1.1s ease-in-out infinite app-breathe}.app-rec__spinner{border:3px solid var(--violet-200);border-top-color:var(--violet-600);opacity:0;border-radius:50%;width:20px;height:20px;position:absolute}.jodis-phone[data-beat=processing] .app-rec__glyph{background:var(--violet-100)}.jodis-phone[data-beat=processing] .app-rec__glyph svg{opacity:0}.jodis-phone[data-beat=processing] .app-rec__glyph .app-rec__spinner{opacity:1;animation:.8s linear infinite app-spin}.app-rec__main{flex:1;min-width:0}.app-rec__meter{gap:2px;height:28px;display:flex}.app-rec__bar{border-radius:var(--radius-sm);background:var(--warm-50);flex:1;position:relative;overflow:hidden}.app-rec__bar:after{content:"";border-radius:inherit;background:var(--sage-500);transform-origin:bottom;position:absolute;inset:0;transform:scaleY(0)}.jodis-phone[data-scene=rec] .app-rec__bar:after{animation:app-level .2s calc(var(--i) * .11s + .2s) ease-out both}@keyframes app-level{to{transform:scaleY(var(--l))}}.app-rec__status{color:var(--ink-600);margin-top:10px;font-size:11px;font-weight:700;display:block}.app-rec__status [data-rec=processing]{display:none}.jodis-phone[data-beat=processing] .app-rec__status [data-rec=recording]{display:none}.jodis-phone[data-beat=processing] .app-rec__status [data-rec=processing]{display:inline}.app-rec__dot{background:var(--sage-500);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}@keyframes app-breathe{50%{scale:1.07}}@keyframes app-spin{to{rotate:360deg}}.app-toast{border-radius:var(--radius-pill);background:var(--sage-500);color:var(--white);white-space:nowrap;opacity:0;align-items:center;gap:7px;padding:8px 15px;font-size:12.5px;font-weight:700;transition:opacity .25s,translate .25s;display:flex;position:absolute;bottom:calc(100% + 14px);left:50%;translate:-50% 8px;box-shadow:0 10px 22px -10px #6b8d6ab3}.jodis-phone[data-scene=added] .app-toast{opacity:1;translate:-50%}.app-result{flex-direction:column;flex:1;gap:9px;padding:16px 22px;display:flex}.app-sugg{border:1px solid var(--linen-200);border-radius:var(--radius-lg);background:var(--linen-200);box-shadow:var(--shadow-card);gap:1px;display:flex;overflow:hidden}.app-sugg__source{background:var(--white);flex-direction:column-reverse;flex:auto;justify-content:center;gap:3px;padding:11px 12px 10px 14px;display:flex}.app-sugg__label{color:var(--ink-300);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:600;line-height:1.3}.app-sugg__text{color:var(--ink-600);font-size:14.5px;font-weight:600}.app-sugg__target{background:var(--warm-50);flex:auto;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"text pencil""label pencil";align-items:center;gap:3px 8px;padding:10px 8px 10px 13px;display:grid}.app-sugg__target .app-sugg__label{grid-area:label}.app-sugg__translation{color:var(--ink-900);grid-area:text;font-size:16px;font-weight:700}.app-sugg__pencil{background:var(--white);width:28px;height:28px;color:var(--ink-400);box-shadow:var(--shadow-sm);border-radius:50%;grid-area:pencil;place-items:center;display:grid}.app-sugg__action{background:var(--white);align-items:center;padding:0 12px;display:flex}.app-sugg__add{border-radius:var(--radius-pill);background:var(--violet-600);height:36px;color:var(--white);align-items:center;padding:0 14px;font-size:13px;font-weight:700;transition:scale .15s;display:flex}.jodis-phone[data-scene=result][data-beat=tap] [data-tap=add]{scale:.94}.app-study{flex-direction:column;flex:1;padding:16px 22px 24px;display:flex}.app-study__progress{gap:4px;display:flex}.app-study__progress span{border-radius:var(--radius-pill);background:var(--linen-200);flex:1;height:5px}.app-study__progress [data-state=current]{background:var(--violet-600)}.app-study__counter{color:var(--ink-400);justify-content:space-between;align-items:center;margin-top:12px;font-size:15px;font-weight:600;display:flex}.app-study__counter>span>b{color:var(--sage-500);font-weight:800}.app-switch{align-items:center;gap:8px;display:inline-flex}.app-switch small{color:var(--ink-300);font-size:11px;font-weight:600}.app-switch>span{border-radius:var(--radius-pill);background:var(--linen-200);padding:2px;display:inline-flex}.app-switch>span>*{border-radius:var(--radius-pill);color:var(--ink-400);letter-spacing:.08em;padding:4px 10px;font-size:11px;font-weight:700}.app-switch>span>b{background:var(--violet-100);color:var(--violet-600)}.app-study__deck{perspective:1200px;flex:1;place-items:center;display:grid}.app-flashcard{aspect-ratio:3/4;width:252px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:relative}.jodis-phone[data-beat=flipped] .app-flashcard{transform:rotateY(180deg)}.app-flashcard__face{border:1px solid var(--linen-200);border-radius:var(--radius-2xl);background:var(--white);box-shadow:var(--shadow-card);backface-visibility:hidden;flex-direction:column;padding:24px;display:flex;position:absolute;inset:0}.app-flashcard__face[data-face=back]{background:linear-gradient(160deg, var(--violet-100), var(--white));transform:rotateY(180deg)}.app-flashcard__face[data-face=back] .app-flashcard__chip{background:var(--linen-200);color:var(--ink-400)}.app-flashcard__chip{border-radius:var(--radius-pill);background:var(--violet-100);color:var(--violet-600);letter-spacing:.08em;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:700}.app-flashcard__word{color:var(--ink-900);letter-spacing:-.01em;text-align:center;flex:1;place-content:center;font-size:36px;font-weight:700;line-height:1.08;display:grid}.app-flashcard__word small{color:var(--ink-400);letter-spacing:0;margin-top:10px;font-size:13px;font-weight:400}.app-study__hint{color:var(--ink-300);flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-top:14px;font-size:11px;font-weight:600;display:flex}.app-study__hint b{color:var(--ink-400);font-weight:800}.app-quiz{flex-direction:column;flex:1;justify-content:center;gap:26px;padding:16px 22px 24px;display:flex}.app-quiz__head{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.app-quiz__heading{color:var(--ink-900);letter-spacing:-.01em;font-size:24px;font-weight:700;line-height:1.2}.app-quiz__meta{color:var(--ink-400);margin-top:4px;font-size:15px;font-weight:600}.app-quiz__gems{color:var(--ink-400);align-items:center;gap:6px;margin-left:auto;font-size:13px;font-weight:600;display:flex}.app-quiz__gems b{color:var(--ink-900);align-items:center;gap:4px;font-weight:700;display:inline-flex}.app-quiz__gems svg{color:var(--violet-600)}.app-quiz__prompt{border-radius:var(--radius-2xl);background:var(--linen-200);color:var(--ink-900);text-align:center;padding:26px 22px;font-size:28px;font-weight:700;line-height:1.15}.app-quiz__options{flex-direction:column;gap:10px;display:flex}.app-option{border:1.5px solid var(--linen-200);border-radius:var(--radius-lg);background:var(--white);min-height:56px;color:var(--ink-900);justify-content:center;align-items:center;padding:12px 18px;font-size:17px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s;display:flex}.jodis-phone[data-beat=correct] [data-tap=answer]{border-color:var(--sage-500);background:var(--sage-100);color:var(--sage-600)}.app-quiz__hint{border:1.5px solid var(--linen-200);border-radius:var(--radius-lg);color:var(--ink-900);justify-content:center;align-items:center;gap:8px;padding:14px 22px;font-size:17px;font-weight:600;display:flex}.app-quiz__hint span{color:var(--ink-400);align-items:center;gap:4px;display:inline-flex}@media (prefers-reduced-motion:reduce){.app-screen,.app-rec,.app-toast,.app-flashcard,.jodis-steps__button,.jodis-steps__number{transition:none}.jodis-phone .app-rec__glyph,.jodis-phone .app-words__row[data-new-word],.jodis-phone [data-tap]:after{animation:none}.jodis-phone[data-scene=rec] .app-rec__bar:after{transform:scaleY(var(--l));animation:none}}.jodis-site{flex-direction:column;min-height:100dvh;display:flex;overflow-x:clip}.jodis-site main{flex:1}.jodis-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.jodis-icon{flex:none;width:1.25em;height:1.25em}.jodis-title,.jodis-heading{color:var(--ink);text-wrap:balance;font-weight:800;font-stretch:108%}.jodis-title{letter-spacing:-.035em;font-size:clamp(2.75rem,1.5rem + 4.2vw,5rem);line-height:.94}.jodis-heading{letter-spacing:-.03em;font-size:clamp(2rem,1.35rem + 2.6vw,3.5rem);line-height:1}.jodis-mark{--mark:color-mix(in oklab, var(--clay-500) 55%, var(--ground));background:linear-gradient(var(--mark), var(--mark)) 0 88% / 100% .3em no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:.04em;font-style:normal}.jodis-title .jodis-mark{animation:jodis-mark-draw .8s .3s var(--ease-out) both}@supports (animation-timeline:view()){.jodis-section .jodis-mark{animation:linear both jodis-mark-draw;animation-timeline:view();animation-range:entry 60% cover 75%}.jodis-closing{view-timeline-name:--jodis-closing}.jodis-closing .jodis-mark{animation:linear both jodis-mark-draw;animation-timeline:--jodis-closing;animation-range:entry}.jodis-stop__time [data-rung]{animation:linear both jodis-rung;animation-timeline:view()}.jodis-stop__time [data-rung][data-rung="0"]{animation-range:cover 18% cover 24%}.jodis-stop__time [data-rung][data-rung="1"]{animation-range:cover 24% cover 30%}.jodis-stop__time [data-rung][data-rung="2"]{animation-range:cover 30% cover 36%}.jodis-stop__time [data-rung][data-rung="3"]{animation-range:cover 36% cover 42%}.jodis-stop__time [data-rung][data-rung="4"]{animation-range:cover 42% cover 48%}}@keyframes jodis-mark-draw{0%{background-size:0 .3em}}@keyframes jodis-rung{0%{opacity:.15;translate:0 .2em}}.jodis-nowrap{white-space:nowrap}.jodis-lead strong{color:var(--ink);font-weight:650}.jodis-accent{color:var(--stock)}.jodis-lead,.jodis-section__lead{text-wrap:pretty;max-width:36ch;font-size:clamp(1.125rem,1rem + .4vw,1.3125rem);line-height:1.5}.jodis-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.jodis-btn{border-radius:var(--radius-md);background:var(--band);min-height:3.5rem;color:var(--band-text);transition:background-color .15s ease, translate .15s var(--ease-out);justify-content:center;align-items:center;gap:.6em;padding:0 1.5rem;font-size:1.125rem;font-weight:700;text-decoration:none;display:inline-flex}.jodis-btn[data-variant=ghost]{color:currentColor;background:0 0;box-shadow:inset 0 0 0 2px}@media (hover:hover){.jodis-btn:hover{background:var(--violet-600)}.jodis-btn[data-variant=ghost]:hover{background:color-mix(in oklab, currentColor 8%, transparent)}}.jodis-btn:active{translate:0 1px}.jodis-bar,.jodis-hero,.jodis-section,.jodis-route__inner,.jodis-closing__inner,.jodis-footer{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.jodis-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-5);display:flex}.jodis-brand{align-items:center;gap:var(--space-3);color:var(--ink);letter-spacing:-.02em;font-size:1.75rem;font-weight:800;font-stretch:112%;line-height:1;text-decoration:none;display:inline-flex}.jodis-brand img{border-radius:var(--radius-sm)}.jodis-bar__link{color:var(--ink);align-items:center;gap:.4em;font-weight:700;text-decoration:none;display:inline-flex}@media (hover:hover){.jodis-bar__link:hover{text-decoration:underline}}.jodis-hero{gap:var(--space-12);padding-block:var(--space-8) var(--space-16);display:grid}.jodis-hero__text{align-content:center;justify-items:start;gap:var(--space-6);display:grid}.jodis-hero__text .jodis-actions{margin-top:var(--space-2)}.jodis-route{background:radial-gradient(circle, rgb(246 244 239/var(--dots-alpha)) var(--dots-size), transparent calc(var(--dots-size) + .5px)) 0 0 / var(--dots-gap) var(--dots-gap), var(--band);color:var(--band-muted)}.jodis-route .jodis-heading{color:var(--band-text)}.jodis-route__inner{gap:var(--space-12);padding-block:var(--space-16);display:grid}.jodis-route__stops{--dot:14px;gap:var(--space-8);background:linear-gradient(var(--stock) 55%, var(--sage-500)) calc(var(--dot) / 2 - 1px) 0 / 2px 100% no-repeat;display:grid}.jodis-stop{align-content:start;gap:var(--space-2);padding-left:calc(var(--dot) + var(--space-5));display:grid;position:relative}.jodis-stop:before{content:"";width:var(--dot);height:var(--dot);background:var(--band);box-shadow:inset 0 0 0 3px var(--stock);border-radius:50%;position:absolute;top:.35em;left:0}.jodis-stop[data-kind=ladder]:before{background:var(--sage-500);box-shadow:none}.jodis-stop h3{color:var(--band-text);font-size:1.25rem;font-weight:700;line-height:1.2}.jodis-stop p{max-width:34ch}.jodis-stop__time{color:var(--stock);font-family:var(--font-dot);flex-wrap:wrap;gap:0 .6em;font-size:1.5rem;font-weight:800;line-height:1.1;display:flex}.jodis-stop__time [data-rung="1"]{color:color-mix(in oklab, var(--clay-500) 75%, var(--sage-500))}.jodis-stop__time [data-rung="2"]{color:color-mix(in oklab, var(--clay-500) 50%, var(--sage-500))}.jodis-stop__time [data-rung="3"]{color:color-mix(in oklab, var(--clay-500) 25%, var(--sage-500))}.jodis-stop__time [data-rung="4"]{color:var(--sage-500)}.jodis-section{gap:var(--space-8);padding-block:var(--space-16) var(--space-8);display:grid}.jodis-section[data-band],.jodis-footer{background:var(--band-ground);box-shadow:0 0 0 100vmax var(--band-ground);clip-path:inset(0 -100vmax)}.jodis-section[data-band=light]{--band-ground:var(--warm-50);margin-top:var(--space-12);padding-block:var(--space-16)}.jodis-section .jodis-heading+.jodis-section__lead{margin-top:calc(-1 * var(--space-4))}.jodis-principles{display:grid}.jodis-principle{gap:var(--space-2) var(--space-8);padding-block:var(--space-6);background:radial-gradient(circle, var(--linen-200) 2px, transparent 2.5px) 0 0 / 10px 6px repeat-x;display:grid}.jodis-principle dt{color:var(--ink);letter-spacing:-.02em;font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);font-weight:800;font-stretch:108%;line-height:1.1}.jodis-principle dd{max-width:52ch}.jodis-languages{gap:var(--space-3) var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));display:grid}.jodis-languages li{align-items:baseline;gap:var(--space-3);padding-block:var(--space-3);border-bottom:1px solid var(--linen-200);color:var(--ink);letter-spacing:-.015em;font-size:clamp(1.375rem,1.15rem + .8vw,1.75rem);font-weight:700;font-stretch:104%;display:flex}.jodis-languages__code{width:2.2em;color:var(--muted);font-family:var(--font-dot);text-transform:uppercase;flex:none;font-size:.8em;font-weight:800}.jodis-closing{margin-top:var(--space-12);background:radial-gradient(circle, rgb(42 38 50/var(--dots-alpha)) var(--dots-size), transparent calc(var(--dots-size) + .5px)) 0 0 / var(--dots-gap) var(--dots-gap), var(--stock);color:var(--stock-ink)}.jodis-closing .jodis-heading,.jodis-closing .jodis-btn[data-variant=ghost]{color:var(--stock-ink)}.jodis-closing .jodis-mark{--mark:var(--warm-50)}.jodis-closing__inner{justify-items:start;gap:var(--space-6);padding-block:var(--space-16);display:grid}.jodis-footer{--band-ground:var(--band);gap:var(--space-2) var(--space-6);padding-block:var(--space-6) var(--space-8);color:var(--band-muted);flex-wrap:wrap;font-size:.9375rem;display:flex}.jodis-footer span{color:var(--band-text);font-weight:800}@media (hover:hover){.jodis-footer a:hover{color:var(--band-text)}}@media (width>=860px){.jodis-hero{align-items:center;gap:var(--space-12) clamp(32px, 5vw, 80px);min-height:calc(100svh - 90px);padding-block:var(--space-6) var(--space-16);grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.jodis-route__stops{gap:var(--space-6);background-image:linear-gradient(to right, var(--stock) 55%, var(--sage-500));background-position:0 calc(.35em + var(--dot) / 2 - 1px);background-size:100% 2px;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.3fr)}.jodis-stop{padding-left:0;padding-top:calc(var(--dot) + var(--space-5))}.jodis-stop:before{top:.35em}.jodis-principle{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:baseline}}@media (prefers-reduced-motion:reduce){.jodis-mark,.jodis-stop__time [data-rung]{animation:none!important}}}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/site/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/site/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/site/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Doto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAA88ABEAAAABffQAAA7VAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYGYD9TVEFUgTQnFgCDbC9sEQgKg6Agg8U1C4FkADCCvzgBNgIkA4FmBCAFhhwHh20MB1t8jlExjlkBGwcYfPuzj0i1uSaKWi0WxYD/vyWocdjHriLGQ/DBi8h0Ki1W7I7iLKN7DYBy4loonRKa1l7a9X6ppcwr4di23+oZbioHCwfdwnNjPMf5YNo2pKAIpL+cj7EGP6/siWOUe3ie/z/f1j43fpRKpERK+W+cIVLZw8PTDd/v8jCrACuSsCwMw7AwDIfD2UBHU70AQBncVwAQkFaN/4tzXsnKM6gBoKNsx3Z4Wpxzp5SV/6VMEUZaX6Pb/A58opFdggMfYeDJRA8seGuA3aL8Os7QJbZqRKB+fzvfffKSiDZ63W0WfMBR4IFn1d5+9kO2ZAvlo7DvyBKnUnhGUP4kQk69a9L+IUoKhcd4jA3JYymEO41SyOsewgZilgKCp/tUdykbimiETwpaMFTCgt4XiBULAP+YHPt6cs3q//9ay7P/vjNpTaq9uKGvx2zyZ9WzI6LJGoeQIHVIlEAKRFIhpI6NpQa7VgZOLkSJfbY6Vpbr3K82YiUE77YhgDMAoBCEIQSdarsz6EHNK34BC97TlquGUCaLcrKYldJMyhgOg42eyPS+Nos/6JoXmj0bQJsRyYAXQF6qX0A4EAQTCvBmAaKpFtekWoDRW98RIggzjDFAV81Uy5csnDdBAI80AwgCYtbCl9eZ1C/rjMq6wiAvF2g3VyhZgrDrdJJ8UmMvrVL03BiUOMHzGgTtDz8A5coBCtAAbxoCeNPJWahUTo8iXIUt/uQvRvGSIImSOEmSdMmTUqmnudY66KaX/iZNkMpTjuJSEk2nmUJnhm4KffF/6dwJxCK+EiqxkiipkisFUqGZVqw666mfQeM/rEDTFkxZ8Pwp+/zH73Ll4tHe/4+c8ufaz0mfBn3qBfCpI1xzAJDDXchXy6q7AQYZAoaZYJ4FFllhnQ02obHdD7gt+ON/Q08mHekMZDGSzUweE7ks5HOigCvFXCjiRglnCrkr5aFMG215quCtio9qXnzVaK8DP7X81QlQT0edBKovSAPBGgrRSKjGwjUVpokIzUVpJUYfkVqK1lscm0QDJEkxSJohUg1WLkMLPSToL1Zf8fpJNpAA7hSCNzMmbV1PT2gH6bEBEVFAT4gG7IXoQJJB9CBLIAaQlxAjKGuICdQvEDNo4SAW0PBH/n+2ZMBQgOuGhf6/DZ4LgLsBSr7+EtCl5vfvsoE6juNw6nVUn1coj5cbU/blkH+/DwfoOEOummrrBQ7igemK+ltP5MI5cOmR4pGlfYcFdiuXZLirsjQrhANuDGHJ0uOwgD3kOEHevwdLncfoGYyYi6m7i9m5i8yzKRHzx5i61eWjE53xXqGcQfjC7WBnGIcvC7/rbCIVL3CamF2L35QBOvgwhrIFsSs3cRXk8Kzxq6K70YJAv4D49Vt2tl3+ikm/BYoPxa94eAjyZ8LbSQCuYUfNdrF2BRgkpQe8Bujf2XQj8dt1+iEo0bWdpC6x/KM07mQStHUaBSzRpZ15lcAbejWIxA0HAb2ddXcIKa1Ui1gp/B3VwUctMRSnrqhC21fHT3A9CzaMhHvj8yy3HRLz7Yh+TNxNmiBArXCxvd/ZUcDWSaus3wbBVwiaDowEsOsib/jWeu1tzb7V1pIAqa2hVpUXavo3RDozDl84fGnrpIHCzMcQdU97EUqQYgcB//pQIzGC+L1y0xrGBhqL9evg+cnd7oYFpDrbHnxv3s5olEi5bz0LIwSIS9/YrQHCaS3nC3KFCKR2GotrTc32hCseRsKIUzOyDibN8FcF2Xnta+CNYsHgV1NnzsLvn/JzZHjGWIseX6vwGd8U4gL2AD+IH4KQK5D1DwC8yE6kPaIFpfjQYJwgqPVc6O5d6aTKe+eG/zmiFx283PxFAwQK2F78etm0IImc/YPxX1UgZ7vsmMeLh1E4Jvw6I7jFYTlcoI5e+0tPsW9VGnvwFsc22y9SPh3/2V/4DybKQIrMZ37C3P1Z6yRE8dDfVpA9A20HVXvNr45PWqYDq8AtWDPsLEx4DwgLBA1ni/NVeWHRvQmO2NKcDMuPGn+2X8yzH/EoaidLPMUz6cslX3ZaJTdK5pAd5J5eMj24Z9Xx7A7Wee3w493kf8pnYDP0kWihkgiwHQyORB26fDcIr6ggxUuNFNHSzWujR9B9R7tBCflywzNhPJvTMcSzubGB+KSOqUcTh4uvquyNsr0Exp6dvwJS94hb5SNIXCvz12HXHTa7bZC4YPmuDHZzACiOclWc994k8SrvMJnhq7PFjCV8eBu1hQ3wR6Z/sdKPXjLzisTurS1o4mqEIhNRPxa23eOgtMHo2T1q8I46fLAZ1CJ7F3fy3LkwNJFVpaQfgM1eaCIx8P0ggC0PJyu/iRyN+1Xb7NkDWnwCQRE9df7sA0hcShDTjlfq9ra3ufAbLlaRayzjg9mEezNM+UlFvt2nzZUhxm2UAcVHdfAsRGr9aOP7htzLjfsoRecDtNkfVEIxuP2paXyC/fnMbAc+ZXYs7XjvH2q5TnBMYluMnZzTxuIZ5I3jZSydqp0w5vd+7S8DVPT3dTfC68N3tcZxoGXO9Hhs4gffm50apNtpx+wN+f9I+6OQXkr7d3MwSnhPyP4oq1qltQQXXhOlHwtWUcgOdiwuwG8nkD6A9+S/wbDZEf28sT22myZVoQhH4SWp0d+qH7HPi0N2s/qA1Wqy4hh/Ekj+rYR3l/zsB0SGXRI0ingo8IFxqaO7wA4k4icE/Ujg917hwqrqj+3GV13uU4ZSH/kT0UK8r4knWjbBkVrOKH4vYQt4RCQjZrERfYI1BiUSxw8y2r+ROJGfR76P93/qZUPsQSJDkZ5pwvAODh8TXEu5xOQRwwIvDK+Vo7SAxwY+pCvVMCRhzC/tJYiOBgiLzwfbY6vshrM7Pj7Db3EIxMkAR9XwBaEEuH7Rs/vOww7y+4KDROu0OPgAnxNh+zQhZbbwyvoM99yIApK2hliIrh76XG8ApIDW1IsOfyI/0nY8AcPP+C0Odp6IXkr78I70C4P+52zwlkc053PUaPUo8ZXg2Dqe82QcaixUbZxifBN/CBmPV0sCvRQkOdf+TrzXmyPDtwWKF7d/u7VeCk8oLWQSdm35YSh4kc+HDHt67vBBic+s1Y/F55/Nbvibler2MzijFTpHEdkdaTscIQPQju/qynQkSYWNHzifW4fshntHv/ifBSAQwNsa4P0A2Ct/Qtu0X/fpX8NheIAvMpXdXOJyTnPJdo1wvcj/6i66P+jI4jrPEs+r8mjvRj4pvq6+T/SLxo6AAYEVgTftzcF9QuqFhoR+DjsRfBuxMtI7cnmUZ9T55IuYfrFtY0fGNYgPi/+reFiuT8xMfFTvSZ6Ykp/qknq9vzP8kn5+XJlxYGqT+Wgek61lr8upn6vLPbi3zXt8bCywFhrH4/bCh/e3xYPfR0leaXTpu7I//0MqvCqp/DIz2Kzq09xM3r22sNZaF153RFwt1TaQBq90adSocUrju/qXRpc/BgSTzO6Ycp2ilRrV2wdloS5fP5fbOf+QYz58ZvW86xpok3y/7ncJLqzRgvNb9Vb+tWr1/FPdTwnGrZWD4a9r+VYcKlX3pwQZN+EGmc/MF/IPnnY85+N1v0pQfq0flN7an7F666Y2f+qQXTa9dfWb3Ln64xFOg0Zjjk5Fus7dpRjsZ458Ki19ty6sC8g3BVZ0e37Xxi1XgnXcbj6zY2C8fHxeTHL9lda5dpV7/9mhs1cweG0ADCsAJFPsr+66li4gos6ZR8rb6r5LEMaYfBB4DP4zEd/j4vNS8LUiyig2Je0+pTZBttsHwAWAicRQmvnxeS3I1u4tOuPN3oxZeP2rmk137UiUV4+AJU8XmZ8EhpkzGfksZD/pXt0dtQ3Cxy4hW+P6f/yu0Ggp//okyRhwTrbph8prVfFpMP4Hsv3LRtsYMTabKT5pxdi4PRM2E9HuvtDzVeHt3enc7ol+jzwfRAHz0s/6Ueci42x0wThhBww3QymbaSvNWgVj/+UC4UawSN72dBtgno1JdT6y6KMltsfFvhtAloLKtRvGDGRMkyVjLPTBXEFX/9mn/0Vdzz8/9dwz+YmdRwNjD0lJmQOjx4OJk8Ho1zAQRhlTtHdmrpgVfWPKa3grENC9+J5d3IpfmZR2F7i+nm0B3Ij8aS3955OepBnAgAJAAPGDLxxS1vRkhnjirpE3V/KSkW74ELbY60uHKFKbYrs6nw7EDuShbCX8FQGGRq98AAijz7y9JiE6M7Ajpi2z4B2DWOEqXVkjP+JZR3ToWE+g+2wg0l6fK7mW+Ql4msKCMyNYYWIAa3izsg4LTViPq3RlA85UshF3mWzCRCKb8eTPFiy4frcTrsB4LBRJ/+zoZ5I9uG/XJDR55vN7HXjdeIqm5NP+pdKb8tqlcZ5fcOf23nAA5LZJ38vxxdq2f7er2vNiQSrABcHd85YBbmFOmpIlHZHi6MyGsud+tfGhaW8Eo9V8Oc7Gv48uIdD5GPIy1+M3SzfL+RLO1blJRsrJr8Glh9Zubb2dLUmE4EtA6fTMhuZ3yGJOqb57SSLr62iI56C8hZr26dwNyAvlJK7KWzYlS04neOF+fhSVAoD/N8jcfv6nQ0G0JfaJEk10fCKLXgxiFJOYxSJOPO8tRlx4jxM3cSd2nSeZQqXRu9kHBpPF5nB5fIGwn0XibouWyuSKPncNUqqAkqTR6nqnNxi7ItNssXZDrt3hdLm71cc0sNjr8/NHoTFYHJ5AJJEpVBqdwWSxOVweXyAUdQDEQOnd3Y5QDc0+OqFGGN0VzthxojGun8Aa3EcH1uwDT+A4Hc6FaREuOnGqYHqLukUkgnQcVDTX6UBNWtM5Qv9QGfHqAferVbxOsP01OzQcuEFei3j5wDvy8fbUAwSxnovgB8jO/tFr3rPAJvdXIYgHcIUd74CoARG7AXHUJzyGQSZASea3w4ymSZInkic8C6/lJdYAqwAgIFBLyfJOJl5/X1GjG93wxBMYOJigQYNWdHPWpWozeq56/KiP8+fpu6SW8/bVeo2NfrOnA9Fg9Nud2NvXqyOdiAKdSWu0WW5Jd3T9uBOXWY+ixyfwo37wCfzhh7/63/x35pcOAAAA)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Doto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/site/doto-latin-wght-normal-DtlIPefW.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
