:root{--paper: #f6f1e5;--paper-cream: #faf5ea;--paper-white: #ffffff;--ink: #2d3436;--ink-light: #636e72;--ink-muted: #8a8f92;--ink-faint: rgba(45, 52, 54, .18);--line: #e2dacd;--ruled-line-height: 38px;--margin-red: #ff8a80;--note-yellow: #fff8bd;--note-yellow-dark: #fff3a8;--highlight-yellow: #ffeaa7;--note-mint: #dff7ef;--note-blue: #e8f8ff;--note-error: #ffebee;--note-error-border: #ffcdd2;--error-ink: #c0392b;--tape-pink: rgba(244, 114, 182, .55);--tape-cyan: rgba(129, 236, 236, .55);--tape-green: rgba(134, 239, 172, .45);--tape-yellow: rgba(254, 240, 138, .65);--paper-shadow: 8px 10px 0 rgba(45, 52, 54, .15);--paper-shadow-hover: 10px 12px 0 rgba(45, 52, 54, .18);--cutout-shadow: 6px 6px 0 0 #2d3436;--cutout-shadow-sm: 3px 3px 0 0 #2d3436;--sticker-shadow: 3px 3px 0 #2d3436;--sticker-shadow-hover: 5px 5px 0 #2d3436;--max-content-width: 1280px;--search-note-width: 980px;--result-paper-width: 1180px;--ease-journal: cubic-bezier(.16, 1, .3, 1);--transition-fast: .15s ease;--transition-normal: .22s ease}:root{--font-marker: "Permanent Marker", "Noto Sans SC", cursive;--font-handwriting: "Caveat", "Noto Sans SC", cursive;--font-note: "Nanum Pen Script", "Noto Sans SC", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif}body[data-font-preset=zhnote],body:not([data-font-preset]){--font-marker: "Ma Shan Zheng", "Permanent Marker", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-handwriting: "Ma Shan Zheng", "Caveat", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-note: "Ma Shan Zheng", "Nanum Pen Script", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=zh_kuaile]{--font-marker: "ZCOOL KuaiLe", "Permanent Marker", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", "STHupo", "华文琥珀", "Noto Sans SC", cursive, sans-serif;--font-handwriting: "ZCOOL KuaiLe", "Caveat", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", "STHupo", "华文琥珀", "Noto Sans SC", cursive, sans-serif;--font-note: "ZCOOL KuaiLe", "Nanum Pen Script", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", "STHupo", "华文琥珀", "Noto Sans SC", cursive, sans-serif;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=zh_zhimang]{--font-marker: "Zhi Mang Xing", "Permanent Marker", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-handwriting: "Zhi Mang Xing", "Caveat", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-note: "Zhi Mang Xing", "Nanum Pen Script", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=zh_longcang]{--font-marker: "Long Cang", "Permanent Marker", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-handwriting: "Long Cang", "Caveat", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-note: "Long Cang", "Nanum Pen Script", "Xingkai SC", "STXingkai", "华文行楷", "STKaiti", "KaiTi", "楷体", cursive, serif;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=zh_huangyou]{--font-marker: "ZCOOL QingKe HuangYou", "Permanent Marker", "Yuanti SC", "YouYuan", "幼圆", "STXinwei", "华文新魏", "SimHei", "黑体", cursive, sans-serif;--font-handwriting: "ZCOOL QingKe HuangYou", "Caveat", "Yuanti SC", "YouYuan", "幼圆", "STXinwei", "华文新魏", "SimHei", "黑体", cursive, sans-serif;--font-note: "ZCOOL QingKe HuangYou", "Nanum Pen Script", "Yuanti SC", "YouYuan", "幼圆", "STXinwei", "华文新魏", "SimHei", "黑体", cursive, sans-serif;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=original]{--font-marker: "Permanent Marker", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", "STKaiti", "KaiTi", cursive;--font-handwriting: "Caveat", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-note: "Nanum Pen Script", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=patrick]{--font-marker: "Patrick Hand", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-handwriting: "Patrick Hand", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-note: "Patrick Hand", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=kalam]{--font-marker: "Kalam", "ZCOOL KuaiLe", "STKaiti", "KaiTi", cursive;--font-handwriting: "Kalam", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-note: "Caveat", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=schoolbell]{--font-marker: "Schoolbell", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-handwriting: "Schoolbell", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-note: "Nanum Pen Script", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=covered]{--font-marker: "Covered By Your Grace", "ZCOOL KuaiLe", "STKaiti", "KaiTi", cursive;--font-handwriting: "Covered By Your Grace", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-note: "Nanum Pen Script", "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", "楷体", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}body[data-font-preset=comic]{--font-marker: "Comic Neue", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-handwriting: "Comic Neue", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-note: "Comic Neue", "ZCOOL KuaiLe", "Wawati SC", "Yuanti SC", "YouYuan", "幼圆", cursive;--font-mono: "Space Mono", "Noto Sans SC", monospace}.font-marker{font-family:var(--font-marker)!important}.font-handwriting{font-family:var(--font-handwriting)!important}.font-note{font-family:var(--font-note)!important}.font-mono{font-family:var(--font-mono)!important}.font-sans{font-family:var(--font-sans)!important}html,body{margin:0;padding:0}body{background-color:var(--paper, #f6f1e5);background-image:url(/paper-grain.png),linear-gradient(to bottom,transparent calc(var(--ruled-line-height, 38px) - 1.5px),var(--line, #e2dacd) calc(var(--ruled-line-height, 38px) - 1.5px));background-size:256px 256px,100% var(--ruled-line-height, 38px);color:var(--ink, #2d3436);font-family:var(--font-sans, sans-serif);line-height:1.6;min-height:100vh;overflow-x:hidden;position:relative}::selection{background:var(--highlight-yellow, #ffeaa7);color:var(--ink, #2d3436)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--paper, #f6f1e5);border-left:2px solid var(--ink, #2d3436)}::-webkit-scrollbar-thumb{background:var(--ink, #2d3436)}.binder-holes{position:absolute;left:max(1rem,calc(12.5vw - 160px - .25rem));top:4px;bottom:0;width:30px;display:flex;flex-direction:column;gap:calc(var(--ruled-line-height, 38px) * 2 - 30px);padding:0;overflow:hidden;opacity:.45;z-index:2;pointer-events:none;transition:left .15s ease}.binder-hole{width:30px;height:30px;flex-shrink:0;border-radius:50%;border:3px solid #8a8f92;background:#ffffffd9;box-shadow:inset 2px 2px 3px #2d343647,inset -1px -1px 2px #ffffff80,1px 1px 2px #2d34361f;pointer-events:auto;cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1),border-color .2s ease,opacity .2s ease}.binder-hole:hover{transform:scale(1.22) rotate(15deg);border-color:#636e72;opacity:1}.journal-margin-line{position:absolute;left:max(4.25rem,calc(12.5vw - 160px + 3.75rem));top:0;bottom:0;width:2.5px;background-color:var(--margin-red, #ff8a80);opacity:.8;z-index:2;pointer-events:none;transition:left .15s ease}.hand-drawn-border{border:3px solid var(--ink, #2d3436);border-radius:255px 15px 225px/15px 225px 15px 255px}.hand-drawn-border-alt{border:3px solid var(--ink, #2d3436);border-radius:15px 225px 15px 255px/255px 15px 225px}.hand-drawn-border-subtle{border:2px solid var(--ink, #2d3436);border-radius:18px 230px 16px 240px/240px 16px 230px 18px}.paper-shadow{box-shadow:var(--paper-shadow, 8px 10px 0 rgba(45, 52, 54, .15))}.paper-shadow-sm{box-shadow:4px 5px #2d34361f}.shadow-cutout{box-shadow:var(--cutout-shadow, 6px 6px 0 0 #2d3436)}.shadow-cutout-sm{box-shadow:var(--cutout-shadow-sm, 3px 3px 0 0 #2d3436)}.journal-paper,.sticky-note-card{background-image:url(/paper-creases.png),url(/paper-grain.png);background-repeat:repeat,repeat;background-size:1024px 1024px,256px 256px;position:relative}.paper-modal{background-image:url(/paper-grain.png);background-repeat:repeat;background-size:256px 256px;position:relative}.journal-paper{--rot: 0deg;--tilt-x: 0deg;--tilt-y: 0deg;--tilt-z: 0deg;--mouse-pct-x: 50;--mouse-pct-y: 50;--tape-glare-pos: 50;--tape-glare-opacity: .35;--paper-shadow-x: 4.5px;--paper-shadow-y: 5.5px;--paper-shadow-blur: 2px}.journal-paper:not(.is-interactive){transform:rotate(var(--rot, 0deg));transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s cubic-bezier(.2,.8,.2,1)}.sticky-note-card,.journal-paper.is-interactive{transform:perspective(1200px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) rotate(calc(var(--rot, 0deg) + var(--tilt-z, 0deg)));box-shadow:0 1.5px 2px #322406e0,var(--paper-shadow-x, 4.5px) var(--paper-shadow-y, 5.5px) var(--paper-shadow-blur, 2px) .5px #41300cd1;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d;will-change:transform,box-shadow}.sticky-note-card:before,.journal-paper.is-interactive:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(calc(130deg + var(--tilt-y, 0deg) * 3),rgba(255,255,255,.32) 0%,rgba(255,255,255,.1) 32%,transparent 58%,rgba(45,52,54,.03) 80%,rgba(45,52,54,.07) 100%),radial-gradient(700px circle at calc(var(--mouse-pct-x, 50) * 1%) calc(var(--mouse-pct-y, 50) * 1%),rgba(255,255,255,.28) 0%,transparent 65%);opacity:.75;transition:opacity .35s ease;pointer-events:none;z-index:1}.sticky-note-card.is-tracking,.journal-paper.is-interactive.is-tracking{transition:transform .08s ease-out,box-shadow .08s ease-out}.sticky-note-card.is-tracking:before,.journal-paper.is-interactive.is-tracking:before{opacity:1}.journal-hero-title{text-shadow:3px 3.5px 0 rgba(65,48,12,.26)}.hero-doodle-right{position:absolute;right:1rem;top:0;height:var(--ruled-line-height, 38px);line-height:var(--ruled-line-height, 38px);font-size:1.35rem;color:#d97706;-webkit-user-select:none;user-select:none}.status-alert{--rot: -.5deg;transform:rotate(var(--rot, -.5deg));transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s cubic-bezier(.2,.8,.2,1)}.status-alert:hover{transform:translateY(-2px) rotate(calc(var(--rot, -.5deg) - .25deg));box-shadow:5px 6px 0 var(--ink, #2d3436)}.tape{clip-path:polygon(0 8%,8% 0,16% 7%,24% 1%,32% 8%,40% 1%,48% 7%,56% 0,64% 8%,72% 1%,80% 8%,88% 0,100% 7%,100% 93%,91% 100%,83% 93%,75% 100%,67% 92%,59% 100%,51% 94%,43% 100%,35% 93%,27% 100%,19% 94%,11% 100%,0 93%);-webkit-user-select:none;user-select:none;pointer-events:none;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(.6px);backdrop-filter:blur(.6px);filter:drop-shadow(0 2px 2.5px rgba(45,52,54,.28))}.tape:after{content:"";position:absolute;top:-60%;left:-60%;width:220%;height:220%;background:linear-gradient(115deg,transparent 15%,rgba(255,255,255,.12) 32%,rgba(255,255,255,.78) 47%,rgba(255,255,255,1) 50%,rgba(255,255,255,.78) 53%,rgba(255,255,255,.12) 68%,transparent 85%);transform:translate(calc((var(--tape-glare-pos, 50) - 50) * 1.8%)) rotate(6deg);opacity:var(--tape-glare-opacity, .35);pointer-events:none;transition:transform .08s ease-out,opacity .25s ease;mix-blend-mode:screen}.tape-top-left:after{transform:translate(calc((var(--tape-glare-pos, 50) - 35) * 1.9%)) rotate(6deg)}.tape-bottom-right:after{transform:translate(calc((var(--tape-glare-pos, 50) - 65) * 1.9%)) rotate(6deg)}.tape-pink{background-color:var(--tape-pink)}.tape-cyan{background-color:var(--tape-cyan)}.tape-green{background-color:var(--tape-green)}.tape-yellow{background-color:var(--tape-yellow)}.sticker{--rot: 0deg;border:2px solid var(--ink, #2d3436);box-shadow:var(--sticker-shadow, 3px 3px 0 var(--ink, #2d3436));background-image:url(/paper-grain.png);background-repeat:repeat;background-size:256px 256px;transform:rotate(var(--rot));transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease,opacity .15s ease;-webkit-user-select:none;user-select:none}button.sticker:not(:disabled):hover,a.sticker:hover,.sticker[role=button]:not([aria-disabled=true]):hover,.sticker.clickable:hover{transform:translateY(-2px) rotate(calc(var(--rot) - .8deg));box-shadow:4px 5px 0 var(--ink, #2d3436);cursor:pointer}button.sticker:not(:disabled):active,a.sticker:active,.sticker[role=button]:not([aria-disabled=true]):active,.sticker.clickable:active{transform:translate(1px,1px) rotate(var(--rot));box-shadow:1px 1px 0 var(--ink, #2d3436)}button.sticker.active{box-shadow:3px 3px 0 var(--ink, #2d3436);font-weight:800;filter:brightness(.96)}button.sticker:disabled,.sticker[aria-disabled=true],.sticker.disabled{cursor:not-allowed!important;opacity:.45!important;transform:rotate(var(--rot))!important;box-shadow:2px 2px 0 var(--ink, #2d3436)!important;pointer-events:none}.marker-button{--rot: -.5deg;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ink, #2d3436);box-shadow:3px 3px 0 var(--ink, #2d3436);transform:rotate(var(--rot));cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease,opacity .15s ease}.marker-button:not(:disabled):hover{transform:translateY(-2px) rotate(calc(var(--rot) - .8deg));box-shadow:4px 5px 0 var(--ink, #2d3436)}.marker-button.marker-btn-ink:not(:disabled):hover{background-color:#3d4649!important}.marker-button.marker-btn-paper:not(:disabled):hover{background-color:var(--note-yellow, #fff8bd)!important}.marker-button:not(:disabled):active{transform:translate(1px,1px) rotate(var(--rot));box-shadow:1px 1px 0 var(--ink, #2d3436)}.marker-button:disabled{cursor:not-allowed!important;opacity:.45!important;transform:rotate(var(--rot))!important;box-shadow:2px 2px 0 var(--ink, #2d3436)!important;pointer-events:none}.scribble-line{position:relative;display:inline-block}.scribble-line:after{content:"";position:absolute;left:-2%;right:-2%;bottom:-5px;height:7px;background:var(--highlight-yellow, #ffeaa7);transform:rotate(-1deg);z-index:-1;border-radius:40%;animation:markerDraw .75s cubic-bezier(.25,1,.5,1) .15s both}@keyframes markerDraw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}.song-row{position:relative;transition:background-color .18s ease}.song-row td{transition:background-color .18s ease}.song-row:hover td{background-color:#fef08a6b!important}.song-row:hover td:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.song-row:hover td:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.song-row .col-index{transition:transform .18s cubic-bezier(.34,1.56,.64,1),color .18s ease}.song-row:hover .col-index{transform:scale(1.15) rotate(-4deg);color:var(--ink, #2d3436)!important;font-weight:700}.song-row .track-artwork-thumb{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}.song-row:hover .track-artwork-thumb{transform:translateY(-2px) scale(1.08);box-shadow:2.5px 3.5px 0 var(--ink, #2d3436)!important}.tiny-grid{background-image:url(/paper-grain.png),linear-gradient(rgba(45,52,54,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(45,52,54,.07) 1px,transparent 1px);background-size:256px 256px,16px 16px,16px 16px}.search-sample-row,.search-sample-row .sticker{font-family:var(--font-handwriting, cursive)}.result-paper-section,.result-paper-card{font-family:var(--font-sans, sans-serif)}.font-picker{position:relative;z-index:70}.font-picker-caption{position:absolute;top:-12px;left:14px;z-index:3;padding:0 7px;background:var(--paper, #f6f1e5);color:var(--ink-muted, #7b8185);font-family:var(--font-handwriting, cursive);font-weight:700;font-size:.85rem;line-height:1.2;letter-spacing:.04em;transform:rotate(-2deg);-webkit-user-select:none;user-select:none;white-space:nowrap}.font-picker-button{min-width:175px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--ink, #2d3436);background:var(--note-yellow, #fff8bd);color:var(--ink, #2d3436);padding:.42rem .95rem;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:15px 225px 15px 255px/255px 15px 225px;box-shadow:3px 3px 0 var(--ink, #2d3436);transform:rotate(.4deg);font-family:var(--font-handwriting, cursive);font-weight:700;font-size:1.05rem;line-height:1.2;transition:transform .15s ease,box-shadow .15s ease}.font-picker-button:hover{transform:translateY(-2px) rotate(-.3deg);box-shadow:4px 5px 0 var(--ink, #2d3436)}.font-picker-button:active{transform:translate(1px,1px) rotate(.4deg);box-shadow:1px 1px 0 var(--ink, #2d3436)}.font-picker-button .paper-caret{font-size:16px;transition:transform .18s ease}.font-picker.open .font-picker-button .paper-caret{transform:rotate(180deg)}.header-github-btn{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink, #2d3436);background:var(--paper-white, #ffffff);border:2px solid var(--ink, #2d3436);border-radius:225px 15px 255px/15px 255px 15px 225px;padding:.42rem .95rem;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:3px 3px 0 var(--ink, #2d3436);transform:rotate(-.5deg);font-family:var(--font-handwriting, cursive);font-weight:700;font-size:1.05rem;line-height:1.2;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease;white-space:nowrap}.header-github-btn:hover{transform:translateY(-2px) rotate(.3deg);box-shadow:4px 5px 0 var(--ink, #2d3436);background:var(--note-yellow, #fff8bd);color:var(--ink, #2d3436)}.header-github-btn:active{transform:translate(1px,1px) rotate(-.5deg);box-shadow:1px 1px 0 var(--ink, #2d3436)}.header-github-btn svg{flex-shrink:0}.font-picker-menu{position:absolute;right:0;top:calc(100% + 11px);max-height:430px;overflow:auto;background:#fffdf7;border:2px solid var(--ink, #2d3436);padding:10px;border-radius:9px 20px 8px 17px/17px 8px 20px 9px;box-shadow:7px 8px #2d343638;transform:rotate(-.25deg);opacity:0;visibility:hidden;translate:0 -5px;transition:opacity .16s ease,translate .16s ease,visibility .16s ease;z-index:100}.font-picker.open .font-picker-menu{opacity:1;visibility:visible;translate:0 0}.font-picker-menu:before{content:"";position:sticky;display:block;top:0;height:18px;width:90px;margin:-19px auto 5px;background:#81ecec73;transform:rotate(2deg);clip-path:polygon(0 10%,8% 0,15% 12%,23% 2%,31% 11%,40% 0,49% 9%,58% 1%,67% 10%,76% 0,86% 9%,100% 2%,100% 92%,90% 100%,80% 91%,69% 100%,58% 91%,47% 100%,35% 92%,23% 100%,11% 91%,0 98%)}.font-option{width:100%;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;border:0;border-bottom:1px dashed rgba(45,52,54,.18);background:transparent;color:var(--ink, #2d3436);padding:8px 7px;text-align:left;cursor:pointer;border-radius:6px}.font-option:last-child{border-bottom:0}.font-option:hover{background:#ffeaa76b}.font-option.active{background:#ffeaa7b8}.font-option-index{font:700 12px/1 Space Mono,monospace;color:#a0a5a8}.font-option-name{font-family:var(--font-handwriting, cursive);font-weight:700;font-size:1.05rem;line-height:1.2}.font-option-sample{font-size:18px;line-height:1;color:#676d70}.font-picker-hint{padding:8px 8px 4px;color:#8a8f92;font-family:var(--font-handwriting, cursive);font-weight:600;font-size:.95rem;line-height:1.25}.font-picker-notice{margin:4px 6px 8px;padding:6px 8px;background:#ffeaa7d9;border:1px dashed var(--ink, #2d3436);border-radius:4px;font-family:var(--font-handwriting, cursive);font-weight:700;font-size:.9rem;line-height:1.2;color:var(--ink, #2d3436);text-align:center}.font-option-loading{font-family:var(--font-handwriting, cursive);font-weight:700;font-size:.95rem;line-height:1;color:var(--accent, #ff7675);display:inline-flex;align-items:center;gap:4px}.journal-footer{width:100%;position:relative;z-index:20}.footer-page-boundary{width:100%;position:relative;display:flex;align-items:center;justify-content:center;gap:1.25rem;height:calc(var(--ruled-line-height, 38px) * 2)}.footer-red-line{flex:1;height:2px;background-color:var(--margin-red, #ff8a80);opacity:.9;border-radius:2px}.footer-end-badge{position:relative;background-color:transparent;padding:0 .5rem;color:var(--margin-red, #ff8a80);font-size:1.25rem;font-weight:700;letter-spacing:.12em;-webkit-user-select:none;user-select:none;white-space:nowrap;line-height:1}.footer-pill-link{border-radius:9999px;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease}.footer-pill-link:hover{background-color:var(--note-yellow, #fff8bd)!important;color:var(--ink, #2d3436)!important;transform:translateY(-2px) rotate(-.5deg);box-shadow:4px 5px 0 var(--ink, #2d3436)}.footer-pill-link:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink, #2d3436)}.footer-author-link:hover{color:var(--ink, #2d3436)!important}.footer-license-link{color:inherit;text-decoration:none;cursor:pointer;transition:color .15s ease,text-decoration .15s ease}.footer-license-link:hover{text-decoration:underline;text-underline-offset:3px;color:var(--ink, #2d3436)}.header-logo-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;transition:transform .22s cubic-bezier(.34,1.56,.64,1);border-radius:12px}.header-logo-link:hover{transform:scale(1.08) rotate(-4deg)}.header-logo-link:active{transform:scale(.94) rotate(0)}.header-brand-text{display:flex;flex-direction:column;align-items:flex-start;text-align:left;cursor:pointer;transition:transform .18s ease;-webkit-user-select:none;user-select:none;background:none;border:none;padding:0}.header-brand-text:hover{transform:translateY(-1.5px)}.header-brand-text:hover .font-marker{color:#1e293b}.header-brand-text:hover .header-brand-tagline{color:var(--ink, #2d3436)}.header-brand-text:active{transform:translateY(1px) scale(.99)}.header-brand-tagline{font-family:var(--font-handwriting, cursive);font-size:1.05rem;font-weight:500;color:var(--ink-light, #636e72);margin-top:.15rem;letter-spacing:.02em;line-height:1.1;text-align:left;transition:color .18s ease}.header-drawer-btn{display:inline-flex;align-items:center;gap:4px;background-color:var(--note-yellow, #fff8bd);color:var(--ink, #2d3436);border:2px solid var(--ink, #2d3436);border-radius:12px 255px 14px 225px/225px 12px 255px 14px;padding:.42rem .75rem;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:2.5px 2.5px 0 var(--ink, #2d3436);line-height:1.2;transition:transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.header-drawer-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink, #2d3436)}.header-drawer-btn .drawer-btn-icon{font-size:1.15rem;line-height:1}.mobile-font-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:.75rem}.mobile-font-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:var(--paper-white, #ffffff);border:2px solid var(--ink, #2d3436);border-radius:8px;padding:.65rem .75rem;cursor:pointer;box-shadow:2px 2px #2d343633;transition:all .15s ease;width:100%}.mobile-font-card:hover{background:#fefce8;transform:translateY(-1px)}.mobile-font-card:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink, #2d3436)}.mobile-font-card.active{background:var(--note-yellow, #fff8bd);border-color:var(--ink, #2d3436);box-shadow:3px 3px 0 var(--ink, #2d3436);font-weight:700}.mobile-font-card-header{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:.35rem}.mobile-font-index{font-size:.75rem;color:#8a8f92;font-weight:700}.mobile-font-card.active .mobile-font-index{color:var(--ink, #2d3436)}.mobile-font-name{font-size:.95rem;font-weight:700;color:var(--ink, #2d3436);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-left:.35rem}.mobile-font-check{font-size:.95rem;color:#15803d;font-weight:900}.mobile-font-sample{font-size:1.25rem;color:var(--ink, #2d3436);line-height:1.2;margin-top:.2rem;width:100%;text-align:left}.btn-paper-clear{border:none;background:none;color:#8a8f92;font-size:1rem;cursor:pointer;padding:.25rem .5rem;margin-left:.25rem;-webkit-user-select:none;user-select:none;transition:transform .15s ease,color .15s ease}.btn-paper-clear:hover{color:var(--ink, #2d3436)!important;transform:scale(1.2) rotate(90deg)}.btn-paper-clear:active{transform:scale(.95)}.btn-modal-close{transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease}.btn-modal-close:hover{transform:translateY(-2px) rotate(90deg)!important;box-shadow:3px 4px 0 var(--ink, #2d3436)!important;background-color:var(--note-yellow, #fff8bd)!important;color:var(--ink, #2d3436)!important}.btn-modal-close:active{transform:translate(1px,1px)!important;box-shadow:1px 1px 0 var(--ink, #2d3436)!important}.btn-retry:hover{background-color:var(--note-yellow, #fff8bd)!important}.sponsor-dropup-menu{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%);width:270px;max-width:min(290px,calc(100vw - 2rem));background-color:var(--paper-white, #ffffff);background-image:url(/paper-grain.png);background-repeat:repeat;background-size:256px 256px;border:2px solid var(--ink, #2d3436);border-radius:10px;padding:1.15rem 1.15rem 1rem;box-shadow:4px 6px 0 var(--ink, #2d3436);z-index:100;text-align:center;animation:sponsorSlideUp .18s cubic-bezier(.16,1,.3,1)}.sponsor-dropup-menu:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-right:2px solid var(--ink, #2d3436);border-bottom:2px solid var(--ink, #2d3436)}.sponsor-action-btn:hover{transform:translateY(-2px);box-shadow:3px 5px 0 var(--ink, #2d3436)!important}.sponsor-action-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink, #2d3436)!important}@keyframes sponsorSlideUp{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}:root{--ruled-line-height: 38px;--ruled-line-color: rgba(45, 52, 54, .13);--ruled-line-offset: 0px}.ruled-paper-text,.ruled-paper-lines{font-family:var(--font-handwriting, cursive);line-height:var(--ruled-line-height)!important;background-image:linear-gradient(to bottom,transparent calc(var(--ruled-line-height) - 1px),var(--ruled-line-color) calc(var(--ruled-line-height) - 1px));background-size:100% var(--ruled-line-height);background-position:0 var(--ruled-line-offset);margin:0;color:var(--ink, #2d3436)}.ruled-paper-list{font-family:var(--font-handwriting, cursive);line-height:var(--ruled-line-height)!important;background-image:linear-gradient(to bottom,transparent calc(var(--ruled-line-height) - 1px),var(--ruled-line-color) calc(var(--ruled-line-height) - 1px));background-size:100% var(--ruled-line-height);background-position:0 var(--ruled-line-offset);margin:0;color:var(--ink, #2d3436);display:flex;flex-direction:column}.ruled-paper-list>*{line-height:var(--ruled-line-height)!important;margin:0}.journal-paper.ruled{background-image:url(/paper-grain.png),linear-gradient(to bottom,transparent calc(var(--ruled-line-height) - 1px),var(--ruled-line-color) calc(var(--ruled-line-height) - 1px));background-size:256px 256px,100% var(--ruled-line-height);background-position:0 0,0 var(--ruled-line-offset)}.paper-caret{display:inline-block;font-size:16px;line-height:1;transition:transform .18s ease}@keyframes paperUnfold{0%{opacity:0;transform:translateY(-6px) rotate(-1deg) scale(.98)}to{opacity:1;transform:translateY(0) rotate(-.25deg) scale(1)}}@keyframes paperModalIn{0%{opacity:0;transform:translateY(12px) scale(.96) rotate(-.5deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(.2deg)}}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes pencilScribble{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg) translate(1px)}to{transform:rotate(-2deg)}}@keyframes inkSpin{to{transform:rotate(360deg)}}.animate-ink-spin{animation:inkSpin .9s linear infinite}.animate-scribble{animation:pencilScribble 2.5s ease-in-out infinite}@keyframes mcSplash{0%,to{transform:rotate(6deg) scale(1)}50%{transform:rotate(6deg) scale(1.1)}}.mc-splash{display:inline-block;transform-origin:center center;animation:mcSplash 1.4s ease-in-out infinite;white-space:nowrap}@keyframes sparkleTwinkle{0%,to{transform:scale(1) rotate(0);opacity:.85}50%{transform:scale(1.22) rotate(12deg);opacity:1}}.note-sparkle{display:inline-block;transform-origin:center center;animation:sparkleTwinkle 3s ease-in-out infinite;cursor:default;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.note-sparkle:hover{animation-play-state:paused;transform:scale(1.4) rotate(20deg)}@keyframes doodleFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(3deg)}}.result-doodle{animation:doodleFloat 3.5s ease-in-out infinite;transform-origin:center center;cursor:default;transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .2s ease}.result-doodle:hover{animation-play-state:paused;transform:scale(1.25) rotate(-15deg);color:var(--ink, #2d3436)!important}@keyframes pageUnfoldEntrance{0%{opacity:0;transform:translateY(16px) rotate(calc(var(--rot, 0deg) - 1.2deg)) scale(.98)}to{opacity:1;transform:translateY(0) rotate(var(--rot, 0deg)) scale(1)}}.result-paper-card{animation:pageUnfoldEntrance .45s cubic-bezier(.16,1,.3,1)}@keyframes pencilProgressFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.platform-progress-fill{transform-origin:left center;animation:pencilProgressFill .85s cubic-bezier(.2,.8,.2,1) .1s both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.binder-holes,.song-row:hover .marker-stroke{transition:none!important}}.journal-container{max-width:var(--max-content-width, 1150px);margin:0 auto;padding:0 1.25rem 2.5rem;position:relative;z-index:10}@media(min-width:768px){.journal-container{padding:0 2.5rem 2.5rem}}@media(min-width:769px){.mobile-only{display:none!important}}@media(max-width:768px){.desktop-only{display:none!important}}.header-logo-img{width:3.25rem;height:3.25rem;object-fit:contain;-webkit-user-select:none;user-select:none;flex-shrink:0;display:block}.header-brand-title{font-size:2rem;line-height:1.1;color:var(--ink, #2d3436);margin:0;text-align:left;transition:color .18s ease}@media(max-width:768px){body{background-image:url(/paper-grain.png),linear-gradient(to bottom,transparent calc(var(--ruled-line-height, 38px) - 1.5px),var(--line, #e2dacd) calc(var(--ruled-line-height, 38px) - 1.5px));background-size:256px 256px,100% var(--ruled-line-height, 38px)}.binder-holes,.journal-margin-line{display:none!important}.journal-header{min-height:calc(var(--ruled-line-height, 38px) * 1.5)!important;gap:.5rem}.header-brand-container{gap:.55rem!important;min-width:0;flex-shrink:1}.header-logo-img{width:2.35rem!important;height:2.35rem!important}.header-brand-title{font-size:1.45rem!important;line-height:1.1!important;white-space:nowrap}.header-brand-tagline{font-size:.85rem!important;margin-top:.1rem!important;line-height:1.1!important;white-space:nowrap}.header-actions{gap:.5rem!important;flex-shrink:0}.hero-doodle-right{position:static!important;display:inline-block!important;margin-bottom:.35rem!important;font-size:1.15rem!important;height:auto!important;line-height:1.2!important}.footer-nav{height:auto!important;min-height:calc(var(--ruled-line-height, 38px) * 2)!important;padding:.75rem 0!important;gap:.65rem!important}.hand-drawn-border,.hand-drawn-border-alt,.paper-shadow,.sticker,.sticky-note-card{transform:none!important}.journal-paper,.sticky-note-card{padding:1.25rem!important}.search-input-row{flex-direction:column!important;align-items:stretch!important}.search-input-row .marker-button,.search-input-row button[type=submit]{width:100%!important;justify-content:center}.hide-mobile{display:none!important}}@media(max-width:480px){.journal-container{padding:.75rem .75rem 1.75rem}.header-brand-title{font-size:1.3rem!important}.header-brand-tagline{font-size:.78rem!important}.header-actions{gap:.35rem!important}.tape{display:none}}html{scrollbar-gutter:stable}:root{--font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);--bg-color: var(--paper, #f6f1e5);--card-bg: #ffffff;--text-main: var(--ink, #2d3436);--text-muted: var(--ink-light, #636e72);--primary: #2563eb;--primary-hover: #1d4ed8;--border-color: #e2e8f0;--badge-bg: #eff6ff;--badge-text: #1d4ed8;--error-bg: #fef2f2;--error-border: #fecaca;--error-text: #991b1b}*{box-sizing:border-box;margin:0;padding:0}.container{max-width:860px;margin:0 auto;padding:3rem 1.5rem}header{text-align:center;margin-bottom:2.5rem}.journal-header{text-align:left}.brand-badge{display:inline-block;padding:.25rem .75rem;background-color:var(--badge-bg);color:var(--badge-text);font-size:.85rem;font-weight:600;border-radius:9999px;margin-bottom:.75rem}h1{font-size:2.5rem;font-weight:800;letter-spacing:-.025em;color:var(--text-main);margin-bottom:.5rem}.tagline{font-size:1.25rem;color:var(--text-muted);font-weight:500}.card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:2rem;box-shadow:0 1px 3px #0000000d;margin-bottom:2rem}.input-group{display:flex;position:relative;gap:.75rem}.input-field{flex:1;padding:.85rem 2.5rem .85rem 1rem;font-size:1rem;border:1px solid var(--border-color);border-radius:8px;outline:none;background-color:#fff;color:var(--text-main);transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.btn-clear{position:absolute;right:6.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px}.btn-clear:hover{color:var(--text-main)}.btn-primary{padding:.85rem 1.75rem;font-size:1rem;font-weight:600;color:#fff;background-color:var(--primary);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,opacity .2s;white-space:nowrap}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.sample-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;font-size:.875rem;color:var(--text-muted)}.btn-sample{background:#f1f5f9;border:1px solid var(--border-color);border-radius:6px;padding:.25rem .6rem;font-size:.8rem;color:#334155;cursor:pointer;transition:background-color .15s}.btn-sample:hover{background:#e2e8f0;color:var(--text-main)}.status-alert{border-radius:8px;padding:1rem 1.25rem;margin-top:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.status-alert-error{background-color:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.alert-content{display:flex;align-items:flex-start;gap:.75rem}.alert-icon{font-size:1.25rem;line-height:1}.alert-message{font-size:.95rem;font-weight:500}.alert-code{display:inline-block;font-size:.75rem;font-family:monospace;background:#0000000f;padding:.1rem .35rem;border-radius:4px;margin-top:.25rem}.btn-retry{background:#fff;border:1px solid var(--error-border);color:var(--error-text);padding:.4rem .85rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.btn-retry:hover{background:#fee2e2}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;gap:1rem}.spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-muted);font-size:.95rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.75rem}.feature-item{background:#f8fafc;border:1px solid var(--border-color);border-radius:8px;padding:1.15rem}.feature-item h3{font-size:.95rem;margin-bottom:.35rem;color:var(--text-main)}.feature-item p{font-size:.85rem;color:var(--text-muted);line-height:1.5}.playlist-summary-card{background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d}.summary-main{display:flex;gap:1.5rem;align-items:center}.playlist-cover{width:110px;height:110px;border-radius:8px;object-fit:cover;box-shadow:0 2px 4px #00000014}.cover-placeholder{width:110px;height:110px;border-radius:8px;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.summary-info{flex:1;min-width:0}.summary-meta-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.platform-tag{background:#dcfce7;color:#15803d;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px}.track-count-badge{background:#eff6ff;color:var(--primary);font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px}.playlist-title{font-size:1.35rem;font-weight:700;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-creator{font-size:.9rem;color:var(--text-muted);margin-bottom:0;display:inline-flex;align-items:center}.playlist-creator span{color:var(--text-main);font-weight:500}.summary-actions{display:flex;gap:.75rem;align-items:center}.btn-outline-small{font-size:.8rem;color:var(--primary);text-decoration:none;border:1px solid var(--border-color);padding:.3rem .65rem;border-radius:6px;transition:all .15s}.btn-outline-small:hover{background:#eff6ff;border-color:var(--primary)}.btn-text-small{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:.3rem .5rem}.btn-text-small:hover{color:var(--text-main);text-decoration:underline}.track-table-container{background:#fff;border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.table-header-info{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background:#f8fafc}.table-header-info h3{font-size:1rem;font-weight:600;color:var(--text-main)}.table-responsive{max-height:600px;overflow-y:auto;overflow-x:auto}.track-table{width:100%;border-collapse:collapse;text-align:left;font-size:.9rem}.track-table th{background:#f8fafc;color:var(--text-muted);font-weight:600;font-size:.8rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10}.track-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:260px}.track-row:hover td{background-color:#f8fafc}.col-index{width:50px;text-align:center;color:var(--text-muted);font-family:monospace}.col-title{max-width:240px}.track-title-text{font-weight:500}.col-artist{max-width:180px;color:#334155}.col-album{max-width:180px;color:var(--text-muted)}.col-duration{width:70px;text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums;font-family:monospace}.export-toolbar-card{background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d;position:relative}.toolbar-section{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.section-title{display:flex;align-items:center;gap:.5rem}.section-title h4{font-size:.95rem;font-weight:600;color:var(--text-main)}.section-icon{font-size:1.1rem}.button-group{display:flex;flex-wrap:wrap;gap:.5rem}.btn-export,.btn-copy{padding:.45rem .9rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;border:1px solid var(--border-color);background:#fff;color:var(--text-main);transition:all .15s}.btn-export:hover:not(:disabled),.btn-copy:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.btn-export:disabled,.btn-copy:disabled{opacity:.45;cursor:not-allowed}.btn-export-highlight{background:#eff6ff;border-color:#bfdbfe;color:var(--primary);font-weight:600}.btn-export-highlight:hover:not(:disabled){background:#dbeafe;border-color:var(--primary)}.toolbar-divider{height:1px;background-color:var(--border-color);margin:1rem 0}.export-toast{position:absolute;bottom:-3.2rem;left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:.5rem 1.25rem;border-radius:9999px;font-size:.85rem;font-weight:500;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:.5rem;animation:toastFadeIn .2s ease-out;z-index:100;white-space:nowrap}.export-toast span{color:#4ade80;font-weight:700}@keyframes toastFadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}footer{text-align:center;color:var(--text-muted);font-size:.875rem;width:100%}footer a,.footer-link-btn{color:var(--primary);text-decoration:none;background:none;border:none;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;transition:color .15s}footer a:hover,.footer-link-btn:hover{text-decoration:underline;color:var(--primary-hover)}.feature-link-btn{display:block;margin-top:.5rem;background:none;border:none;padding:0;font-size:.82rem;color:var(--primary);cursor:pointer;text-decoration:underline}.feature-link-btn:hover{color:var(--primary-hover)}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000;animation:modalBackdropFadeIn .18s ease-out forwards}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #00000026,0 8px 10px -6px #0000001a;border:1px solid var(--border-color);animation:modalScale .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScale{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{padding:1.5rem 1.75rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h2{font-size:1.25rem;font-weight:700;color:var(--text-main)}.btn-modal-close{background:#f1f5f9;border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.btn-modal-close:hover{background:#e2e8f0;color:var(--text-main)}.modal-content{padding:1.75rem;overflow-y:auto;line-height:1.65;color:#334155;font-size:.925rem}.privacy-section{margin-bottom:1.5rem}.privacy-section:last-child{margin-bottom:0}.privacy-section h3{font-size:1rem;font-weight:600;color:var(--text-main);margin-bottom:.35rem}.modal-footer{padding:1.25rem 1.75rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;background-color:#f8fafc;border-bottom-left-radius:16px;border-bottom-right-radius:16px}.btn-modal-confirm{padding:.5rem 1.5rem;font-size:.9rem}@media(max-width:640px){.container{padding:2rem 1rem}.input-group{flex-direction:column}.btn-clear{right:1rem;top:.9rem}.btn-primary{width:100%}.summary-main{flex-direction:column;text-align:center}.summary-meta-row,.summary-actions{justify-content:center}.col-album{display:none}.toolbar-section{flex-direction:column;align-items:stretch;gap:.5rem}.button-group{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.sample-links{flex-direction:column;align-items:stretch}.btn-sample{text-align:center}.modal-container{max-height:90vh;border-radius:12px}.modal-header,.modal-content,.modal-footer{padding:1.25rem}}
