:root{--paper:#efe6d4;--ink:#1c1814;--card:#fbf6ec;--line:#cbbfa8;--muted:#4e463c;--pin:#8a3412;--fill:#1c1814;--on-fill:#fbf6ec;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--paper);background-image:radial-gradient(#d5c7ae .85px,transparent 1px);background-size:16px 18px;color:var(--ink);font-family:Segoe UI,Helvetica Neue,sans-serif;font-size:1.05rem;line-height:1.55}main{width:min(40rem,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 4rem}.skip{position:absolute;left:.75rem;top:.5rem;transform:translateY(-150%);background:var(--fill);color:var(--on-fill);padding:.4rem .7rem}.skip:focus{transform:none}.updated{margin:0 0 .35rem;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}h1,h2,h3{font-family:Palatino,Palatino Linotype,Georgia,serif;font-weight:600;letter-spacing:-.02em;line-height:1.2}h1{margin:0 0 .35rem;font-size:1.7rem}.hero{margin:0 0 .85rem;max-width:36rem}h2{margin:2.2rem 0 .6rem;font-size:1.45rem}h3{margin:1.15rem 0 .3rem;font-size:1.12rem}li,p{margin:.4rem 0}a{color:var(--pin)}a:hover{color:var(--ink)}.tool{background:var(--card);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);padding:.9rem .95rem .75rem}.dir-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}#out-label,.dir-label,label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}button,textarea{font:inherit}button{background:var(--fill);color:var(--on-fill);border:2px solid var(--ink);padding:.35rem .7rem;cursor:pointer}button:hover{background:var(--pin);border-color:var(--pin)}button:disabled{cursor:not-allowed;background:#8a8175;border-color:#8a8175}.dir{background:var(--card);color:var(--ink)}.dir[aria-pressed=true]{background:var(--fill);color:var(--on-fill)}textarea{display:block;width:100%;margin-top:.3rem;padding:.7rem .75rem;border:1.5px solid var(--ink);background:#fffdf8;color:var(--ink);resize:vertical;min-height:8.5rem;font-size:1.05rem}.out-wrap{margin-top:.85rem}.out-box{position:relative;margin-top:.3rem}.copy{position:absolute;top:.55rem;right:.55rem}.out{margin:0;min-height:5.2rem;padding:.75rem 6.4rem .75rem .8rem;border:1.5px solid var(--line);background:#fffdf8;font-family:Segoe UI Symbol,Apple Braille,Segoe UI,sans-serif;font-size:2rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.out.is-empty{color:var(--muted);font-family:Segoe UI,Helvetica Neue,sans-serif;font-size:1rem}.grade{margin:.55rem 0 0;color:var(--muted);font-size:.82rem}.day{display:grid;grid-template-columns:1fr auto;grid-gap:1rem;gap:1rem;align-items:center;margin-top:1.1rem;padding:.9rem 1rem;background:var(--card);border:1.5px solid var(--line)}.day-glyph{font-family:Segoe UI Symbol,Apple Braille,Segoe UI,sans-serif;font-size:4.25rem;line-height:1;color:var(--pin)}.day-dots,.day-glyph,.day-name{margin:0;text-align:center}.day-name{font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:1.15rem}.day-dots{color:var(--muted);font-size:.92rem}ol,ul{padding-left:1.2rem}.slot{margin:.9rem 0 0;padding:.7rem .8rem;border:1.5px dashed var(--pin);background:rgba(138,52,18,.05);color:var(--muted);font-size:.88rem}.slot p{margin:.15rem 0}.slot p:last-child{font-family:Consolas,Courier New,monospace;color:var(--ink)}:focus-visible{outline:2px solid var(--pin);outline-offset:2px}@media (max-width:640px){h1{font-size:1.45rem}.day{grid-template-columns:1fr}.out{font-size:1.65rem}}