:root{--desk: #35322b;--desk-hole: #26241e;--card: #eae3d1;--card-deep: #e2dac5;--ink: #2b2721;--muted: #665d4d;--faint: #9a907b;--line: #cdc2a6;--day: #93331f;--night: #31436b;--rest: #4c4739;--press: #ddd3ba;--mono: "IBM Plex Mono", ui-monospace, monospace;--sc: "Noto Sans SC", sans-serif}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:16px}body{background:var(--desk);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px);font-family:var(--sc);color:var(--ink);display:flex;justify-content:center;min-height:100vh;-webkit-font-smoothing:antialiased}@media(min-width:768px){body{padding:40px 0}}button{font-family:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.cell:focus-visible{outline-offset:-3px}.card{width:100%;max-width:390px;background:var(--card);background-image:repeating-linear-gradient(0deg,rgba(43,39,33,.018) 0 1px,transparent 1px 4px);position:relative;display:flex;box-shadow:0 1px #ffffff40 inset,0 18px 44px #00000080}@media(min-width:768px){.card{border-radius:2px}}.rail{width:16px;flex:none;background-image:radial-gradient(circle at 8px 12px,var(--desk-hole) 3.6px,transparent 4.2px);background-size:16px 24px;filter:drop-shadow(0 1px 0 rgba(255,255,255,.18));border-right:1px solid var(--line)}.rail.right{border-right:none;border-left:1px solid var(--line)}.body{flex:1;min-width:0;padding:20px 16px 0}.cardhead{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:18px}.cardhead h1{font-weight:900;font-size:19px;letter-spacing:.14em;line-height:1.2}.cardhead .en{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);margin-top:3px;text-transform:uppercase}.cardno{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;line-height:1.7}.cardno b{color:var(--ink);font-weight:600}.btn-set{display:block;margin-top:6px;margin-left:auto;background:none;border:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--muted);padding:3px 8px;cursor:pointer;border-radius:2px}.btn-set:hover{border-color:var(--ink);color:var(--ink)}.btn-set svg{vertical-align:-2px;margin-right:3px}.hero{display:flex;gap:18px;align-items:center;margin-bottom:16px}.stamp{width:104px;height:104px;flex:none;border-radius:50%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid currentColor;transform:rotate(-5deg);box-shadow:0 0 0 2px var(--card) inset,0 0 0 3.5px currentColor inset;opacity:.94}.stamp:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,transparent 42%,rgba(234,227,209,.3) 50%,transparent 58%);pointer-events:none}.stamp .zi{font-weight:900;font-size:44px;line-height:1;letter-spacing:.02em}.stamp .sub{font-family:var(--mono);font-size:12px;letter-spacing:.2em;margin-top:5px}.stamp.day{color:var(--day)}.stamp.night{color:var(--night)}.stamp.rest{color:var(--rest)}.today-read{min-width:0;flex:1}.today-read .lab{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.today-read .date{font-family:var(--mono);font-weight:700;font-size:38px;line-height:1.05;letter-spacing:.01em;margin-top:2px;font-variant-numeric:tabular-nums}.today-read .date small{font-size:15px;font-weight:500;color:var(--muted);margin-right:6px}.today-read .wk{font-size:14px;color:var(--ink);margin-top:2px;font-weight:500}.today-read .wk .hol{color:var(--day)}.today-read .time{font-family:var(--mono);font-size:14px;margin-top:8px;padding:5px 0 0;border-top:1px dotted var(--line);font-weight:500}.today-read .cyc{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:4px}.dial{border:1px solid var(--line);border-radius:2px;background:var(--card-deep);padding:10px 12px 8px;margin-bottom:14px;position:relative}.dial .cap{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-bottom:8px;display:flex;justify-content:space-between}.ticks{display:flex;position:relative}.ticks:before{content:"";position:absolute;left:0;right:0;top:14px;height:5px;background-image:repeating-linear-gradient(90deg,var(--faint) 0 1px,transparent 1px calc(100% / 12));border-bottom:1px solid var(--line)}.tick{flex:1;text-align:center;position:relative;padding-top:22px}.tick .n{font-family:var(--mono);font-size:12px;color:var(--muted);position:absolute;top:-1px;left:50%;transform:translate(-50%)}.tick .zi{font-size:13px;font-weight:700;color:var(--muted)}.tick.t-day .zi{color:var(--day)}.tick.t-night .zi{color:var(--night)}.tick.on{background:radial-gradient(circle at 50% 26px,rgba(43,39,33,.07),transparent 70%)}.tick.on:before{content:"▼";position:absolute;top:2px;left:50%;transform:translate(-50%);font-size:9px;color:var(--ink)}.tick.on .n{visibility:hidden}.tick.on .zi{color:var(--ink);font-weight:900;box-shadow:0 0 0 1.5px currentColor;padding:0 4px}.tomorrow{font-family:var(--mono);font-size:13px;margin-bottom:18px;color:var(--ink);display:flex;align-items:baseline;gap:8px}.tomorrow .t{color:var(--muted);font-size:12px;letter-spacing:.16em;text-transform:uppercase;flex:none}.tomorrow .lead{flex:1;border-bottom:1px dotted var(--faint);transform:translateY(-3px)}.tomorrow b{font-weight:600}.ink-day{color:var(--day)}.ink-night{color:var(--night)}.ink-rest{color:var(--rest)}.monthbar{display:flex;align-items:center;justify-content:space-between;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:8px 2px;margin-bottom:8px}.monthbar .title{font-family:var(--mono);font-weight:600;font-size:15px;letter-spacing:.06em}.monthbar .title span{font-family:var(--sc);font-weight:500;font-size:13px;color:var(--muted);margin-left:6px}.mnav{display:flex;gap:6px;align-items:center}.mbtn{background:none;border:1px solid var(--line);width:30px;height:26px;cursor:pointer;color:var(--muted);font-family:var(--mono);font-size:14px;line-height:1;border-radius:2px;display:flex;align-items:center;justify-content:center}.mbtn:hover{border-color:var(--ink);color:var(--ink)}.mbtn.today-btn{width:auto;padding:0 10px;font-size:12px;letter-spacing:.1em}.wdays,.grid{display:grid;grid-template-columns:repeat(7,1fr)}.wdays{margin-bottom:4px}.wdays div{text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--muted);padding:2px 0}.grid{border-top:1px solid var(--line);row-gap:2px}.cell{position:relative;height:50px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:4px}.cell:before{content:"";position:absolute;inset:2px 1px;border:1px solid transparent;border-radius:2px}.cell.in:before{border-color:#cdc2a68c}.cell .dnum{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.3}.cell .mark{margin-top:2px;width:24px;height:19px;border-radius:2px;font-family:var(--sc);font-weight:700;font-size:12px;color:#f5f0e2;display:flex;align-items:center;justify-content:center;letter-spacing:.06em}.cell.day .mark{background:var(--day)}.cell.night .mark{background:var(--night)}.cell.rest .holewrap{margin-top:3px;display:flex;align-items:center;gap:3px}.hole{width:15px;height:15px;border-radius:50%;background:var(--desk-hole);box-shadow:inset 0 1.5px 2.5px #000000bf,0 .5px #ffffff59}.cell.rest .hz{font-size:12px;color:var(--rest);font-weight:500}.cell.out{cursor:default}.cell.out:before{border-style:dashed;border-color:#cdc2a64d}.cell.isToday:before{border:2px solid var(--ink);border-radius:3px;box-shadow:0 0 0 1px var(--card),0 0 0 2.6px var(--ink)}.cell.isToday .dnum{font-weight:700;color:var(--ink)}.cell.sel:before{background:var(--press)}.cell.in:hover:before{background:#ddd3ba80}.cell .holmark{position:absolute;top:5px;right:4px;width:7px;height:7px;background:var(--day);transform:rotate(45deg);border-radius:1px}.cell .mkwmark{position:absolute;top:5px;right:4px;width:7px;height:7px;border:1.5px solid var(--rest);border-radius:1px}.legend{display:flex;gap:12px;flex-wrap:wrap;padding:9px 2px;margin-top:6px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.legend .li{display:flex;align-items:center;gap:5px}.legend .sq{width:18px;height:14px;border-radius:2px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#f5f0e2;font-family:var(--sc)}.legend .sq.d{background:var(--day)}.legend .sq.n{background:var(--night)}.legend .hole{width:12px;height:12px;margin:0 2px}.legend .dm{width:7px;height:7px;background:var(--day);transform:rotate(45deg);border-radius:1px;margin:0 5px}.legend .mw{width:7px;height:7px;border:1.5px solid var(--rest);border-radius:1px;margin:0 5px}.legend .tm{font-family:var(--mono);font-size:12px}.readout{border:1px solid var(--ink);border-radius:2px;background:var(--card-deep);margin-top:16px;padding:12px 14px;position:relative}.readout .cap{position:absolute;top:-8px;left:10px;background:var(--ink);color:var(--card);font-family:var(--mono);font-size:12px;letter-spacing:.18em;padding:1px 7px;text-transform:uppercase}.ro-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-family:var(--mono);font-size:13px}.ro-row+.ro-row{border-top:1px dotted var(--line)}.ro-row .k{color:var(--muted);font-size:12px;letter-spacing:.14em;width:64px;flex:none;text-transform:uppercase;font-family:var(--mono)}.ro-row .lead{flex:1;border-bottom:1px dotted var(--faint);transform:translateY(-3px)}.ro-row .v{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.ro-row .v .zi{font-family:var(--sc);font-weight:900;font-size:16px;padding:0 2px}.tally{margin-top:18px;border-top:2px solid var(--ink);padding-top:12px}.tally .cap{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;margin-bottom:9px}.tape{display:flex;align-items:center;gap:8px;padding:3px 0}.tape .tl{font-family:var(--mono);font-size:12px;width:34px;flex:none;font-weight:500}.tape .holes{display:flex;gap:2px;flex:1;min-width:0}.tape .p{flex:1 1 0;min-width:0;height:10px;border-radius:1.5px;border:1px solid var(--line);background:var(--card)}.tape.d .p.on{background:var(--day);border-color:var(--day);box-shadow:inset 0 -2px #0000002e}.tape.n .p.on{background:var(--night);border-color:var(--night);box-shadow:inset 0 -2px #0000002e}.tape.r .p.on{background:none;border-color:var(--faint);background-image:radial-gradient(circle at 50% 50%,var(--desk-hole) 2.6px,transparent 3px)}.tape.d .tl{color:var(--day)}.tape.n .tl{color:var(--night)}.tape.r .tl{color:var(--rest)}.tape .cnt{font-family:var(--mono);font-size:14px;font-weight:700;width:26px;text-align:right;font-variant-numeric:tabular-nums}.forms{margin-top:20px;border-top:1px solid var(--ink);padding-top:12px}.forms .cap{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.frow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 2px;border-bottom:1px dotted var(--line);font-size:14px}.frow .fk{color:var(--muted);font-size:13px;flex:none}.frow .fv{font-family:var(--mono);font-size:13px;font-weight:500;text-align:right;white-space:nowrap}.frow .go{flex:none;background:none;border:1px solid var(--ink);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:12px;padding:3px 10px;color:var(--ink);letter-spacing:.08em}.frow .go:hover{background:var(--ink);color:var(--card)}.subpanel{border:1px solid var(--line);border-radius:2px;background:var(--card-deep);padding:12px;margin-top:10px}.subpanel .hint{font-size:12px;color:var(--muted);margin-bottom:8px}.subpanel .linkrow{display:flex;gap:6px}.subpanel input[url]{flex:1;min-width:0;font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:2px;padding:5px 8px}.subpanel .steps{margin-top:10px;display:grid;gap:6px}.subpanel .step{display:flex;gap:8px;font-size:12px;color:var(--muted);line-height:1.6}.subpanel .step .no{font-family:var(--mono);font-size:12px;color:var(--ink);flex:none;border:1px solid var(--line);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.subpanel .note{margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--faint)}.mask{position:fixed;inset:0;background:#26241ea8;z-index:40;display:flex;align-items:flex-end;justify-content:center}@media(min-width:640px){.mask{align-items:center}}.modal{width:100%;max-width:390px;background:var(--card);background-image:repeating-linear-gradient(0deg,rgba(43,39,33,.018) 0 1px,transparent 1px 4px);box-shadow:0 18px 44px #00000080;margin:0 0 12px;border-radius:2px;max-height:86vh;overflow-y:auto}@media(min-width:640px){.modal{margin-bottom:0}}.modal .mhead{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:2px solid var(--ink)}.modal .mhead h2{font-size:16px;font-weight:900;letter-spacing:.14em}.modal .mhead .en{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}.modal .mclose{background:none;border:1px solid var(--line);border-radius:2px;cursor:pointer;width:26px;height:26px;color:var(--muted);font-family:var(--mono);font-size:14px}.modal .mclose:hover{border-color:var(--ink);color:var(--ink)}.modal .mbody{padding:14px 16px 4px}.mfield{margin-bottom:14px}.mfield label{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.mfield input{width:100%;font-family:var(--mono);font-size:14px;color:var(--ink);background:var(--card-deep);border:1px solid var(--line);border-radius:2px;padding:7px 9px;color-scheme:light}.mfield input::-webkit-calendar-picker-indicator{filter:sepia(1) hue-rotate(-18deg) saturate(2.2) brightness(.55);opacity:.8}.mfield input:focus{outline:none;border-color:var(--ink)}.mfield .hintline{font-size:12px;color:var(--faint);margin-top:4px}.mfield .pair{display:flex;align-items:center;gap:8px}.mfield .pair .dash{font-family:var(--mono);color:var(--muted)}.chips{display:flex;gap:8px}.chip{background:none;border:1px solid var(--line);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:12px;color:var(--muted);padding:5px 10px}.chip.on{border-color:var(--ink);color:var(--ink);background:var(--press);font-weight:600}.modal .mfoot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--line);margin-top:6px}.modal .mfoot .go{background:none;border:1px solid var(--ink);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:12px;padding:5px 14px;color:var(--ink);letter-spacing:.08em}.modal .mfoot .go.primary{background:var(--ink);color:var(--card)}.modal .mfoot .go:hover{opacity:.85}.cardfoot{margin-top:24px;padding:0 0 18px;text-align:center}.tear{height:10px;margin-bottom:10px;background-image:radial-gradient(circle at 6px 5px,var(--desk-hole) 2.4px,transparent 3px);background-size:12px 10px;opacity:.85;border-top:1px dashed var(--faint)}.cardfoot .fin{font-family:var(--mono);font-size:12px;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}
