:root{--ui-font:"Gaegu", cursive;--paper:#fbf7ee;--ink:#2b2620;--ink-soft:#6b6157;--accent:#e8543a;--accent-soft:#fde4dd;--lemon:#fff1a8}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--ui-font);color:var(--ink);background:radial-gradient(circle at 1px 1px, #d9cfb8 1px, transparent 1.6px) 0 0 / 22px 22px, var(--paper);-webkit-user-select:none;user-select:none;flex-direction:column;height:100dvh;font-size:22px;line-height:1.25;display:flex;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}.sketch{border:2.5px solid var(--ink);background:#fffdf7;border-radius:255px 15px 225px/15px 225px 15px 255px}.btn{border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:255px 15px 225px/15px 225px 15px 255px;align-items:center;gap:6px;padding:5px 16px 3px;font-size:22px;text-decoration:none;transition:transform 80ms,background .12s;display:inline-flex}.btn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{box-shadow:none;border-style:dashed}.btn.small{padding:3px 12px 2px;font-size:19px}header{background:#fbf7eee6;border-bottom:2px dashed #d9cfb8;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 22px 6px;display:flex}.logo{font-size:40px;line-height:1;display:inline-block;position:relative;transform:rotate(-2deg)}.logo small{color:var(--ink-soft);margin-top:-2px;font-size:15px;display:block}.logo:after{content:"";background:var(--accent-soft);z-index:-1;height:8px;position:absolute;bottom:6px;left:-4px;right:-8px;transform:rotate(1deg)}nav{gap:6px;display:flex}nav .btn.active{background:var(--lemon)}.today{flex-direction:column;align-items:flex-end;line-height:1.05;display:flex}.today .date{font-size:25px}.today .reset{color:var(--accent);font-size:19px}.today .reset b{font-size:22px}@media (max-width:720px){.logo small,.today .date{display:none}nav .btn{padding:3px 10px 2px;font-size:18px}}main{flex:1;min-height:0;position:relative}.editor{touch-action:none;width:100%;height:100%;position:relative;overflow:hidden}.editor.tool-hand{cursor:grab}.editor.is-dragging,.editor.tool-hand.is-dragging{cursor:grabbing}.editor.is-space-pan{cursor:grab}.world{transform-origin:0 0;position:absolute;top:0;left:0}.paper{border:2.5px solid var(--ink);background:#fffdf7;border-radius:12px 255px 12px 225px/225px 12px 255px;padding:20px;position:relative;box-shadow:6px 8px #2b262026}.tape{background:#fff1a8d9;border-left:2px dashed #00000014;border-right:2px dashed #00000014;width:160px;height:28px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-3deg)}.grid-layer{pointer-events:none;position:absolute}.editor-status{color:var(--ink-soft);pointer-events:none;justify-content:center;align-items:center;font-size:26px;display:flex;position:absolute;inset:0}.editor-status-error{color:var(--accent)}.note{z-index:2;border:2px solid var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;text-align:center;cursor:default;border-radius:255px 15px 225px/15px 225px 15px 255px;justify-content:center;align-items:center;padding:4px 6px;line-height:1.05;display:flex;position:absolute;overflow:hidden;box-shadow:2px 2px #2b262040}.note-text{z-index:1;max-width:100%;display:block;position:relative}.note-author{color:var(--ink-soft);font-size:12px;font-family:var(--ui-font);position:absolute;bottom:0;right:5px}.note-ink{pointer-events:none;z-index:3;position:absolute;top:0;left:0}.note.editing{outline:2px dashed var(--accent);outline-offset:4px;z-index:5;cursor:default;box-shadow:0 0 0 6px #e8543a1f}.note .note-text[contenteditable]{cursor:text;-webkit-user-select:text;user-select:text;outline:none;min-width:1em;min-height:1em}.note .note-text[contenteditable]:empty:before{content:attr(data-ph);color:#b9ae9c}.note.pen .note-text{pointer-events:none}.note.pen .note-text[contenteditable]:empty:before{content:""}.note-pen-surface{z-index:4;cursor:crosshair;touch-action:none;position:absolute;inset:0}.selection-box{z-index:3;pointer-events:none;border:1.5px solid var(--ink);background:var(--lemon);border-radius:6px;position:absolute}.selection-box.invalid{border-color:var(--accent);background:#f8c9c1}.selection-box.hatched{background:repeating-linear-gradient(-45deg, var(--lemon) 0 8px, #ffe27a 8px 16px)}.sel-info{background:var(--lemon);top:52px;left:16px}.sel-info b{color:var(--accent);font-weight:600}.chip{z-index:10;color:var(--ink-soft);border:2px solid var(--ink);background:#fffdf7eb;border-radius:30px;padding:4px 12px 2px;font-size:18px;position:absolute}.hint-chip{top:14px;left:16px}.action-bar{z-index:10;box-shadow:4px 4px 0 var(--ink);flex-direction:column;gap:4px;padding:8px 6px;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.action-bar hr{border:none;border-top:2px dashed #cfc4ac;width:70%;margin:4px auto}.abtn-wrap{position:relative}.abtn{width:46px;height:46px;color:var(--ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.abtn svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.abtn span{margin-top:2px;font-size:13px;line-height:1}.abtn:hover{background:var(--accent-soft)}.abtn.on{background:var(--ink);color:#fff}.abtn .kbd{opacity:.5;font-family:system-ui;font-size:11px;position:absolute;top:2px;right:3px}.zoom-bar{z-index:10;box-shadow:3px 3px 0 var(--ink);align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-bar button{border-radius:8px;padding:2px 10px 0;font-size:22px}.zoom-bar button:hover{background:var(--accent-soft)}.zoom-bar .zoom-fit{font-size:18px}.zoom-label{text-align:center;min-width:60px;font-family:system-ui;font-size:14px}.pop{z-index:20;border:2.5px solid var(--ink);background:#fffdf7;border-radius:12px 120px/120px 12px;width:320px;padding:14px 16px;animation:.12s ease-out popin;box-shadow:5px 6px #2b262033}@keyframes popin{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}.pop-beside{position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)}.pop h3{margin:0 0 2px;font-size:30px;font-weight:400}.pop .sub{color:var(--ink-soft);margin:0 0 10px;font-size:18px}.pop .x{color:var(--ink-soft);font-size:26px;line-height:1;position:absolute;top:8px;right:12px}.pop .x:hover{color:var(--accent)}.pop .row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.pop .stat{align-items:baseline;gap:8px;display:flex}.pop .stat .big{font-size:44px;line-height:1}.pop .bar{border:2px solid var(--ink);background:#fff;border-radius:10px;height:14px;margin:6px 0 2px;overflow:hidden}.pop .bar i{background:repeating-linear-gradient(-45deg, var(--accent) 0 6px, #f28c78 6px 12px);height:100%;display:block}.pop ul{margin:0;padding-left:18px;font-size:21px}.pop ul li{margin:2px 0}.share-input{box-shadow:none;flex:1;font-family:system-ui;font-size:13px}.pop.toolbar{width:auto;box-shadow:3px 3px 0 var(--ink);border-radius:40px;align-items:center;gap:2px;padding:5px 8px;display:flex;position:absolute}.tb{min-width:44px;height:40px;color:var(--ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:0 6px;display:flex}.tb svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.tb span{margin-top:2px;font-size:12px;line-height:1}.tb:hover{background:var(--accent-soft)}.tb.on{background:var(--ink);color:#fff}.tb .swatch{border:2px solid var(--ink);border-radius:5px;width:18px;height:18px}.toolbar .sep{border-left:2px dashed #cfc4ac;width:2px;height:26px;margin:0 4px}.toolbar select{border:2px solid var(--ink);background:#fff;border-radius:10px;padding:2px 6px;font-size:17px}.toolbar .size{color:var(--ink-soft);margin:0 4px 0 2px;font-family:system-ui;font-size:15px}.toast{z-index:70;background:var(--ink);color:#fff;opacity:0;pointer-events:none;border-radius:40px;padding:8px 20px 6px;font-size:24px;transition:opacity .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)rotate(-1deg)}.toast.show{opacity:1}.scroll-screen{height:100%;padding:18px 28px 60px;overflow:auto}.archive-head{align-items:baseline;gap:16px;margin:0 0 18px;display:flex}.archive-head h2{margin:0;font-size:40px;font-weight:400}.archive-head p{color:var(--ink-soft);margin:0}.diary-empty,.diary-status{color:var(--ink-soft);text-align:center;padding:24px 0;font-size:18px}.diary-status-error{color:var(--accent)}.diary{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px 22px;display:grid}.page{border:2.5px solid var(--ink);color:inherit;background:#fffdf7;border-radius:8px 160px/160px 8px;padding:12px 12px 10px;text-decoration:none;transition:transform .12s;display:block;position:relative;box-shadow:4px 5px #2b262026}.page:nth-child(3n+1){transform:rotate(-1.2deg)}.page:nth-child(3n+2){transform:rotate(.8deg)}.page:nth-child(3n){transform:rotate(-.4deg)}.page:hover{transform:rotate(0)scale(1.03)}.page .thumb-wrap{aspect-ratio:4/3;background:#fff;border:1.5px solid #e6dcc6;border-radius:6px;overflow:hidden}.page .thumb{object-fit:contain;width:100%;height:100%;display:block}.page .meta{justify-content:space-between;align-items:baseline;margin-top:8px;display:flex}.page .meta .d{font-size:25px}.page .meta .c{color:var(--ink-soft);font-size:18px}.page.todaypage{border-color:var(--accent)}.page.todaypage .thumb-wrap{background:repeating-linear-gradient(45deg,#fff 0 8px,#fff6f3 8px 16px)}.page .ribbon{background:var(--accent);color:#fff;border-radius:10px;margin-top:4px;padding:0 10px;font-size:17px;display:inline-block;transform:rotate(-2deg)}.about-paper{max-width:720px;margin:10px auto;padding:28px 34px}.about-title{margin:0 0 10px;font-size:42px;font-weight:400}.about-lede{margin:0 0 10px;font-size:26px}.underline-wobble{background:linear-gradient(transparent 62%, var(--lemon) 62%, var(--lemon) 92%, transparent 92%)}.about-step{color:var(--ink-soft);margin:0 0 6px;font-size:24px}.about-footer{margin:18px 0 0;font-size:24px}.about-paper .row{margin-top:14px}
