:root{--bg:#f5ca00;--ink:#000;--tile:#fdf7d7;--tile-line:#7a7352;--given:#bed7ff;--given-line:#646466;--key:#f7de3c;--key-line:#8f7a00;--key-pressed:var(--bg);--muted:#0000009e;--clash:#d9261c;--clash-fill:#f8d0c2;--font:"Helvetica Neue", Helvetica, Arial, sans-serif;--u:min(1px, calc(100vw / 390), calc(100vh / 640));--cell:calc(59.9 * var(--u));--cell-line-width:calc(1.33 * var(--u));--cell-gap:calc(6.35 * var(--u));--row-gap:calc(6.6 * var(--u));--row-pitch:calc(var(--cell) + var(--row-gap));--cell-cap:calc(var(--cell) * .646);--board-width:calc(5 * var(--cell) + 4 * var(--cell-gap));--key-unit:min(calc(min(100vw, 430px) / 10), calc(43 * var(--u)));--key-height:calc(var(--key-unit) * 1.3);--key-cap:calc(var(--key-unit) * .397);--hairline:.5px}@supports (color:color(display-p3 0 0 0)){:root{--bg:color(display-p3 .9333 .8 0);--tile:color(display-p3 .9867 .96 .8);--tile-line:color(display-p3 .5004 .4737 .32);--given:color(display-p3 .7608 .8392 1);--key:color(display-p3 .96 .88 .4);--key-line:color(display-p3 .56 .48 0)}}@supports (height:100svh){:root{--u:min(1px, calc(100vw / 390), calc(100svh / 640))}}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:manipulation}.app{max-width:430px;height:100dvh;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.glyph,.glyph-backspace,.wordmark-art,.gear-art{fill:currentColor;display:block;overflow:visible}.masthead{z-index:2;padding-top:calc(env(safe-area-inset-top) + 16 * var(--u));flex:none;position:relative}.wordmark{justify-content:center;margin:0;line-height:0;display:flex}.wordmark-art{width:calc(140.3 * var(--u));height:calc(34.7 * var(--u))}.daily-id,.calendar-title{margin:calc(9 * var(--u)) 0 0;color:var(--muted);font-size:calc(10.5 * var(--u));letter-spacing:.2em;text-align:center;text-transform:uppercase;outline:none;font-weight:700;line-height:1}.today{height:calc(20 * var(--u));margin:calc(-5 * var(--u)) 0 calc(-5 * var(--u)) calc(10 * var(--u));padding:0 calc(8 * var(--u));background:var(--key);box-shadow:0 0 0 var(--hairline) var(--key-line);color:var(--ink);font:inherit;letter-spacing:inherit;vertical-align:middle;cursor:pointer;appearance:none;border:0;border-radius:0;align-items:center;display:inline-flex;position:relative}.today span{margin-right:-.2em}.today:active{background:var(--key-pressed)}.gear,.calendar-close{top:calc(env(safe-area-inset-top) + 27.1 * var(--u));right:calc((100% - var(--board-width)) / 2);width:calc(29 * var(--u));height:calc(29 * var(--u));color:var(--ink);cursor:pointer;appearance:none;background:0 0;border:0;margin:0;padding:0;position:absolute}.gear:before,.calendar-close:before,.month-step:before,.today:before{content:"";inset:calc(-7.5 * var(--u));position:absolute}.today:before{inset:calc(-12 * var(--u)) calc(-6 * var(--u))}.gear-art{stroke-width:1px;vector-effect:non-scaling-stroke;width:100%;height:100%}button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}[hidden]{display:none!important}.stage{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.play{flex-direction:column;flex:1;align-items:center;min-height:0;display:flex}.play-space--above{min-height:calc(20 * var(--u));flex:144.2 1 0}.play-space--below{min-height:calc(64 * var(--u));flex:168.5 1 0}.board-wrap{flex:none;position:relative}.board{gap:var(--row-gap);display:grid;position:relative}.row{z-index:1;grid-template-columns:repeat(5, var(--cell));gap:var(--cell-gap);display:grid;position:relative}.cell{width:var(--cell);height:var(--cell);border:var(--cell-line-width) solid var(--tile-line);background:var(--tile);color:var(--ink);justify-content:center;align-items:center;display:flex;position:relative}.letter{display:flex}.cell .glyph{height:var(--cell-cap)}.cell.is-given{border-color:var(--given-line);background:var(--given)}.message{top:calc(100% + 22 * var(--u));color:var(--ink);font-size:calc(16 * var(--u));text-align:center;margin:0;font-weight:500;position:absolute;left:0;right:0}.attempt{color:var(--clash);justify-content:center;align-items:center;animation:.72s ease-out both attempt;display:flex;position:absolute;inset:0}.attempt-cross{top:calc(-8 * var(--u));right:calc(-8 * var(--u));width:calc(18 * var(--u));height:calc(18 * var(--u));border:calc(1.33 * var(--u)) solid var(--ink);background:var(--clash);border-radius:50%;position:absolute}.attempt-cross:before,.attempt-cross:after{content:"";width:58%;height:calc(2.2 * var(--u));background:var(--tile);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.attempt-cross:after{transform:translate(-50%,-50%)rotate(-45deg)}.cell.is-attempted{animation:.72s ease-out attempted}.cell.is-clash{animation:.72s ease-out clash}.key.is-blocked .glyph{opacity:.32}.keyboard{width:100%;padding-bottom:max(calc(31 * var(--u)), env(safe-area-inset-bottom));flex-direction:column;flex:none;align-items:center;display:flex}.key-row{width:100%;height:var(--key-height);justify-content:center;display:flex}.key{height:100%;color:var(--ink);font:inherit;cursor:pointer;appearance:none;background:0 0;border:0;flex:0 0 10%;margin:0;padding:0;display:flex}.key-face{background:var(--key);box-shadow:0 0 0 var(--hairline) var(--key-line);flex:1;justify-content:center;align-items:center;display:flex}.key:active .key-face{background:var(--key-pressed)}.key .glyph{height:var(--key-cap)}.glyph-backspace{width:100%;height:100%}.key-submit{width:40%;height:calc(var(--key-unit) * 109.5 / 64.5);margin:calc(20 * var(--u)) 0 0;background:var(--key);box-shadow:0 0 0 var(--hairline) var(--key-line);color:var(--ink);font:inherit;cursor:pointer;appearance:none;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;display:flex}.key-submit-label{gap:calc(1.5 * var(--u));visibility:hidden;display:flex}.key-submit-label .glyph{height:calc(10.5 * var(--u))}.key-submit:enabled .key-submit-label{visibility:visible}.key-submit:enabled:active{background:var(--key-pressed)}.key-submit:disabled{cursor:default}.play.is-done .keyboard{pointer-events:none}.reveal{overscroll-behavior:contain;min-height:0;padding:calc(36 * var(--u)) 0 calc(48 * var(--u) + env(safe-area-inset-bottom));flex:1;animation:.32s ease-out both fade-in;overflow-y:auto}.reveal-title{margin:0 0 calc(28 * var(--u));font-size:calc(22 * var(--u));letter-spacing:.08em;text-align:center;text-transform:uppercase;outline:none;font-weight:700}.route{--route-cell:calc(48 * var(--u));flex-direction:column;align-items:center;margin:0;padding:0;list-style:none;display:flex}.route-step{animation:.42s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(.2s + var(--i) * .11s);flex-direction:column;align-items:center;display:flex}.route-arrow{width:calc(18 * var(--u));height:calc(18 * var(--u));margin:calc(8 * var(--u)) 0;color:var(--tile-line);display:block}.route-arrow svg{width:100%;height:100%;display:block}.route-caption{margin:0 0 calc(7 * var(--u));color:var(--muted);font-size:calc(11 * var(--u));letter-spacing:.22em;text-transform:uppercase;font-weight:700}.route-word{grid-template-columns:repeat(5, var(--route-cell));gap:calc(5 * var(--u));display:grid}.route-word .cell{width:var(--route-cell);height:var(--route-cell);border-width:calc(1.1 * var(--u))}.route-word .glyph{height:calc(var(--route-cell) * .646)}.route-step--start .cell,.route-step--turnaround .cell,.route-step--home .cell{border-color:var(--ink)}.calendar{z-index:10;overscroll-behavior:contain;background:var(--bg);animation:.2s ease-out both fade-in;position:fixed;inset:0;overflow-y:auto}.calendar-inner{--cal-gap:var(--cell-gap);--cal-cell:calc((var(--board-width) - 6 * var(--cal-gap)) / 7);max-width:430px;padding:0 env(safe-area-inset-right) calc(40 * var(--u) + env(safe-area-inset-bottom)) env(safe-area-inset-left);flex-direction:column;align-items:center;margin:0 auto;display:flex}.calendar-head{padding-top:calc(env(safe-area-inset-top) + 16 * var(--u));align-self:stretch;position:relative}.calendar-close svg{stroke-width:1.5px;vector-effect:non-scaling-stroke;width:100%;height:100%;display:block}.month-bar{width:var(--board-width);margin-top:calc(40 * var(--u));justify-content:space-between;align-items:center;display:flex}.month-name{font-size:calc(17 * var(--u));letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:700;line-height:1}.month-step{width:calc(29 * var(--u));height:calc(29 * var(--u));color:var(--ink);cursor:pointer;appearance:none;background:0 0;border:0;margin:0;padding:0;position:relative}.month-step svg{stroke-width:1.5px;vector-effect:non-scaling-stroke;width:100%;height:100%;display:block}.month-step:disabled{color:#0003;cursor:default}.month-grid{margin:calc(26 * var(--u) - var(--cal-gap)) calc(-1 * var(--cal-gap)) 0;border-collapse:separate;border-spacing:var(--cal-gap);table-layout:fixed}.month-grid th{padding:0 0 calc(4 * var(--u));color:var(--muted);font-size:calc(10.5 * var(--u));text-align:center;font-weight:700;line-height:1}.month-grid abbr{text-decoration:none}.month-grid td{width:var(--cal-cell);height:var(--cal-cell);padding:0}.day{width:var(--cal-cell);height:var(--cal-cell);border:var(--cell-line-width) solid var(--tile-line);background:var(--tile);color:var(--ink);font:inherit;font-size:calc(16 * var(--u));font-variant-numeric:tabular-nums;cursor:pointer;appearance:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;font-weight:700;line-height:1;display:flex;position:relative}.day:not(:disabled):active{background:var(--key)}.day.is-today{border-color:var(--given-line);background:var(--given)}.day.is-current{border-color:var(--ink)}.day.is-locked{color:#0000004d;cursor:default;background:0 0;border-color:#0000}.day-mark{top:calc(3 * var(--u));right:calc(3 * var(--u));width:calc(11 * var(--u));height:calc(11 * var(--u));position:absolute}.day-mark svg{stroke-width:3px;width:100%;height:100%;display:block}:root{--rule:#7a735259;--coffee:#fd0;--coffee-ink:#222}.modal{z-index:20;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:#00000052;justify-content:center;align-items:center;animation:.18s ease-out both fade-in;display:flex;position:fixed;inset:0}.modal-panel{width:min(100%, calc(var(--board-width) + 24 * var(--u)));overscroll-behavior:contain;border:var(--cell-line-width) solid var(--tile-line);background:var(--tile);max-height:100%;color:var(--ink);overflow-y:auto}.modal-head{padding:calc(10 * var(--u)) calc(6 * var(--u)) calc(4 * var(--u)) calc(20 * var(--u));justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-title{font-size:calc(15 * var(--u));letter-spacing:.14em;text-transform:uppercase;outline:none;margin:0;font-weight:700;line-height:1.2}.modal-close{width:44px;height:44px;color:var(--ink);cursor:pointer;appearance:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.modal-close svg{width:calc(22 * var(--u));height:calc(22 * var(--u));stroke-width:1.5px}.modal-body{padding:0 0 calc(4 * var(--u))}.modal-text{margin:calc(6 * var(--u)) calc(20 * var(--u)) calc(18 * var(--u));font-size:calc(15 * var(--u));line-height:1.45}.modal-actions{gap:calc(10 * var(--u));padding:0 calc(20 * var(--u)) calc(18 * var(--u));display:flex}.modal-actions>*{flex:1}.modal-actions--stacked{flex-direction:column}.modal-button{min-height:48px;padding:0 calc(14 * var(--u));box-shadow:0 0 0 var(--hairline) var(--key-line);color:var(--ink);font:inherit;font-size:calc(12.5 * var(--u));letter-spacing:.14em;text-align:center;text-transform:uppercase;cursor:pointer;appearance:none;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;margin:0;font-weight:700;text-decoration:none;display:flex}.modal-button:active{background:var(--key)}.modal-button--danger{background:var(--ink);box-shadow:none;color:var(--tile)}.modal-button--danger:active{background:#333}.modal-button--coffee,.modal-button--coffee:active{background:var(--coffee);color:var(--coffee-ink)}.settings-group{margin:0;padding:0;list-style:none}.settings-group--standard{margin-top:calc(14 * var(--u));border-top:var(--cell-line-width) solid var(--tile-line)}.settings-row{align-items:center;gap:calc(14 * var(--u));width:100%;min-height:52px;padding:0 calc(16 * var(--u)) 0 calc(20 * var(--u));border:0;border-top:1px solid var(--rule);color:var(--ink);font:inherit;font-size:calc(12.5 * var(--u));letter-spacing:.12em;text-align:left;text-transform:uppercase;cursor:pointer;appearance:none;background:0 0;border-radius:0;margin:0;font-weight:700;text-decoration:none;display:flex}.settings-group--standard li:first-child .settings-row{border-top:0}.settings-row:active{background:var(--key)}.settings-row--support,.settings-row--support:active{background:var(--coffee);color:var(--coffee-ink)}.settings-icon,.settings-trail{flex:none;display:flex}.settings-icon svg{width:calc(20 * var(--u));height:calc(20 * var(--u));stroke-width:1.75px}.settings-label{flex:1}.settings-trail svg{width:calc(16 * var(--u));height:calc(16 * var(--u));stroke-width:2px;opacity:.55}.settings-status{padding:calc(10 * var(--u)) calc(20 * var(--u)) 0;font-size:calc(14 * var(--u));margin:0;line-height:1.4}.settings-status:empty{display:none}.settings-version{padding:calc(16 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u));color:var(--muted);font-size:calc(10.5 * var(--u));letter-spacing:.16em;text-align:center;text-transform:uppercase;margin:0;font-weight:700}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.row.is-arriving{animation:.24s cubic-bezier(.2,.7,.2,1) row-arrive}.row.is-appearing{animation:.2s ease-out .14s both fade-in}.row.is-swapping{animation:.32s ease-out .18s both fade-in}.row.is-nudged{animation:.28s ease-in-out nudge}.row-ghost{z-index:0;pointer-events:none;animation:.24s ease-in forwards row-leave;position:absolute;left:0}.play.is-leaving{animation:.24s ease-in forwards fade-out}@keyframes row-arrive{0%{transform:translateY(var(--row-pitch))}}@keyframes row-leave{to{transform:translateY(calc(var(--row-pitch) * -.4));opacity:0}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes nudge{20%{transform:translateX(calc(-5 * var(--u)))}40%{transform:translateX(calc(5 * var(--u)))}60%{transform:translateX(calc(-3 * var(--u)))}80%{transform:translateX(calc(3 * var(--u)))}}@keyframes dip{50%{opacity:.35}}@keyframes rise{0%{opacity:0;transform:translateY(calc(12 * var(--u)))}}@keyframes attempt{0%{opacity:0;transform:scale(1.18)}12%{opacity:1;transform:none}74%{opacity:1}to{opacity:0}}@keyframes attempt-fade{0%,to{opacity:0}12%,74%{opacity:1}}@keyframes attempted{0%,74%{border-color:var(--clash)}}@keyframes clash{0%,74%{border-color:var(--clash);background:var(--clash-fill);color:var(--clash)}}@media (prefers-reduced-motion:reduce){.attempt{animation-name:attempt-fade}.row.is-arriving{animation-name:fade-in}.row-ghost{animation-name:fade-out}.row.is-nudged{animation-name:dip}.route-step{animation-name:fade-in}}
