*{box-sizing:border-box}html{color:#514a3e;background:#f5f0e4;font-family:"KaiTi","STKaiti","Noto Serif SC",serif}body{margin:0;background-image:radial-gradient(#75664912 .65px,transparent .8px);background-size:5px 5px}main{max-width:1120px;margin:auto;padding:27px 40px 24px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #746b4f33;padding-bottom:20px}.brand{color:inherit;text-decoration:none;font-size:18px;letter-spacing:2px}.edition{font:14px system-ui;color:#807862}.play{text-align:center;position:relative}.heading{padding-top:32px;position:relative}.eyebrow{font-size:15px;color:#81775e;letter-spacing:3px;margin:0 0 10px}h1{font-size:44px;letter-spacing:7px;font-weight:500;margin:0 0 16px}.tape{display:inline-block;background:#edcd69b0;padding:7px 24px;transform:rotate(-3deg);font-size:16px;clip-path:polygon(1% 0,100% 3%,98% 93%,0 100%)}.stage{width:min(100%,470px);height:430px;position:relative;margin:12px auto 0}canvas{width:100%;height:100%;touch-action:none;display:block}.side-note{position:absolute;right:-68px;top:49%;font-size:16px;writing-mode:vertical-rl;letter-spacing:5px;transform:rotate(5deg);color:#8c8066}.controls{display:flex;justify-content:center;gap:13px;flex-wrap:wrap}button{font:16px inherit;font-family:inherit;font-size:16px;color:#514a3e;border:1px solid #85745280;background:#faf7ed;padding:12px 20px;cursor:pointer;border-radius:4px 7px 5px 9px;box-shadow:2px 3px 0 #766a4720;transition:transform .15s}button:hover{transform:translateY(-2px)}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid #627666;outline-offset:4px}.primary{background:#edc656;border-color:#b2923e;padding-inline:28px}.primary span{margin-left:14px}.reset{border:0;box-shadow:none;background:none;color:#7d735e;padding-inline:6px}#hint{font-size:14px;color:#7c725e;min-height:22px;margin:17px 0 20px}footer{border-top:1px dashed #86795844;width:330px;max-width:100%;margin:auto;padding-top:14px;position:relative}footer p{font-size:16px;margin:0 0 9px}footer small{font-size:12px;color:#8c816f}.star-mark{position:absolute;top:-12px;left:calc(50% - 12px);background:#f5f0e4;padding:0 5px;color:#a58e46;font-size:17px}@media(min-width:800px){.heading{padding-top:35px}.stage{height:440px}}@media(max-width:580px){main{padding:20px 18px}.brand{font-size:16px}.edition{font-size:12px}.heading{padding-top:27px}h1{font-size:36px}.stage{height:385px;margin-top:10px}.side-note{right:0;top:40%;font-size:13px;letter-spacing:3px}.controls{gap:9px}button{font-size:15px;padding:11px 14px}.primary{padding-inline:21px}#hint{font-size:13px}footer{padding-top:16px}}@media(max-height:750px){.stage{height:330px}.heading{padding-top:20px}h1{margin-bottom:12px}#hint{margin:13px 0 17px}}
dialog{width:min(440px,calc(100% - 32px));max-height:85dvh;overflow:auto;border:1px solid #a39779;border-radius:8px 5px 12px 7px;padding:32px;background:#faf6e9;color:#514a3e;box-shadow:9px 12px 0 #514a3e14}dialog::backdrop{background:#3c392c66;backdrop-filter:blur(3px)}dialog h2{font-size:25px;font-weight:500;margin:12px 0 20px}.dialog-kicker{font-size:14px;color:#93815c;letter-spacing:2px}.icon-close{position:absolute;right:10px;top:7px;border:0;box-shadow:none;background:transparent;font-size:26px;padding:4px 10px}.field-note{font-size:13px;color:#81775e;line-height:1.6}textarea{width:100%;resize:vertical;min-height:130px;border:1px solid #b3a78b;background:#fffdf6;color:inherit;padding:14px;font:18px/1.7 inherit;font-family:inherit;font-size:18px;line-height:1.7;border-radius:4px}textarea:focus{outline:2px solid #c5a64d;outline-offset:2px}#save-error{font-size:14px;color:#795226;line-height:1.5}button:disabled{opacity:.6;cursor:wait}#event-time{font:14px/1.5 system-ui;color:#8a7b60}#event-content{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;font-size:20px;line-height:1.9;margin:20px 0 28px}.entry-preview{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);width:250px;max-width:85%;z-index:2;filter:drop-shadow(2px 5px 3px #514a3e20)}.entry-preview[hidden]{display:none}.entry-preview #preview-open{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;padding:15px 32px 15px 18px;background:#fff9dd;border:1px solid #baaa73;gap:6px;transform:rotate(-1deg)}.preview-label{font-size:12px;letter-spacing:2px;color:#927d4f}#preview-text{font-size:17px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.entry-preview small{font-size:12px;color:#8d7d5b}.entry-preview .icon-close{font-size:21px;padding:0 6px;right:4px;top:4px}#load-status{font-size:13px;color:#81775e}#load-status:empty{display:none}.sr-only,.accessible-stars button{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.accessible-stars button:focus{position:relative;clip:auto;width:auto;height:auto;padding:10px;white-space:normal}.controls{align-items:center}@media(max-width:580px){.controls{column-gap:8px;row-gap:12px}#reset{font-size:14px}.entry-preview{bottom:10px}dialog{padding:28px 22px}dialog h2{font-size:23px}}
.event-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.delete-button{color:#785535;background:#f1e4cb;border-color:#c3aa82}#delete-confirm{padding:3px 15px;background:#f2e8d2;border-radius:5px;margin:20px 0}#delete-confirm p{font-size:16px;line-height:1.7}#event-error{font-size:14px;line-height:1.6;color:#795226}#event-actions[hidden],#edit-form[hidden],#delete-confirm[hidden]{display:none}
.stage{margin-bottom:0}.entry-preview{top:100%;bottom:auto}.entry-preview #preview-open{min-height:105px}.side-note{pointer-events:none}
.view-switch{display:flex;justify-content:center;gap:6px;margin:20px 0 8px}.view-switch button{box-shadow:none;background:transparent;border-color:transparent;padding:9px 18px}.view-switch button[aria-pressed=true]{background:#edcd6975;border-color:#b9a265}.stage[hidden],#table-view[hidden],[hidden]{display:none!important}#table-view{text-align:left;margin:24px auto;max-width:950px;min-height:260px}.table-scroll{overflow-x:auto;border:1px solid #bdb092;border-radius:5px;background:#fffdf34d}table{width:100%;border-collapse:collapse;min-width:540px;font-size:16px;line-height:1.6}th{text-align:left;font-weight:500;background:#edcd6940;padding:13px 16px;border-bottom:1px solid #bdb092}td{padding:16px;vertical-align:top;border-bottom:1px dashed #bdb09280;white-space:pre-wrap;overflow-wrap:anywhere}td:first-child{width:145px;font:14px/1.7 system-ui;color:#81775e}td:nth-child(2){width:32%}td:nth-child(3){width:36%}td:last-child{width:80px}td button{padding:6px 10px;font-size:14px;white-space:nowrap}tr:last-child td{border-bottom:0}.pending-praise{color:#8f836d;font-size:14px}#table-empty{padding:20px;text-align:center;color:#81775e}.praise-panel{background:#edcd6929;border-left:3px solid #d3b452;padding:13px 18px;margin:16px 0 22px;text-align:left}.praise-panel h3{font-size:16px;font-weight:500;margin:0 0 8px}.praise-panel p{font-size:17px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.praise-label{display:block;font-size:16px;margin:18px 0 9px}.praise-label small{font-size:13px;color:#8f836d;margin-left:10px}#entry-praise,#edit-praise{min-height:85px;font-size:16px}@media(max-width:580px){.table-scroll{margin-inline:-8px}td,th{padding:11px}table{font-size:15px}.view-switch{margin-top:16px}#table-view{min-height:220px}}

.table-scroll{position:relative}.sr-only{left:0;top:0;clip-path:inset(50%)}
#login{max-width:360px;margin:30px auto}#login input{display:block;width:100%;font:18px system-ui;padding:12px;margin-top:12px;border:1px solid #b3a78b;border-radius:5px}
