:root{color-scheme:light;--ink:#302b27;--muted:#746e68;--line:#aaa49d;--paper:#faf9f6;--sat:#267d89;--sun:#b74e61}*{box-sizing:border-box}html{background:#f1f0ec}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Helvetica Neue","Yu Gothic",Meiryo,sans-serif}button,input{font:inherit}button{cursor:pointer}main{width:min(920px,100%);min-height:100vh;margin:auto;padding:clamp(22px,5vw,58px) clamp(12px,3vw,30px) 70px;background:#fff}.calendar-head{display:flex;align-items:center;justify-content:space-between;min-height:128px;padding:0 14px}.month-mark{display:flex;align-items:flex-end;gap:16px}.month-mark>strong{font:300 clamp(76px,12vw,126px)/.75 Georgia,serif;letter-spacing:-.08em}.month-mark div{display:grid;padding-bottom:4px}.month-mark span{font:500 clamp(16px,2vw,22px)/1.2 Georgia,serif}.month-mark small{font-size:14px;margin-top:3px}.season-mark{position:relative;width:128px;height:100px;color:#d64b61}.season-mark span{position:absolute;right:12px;top:7px;font-size:62px;transform:rotate(-12deg)}.season-mark b{position:absolute;left:8px;top:36px;color:#e0aa2e;font-size:40px}.season-mark i{position:absolute;left:35px;bottom:6px;width:77px;height:50px;border:2px solid #628a57;border-width:0 0 2px 2px;border-radius:0 0 0 80%;transform:rotate(-12deg)}.month-nav{display:flex;justify-content:center;align-items:center;gap:10px;margin:-10px 0 14px}.month-nav button{border:0;background:transparent;color:var(--muted);min-width:44px;min-height:38px;font-size:24px}.month-nav #today{font-size:13px;border-bottom:1px solid var(--line)}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{text-align:center;padding:8px 2px;font-size:11px;font-weight:700;letter-spacing:.06em;border-bottom:1px solid var(--line)}.weekdays span:nth-child(6){color:var(--sat)}.weekdays span:nth-child(7){color:var(--sun)}.day{position:relative;min-height:116px;padding:7px 5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);outline:0}.day:nth-child(7n+1){border-left:1px solid var(--line)}.day:not(.outside):hover,.day:not(.outside):focus-visible{background:#f7f5ef}.day-number{font:400 13px/1 Georgia,serif}.day.saturday .day-number{color:var(--sat)}.day.sunday .day-number,.day.holiday .day-number{color:var(--sun)}.day.outside{background:#fcfbf8}.day.today{box-shadow:inset 0 0 0 2px #d4a94f}.holiday-name{display:block;margin-top:3px;color:var(--sun);font-size:9px;line-height:1.15;overflow-wrap:anywhere}.events{display:grid;gap:3px;margin-top:6px}.event-label{width:100%;padding:3px 4px;border:0;border-radius:3px;color:#fff;background:#080808;font-size:11px;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.event-symbol{display:flex;align-items:center;gap:3px;width:100%;padding:0;border:0;background:transparent;color:#000;text-align:left}.event-symbol b{font:900 clamp(26px,4vw,42px)/.8 Arial,sans-serif}.event-symbol.circle b{color:#e64b4b}.event-symbol.triangle b{font-weight:600}.event-symbol small{font-size:9px;line-height:1.1;overflow-wrap:anywhere}.calendar+footer,main>footer{display:flex;justify-content:space-between;gap:14px;padding:13px 4px;color:var(--muted);font-size:11px}.delta-home{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:1000;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:10px 15px;border:1px solid #68625d;border-radius:6px;color:#fff;background:#302b27;box-shadow:0 8px 22px #0003;font-size:11px;font-weight:800;letter-spacing:.07em;text-decoration:none}.delta-home span{font-weight:500;letter-spacing:.02em}dialog{width:min(480px,calc(100% - 20px));border:1px solid #8f8982;border-radius:6px;padding:0;color:var(--ink);background:#fff;box-shadow:0 20px 70px #0005}dialog::backdrop{background:#302b2766}dialog form{padding:22px}dialog header{display:flex;justify-content:space-between;align-items:flex-start}dialog header small{color:var(--muted)}dialog h2{margin:2px 0 20px;font:500 24px Georgia,"Yu Mincho",serif}#closeDialog{border:0;background:transparent;font-size:24px}dialog>form>label{display:grid;gap:6px;font-weight:700}dialog input[type=text],dialog #eventTitle{width:100%;padding:12px;border:1px solid #aaa49d;border-radius:4px;font-size:16px}fieldset{margin:17px 0;border:1px solid #ccc5bd;border-radius:4px}legend{padding:0 5px;font-size:12px}.type-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.type-options label{display:grid;place-items:center;min-height:58px;border:1px solid transparent;border-radius:4px}.type-options label:has(input:checked){border-color:#625c56;background:#f5f2eb}.type-options input{position:absolute;opacity:0}.sample-label{padding:4px 6px;color:#fff;background:#000;font-size:11px}.sample-symbol{font:800 30px Arial}.actions{display:flex;justify-content:space-between}.actions button{min-width:90px;padding:10px 14px;border-radius:4px}.delete{border:1px solid #c59ca3;color:#a3394c;background:#fff}.save{border:1px solid #302b27;color:#fff;background:#302b27}#message{min-height:20px;color:#b0394c;font-size:13px}
@media(max-width:640px){main{padding:20px 7px 76px}.calendar-head{min-height:104px;padding:0 10px}.month-mark>strong{font-size:74px}.month-mark span{font-size:15px}.season-mark{width:94px;transform:scale(.82);transform-origin:right center}.weekdays span{font-size:9px}.day{min-height:91px;padding:5px 3px}.holiday-name{font-size:7px}.event-label{font-size:9px;padding:3px 2px}.event-symbol{display:grid;justify-items:center}.event-symbol b{font-size:29px}.event-symbol small{display:none}.delta-home{right:9px;bottom:max(9px,env(safe-area-inset-bottom));padding:9px 11px;font-size:9px}.calendar+footer,main>footer{padding-right:130px}.type-options{grid-template-columns:repeat(4,1fr)}}
@media(max-width:390px){.day{min-height:82px}.day-number{font-size:11px}.holiday-name{line-height:1;font-size:6px}.event-label{font-size:8px;line-height:1.1}.month-mark{gap:10px}.month-mark>strong{font-size:66px}}

.type-options{grid-template-columns:repeat(5,1fr)}.sample-circle{display:flex;align-items:center;font-size:10px;font-weight:800}.sample-circle b{color:#e64b4b;font:800 24px Arial}.event-symbol.period-circle{display:flex;justify-content:center;gap:1px;font-weight:800}.event-symbol.period-circle span{font-size:11px}.event-symbol.period-circle b{color:#e64b4b}.disabled{opacity:.4}.disabled input{cursor:not-allowed;background:#eee}
@media(max-width:640px){.type-options{grid-template-columns:repeat(3,1fr)}.event-symbol.period-circle{display:flex}.event-symbol.period-circle span{font-size:8px}.event-symbol.period-circle b{font-size:26px}}

.font-controls{display:flex;align-items:center;justify-content:flex-end;gap:5px;height:0;position:relative;top:-38px;color:var(--muted);font-size:10px}.font-controls button{width:29px;height:29px;padding:0;border:1px solid #b9b2aa;border-radius:50%;background:#fff;color:var(--ink)}.font-controls output{min-width:27px;text-align:center}.event-symbol.cross{justify-content:center;min-height:70px}.event-symbol.cross b{font-size:clamp(64px,9vw,96px);line-height:.72;letter-spacing:-.1em}.event-symbol.period-circle{justify-content:center;min-height:62px}.event-symbol.period-circle b{color:#111;font:800 clamp(26px,4vw,48px)/.9 "Yu Gothic",Meiryo,sans-serif;letter-spacing:-.08em;white-space:nowrap}.sample-circle{color:#111;font:800 15px "Yu Gothic",Meiryo,sans-serif;letter-spacing:-.08em;white-space:nowrap}
html[data-font="small"] .event-label{font-size:9px}html[data-font="small"] .holiday-name{font-size:8px}html[data-font="small"] .event-symbol.cross b{font-size:clamp(54px,8vw,82px)}html[data-font="small"] .event-symbol.period-circle b{font-size:clamp(22px,3.5vw,40px)}
html[data-font="large"] .event-label{font-size:14px}html[data-font="large"] .holiday-name{font-size:11px}html[data-font="large"] .event-symbol.cross b{font-size:clamp(72px,10vw,106px)}html[data-font="large"] .event-symbol.period-circle b{font-size:clamp(30px,4.6vw,54px)}
@media(max-width:640px){.font-controls{height:auto;top:auto;justify-content:center;margin:-8px 0 8px}.event-symbol.cross{min-height:48px}.event-symbol.cross b{font-size:52px}.event-symbol.period-circle{min-height:46px}.event-symbol.period-circle b{font-size:clamp(17px,5.2vw,24px)}html[data-font="small"] .event-symbol.cross b{font-size:44px}html[data-font="large"] .event-symbol.cross b{font-size:60px}html[data-font="small"] .event-symbol.period-circle b{font-size:16px}html[data-font="large"] .event-symbol.period-circle b{font-size:27px}}

.season-mark{width:150px;height:110px;background-image:url('monthly-botanicals.png');background-repeat:no-repeat;background-size:400% 300%;background-color:transparent}.season-mark span,.season-mark i,.season-mark b{position:static}.events{gap:0;margin-top:0}.event-label{margin:0;padding:1px 3px;line-height:1.05}.event-symbol.period-circle{max-width:100%;overflow:hidden}.event-symbol.period-circle b{display:flex;align-items:center;justify-content:center;max-width:100%;color:#111;font-size:clamp(18px,2.3vw,28px);line-height:.95;letter-spacing:-.1em}.event-symbol.period-circle b span,.event-symbol.period-circle b i{font:inherit}.event-symbol.period-circle b i{color:#e33434;font-style:normal;font-weight:900;-webkit-text-stroke:.45px #e33434}html[data-font="small"] .event-symbol.period-circle b{font-size:clamp(16px,2vw,24px)}html[data-font="large"] .event-symbol.period-circle b{font-size:clamp(20px,2.6vw,30px)}
@media(max-width:640px){.season-mark{width:112px;height:90px}.event-symbol.period-circle{min-height:38px}.event-symbol.period-circle b{font-size:clamp(11px,3.4vw,20px)}html[data-font="small"] .event-symbol.period-circle b{font-size:clamp(10px,3vw,18px)}html[data-font="large"] .event-symbol.period-circle b{font-size:clamp(12px,3.8vw,22px)}}

/* Unified symbol sizing and the new minus / standard / plus scale. */
.event-symbol.cross,.event-symbol.triangle{display:flex;align-items:center;justify-content:center;min-height:78px;width:100%;overflow:hidden}.event-symbol.cross b,.event-symbol.triangle b{font:900 clamp(72px,10vw,106px)/.72 "Arial Black",Arial,sans-serif;letter-spacing:0;-webkit-text-stroke:1.2px #000}.event-symbol.period-circle b{font-size:clamp(20px,2.6vw,30px)}.event-symbol.period-circle b i{color:inherit;font-family:"Apple Color Emoji","Noto Color Emoji","Segoe UI Emoji",sans-serif;font-weight:400;-webkit-text-stroke:0}
html[data-font="minus"] .event-label{font-size:11px}html[data-font="minus"] .holiday-name{font-size:9px}html[data-font="minus"] .event-symbol.cross b,html[data-font="minus"] .event-symbol.triangle b{font-size:clamp(64px,9vw,96px)}html[data-font="minus"] .event-symbol.period-circle b{font-size:clamp(18px,2.3vw,28px)}
html[data-font="standard"] .event-label{font-size:14px}html[data-font="standard"] .holiday-name{font-size:11px}html[data-font="standard"] .event-symbol.cross b,html[data-font="standard"] .event-symbol.triangle b{font-size:clamp(72px,10vw,106px)}html[data-font="standard"] .event-symbol.period-circle b{font-size:clamp(20px,2.6vw,30px)}
html[data-font="plus"] .event-label{font-size:17px}html[data-font="plus"] .holiday-name{font-size:13px}html[data-font="plus"] .event-symbol.cross b,html[data-font="plus"] .event-symbol.triangle b{font-size:clamp(78px,11vw,114px)}html[data-font="plus"] .event-symbol.period-circle b{font-size:clamp(21px,2.8vw,32px)}
@media(max-width:640px){.event-symbol.cross,.event-symbol.triangle{min-height:52px}.event-symbol.cross b,.event-symbol.triangle b{font-size:60px}.event-symbol.period-circle b{font-size:clamp(12px,3.8vw,22px)}html[data-font="minus"] .event-symbol.cross b,html[data-font="minus"] .event-symbol.triangle b{font-size:52px}html[data-font="minus"] .event-symbol.period-circle b{font-size:clamp(11px,3.4vw,20px)}html[data-font="standard"] .event-symbol.cross b,html[data-font="standard"] .event-symbol.triangle b{font-size:60px}html[data-font="standard"] .event-symbol.period-circle b{font-size:clamp(12px,3.8vw,22px)}html[data-font="plus"] .event-symbol.cross b,html[data-font="plus"] .event-symbol.triangle b{font-size:66px}html[data-font="plus"] .event-symbol.period-circle b{font-size:clamp(13px,4vw,23px)}}

.event-symbol.period-circle b{letter-spacing:0}.event-symbol.period-circle b span{letter-spacing:-.06em}.event-symbol.period-circle b i{margin-left:.12em}.event-symbol.triangle b{-webkit-text-stroke:2.2px #000;paint-order:stroke fill;transform:scale(.88);transform-origin:center}.actions{display:grid;grid-template-columns:1fr 1fr;gap:24px}.actions button{width:100%;min-height:44px}.actions button:disabled{opacity:.55;cursor:wait}
.season-block{display:grid;justify-items:end}.home-link{width:max-content;margin-top:3px;color:var(--muted);font-size:11px;line-height:1;text-decoration:none}.home-link:hover,.home-link:focus-visible{color:var(--ink);text-decoration:underline}.font-controls{padding-right:170px}@media(max-width:640px){.font-controls{padding-right:0}.calendar+footer,main>footer{padding-right:4px}}
.event-label{white-space:pre-wrap}#eventTitle{font:inherit;resize:vertical}
