@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/anuphan-thai-wght-normal-M2SYPT7d.woff2)format("woff2-variations");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/anuphan-vietnamese-wght-normal-BNxdSFSW.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/anuphan-latin-ext-wght-normal-CLfxpfVx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/anuphan-latin-wght-normal-DvQ8j10x.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{height:1px;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{padding-left:1.5em;list-style-type:none;position:relative}.ql-editor li>.ql-ui:before{text-align:right;white-space:nowrap;width:1.2em;margin-left:-1.5em;margin-right:.3em;display:inline-block}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"•"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"☑"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"☐"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0, decimal) ". "}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6, decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7, lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8, lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9, decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{text-align:left;margin-left:.3em;margin-right:-1.5em}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{max-width:100%;display:block}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit;direction:rtl}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;padding:3px 5px;display:inline-block}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{vertical-align:middle;display:inline-block}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2px}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor .ql-code-block-container{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;float:left;vertical-align:middle;height:24px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:inline-block;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;padding:4px 8px;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding-top:5px;padding-bottom:5px;display:block}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{z-index:1;margin-top:-1px;display:block;top:100%}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{width:24px;height:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{top:5px;right:5px}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #ccc;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{color:#444;white-space:nowrap;background-color:#fff;border:1px solid #ccc;padding:5px 12px;box-shadow:0 0 5px #ddd}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #ccc;margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save";border-right:0;padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!table{display:table!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.w-lg{width:var(--container-lg)}.w-md{width:var(--container-md)}.w-sm{width:var(--container-sm)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.italic{font-style:italic}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{color:var(--text);background:var(--bg);font-synthesis:none;font-kerning:normal;text-rendering:optimizelegibility;--type-caption:.75rem;--type-meta:.875rem;--type-body:1rem;--type-subhead:1.25rem;--type-data-sm:1rem;--type-data-md:1.25rem;--type-data-lg:1.5rem;--bg:oklch(97.5% .008 135);--surface:oklch(99.8% .002 135);--surface-muted:oklch(95.8% .012 135);--text:oklch(23% .018 145);--muted:oklch(48% .02 145);--line:oklch(89% .018 140);--brand:oklch(46% .12 145);--brand-strong:oklch(38% .115 145);--brand-soft:oklch(93% .045 140);--danger:oklch(52% .18 28);--warning-soft:oklch(95% .045 85);--warning-text:oklch(38% .08 78);--placeholder:oklch(46% .02 145);--z-topbar:15;--z-sidebar:20;--z-timer:25;--z-mobile-nav:30;--z-dialog-overlay:100;--z-dialog:101;--mobile-nav-height:0px;--timer-dock-height:0px;--share-story-safe-block:10%;--share-story-safe-inline:6%;--shadow:0 16px 50px oklch(22% .025 145/.07);--radius:16px;--motion-page-exit:.12s;--motion-page-enter:.22s;--motion-page-reduced:80ms;--ease-page-enter:cubic-bezier(.22, 1, .36, 1);font-family:Anuphan Variable,Noto Sans Thai,ui-sans-serif,system-ui,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(16% .015 145);--surface:oklch(20.5% .018 145);--surface-muted:oklch(24.5% .02 145);--text:oklch(93% .01 135);--muted:oklch(70% .018 140);--line:oklch(31% .022 145);--brand:oklch(69% .12 145);--brand-strong:oklch(76% .115 145);--brand-soft:oklch(27% .055 145);--danger:oklch(70% .17 28);--warning-soft:oklch(29% .045 85);--warning-text:oklch(84% .09 85);--placeholder:oklch(70% .018 140);--shadow:0 16px 50px oklch(5% .01 145/.28)}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);font-size:var(--type-body);margin:0;line-height:1.6}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}svg{stroke-width:1.8px;flex:none;width:1.1rem;height:1.1rem}:focus-visible{outline-offset:3px;outline:3px solid oklch(67% .15 145/.55)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted,.field-help{color:var(--muted)}.field-help{font-size:var(--type-meta);margin:-4px 0 0;line-height:1.55}.eyebrow,.overline{color:var(--brand-strong);font-size:var(--type-caption);letter-spacing:.01em;margin:0 0 7px;font-weight:700}h1,h2,h3,p{overflow-wrap:anywhere}h1{letter-spacing:0;text-wrap:balance;margin:0;font-size:2.65rem;line-height:1.15}h2{font-size:var(--type-subhead);letter-spacing:0;margin:0;line-height:1.35}h3{margin:0;font-size:1rem}p{line-height:1.65}.button{min-height:44px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-weight:700;transition:transform .16s,background .16s,border-color .16s,opacity .16s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--brand);color:oklch(99% 0 0);box-shadow:0 8px 20px oklch(35% .09 145/.16)}.button.primary:hover:not(:disabled){background:var(--brand-strong)}.button.secondary{border-color:var(--line);background:var(--surface)}.button.secondary:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}.button.ghost{color:var(--muted)}.button.danger{background:var(--danger);color:#fff}.button.danger-ghost,.danger-ghost{color:var(--danger)}.button.compact{min-height:38px;font-size:var(--type-meta);background:var(--brand-soft);color:var(--brand-strong);padding:0 12px}.button.wide{width:100%}.align-start{align-self:flex-start}.text-link,.back-link{color:var(--brand-strong);font-size:var(--type-meta);align-items:center;gap:6px;font-weight:700;display:inline-flex}.back-link{color:var(--muted);align-self:flex-start}.icon-button{background:var(--surface-muted);width:44px;height:44px;color:var(--text);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}input,select,textarea{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);border-radius:11px;padding:10px 12px}input::placeholder{color:var(--placeholder)}label{color:var(--text);font-size:var(--type-meta);gap:7px;font-weight:600;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend{font-size:var(--type-meta);margin-bottom:8px;font-weight:600}.app-layout{min-height:100vh}.sidebar{z-index:var(--z-sidebar);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:oklch(62% .055 145/.45) transparent;background:var(--sidebar-bg);width:244px;color:var(--sidebar-text);--sidebar-bg:oklch(22% .055 145);--sidebar-border:oklch(36% .055 145/.6);--sidebar-text:oklch(94% .01 140);--sidebar-link:oklch(82% .02 140);--sidebar-hover:oklch(29% .055 145);--sidebar-active:oklch(92% .045 140);--sidebar-active-text:oklch(27% .08 145);--sidebar-focus:oklch(82% .14 145);border-right:1px solid var(--sidebar-border);flex-direction:column;padding:28px 20px 22px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand-mark{align-items:center;display:flex}.brand-mark img,.mobile-brand img{width:100%;height:auto;display:block}.sidebar-brand{width:132px}.sidebar nav{gap:5px;margin-top:52px;display:grid}.sidebar nav a,.settings-link{min-height:46px;color:var(--sidebar-link);font-size:var(--type-meta);transition:background-color .16s var(--ease-page-enter), color .16s var(--ease-page-enter);border-radius:11px;align-items:center;gap:12px;padding:0 12px;font-weight:600;line-height:1.3;display:flex}.sidebar nav a:hover,.settings-link:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.sidebar nav a.active,.settings-link.active{background:var(--sidebar-active);color:var(--sidebar-active-text)}.sidebar nav a:focus-visible,.settings-link:focus-visible{outline-color:var(--sidebar-focus)}.sidebar nav a>span,.settings-link>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-footer{border-top:1px solid var(--sidebar-border);margin-top:auto;padding-top:18px}.settings-link{margin-top:0}@media (prefers-reduced-motion:reduce){.sidebar nav a,.settings-link,.bottom-nav a{transition:none}}.app-main{min-height:100vh;margin-left:244px}.topbar{border-bottom:1px solid var(--line);background:var(--bg);justify-content:flex-end;align-items:center;height:64px;padding:0 clamp(24px,4vw,58px);display:flex}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in oklch, var(--bg), transparent 8%)}}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-brand{width:96px;display:none}.account-chip{min-height:44px;color:var(--muted);font-size:var(--type-meta);border:1px solid #0000;border-radius:12px;align-items:center;gap:9px;padding:6px 10px 6px 6px;font-weight:600;transition:background-color .16s,border-color .16s,color .16s;display:flex}.account-chip:hover,.account-chip:focus-visible{border-color:var(--line);background:var(--surface-muted);color:var(--text)}.account-chip:focus-visible{outline-color:var(--brand)}.account-chip img,.account-chip>span:first-child{object-fit:cover;background:var(--brand-soft);width:32px;height:32px;color:var(--brand-strong);border-radius:50%;place-items:center;display:grid}.content{width:min(1180px,100%);padding:clamp(34px, 5vw, 68px) clamp(24px, 4vw, 58px) calc(90px + var(--timer-dock-height));margin:0 auto}.bottom-nav{display:none}.page-stack{gap:34px;display:grid}.narrow-page{width:min(820px,100%);margin:0 auto}.calendar-page{width:min(960px,100%);margin-inline:auto}.page-heading{gap:9px;display:grid}.page-heading>p:last-child{max-width:680px;color:var(--muted);margin:0}.split-heading{justify-content:space-between;align-items:flex-end;gap:22px;display:flex}.split-heading>div:first-child{gap:9px;display:grid}.split-heading p{color:var(--muted);margin:0}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.section-heading>div{gap:2px;display:grid}.section-heading>svg{width:22px;height:22px;color:var(--brand)}.surface{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:clamp(20px,3vw,30px);box-shadow:0 1px oklch(100% 0 0/.35)}.filter-bar{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.notes-page{gap:24px;width:min(900px,100%);margin-inline:auto}.notes-page .filter-bar{background:0 0;border:0;padding:0}.notes-page .search-field{width:min(100%,560px)}.filter-row{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.filter-row .search-field{flex:2;min-width:200px}.filter-row .search-field+label{flex:0 0 180px}.filter-row label{min-width:0}.filter-row>.filter-check{cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:8px;min-height:44px;font-weight:600;display:flex}.filter-row>.filter-check input{accent-color:oklch(58% .16 18);width:auto;min-height:0}.filter-row>.filter-check svg{color:oklch(58% .16 18);width:1rem;height:1rem}.filter-row>label:not(.search-field):not(.filter-check){flex:1;min-width:150px}.filter-bar>.filter-row:last-child{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.filter-toggle{color:var(--muted);font-size:var(--type-caption);cursor:pointer;border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-weight:600;display:none}.filter-toggle:hover{color:var(--ink);border-color:var(--muted)}.search-field{align-items:center;display:flex;position:relative}.search-field svg{color:var(--muted);position:absolute;left:13px}.search-field input{padding-left:40px}.book-list{border-top:1px solid var(--line)}.book-row{border-bottom:1px solid var(--line);grid-template-columns:58px minmax(200px,1fr) minmax(150px,220px);align-items:center;gap:18px;min-width:0;padding:20px 10px;transition:background .15s;display:grid}.book-row:hover{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.book-row:hover{background:color-mix(in oklch, var(--brand-soft), transparent 58%)}}.book-row-main{justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;display:flex}.book-row h2{font-size:1rem;line-height:1.4}.book-row p,.progress-summary span{color:var(--muted);font-size:var(--type-meta);margin:4px 0 0}.progress-summary{text-align:right;justify-items:end;gap:4px;min-width:0;display:grid}.progress-summary strong{color:var(--brand-strong);font-size:var(--type-data-sm);font-variant-numeric:tabular-nums}.progress-track{background:var(--surface-muted);border-radius:99px;height:5px;overflow:hidden}.progress-track>span{border-radius:inherit;background:var(--brand);min-width:0;height:100%;display:block}.progress-track.large{height:8px}.status-badge,.source-badge{background:var(--surface-muted);width:max-content;color:var(--muted);font-size:var(--type-caption);white-space:nowrap;border-radius:99px;padding:5px 9px;font-weight:700}.status-badge.reading{background:var(--brand-soft);color:var(--brand-strong)}.status-badge.completed{color:oklch(40% .09 190);background:oklch(92% .05 190)}.status-badge.paused{background:var(--warning-soft);color:var(--warning-text)}.book-cover{background:linear-gradient(145deg, var(--brand-soft), var(--surface-muted));color:var(--brand-strong);border-radius:8px 11px 11px 8px;flex:none;place-items:center;font-family:Georgia,serif;font-weight:700;display:grid;overflow:hidden;box-shadow:inset 3px 0 oklch(30% .04 145/.12),0 7px 18px oklch(22% .03 145/.12)}.book-cover img{object-fit:cover;width:100%;height:100%}.book-cover.tiny{width:42px;height:58px}.book-cover.small{width:52px;height:72px}.book-cover.large{aspect-ratio:2/3;border-radius:10px 17px 17px 10px;width:176px;font-size:3rem}.page-state{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:230px;padding:32px;display:flex}@supports (color:color-mix(in lab, red, red)){.page-state{background:color-mix(in oklch, var(--surface), transparent 35%)}}.page-state>svg{width:32px;height:32px;color:var(--brand)}.page-state p{max-width:480px;color:var(--muted);margin:5px 0 0}.protected-page-state{place-items:center;min-height:100vh;padding:clamp(24px,6vw,72px) clamp(17px,4vw,32px);display:grid}.protected-page-state .page-state{width:min(720px,100%)}.route-error-page{place-items:center;width:min(720px,100%);min-height:100vh;margin:0 auto;padding:clamp(24px,6vw,72px) clamp(17px,4vw,32px);display:grid}.route-error-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:18px;display:grid}.today-dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.95fr);align-items:start;gap:24px}@media (width>=961px){.today-dashboard-grid>.today-plan-stack{padding-top:24px}}.focus-panel,.reminder-panel{align-content:start;gap:22px;display:grid}.focus-panel{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.focus-panel{border-color:color-mix(in oklch, var(--brand), var(--line) 65%)}}.goal-meter{gap:9px;display:grid}.goal-meter>div:first-child{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;display:flex}.goal-meter strong{color:var(--text);font-size:var(--type-subhead)}.goal-meter small{color:var(--muted);font-size:var(--type-caption);font-weight:500}.inline-form{border-top:1px solid var(--line);align-items:end;gap:10px;padding-top:16px;display:flex}.inline-form label{grid-template-columns:1fr 90px;align-items:center}.reminder-panel{background:linear-gradient(145deg, var(--surface), var(--brand-soft))}.reminder-panel p{color:var(--muted);margin:-8px 0 0}.reminder-time{font-size:2rem;line-height:1.2}.today-plan-stack{align-content:start;gap:12px;min-width:0;display:grid}.today-plan-stack-heading{justify-content:space-between;align-items:flex-start;gap:16px;min-height:44px;padding-inline:4px;display:flex}.today-plan-stack-heading>div{gap:2px;display:grid}.today-plan-stack-heading>svg{color:var(--brand);margin-top:2px}.today-plan-list{gap:12px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.today-plan-card{grid-template-columns:12px 64px minmax(0,1fr);align-items:start;gap:13px 10px;min-width:0;padding:16px;transition:border-color .16s,background .16s;display:grid;position:relative}.today-plan-card.is-next{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.today-plan-card.is-next{border-color:color-mix(in oklch, var(--brand), var(--line) 52%)}}.today-plan-card.is-next{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.today-plan-card.is-next{background:color-mix(in oklch, var(--brand-soft), var(--surface) 24%)}}.today-plan-card:focus-within{border-color:var(--brand)}.today-plan-rail{grid-area:1/1/-1;align-self:stretch;min-height:44px;position:relative}.today-plan-rail:before{background:var(--brand);border-radius:99px;width:2px;position:absolute;top:-22px;bottom:-22px;left:5px}@supports (color:color-mix(in lab, red, red)){.today-plan-rail:before{background:color-mix(in oklch, var(--brand), var(--line) 58%)}}.today-plan-rail:before{content:""}.today-plan-card:first-child .today-plan-rail:before{top:22px}.today-plan-card:last-child .today-plan-rail:before{bottom:calc(100% - 22px)}.today-plan-rail>span{z-index:1;border:3px solid var(--surface);background:var(--brand);width:12px;height:12px;box-shadow:0 0 0 1px var(--brand);border-radius:50%;position:absolute;top:17px;left:0}@supports (color:color-mix(in lab, red, red)){.today-plan-rail>span{box-shadow:0 0 0 1px color-mix(in oklch, var(--brand), var(--line) 35%)}}.today-plan-card.is-next .today-plan-rail>span{border-color:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.today-plan-card.is-next .today-plan-rail>span{border-color:color-mix(in oklch, var(--brand-soft), var(--surface) 24%)}}.today-plan-time{gap:1px;min-width:0;display:grid}.today-plan-time>span,.today-plan-time small{color:var(--brand-strong);font-size:var(--type-caption);font-weight:700;line-height:1.35}.today-plan-time time{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:750;line-height:1.35}.today-plan-time small{color:var(--muted);margin-top:2px;font-weight:600}.today-plan-book{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.today-plan-book:hover strong{color:var(--brand-strong)}.today-plan-cover{width:42px;height:58px;font-size:1rem}.today-plan-book>span:last-child{gap:3px;min-width:0;display:grid}.today-plan-book strong,.today-plan-book small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.today-plan-book strong{line-height:1.4;transition:color .16s}.today-plan-book small{color:var(--muted);font-size:var(--type-caption)}.today-plan-progress{background:var(--surface-muted);border-radius:99px;width:100%;height:4px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.today-plan-progress{background:color-mix(in oklch, var(--surface-muted), var(--line) 26%)}}.today-plan-progress>span{border-radius:inherit;background:var(--brand);height:100%;display:block}.today-plan-book .pace-action{max-width:100%;font-size:var(--type-caption);gap:5px;margin-top:2px;padding:3px 7px;line-height:1.45;overflow:hidden}.today-plan-book .pace-action svg{width:13px;height:13px}.today-plan-form{grid-column:2/-1;gap:6px;min-width:0;display:grid}.today-plan-timer{grid-column:2/-1;justify-self:start}.today-plan-form>label{font-size:var(--type-caption)}.today-plan-form-controls{grid-template-columns:minmax(68px,1fr) auto;gap:8px;min-width:0;display:grid}.today-plan-form-controls input{font-variant-numeric:tabular-nums;min-width:0}.today-plan-form-controls .button{min-height:44px;font-size:var(--type-meta);white-space:nowrap;padding-inline:12px}.today-plan-form>.quick-log-button{justify-self:start}.today-plan-form-error,.today-plan-unavailable{font-size:var(--type-caption);margin:0;line-height:1.5}.today-plan-form-error{color:var(--danger)}.today-plan-unavailable{color:var(--muted);grid-column:2/-1}.today-plan-manage{justify-self:end;margin-top:2px}@media (width<=480px){.today-plan-card{grid-template-columns:12px minmax(0,1fr);gap:11px 10px}.today-plan-time,.today-plan-book,.today-plan-form,.today-plan-unavailable{grid-column:2}.today-plan-time{flex-wrap:wrap;align-items:baseline;gap:3px 8px;display:flex}.today-plan-time small{flex-basis:100%;margin-top:0}}.range-picker{background:var(--surface-muted);border-radius:calc(var(--radius) - 4px);-webkit-overflow-scrolling:touch;gap:4px;padding:4px;display:flex;overflow-x:auto}.range-picker-btn{min-height:44px;font-size:var(--type-meta);border-radius:calc(var(--radius) - 8px);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:8px 14px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.range-picker-btn:hover{color:var(--text);background:oklch(0% 0 0/.04)}.range-picker-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px oklch(0% 0 0/.08)}.range-picker-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.today-page>.range-picker{align-self:start;width:fit-content;max-width:100%}.today-page>.range-picker .range-picker-btn{flex:none}.today-page>.range-picker .range-picker-btn.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:700;box-shadow:0 1px 4px oklch(22% .025 145/.1)}.dashboard-range-controls{justify-items:start;gap:12px;width:100%;display:grid}.dashboard-range-controls>.range-picker{width:fit-content;max-width:100%}.dashboard-range-controls>.range-picker .range-picker-btn{flex:none}.dashboard-range-controls>.range-picker .range-picker-btn.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:700;box-shadow:0 1px 4px oklch(22% .025 145/.1)}.custom-range-inputs{flex-wrap:wrap;align-items:end;gap:14px;margin-top:12px;display:flex}.custom-range-inputs label{font-size:var(--type-meta);color:var(--muted);align-items:center;gap:6px;display:flex}.custom-range-inputs input{border:1px solid var(--line);min-height:44px;font-size:var(--type-meta);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 10px}.custom-range-form{gap:8px;display:grid}.custom-range-form .field-error{color:var(--danger);font-size:var(--type-meta);margin:0}.stats-panel{gap:20px;display:grid}.stats-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.stat-item{gap:2px;display:grid}.stat-item strong{font-size:var(--type-subhead);color:var(--text)}.stat-item strong small{font-size:var(--type-meta);color:var(--muted);font-weight:400}.stat-item span{font-size:var(--type-caption);color:var(--muted)}.stats-empty{text-align:center;color:var(--muted);font-size:var(--type-meta);padding:24px 0}.muted-link{font-size:var(--type-caption);color:var(--muted)}.muted-link a{color:var(--brand);text-underline-offset:2px;text-decoration:underline}.muted-text{color:var(--muted);font-size:var(--type-meta)}.bar-chart{grid-template-columns:repeat(7,1fr);gap:clamp(7px,2vw,18px);height:190px;margin-top:24px;display:grid}.bar-column{text-align:center;min-width:0;color:var(--muted);grid-template-rows:20px 1fr 20px;gap:6px;display:grid}.bar-value{font-size:var(--type-caption)}.bar-rail{background:var(--surface-muted);border-radius:9px;position:relative;overflow:hidden}.bar-rail>span{background:var(--brand);border-radius:9px;position:absolute;inset:auto 0 0}.today-chart .section-heading{align-items:center}.today-chart .section-heading>strong{color:var(--brand-strong);font-size:var(--type-data-md);font-variant-numeric:tabular-nums}.today-chart .bar-chart{margin-top:28px}.today-chart .bar-column.is-today{color:var(--brand-strong);font-weight:700}.today-chart .bar-column.is-today .bar-rail{background:var(--brand-soft)}.today-chart .bar-column.is-today .bar-rail>span{background:var(--brand-strong)}.period-dashboard,.today-dashboard{gap:28px;display:grid}.today-dashboard>.page-heading{max-width:720px;padding-inline:4px}.no-active-reading{grid-template-columns:minmax(0,1.08fr) minmax(260px,.92fr);align-items:center;gap:clamp(28px,5vw,64px);padding:clamp(28px,5vw,56px);display:grid}.no-active-reading-copy{gap:14px;max-width:600px;display:grid}.no-active-reading-copy h2,.no-active-reading-copy p{margin:0}.no-active-reading-copy h2{font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.12}.no-active-reading-copy p{max-width:54ch;color:var(--muted)}.no-active-reading-actions{flex-wrap:wrap;gap:10px;padding-top:8px;display:flex}.no-active-reading-actions .button{gap:8px}.no-active-reading-actions svg{width:16px;height:16px}.no-active-reading-benefits{border-block:1px solid var(--line);margin:0;padding:0;list-style:none}.no-active-reading-benefits li{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:16px 2px;display:grid}.no-active-reading-benefits li+li{border-top:1px solid var(--line)}.no-active-reading-benefits svg{box-sizing:content-box;width:15px;height:15px;color:var(--brand-strong);background:var(--brand-soft);border-radius:50%;padding:5px}.today-dashboard .section-heading>svg,.today-dashboard .today-plan-stack-heading>svg{box-sizing:content-box;background:var(--brand-soft);border-radius:10px;width:18px;height:18px;padding:7px}.today-dashboard .goal-meter+.goal-meter{border-top:1px solid var(--line);padding-top:18px}.today-dashboard>.quick-reading-entry{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.today-dashboard>.quick-reading-entry{background:color-mix(in oklch, var(--brand-soft), var(--surface) 76%)}}.today-dashboard>.quick-reading-entry{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.today-dashboard>.quick-reading-entry{border-color:color-mix(in oklch, var(--brand), var(--line) 72%)}}.period-summary-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:stretch;gap:18px;display:grid}.period-summary-grid.is-stats-only{grid-template-columns:minmax(0,720px)}.period-goals,.period-stats,.period-chart-section,.period-books{align-content:start;gap:20px;min-width:0;display:grid}.period-dashboard .section-heading,.period-goal-copy strong,.period-metrics dd,.period-book-copy>strong{color:var(--text)}.period-goal-list{gap:18px;display:grid}.period-goal{gap:8px;display:grid}.period-goal+.period-goal{border-top:1px solid var(--line);padding-top:18px}.period-goal-copy{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.period-goal-copy>span{color:var(--muted);font-size:var(--type-meta)}.period-goal-copy strong{font-size:var(--type-data-md);font-variant-numeric:tabular-nums}.period-goal-copy small{color:var(--muted);font-size:var(--type-meta);font-weight:500}.period-goal p,.period-goal-empty,.period-consistency{color:var(--muted);font-size:var(--type-meta);margin:0}.period-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.period-metrics>div{flex-direction:column-reverse;gap:4px;min-width:0;padding:14px 16px;display:flex}.period-metrics>div:nth-child(odd){padding-left:0}.period-metrics>div:nth-child(2n){border-left:1px solid var(--line);padding-right:0}.period-metrics>div:nth-child(n+3){border-top:1px solid var(--line)}.period-metrics dt{color:var(--muted);font-size:var(--type-caption)}.period-metrics dd{font-size:var(--type-data-lg);font-variant-numeric:tabular-nums;margin:0;font-weight:750;line-height:1.25}.period-metrics dd small{color:var(--muted);font-size:var(--type-meta);font-weight:500}.period-chart-scroll{overscroll-behavior-inline:contain;scrollbar-gutter:stable;min-width:0;overflow-x:auto}.period-chart{--period-chart-column:62px;min-width:max(100%, calc(var(--bucket-count) * var(--period-chart-column)));grid-auto-columns:minmax(48px,1fr);grid-auto-flow:column;gap:clamp(7px,1.8vw,16px);height:220px;padding:4px 2px;display:grid}.period-chart[data-granularity=week]{--period-chart-column:76px}.period-chart-column{min-width:0;color:var(--muted);text-align:center;grid-template-rows:22px minmax(120px,1fr) 38px;gap:6px;display:grid}.period-chart-column small,.period-chart-value{font-size:var(--type-caption);text-overflow:ellipsis;line-height:1.35;overflow:hidden}.period-chart-column small{white-space:normal}.period-chart-value{font-variant-numeric:tabular-nums;white-space:nowrap}.period-chart-rail{background:var(--surface-muted);border-radius:8px;position:relative;overflow:hidden}.period-chart-fill{border-radius:inherit;background:var(--brand);transform:scaleY(var(--bar-size));transform-origin:bottom;transition:transform .18s var(--ease-page-enter);position:absolute;inset:0}.period-chart-column[data-state=future] .period-chart-rail{border:1px dashed var(--line);background:0 0}.period-chart-column[data-state=future] .period-chart-fill{display:none}.period-chart-column[data-state=future] small:after{color:var(--muted);content:"·";display:block}.period-book-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.period-book-list>li{border-bottom:1px solid var(--line)}.period-book-link{min-width:0;transition:background .16s var(--ease-page-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 4px;display:grid}.period-book-link:hover{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.period-book-link:hover{background:color-mix(in oklch, var(--brand-soft), transparent 68%)}}.period-book-copy{gap:2px;min-width:0;display:grid}.period-book-copy>strong,.period-book-copy>small,.period-book-copy>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.period-book-copy>small,.period-book-copy>span,.period-book-progress small{color:var(--muted);font-size:var(--type-caption)}.period-book-copy em{width:max-content;color:var(--brand-strong);font-size:var(--type-caption);align-items:center;gap:5px;margin-top:4px;font-style:normal;font-weight:700;display:inline-flex}.period-book-copy em svg{width:14px;height:14px}.period-book-progress{font-variant-numeric:tabular-nums;white-space:nowrap;justify-items:end;gap:2px;display:grid}.period-book-progress>strong{color:var(--brand-strong)}@media (width<=960px){.period-summary-grid,.period-summary-grid.is-stats-only{grid-template-columns:1fr}}@media (width<=720px){.period-dashboard,.today-dashboard{gap:24px}.no-active-reading{grid-template-columns:1fr;gap:28px}.period-chart{--period-chart-column:58px}.period-chart[data-granularity=week]{--period-chart-column:70px}.period-book-link{grid-template-columns:auto minmax(0,1fr) auto}.period-book-progress{grid-column:2;justify-items:start}.period-book-link>svg{grid-area:1/3/span 2}}@media (width<=480px){.custom-range-inputs,.custom-range-inputs label{flex-direction:column;align-items:stretch}.custom-range-inputs .button{width:100%}.period-metrics{grid-template-columns:1fr}.period-metrics>div,.period-metrics>div:nth-child(odd),.period-metrics>div:nth-child(2n){border-left:0;padding:12px 0}.period-metrics>div+div{border-top:1px solid var(--line)}.period-book-link{gap:10px}.period-book-link .book-cover.small{width:46px;height:64px}}@media (prefers-reduced-motion:reduce){.period-chart-fill,.period-book-link{transition:none}}.quick-reading-entry{gap:20px;display:grid}.quick-reading-entry-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.quick-reading-entry-heading>div{gap:4px;min-width:0;display:grid}.quick-reading-entry-description,.quick-reading-entry-streak,.quick-reading-entry-book p,.quick-reading-entry-empty p{color:var(--muted);margin:0}.quick-reading-entry-description{max-width:65ch;font-size:var(--type-meta)}.quick-reading-entry-streak{font-size:var(--type-meta);flex:0 auto;align-items:center;gap:8px;font-weight:600;display:inline-flex}.quick-reading-entry-switcher{width:min(100%,360px)}.quick-reading-entry-layout{grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);align-items:start;gap:24px;min-width:0;display:grid}.quick-reading-entry-book{min-width:0;transition:background .16s var(--ease-page-enter);border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;margin:-4px;padding:4px;display:grid}.quick-reading-entry-book:hover{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.quick-reading-entry-book:hover{background:color-mix(in oklch, var(--brand-soft), transparent 68%)}}.quick-reading-entry-book:hover h3{color:var(--brand-strong)}.quick-reading-entry-book>div:last-child{min-width:0}.quick-reading-entry-book h3{overflow-wrap:anywhere}.quick-reading-entry-book p{font-size:var(--type-meta)}.quick-reading-entry-progress{gap:10px;min-width:0;display:grid}.quick-reading-entry .quick-progress,.quick-reading-entry .today-plan-form{grid-template-columns:1fr;gap:10px;display:grid}.quick-reading-entry .quick-progress input{width:100%;min-height:44px}.quick-reading-entry .page-increment-controls{flex-wrap:wrap}.quick-reading-entry .quick-log-button,.quick-reading-entry .today-plan-form.is-entry>.button.primary,.quick-reading-entry-progress>.button{justify-self:start}.quick-reading-entry .button.compact{min-height:44px}@media (width>=721px){.quick-reading-entry-progress{grid-template-columns:minmax(0,1fr);align-items:center}.quick-reading-entry-progress>.quick-progress,.quick-reading-entry-progress>.today-plan-form{grid-column:1/-1}.quick-reading-entry .quick-progress,.quick-reading-entry .today-plan-form.is-entry{grid-template-columns:max-content max-content;justify-content:start;align-items:center;gap:10px 8px}.quick-reading-entry .quick-progress>label,.quick-reading-entry .today-plan-form.is-entry>label,.quick-reading-entry .today-plan-form.is-entry>.today-plan-form-controls{grid-column:1/-1}.quick-reading-entry .quick-progress>.page-increment-controls,.quick-reading-entry .today-plan-form.is-entry>.page-increment-controls{flex-wrap:nowrap;grid-column:1}.quick-reading-entry .quick-progress>.quick-log-button,.quick-reading-entry .today-plan-form.is-entry>.quick-log-button{grid-column:2;justify-self:start}.quick-reading-entry .quick-progress>.progress-actions,.quick-reading-entry .today-plan-form.is-entry>.button.primary{grid-column:1/-1;justify-self:start}.quick-reading-entry-progress>.today-plan-form+button.button{grid-column:1/-1}}@media (width>=721px) and (width<=960px){.quick-reading-entry-progress,.quick-reading-entry .quick-progress,.quick-reading-entry .today-plan-form.is-entry{grid-template-columns:1fr}.quick-reading-entry .quick-progress>label,.quick-reading-entry .quick-progress>.page-increment-controls,.quick-reading-entry .quick-progress>.quick-log-button,.quick-reading-entry .quick-progress>.progress-actions,.quick-reading-entry .today-plan-form.is-entry>label,.quick-reading-entry .today-plan-form.is-entry>.today-plan-form-controls,.quick-reading-entry .today-plan-form.is-entry>.page-increment-controls,.quick-reading-entry .today-plan-form.is-entry>.quick-log-button,.quick-reading-entry .today-plan-form.is-entry>.button.primary,.quick-reading-entry-progress>.today-plan-form+button.button{grid-column:1/-1}.quick-reading-entry .quick-progress>.page-increment-controls,.quick-reading-entry .today-plan-form.is-entry>.page-increment-controls{flex-wrap:wrap}}.quick-reading-entry-empty{justify-items:start;gap:12px;display:grid}.today-dashboard .quick-reading-entry-heading{border-bottom:1px solid var(--line);padding-bottom:18px}@supports (color:color-mix(in lab, red, red)){.today-dashboard .quick-reading-entry-heading{border-bottom:1px solid color-mix(in oklch, var(--line), var(--brand-soft) 45%)}}.today-dashboard .quick-reading-entry-streak{background:var(--brand-soft);color:var(--brand-strong);font-size:var(--type-caption);border-radius:999px;padding:6px 10px}.today-dashboard .quick-reading-entry .quick-progress input,.today-dashboard .quick-reading-entry .today-plan-form input{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.today-dashboard .quick-reading-entry .quick-progress input,.today-dashboard .quick-reading-entry .today-plan-form input{border-color:color-mix(in oklch, var(--brand), var(--line) 58%)}}.today-dashboard .quick-reading-entry .quick-progress input,.today-dashboard .quick-reading-entry .today-plan-form input{font-size:var(--type-data-md);font-variant-numeric:tabular-nums;font-weight:700}.today-book-list{border-top:1px solid var(--line)}.today-book{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:17px 4px;display:flex}.book-identity{align-items:center;gap:16px;min-width:0;display:flex}.book-identity h3{margin:2px 0}.book-identity p{color:var(--muted);font-size:var(--type-meta);margin:0}.book-identity .overline{font-size:var(--type-caption);margin:0}.quick-progress{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quick-progress>.page-increment-controls{flex-basis:100%}.quick-progress input{width:88px;min-height:38px}.quick-progress .quick-log-button{flex:none}.progress-form>.quick-log-button{grid-column:1/-1;justify-self:start}.book-discovery{border-bottom:1px solid var(--line);gap:14px;padding-bottom:18px;display:grid}.book-discovery-heading{gap:4px;display:grid}.book-discovery-heading p,.book-discovery>.form-error,.book-discovery>.muted{margin:0}.book-discovery-controls{grid-template-columns:auto minmax(180px,1fr) auto;align-items:end;gap:10px;display:grid}.book-discovery-input{gap:6px;min-width:0;display:grid}.book-discovery-input>span{font-size:var(--type-meta);font-weight:700}.book-discovery-search{min-width:116px}.isbn-scanner{gap:8px;display:grid}.isbn-scanner>.button{min-height:44px}.scanner-error{justify-items:start;gap:8px;display:grid}.scanner-error .form-error{margin:0}.scanner-overlay{z-index:var(--z-dialog-overlay);background:oklch(10% .01 145/.95);position:fixed;inset:0}.scanner-dialog{z-index:var(--z-dialog);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.scanner-dialog video{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);width:100%;max-width:480px}.scanner-frame{aspect-ratio:3;border:2px solid var(--brand);pointer-events:none;border-radius:12px;width:min(78vw,360px);position:absolute;box-shadow:0 0 0 100vmax oklch(10% .01 145/.35)}.scanner-close{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));color:oklch(95% .01 145);cursor:pointer;background:oklch(20% .01 145/.8);border:none;border-radius:999px;place-items:center;min-width:44px;min-height:44px;display:grid;position:absolute}.scanner-hint{bottom:max(24px, env(safe-area-inset-bottom));color:oklch(95% .01 145);text-align:center;margin:0;padding:0 16px;position:absolute}.book-discovery-results{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.book-discovery-result{border-bottom:1px solid var(--line);min-height:83px;color:var(--text);text-align:left;background:0 0;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 4px;transition:background .16s ease-out;display:grid}.book-discovery-result:hover,.book-discovery-result:focus-within{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.book-discovery-result:hover,.book-discovery-result:focus-within{background:color-mix(in oklch, var(--brand-soft), transparent 45%)}}.book-discovery-result-copy,.catalog-result-copy{gap:5px;min-width:0;display:grid}.book-discovery-result-copy strong,.book-discovery-result-copy small,.catalog-result-copy strong,.catalog-result-copy small{overflow-wrap:anywhere}.book-discovery-result-copy small,.catalog-result-copy small{color:var(--muted)}.book-discovery-result-action,.catalog-result-action{min-width:126px}.book-discovery-loading{border-top:1px solid var(--line);display:grid}.book-discovery-skeleton-row{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(0,1fr) 126px;align-items:center;gap:13px;min-height:83px;padding:12px 4px;display:grid}.book-discovery-skeleton-cover,.book-discovery-skeleton-copy>span,.book-discovery-skeleton-action{background:linear-gradient(100deg, var(--surface-muted) 30%, var(--brand-soft) 48%, var(--surface-muted) 66%);background-size:240% 100%;animation:1.4s ease-in-out infinite book-discovery-loading}.book-discovery-skeleton-cover{border-radius:8px 11px 11px 8px;width:42px;height:58px}.book-discovery-skeleton-copy{gap:9px;display:grid}.book-discovery-skeleton-copy>span{border-radius:6px;width:min(100%,260px);height:12px}.book-discovery-skeleton-copy>span:last-child{width:min(72%,190px);height:10px}.book-discovery-skeleton-action{border-radius:12px;width:126px;height:44px}.book-discovery-selected{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding-top:12px;display:flex}.book-discovery-selected p{margin:0;font-weight:700}.book-discovery-selected-actions{flex-wrap:wrap;gap:8px;display:flex}@keyframes book-discovery-loading{to{background-position-x:-240%}}@media (prefers-reduced-motion:reduce){.book-discovery-result{transition:none}.book-discovery-skeleton-cover,.book-discovery-skeleton-copy>span,.book-discovery-skeleton-action{animation:none}}.form-stack{gap:18px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.book-new-form{gap:0}.book-new-form>.book-discovery{padding-bottom:24px}.book-draft-recovery{border:1px solid var(--line);background:var(--surface-muted);color:var(--muted);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.book-draft-recovery .button{flex:none}.book-draft-file-note{color:var(--muted);font-size:var(--type-meta);margin:-4px 0 0}.book-new-section{gap:18px;padding:24px 0;display:grid}.book-new-form>.book-new-section{border-bottom:1px solid var(--line)}.book-new-form>.form-actions{padding-top:24px}.book-new-details{grid-template-columns:minmax(170px,210px) minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,38px);min-width:0;display:grid}.book-new-cover-column,.book-new-fields,.book-new-field{min-width:0}.book-new-cover-column,.book-new-fields{gap:16px;display:grid}.book-new-cover-column legend{justify-content:space-between;align-items:baseline;gap:10px;width:100%;margin:0 0 10px;font-weight:700;display:flex}.book-new-cover-column legend small,.book-new-field-heading>span{color:var(--muted);font-size:var(--type-caption);text-align:right;font-weight:500}.book-new-cover-column .segmented button{min-height:44px;transition:background .16s ease-out,color .16s ease-out}.book-new-cover-source{gap:6px;display:grid}.book-new-cover-mode-label{color:var(--muted);font-size:var(--type-caption);margin:0;font-weight:600}.book-new-fields{gap:18px}.book-new-field{gap:7px;display:grid}.book-new-field-heading{justify-content:space-between;align-items:baseline;gap:6px 14px;min-width:0;display:flex}.book-new-field-heading label{flex:none;display:block}.book-new-field-heading>span{overflow-wrap:anywhere;min-width:0}.book-new-metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.book-new-categories-field{grid-column:1/-1}.book-new-form :is(input,select)[aria-invalid=true]{border-color:var(--danger)}.cover-preview-frame{aspect-ratio:2/3;background:var(--surface-muted);border-radius:12px;place-items:center;width:100%;display:grid;overflow:hidden}.cover-preview-frame img{object-fit:cover;width:100%;height:100%}.book-new-form .cover-preview-placeholder{color:var(--muted);font-size:var(--type-meta);text-align:center;justify-items:center;gap:10px;padding:18px;font-weight:600;display:grid}.book-new-form .cover-preview-placeholder svg{width:30px;height:30px;color:var(--brand)}.book-new-form .file-drop{border:1px dashed var(--line);background:var(--surface-muted);cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:88px;padding:13px;transition:border-color .16s ease-out,background .16s ease-out;display:flex;position:relative}.book-new-form .file-drop:hover{border-color:var(--brand);background:var(--brand-soft)}.book-new-form .file-drop>svg{width:24px;height:24px;color:var(--brand)}.book-new-form .file-drop>span{overflow-wrap:anywhere;gap:3px;min-width:0;display:grid}.book-new-form .file-drop small{color:var(--muted);font-weight:500}.book-new-form .file-drop input,.upload-button input{opacity:0;width:1px;height:1px;position:absolute}.book-new-form .cover-link-field{gap:5px;min-width:0;display:grid}.book-new-form .cover-link-field small{color:var(--muted);font-weight:500}.book-new-remove-cover{width:100%;min-height:44px}@media (width<=960px){.book-new-details{grid-template-columns:1fr}.book-new-cover-column{width:min(100%,280px)}}@media (width<=480px){.no-active-reading{padding:24px 20px}.no-active-reading-actions{flex-direction:column;align-items:stretch}.no-active-reading-actions .button{width:100%}.book-draft-recovery{flex-direction:column;align-items:stretch}.book-draft-recovery .button,.book-new-cover-column{width:100%}.book-new-metadata-grid{grid-template-columns:1fr}.book-new-categories-field{grid-column:auto}.book-new-form>.form-actions{flex-direction:column-reverse;align-items:stretch}.book-new-form>.form-actions .button{width:100%}}.cover-controls{align-self:end;justify-items:end;gap:8px;display:grid}.cover-link-form{align-items:center;gap:8px;width:min(320px,60vw);display:flex}.cover-link-form input{flex:1;min-width:0}.form-error{color:var(--danger);font-size:var(--type-meta);margin:0}.book-hero{grid-template-columns:auto 1fr auto;align-items:end;gap:clamp(25px,5vw,56px);display:grid;position:relative}.book-hero-copy{gap:10px;min-width:0;display:grid}.book-hero-copy h1{max-width:18ch}.book-hero-copy>p{color:var(--muted);margin:0}.hero-progress{grid-template-columns:auto 1fr;align-items:baseline;gap:5px 12px;max-width:470px;margin-top:12px;display:grid}.hero-progress strong{color:var(--brand-strong);font-size:1.5rem}.hero-progress>span{color:var(--muted);font-size:var(--type-meta)}.hero-progress .progress-track{grid-column:1/-1}.upload-button{cursor:pointer;position:relative;overflow:hidden}.detail-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.detail-grid .surface{align-content:start;gap:20px;display:grid}.progress-form{grid-template-columns:minmax(130px,.5fr) 1fr auto;align-items:end;gap:12px;display:grid}.progress-form>span{min-height:44px;color:var(--muted);font-size:var(--type-meta);align-items:center;display:flex}.progress-form>.page-increment-controls{grid-column:1/-1}.progress-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.timeline{display:grid}.timeline article{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:12px;padding:16px 0 16px 28px;display:grid;position:relative}.timeline article:before{content:"";background:var(--line);left:7px;width:1px;position:absolute;inset-block:0}.timeline-dot{z-index:1;border:2px solid var(--surface);background:var(--brand);border-radius:50%;width:11px;height:11px;position:absolute;top:23px;left:2px}.timeline p{color:var(--muted);font-size:var(--type-meta);margin:4px 0 0}.planner-forms{grid-template-columns:minmax(0,1.25fr) minmax(260px,.85fr);align-items:start;gap:20px;display:grid}.planner-form{min-width:0}.planner-form-primary{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.planner-form-primary{border-color:color-mix(in oklch, var(--brand), var(--line) 58%)}}.planner-form-primary{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.planner-form-primary{background:color-mix(in oklch, var(--surface), var(--brand-soft) 10%)}}.planner-form-secondary{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.planner-form-secondary{background:color-mix(in oklch, var(--surface), var(--surface-muted) 18%)}}.planner-schedule-section{gap:14px;min-width:0;display:grid}.day-picker,.segmented{flex-wrap:wrap;gap:7px;display:flex}.day-picker button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--muted);cursor:pointer;border-radius:50%;font-weight:700;transition:background-color .16s,border-color .16s,color .16s}.day-picker button:hover:not(.selected){border-color:var(--brand);color:var(--brand-strong)}.day-picker button.selected{border-color:var(--brand);background:var(--brand);color:#fff}.segmented{background:var(--surface-muted);border-radius:12px;padding:4px}.segmented button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1}.segmented button.selected{background:var(--surface);color:var(--text);box-shadow:0 2px 10px oklch(20% .02 145/.08)}.schedule-list{border-top:1px solid var(--line)}.schedule-list article{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(0,1fr) 44px;align-items:center;gap:16px;padding:16px 4px;display:grid}.schedule-list article:focus-within{background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){.schedule-list article:focus-within{background:color-mix(in oklch, var(--surface-muted), transparent 42%)}}.schedule-list .icon-button:hover:not(:disabled){background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){.schedule-list .icon-button:hover:not(:disabled){background:color-mix(in oklch, var(--surface-muted), var(--danger) 10%)}}.planner-schedule-copy{min-width:0}.schedule-list h3{margin:2px 0}.schedule-list p{color:var(--muted);font-size:var(--type-meta);margin:0}.schedule-list .overline{margin:0}.date-tile{text-align:center;background:var(--brand-soft);width:52px;height:58px;color:var(--brand-strong);border-radius:12px;place-content:center;display:grid}.date-tile strong{font-size:var(--type-subhead);line-height:1}.date-tile span{font-size:var(--type-caption)}.date-tile.recurring svg{width:22px;height:22px}.notification-list{border-top:1px solid var(--line)}.notification-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:14px;padding:18px 4px;display:grid}.notification-list article.unread{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.notification-list article.unread{background:color-mix(in oklch, var(--brand-soft), transparent 65%)}}.notification-list article>a,.notification-content{grid-template-columns:auto 1fr;align-items:start;gap:14px;min-width:0;display:grid}.notification-list h2{font-size:var(--type-body)}.notification-list p{color:var(--muted);font-size:var(--type-meta);margin:3px 0}.notification-list small{color:var(--muted)}.notification-icon{background:var(--surface-muted);width:40px;height:40px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.notification-icon.unread{background:var(--brand-soft);color:var(--brand-strong)}.settings-section{gap:16px;display:grid}.settings-section>p{color:var(--muted);margin:0}.settings-page{grid-template-columns:minmax(0,1fr);row-gap:clamp(22px,3vw,30px);width:min(1040px,100%);margin-inline:auto}.settings-page>.page-heading,.settings-page>.settings-profile-card,.settings-page>.settings-summary-card,.settings-page>.goals-section,.settings-page>.public-profile-setting,.settings-page>.portability-section{grid-column:1/-1}.settings-page>*{min-width:0}.settings-display-options{gap:16px;display:grid}.settings-summary-card .toggles-stack{border-top:1px solid var(--line);gap:0}.settings-summary-card .toggle-row{border-bottom:1px solid var(--line);min-height:54px;padding:10px 0}.settings-summary-card .toggle-row>span:first-child{overflow-wrap:anywhere;min-width:0}.settings-summary-time{width:min(100%,260px);margin-top:2px}.settings-summary-card>.button{justify-self:start;margin-top:2px}.settings-page .goals-section{grid-template-columns:1fr}.settings-status-block{gap:10px;display:grid}.settings-status-block p{margin:0}.settings-telegram-card .connection-row,.settings-page .goal-setting{min-width:0}.settings-telegram-card .connection-row{flex-wrap:wrap;row-gap:12px}@media (width>=600px){.settings-display-options{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media (width>=720px){.settings-page .goals-section{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-page .goals-section>.section-heading,.settings-page .goals-section>p,.settings-page .goals-section>.muted-text{grid-column:1/-1}}@media (width>=960px){.settings-page{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(18px,2.6vw,28px)}.settings-page>.settings-display-card{grid-column:span 7}.settings-page>.settings-telegram-card{grid-column:span 5}.settings-page>.settings-session-card,.settings-page>.settings-danger-card{grid-column:span 6;align-self:start}}.book-hero-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.timezone-field{gap:8px;display:grid}.timezone-label{font-weight:700}.timezone-trigger{border:1px solid var(--line);background:var(--surface);width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.timezone-trigger:hover,.timezone-trigger[aria-expanded=true]{border-color:var(--brand);background:var(--brand-soft)}.timezone-trigger>span,.timezone-option>span,.timezone-device>span{gap:1px;min-width:0;display:grid}.timezone-trigger strong,.timezone-option strong,.timezone-device strong{font-size:var(--type-meta);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timezone-trigger small,.timezone-option small,.timezone-device small{color:var(--muted);font-size:var(--type-caption)}.timezone-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.timezone-panel{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;gap:10px;min-width:0;padding:12px;display:grid}.timezone-search{min-width:0;display:block;position:relative}.timezone-search>svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.timezone-search input{background:var(--surface);width:100%;padding-left:40px}.timezone-device,.timezone-option{width:100%;min-height:48px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:7px 10px;display:flex}.timezone-device{border:1px solid var(--line);background:var(--surface);color:var(--brand-strong)}.timezone-device:hover,.timezone-option:hover,.timezone-option.active{background:var(--brand-soft)}.timezone-option{justify-content:space-between}.timezone-option[aria-selected=true]{color:var(--brand-strong);font-weight:700}.timezone-results{overscroll-behavior:contain;scrollbar-gutter:stable;gap:2px;max-height:min(360px,48vh);display:grid;overflow-y:auto}.timezone-loading{align-content:start;gap:9px;min-height:148px;padding:8px;display:grid}.timezone-loading>span:not(.sr-only){background:linear-gradient(90deg, var(--surface) 20%, var(--line) 50%, var(--surface) 80%);background-size:220% 100%;border-radius:8px;height:42px;animation:1.2s ease-in-out infinite timezone-loading}.timezone-state{min-height:140px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;padding:24px 12px;display:grid}.timezone-state p{color:var(--text);margin:0;font-weight:700}@keyframes timezone-loading{to{background-position-x:-220%}}@media (prefers-reduced-motion:reduce){.timezone-loading>span:not(.sr-only){animation:none}}.goal-setting{border-top:1px solid var(--line);gap:12px;padding-top:14px;display:grid}.goal-setting-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.goal-setting-summary{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:baseline;gap:4px 16px;min-width:min(100%,220px);display:flex}.goal-setting-summary>span:first-child{font-size:var(--type-meta);color:var(--text)}.goal-setting-summary strong{font-size:var(--type-meta);color:var(--brand-strong);text-align:right;min-width:64px}.goal-setting-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.goal-setting-actions .button.compact{min-height:44px}.goal-setting .goal-setting-form{border-top:none;flex-wrap:wrap;align-items:center;padding-top:0}.goal-setting-form label{flex:1;grid-template-columns:1fr;min-width:min(100%,180px)}.goal-setting-form input{width:100%}.goals-section{scroll-margin-top:24px}.goal-settings-link{color:var(--muted);font-size:var(--type-meta);flex-wrap:wrap;align-items:center;gap:4px;margin:-2px 0 0;display:flex}.danger-zone{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.danger-zone{border-color:color-mix(in oklch, var(--danger), var(--line) 65%)}}.portability-section{gap:16px}.portability-group{border-top:1px solid var(--line);gap:14px;padding-block:18px;display:grid}.portability-group-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.portability-group-heading h3,.portability-group-heading p{margin:0}.portability-group-heading p{color:var(--muted);margin-top:4px}.portability-group-heading>svg{width:20px;height:20px;color:var(--muted);flex:none}.external-import-controls{justify-items:start;gap:10px;display:grid}.external-import-controls>label:not(.button){gap:6px;width:min(100%,360px);font-weight:650;display:grid}.external-import-controls select{width:100%;min-height:44px}.external-import-controls>p{max-width:70ch;margin:0}.privacy-warning{color:var(--text);border-block:1px solid var(--line);align-items:flex-start;gap:10px;padding:12px 0;display:flex}.privacy-warning svg{width:20px;height:20px;color:var(--warning,#9a5b00);flex:none}.portability-actions{flex-wrap:wrap;gap:10px;display:flex}.backup-file-label{cursor:pointer}.backup-file-label input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.backup-file-label:focus-within{outline:3px solid var(--focus);outline-offset:3px}.portability-status{gap:12px;display:grid}.portability-status>p{margin:0}.import-preview{border-top:1px solid var(--line);gap:14px;padding-top:14px;display:grid}.import-preview h3,.import-conflicts p,.import-conflicts ul{margin:0}.import-summary{background:var(--line);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.import-summary div{background:var(--surface-muted);gap:3px;padding:10px 12px;display:grid}.import-summary dt{color:var(--muted);font-size:var(--type-caption)}.import-summary dd{margin:0;font-weight:700}.import-conflicts{gap:8px;display:grid}.import-conflicts ul{color:var(--muted);overflow-wrap:anywhere;padding-left:20px}.success-message{color:var(--success,#237447);font-weight:600}.settings-profile{align-items:center;gap:16px;display:flex}.settings-profile h2,.settings-profile p{margin:0}.settings-profile p{color:var(--muted);font-size:var(--type-meta)}.avatar-large{background:var(--brand-soft);width:52px;height:52px;color:var(--brand-strong);border-radius:50%;place-items:center;font-size:1.1rem;font-weight:700;display:grid;overflow:hidden}.avatar-large img{object-fit:cover;width:100%;height:100%}.connection-row{align-items:center;gap:9px;display:flex}.connection-row .button{margin-left:auto}.toggles-stack{flex-direction:column;gap:8px;display:flex}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.toggle-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}.status-dot{width:9px;height:9px;box-shadow:0 0 0 4px var(--brand-soft);background:oklch(65% .16 145);border-radius:50%}.auth-page{background:var(--bg);align-content:center;justify-items:center;gap:clamp(24px,4vw,40px);min-height:100dvh;padding:clamp(32px,7vh,72px) clamp(20px,5vw,64px);display:grid}.auth-brand{justify-items:center;width:100%;display:grid}.sign-in-brand{width:min(176px,70vw)}.auth-intro{text-align:center;gap:12px;width:min(460px,100%);display:grid}.auth-intro h1{margin:0;font-size:clamp(1.75rem,6vw,2.35rem);line-height:1.18}.auth-intro p{color:var(--muted);margin:0}.auth-intro ul{color:var(--text);font-size:var(--type-meta);text-align:left;justify-content:center;gap:6px;margin:2px 0 0;padding:0;list-style:none;display:grid}.auth-intro li:before{content:"✓";color:var(--brand-strong);margin-inline-end:8px;font-weight:700}.auth-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow);gap:16px;margin:0;padding:clamp(24px,4vw,32px);display:grid}.auth-panel h2{font-size:1.65rem}.auth-panel>p:not(.form-error):not(.setup-note){color:var(--muted);margin:0}.auth-panel .button{min-height:44px;margin-top:8px}.google-mark{flex:none;width:20px;height:20px}.auth-panel .setup-note{background:var(--warning-soft);color:var(--text);font-size:var(--type-meta);border-radius:10px;padding:12px}.fine-print{font-size:var(--type-caption)}@media (height<=700px){.auth-page{align-content:start;gap:18px;padding-block:20px}.sign-in-brand{width:132px}.auth-intro{gap:8px}.auth-panel{gap:12px;padding:20px}}.reading-time-summary{border-block:1px solid var(--line);gap:16px;padding-block:18px;display:grid}.reading-time-summary-heading,.reading-time-summary-error{justify-content:space-between;align-items:center;gap:18px;display:flex}.reading-time-measures,.reading-time-report-totals{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.reading-time-measures>div,.reading-time-report-totals>div{border-left:1px solid var(--line);min-width:0;padding:4px 20px}.reading-time-measures>div:first-child,.reading-time-report-totals>div:first-child{border-left:0;padding-left:0}.reading-time-measures dt,.reading-time-report-totals dt{color:var(--muted);font-size:var(--type-meta)}.reading-time-measures dd,.reading-time-report-totals dd{overflow-wrap:normal;font-size:var(--type-data-lg);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;margin:2px 0 0;font-weight:700;line-height:1.25}.reading-time-report-totals dd{white-space:nowrap}.reading-time-toolbar,.reading-time-period-controls{align-items:center;gap:10px;min-width:0;display:flex}.reading-time-toolbar{flex-wrap:wrap;justify-content:space-between}.reading-time-period-controls input{width:auto;min-width:0}.reading-time-report{gap:0;min-width:0;display:grid}.reading-time-report-summary{border-bottom:1px solid var(--line);min-width:0;padding-bottom:28px}.reading-time-report-totals>.is-primary dd{font-size:clamp(1.65rem,2.4vw,2rem)}.reading-time-chart-region{border-bottom:1px solid var(--line);min-width:0;padding-block:28px}.reading-time-chart-scroll{overscroll-behavior-inline:contain;min-width:0;padding-bottom:4px;overflow-x:auto}.reading-time-chart{align-items:stretch;gap:clamp(8px,2vw,20px);width:100%;min-width:0;min-height:240px;display:flex}.reading-time-column{text-align:center;flex:1;grid-template-rows:24px minmax(150px,1fr) auto;gap:8px;min-width:0;display:grid}.reading-time-column>span,.reading-time-column small{color:var(--muted);font-size:var(--type-caption);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reading-time-column>div{background:var(--surface-muted);border-radius:8px 8px 3px 3px;position:relative;overflow:hidden}.reading-time-column i{background:var(--brand);border-radius:6px 6px 2px 2px;display:block;position:absolute;inset:auto 0 0}.reading-time-table summary{min-height:44px;color:var(--brand-strong);cursor:pointer;font-size:var(--type-meta);padding-block:8px;font-weight:700}.reading-time-table{min-width:0;padding-top:18px}.reading-time-table-scroll{min-width:0;max-width:100%;overflow-x:auto}.reading-time-table table{border-collapse:collapse;width:100%;min-width:520px;font-size:var(--type-meta);margin-top:14px}.reading-time-table th,.reading-time-table td{border-bottom:1px solid var(--line);text-align:left;padding:10px}.reading-session-history{min-width:0;margin-top:8px;display:grid}.reading-session-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;padding-block:18px;display:grid}.reading-session-main{grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:20px;min-width:0;display:grid}.reading-session-main>div{min-width:0;display:grid}.reading-session-main>div strong{overflow-wrap:anywhere}.reading-session-main>div span,.reading-session-main>span{min-width:0;color:var(--muted);font-size:var(--type-meta)}.reading-session-duration{font-size:var(--type-data-sm);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap}.reading-session-actions{gap:6px;display:flex}.reading-session-editor{background:var(--surface-muted);border-radius:12px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;display:grid}.reading-session-editor .form-actions{grid-column:1/-1}.reading-time-empty{color:var(--muted);margin:14px 0 0}.app-layout:has(.reading-timer-dock){--timer-dock-height:82px}.reading-timer-dock{z-index:var(--z-timer);border-top:1px solid var(--line);background:var(--surface);min-height:82px;position:fixed;bottom:0;left:244px;right:0}@supports (color:color-mix(in lab, red, red)){.reading-timer-dock{background:color-mix(in oklch, var(--surface), transparent 3%)}}.reading-timer-dock{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 -6px 18px oklch(22% .025 145/.06)}.reading-timer-dock.paused{border-top-color:var(--warning-text)}@supports (color:color-mix(in lab, red, red)){.reading-timer-dock.paused{border-top-color:color-mix(in oklch, var(--warning-text), var(--line) 65%)}}.reading-timer-dock-inner{grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:20px;width:min(1180px,100%);min-height:82px;margin:0 auto;padding:12px clamp(24px,4vw,58px);display:grid}.timer-book-identity{align-items:center;gap:12px;min-width:0;display:flex}.timer-cover{background:linear-gradient(145deg, var(--brand-soft), var(--surface-muted));width:38px;height:52px;color:var(--brand-strong);border-radius:5px 7px 7px 5px;flex:none;place-items:center;font-family:Georgia,serif;font-weight:700;display:grid;overflow:hidden;box-shadow:inset 2px 0 oklch(30% .04 145/.12)}.timer-cover img{object-fit:cover;width:100%;height:100%}.timer-book-copy{min-width:0;line-height:1.35;display:grid}.timer-book-copy small{color:var(--brand-strong);font-size:var(--type-caption);font-weight:700}.reading-timer-dock.paused .timer-book-copy small{color:var(--warning-text)}.timer-book-copy strong{font-size:var(--type-meta);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timer-clock{min-width:7.25ch;font-size:var(--type-data-lg);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:.015em;text-align:center;font-weight:700;line-height:1}.timer-controls{align-items:center;gap:8px;display:flex}.timer-controls .button{white-space:nowrap;min-height:44px;padding-inline:14px}.timer-controls .timer-cancel-button{color:var(--muted);font-size:var(--type-meta);padding-inline:10px}.timer-finish-dialog form{gap:10px;margin-top:20px;display:grid}.timer-page-input{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.timer-page-input>span{color:var(--muted);font-size:var(--type-meta);font-weight:500}.page-increment-controls{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.page-increment-button.button{font-variant-numeric:tabular-nums;min-width:44px;min-height:44px;padding:8px 12px}.quick-log-button.button{white-space:nowrap;font-variant-numeric:tabular-nums;min-height:44px}.page-increment-button.final-page{gap:6px}.page-increment-button.final-page svg{width:16px;height:16px}.dialog-overlay{z-index:var(--z-dialog-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:oklch(10% .015 145/.6);position:fixed;inset:0}.dialog-content{z-index:var(--z-dialog);border-radius:var(--radius);background:var(--surface);width:min(440px,100% - 32px);box-shadow:var(--shadow);border:0;padding:25px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-content>p{color:var(--muted);margin:9px 0 0}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}@media (width<=960px){.sidebar{width:210px}.app-main{margin-left:210px}.reading-timer-dock{left:210px}.dashboard-grid,.detail-grid,.planner-forms{grid-template-columns:1fr}.planner-forms{gap:14px}.book-hero{grid-template-columns:auto 1fr}.book-hero .cover-controls{grid-column:2;justify-self:start}.reading-time-toolbar{gap:12px 16px}.reading-time-toolbar>.range-picker,.reading-time-toolbar>.reading-time-period-controls{flex:260px}.reading-time-toolbar>.reading-time-period-controls{justify-content:flex-end}.reading-time-report-totals{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.reading-time-report-totals>div:nth-child(odd){border-left:0;padding-left:0}.reading-time-report-totals>div:nth-child(n+3){border-top:1px solid var(--line);padding-top:16px}}@media (width<=720px){.sidebar{display:none}.app-main{margin-left:0}.topbar{z-index:var(--z-topbar);justify-content:space-between;height:58px;padding:0 17px;position:sticky;top:0}.mobile-brand{color:var(--brand-strong);display:block}.account-chip>span:last-child{display:none}.content{padding:28px 17px calc(32px + var(--mobile-nav-height) + var(--timer-dock-height))}.page-heading h1{font-size:2.1rem}.bottom-nav{z-index:var(--z-mobile-nav);height:var(--mobile-nav-height);min-height:68px;padding:7px max(10px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(4,1fr);align-items:stretch;display:grid;position:fixed;inset:auto 0 0}@supports (color:color-mix(in lab, red, red)){.bottom-nav{background:color-mix(in oklch, var(--surface), transparent 4%)}}.bottom-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-layout{--mobile-nav-height:calc(68px + env(safe-area-inset-bottom))}.app-layout:has(.reading-timer-dock){--timer-dock-height:126px}.reading-timer-dock{right:0;bottom:var(--mobile-nav-height);min-height:126px;left:0}.reading-timer-dock-inner{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;min-height:126px;padding:10px 17px 12px}.timer-clock{font-size:var(--type-data-md)}.timer-controls{grid-column:1/-1;justify-content:stretch}.timer-controls .button{flex:1;min-width:0}.timer-controls .timer-cancel-button{flex:none}.reading-time-measures,.reading-time-report-totals{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.reading-time-measures>div:nth-child(3){border-left:0;padding-left:0}.reading-time-toolbar{flex-direction:column;align-items:stretch;gap:12px}.reading-time-toolbar>.range-picker,.reading-time-toolbar>.reading-time-period-controls{flex:none;width:100%}.reading-time-toolbar .range-picker{width:100%}.reading-time-period-controls{justify-content:space-between}.reading-time-period-controls label{flex:1;min-width:0}.reading-time-period-controls input{width:100%}.reading-time-chart{width:max-content;min-width:100%}.reading-time-column{flex:1 0 48px;min-width:48px}.reading-time-report-totals>div:nth-child(2n){padding-right:0}.reading-time-report-totals>.is-primary dd{font-size:var(--type-data-lg)}.reading-session-row,.reading-session-main{grid-template-columns:1fr auto}.reading-session-row{gap:10px 12px}.reading-session-main{column-gap:12px}.reading-session-main>div{grid-column:1/-1}.reading-session-actions{align-self:end;gap:4px}.reading-session-editor{grid-template-columns:1fr}.reading-session-editor .form-actions{grid-column:auto}.bottom-nav a{min-width:0;min-height:52px;color:var(--muted);font-size:var(--type-caption);text-align:center;transition:background-color .16s var(--ease-page-enter), color .16s var(--ease-page-enter), transform .12s var(--ease-page-enter);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 6px;font-weight:600;line-height:1.2;display:flex}.bottom-nav a>svg{width:20px;height:20px}.bottom-nav a>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (hover:hover){.bottom-nav a:hover{color:var(--text)}}.bottom-nav a:active{transform:translateY(1px)}.bottom-nav a:focus-visible{outline-color:var(--brand-strong);outline-offset:-2px}.bottom-nav a.active{color:var(--brand-strong);background:var(--brand-soft)}.page-stack{gap:27px}.split-heading{align-items:flex-start;gap:18px;display:grid}.split-heading .button{min-width:44px;padding-inline:12px}.filter-bar{gap:8px}.filter-row{flex-direction:column;align-items:stretch}.filter-row .search-field+label{flex:1}.filter-row>label:not(.search-field):not(.filter-check){min-width:0}.filter-bar>.filter-row:last-child{flex-direction:column;align-items:stretch}.filter-toggle{align-self:flex-start;display:inline-flex}.button.compact,.icon-button.compact,.segmented button,.filter-toggle{min-height:44px}.icon-button.compact{min-width:44px}.filter-bar>.filter-row.hidden{display:none}.book-row{grid-template-columns:48px minmax(0,1fr);gap:14px 12px}.book-row .book-cover{width:46px;height:64px}.book-row-main{gap:8px;display:grid}.progress-summary{text-align:left;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:4px 8px;display:flex}.progress-summary .progress-track{width:100%}.today-book{flex-direction:column;align-items:stretch}.quick-reading-entry-heading,.quick-reading-entry-layout{grid-template-columns:1fr}.quick-reading-entry-heading{display:grid}.quick-reading-entry-switcher{width:100%}.quick-reading-entry .quick-progress,.quick-reading-entry .today-plan-form,.quick-reading-entry .today-plan-form-controls{grid-template-columns:1fr}.quick-reading-entry .quick-log-button,.quick-reading-entry-progress>.button{justify-content:center;width:100%}.quick-progress{flex-direction:column;align-items:stretch;gap:10px;padding-left:0}.quick-progress input{width:100%}.quick-progress .quick-log-button,.progress-form>.quick-log-button{justify-content:center;width:100%}.book-hero{grid-template-columns:105px minmax(0,1fr);align-items:start;gap:20px}.book-cover.large{width:105px}.book-hero-copy h1{font-size:1.85rem}.hero-progress{grid-template-columns:1fr}.hero-progress .progress-track{grid-column:auto}.progress-form{grid-template-columns:1fr}.progress-form>span{min-height:0}.progress-actions{flex-direction:column}.progress-actions .button{justify-content:center;width:100%}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .button{width:100%}}@media (width<=480px){.auth-page{gap:24px;padding:28px 20px}.sign-in-brand{width:144px}.auth-panel{padding:24px}.timer-cover{display:none}.timer-book-identity{gap:0}.timer-controls .button{padding-inline:10px}.form-grid,.book-discovery-controls{grid-template-columns:1fr}.book-discovery-controls>.isbn-scanner,.book-discovery-controls>.isbn-scanner>.button,.book-discovery-search{width:100%}.book-discovery-result{grid-template-columns:42px minmax(0,1fr)}.book-discovery-result-action{grid-column:1/-1;width:100%}.book-discovery-skeleton-row{grid-template-columns:42px minmax(0,1fr);min-height:139px}.book-discovery-skeleton-action{grid-column:1/-1;width:100%}.book-discovery-selected{flex-direction:column;align-items:stretch}.book-discovery-selected-actions{display:grid}.book-discovery-selected-actions .button{width:100%}.dashboard-grid{gap:12px}.surface{padding:19px}.book-hero .cover-controls{grid-column:1/-1;justify-items:stretch;width:100%}.book-hero .cover-controls .button,.book-hero .cover-link-form{width:100%}.timeline article{grid-template-columns:1fr}.source-badge{margin-top:-6px}.schedule-list article{grid-template-columns:50px minmax(0,1fr) 44px;gap:10px}.date-tile{width:46px;height:53px}.connection-row{flex-wrap:wrap;align-items:flex-start}.connection-row .button{width:100%;margin-left:0}.route-error-actions{width:100%}.route-error-actions .button{flex:150px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hero-title-row{align-items:center;gap:12px;display:flex}.hero-title-row h1{flex:1}.favorite-button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;transition:color .2s,background .2s,transform .15s;display:grid}.favorite-button:hover{color:oklch(58% .16 18);background:oklch(92% .07 18/.35)}.favorite-button:focus-visible{outline-offset:3px;outline:3px solid oklch(67% .15 145/.55)}.favorite-button.active{color:oklch(58% .16 18)}.favorite-button.active svg{fill:oklch(58% .16 18);transition:fill .2s}.favorite-button:disabled{opacity:.5;cursor:not-allowed}.favorite-button:active:not(:disabled){transform:scale(.88)}.favorite-icon{color:oklch(60% .18 10);fill:oklch(60% .18 10);vertical-align:middle;width:.9rem;height:.9rem;margin-right:4px}.star-input{gap:3px;display:flex}.star-rating-control{justify-items:start;gap:6px;width:min(100%,250px);display:grid}.star-rating-select{width:100%;min-height:44px}.star-meter{width:32px;height:32px;color:var(--line);position:relative}.star-meter>svg,.star-meter>span,.star-meter>span>svg{width:32px;height:32px;position:absolute;inset:0}.star-meter>span{color:oklch(70% .18 75);overflow:hidden}.star-meter>span>svg{fill:currentColor;max-width:none}.star{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;transition:color .18s,background .18s,transform .12s;display:grid}.star:hover{background:var(--surface-muted);transform:scale(1.12)}.star:focus-visible{outline-offset:2px;outline:3px solid oklch(67% .15 145/.55)}.star.active{color:oklch(70% .18 75)}.star.active svg{fill:oklch(70% .18 75);transition:fill .18s}.review-form{gap:14px;display:grid}.rich-text-field{gap:7px;min-width:0;display:grid}.rich-text-label{color:var(--text);font-size:var(--type-meta);font-weight:700}.rich-text-host{grid-template-rows:auto auto;min-width:0;display:grid}.rich-text-host .ql-toolbar.ql-snow{border-color:var(--line);background:var(--surface-muted);border-radius:11px 11px 0 0;flex-wrap:wrap;gap:3px;padding:6px;font-family:inherit;display:flex}.rich-text-host .ql-toolbar.ql-snow .ql-formats{gap:1px;margin:0;display:inline-flex}.rich-text-host .ql-toolbar.ql-snow button{border-radius:7px;width:34px;height:34px}.rich-text-host .ql-toolbar.ql-snow button:hover,.rich-text-host .ql-toolbar.ql-snow button.ql-active{background:var(--brand-soft)}.rich-text-host .ql-toolbar.ql-snow button:focus-visible{outline-offset:1px;outline:3px solid oklch(67% .15 145/.55)}.rich-text-host .ql-snow .ql-stroke{stroke:var(--muted)}.rich-text-host .ql-snow .ql-fill{fill:var(--muted)}.rich-text-host .ql-snow button:hover .ql-stroke,.rich-text-host .ql-snow button.ql-active .ql-stroke{stroke:var(--brand-strong)}.rich-text-host .ql-snow button:hover .ql-fill,.rich-text-host .ql-snow button.ql-active .ql-fill{fill:var(--brand-strong)}.rich-text-host .ql-container.ql-snow{border-color:var(--line);background:var(--surface);height:auto;color:var(--text);font-family:inherit;font-size:var(--type-body);border-radius:0 0 11px 11px}.rich-text-host .ql-editor{overflow-wrap:anywhere;min-height:108px;line-height:1.65}.rich-text-host .ql-editor:focus-visible{outline-offset:-3px;outline:3px solid oklch(67% .15 145/.45)}.rich-text-host .ql-editor.ql-blank:before{color:var(--muted);font-style:normal}.rich-text-host .ql-snow .ql-tooltip{border-color:var(--line);background:var(--surface);color:var(--text);border-radius:9px;box-shadow:0 8px 24px oklch(20% .02 145/.14)}.rich-text-count,.rich-text-load-state{font-size:var(--type-caption);margin:0}.rich-text-load-state{justify-content:space-between;align-items:center;gap:10px;display:flex}.rich-text-field.has-error .ql-container.ql-snow,.rich-text-field.has-error .ql-toolbar.ql-snow{border-color:oklch(58% .16 25)}.rich-text-content{overflow-wrap:anywhere;min-width:0;line-height:1.65}.rich-text-content p,.rich-text-content blockquote,.rich-text-content ol,.rich-text-content ul{margin:0 0 .7em}.rich-text-content>:last-child{margin-bottom:0}.rich-text-content blockquote{border-left:3px solid var(--line);color:var(--muted);padding:4px 0 4px 12px}.rich-text-content ol,.rich-text-content ul{padding-left:1.5em}.rich-text-content a{color:var(--brand-strong);text-underline-offset:.15em;text-decoration-thickness:.08em}.review-content{resize:vertical;min-height:80px}.review-actions{align-items:center;gap:10px;display:flex}.note-list{border-top:1px solid var(--line)}.note-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 4px;display:flex}.note-content{min-width:0}.note-content p{white-space:pre-wrap;margin:0}.note-meta{color:var(--muted);font-size:var(--type-caption);flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.note-meta .cycle-badge{background:var(--brand-soft);color:var(--brand-strong);border-radius:6px;padding:2px 6px;font-weight:600}.note-edit-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;transition:background .16s,color .16s;display:grid}.note-edit-button:hover{background:var(--surface-muted);color:var(--text)}.note-edit-button:focus-visible{outline-offset:2px;outline:3px solid oklch(67% .15 145/.55)}.note-editor{gap:10px;display:grid}.note-content-input{resize:vertical;min-height:80px}.note-editor-meta{gap:10px;display:flex}.note-editor-meta label{flex:1}.note-editor-meta input{min-height:38px}.note-editor-actions{align-items:center;gap:10px;display:flex}.book-notes-surface{gap:22px;display:grid}.book-notes-surface .note-item{gap:16px;padding:16px 0}.book-notes-surface .note-content{min-width:0}.book-notes-surface .note-meta{margin-top:8px}.book-notes-surface .note-edit-button{width:44px;height:44px}.book-notes-surface .note-editor{gap:12px;width:100%;min-width:0}.book-notes-surface .note-editor-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.book-notes-surface .note-editor-meta input{min-height:44px}.book-notes-surface .note-editor-actions{flex-wrap:wrap}.book-notes-surface .button.compact{min-height:44px}.book-songs-surface{gap:22px;min-width:0;scroll-margin-top:88px;display:grid}.book-song-search-form{gap:9px;min-width:0;display:grid}.book-song-search-controls{grid-template-columns:minmax(0,1fr) auto;gap:10px;min-width:0;display:grid}.book-song-search-controls .button,.book-song-search-result .button,.book-song-actions .button{min-height:44px}.book-song-search-results,.book-song-list{gap:12px;min-width:0;display:grid}.book-song-result-block,.book-song-saved-block{gap:10px;min-width:0;display:grid}.book-song-subheading{color:var(--text);font-size:var(--type-meta);margin:0;line-height:1.35}.book-song-search-result,.book-song-item{border:1px solid var(--line);background:var(--surface-muted);border-radius:14px;gap:12px;min-width:0;padding:14px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:grid}.book-song-search-result:hover,.book-song-item:hover,.book-song-search-result:focus-within,.book-song-item:focus-within{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.book-song-search-result:hover,.book-song-item:hover,.book-song-search-result:focus-within,.book-song-item:focus-within{border-color:color-mix(in oklch, var(--brand), var(--line) 58%)}}.book-song-search-result:hover,.book-song-item:hover,.book-song-search-result:focus-within,.book-song-item:focus-within{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.book-song-search-result:hover,.book-song-item:hover,.book-song-search-result:focus-within,.book-song-item:focus-within{background:color-mix(in oklch, var(--surface), var(--brand-soft) 16%)}}.book-song-search-result:hover,.book-song-item:hover,.book-song-search-result:focus-within,.book-song-item:focus-within{box-shadow:0 8px 22px oklch(22% .025 145/.06)}.book-song-search-result{grid-template-columns:minmax(0,1fr) minmax(180px,1.1fr) auto;align-items:center}.book-song-search-result.is-saved{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.book-song-search-result.is-saved{border-color:color-mix(in oklch, var(--brand), var(--line) 66%)}}.book-song-search-result.is-saved{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.book-song-search-result.is-saved{background:color-mix(in oklch, var(--brand-soft), var(--surface-muted) 42%)}}.book-song-item{background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:start}.book-songs-surface .book-song-actions .button[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);box-shadow:inset 0 0 0 1px var(--brand)}.book-song-item>.book-song-actions{grid-area:1/2;justify-content:flex-end;align-self:start}.book-song-main{gap:10px;min-width:0;display:grid}.book-song-track-summary,.book-song-fallback{align-items:center;gap:11px;min-width:0;display:flex}.book-song-track-summary>img,.book-song-art-placeholder{object-fit:cover;background:var(--brand-soft);width:52px;height:52px;color:var(--brand-strong);border-radius:9px;flex:none}.book-song-art-placeholder{place-items:center;display:grid}.book-song-art-placeholder svg{width:22px;height:22px}.book-song-track-copy,.book-song-fallback>span:last-child{gap:2px;min-width:0;display:grid}.book-song-track-copy strong,.book-song-track-copy span,.book-song-track-copy small,.book-song-fallback strong,.book-song-fallback small,.book-song-fallback em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.book-song-track-copy span,.book-song-track-copy small,.book-song-fallback small,.book-song-fallback em{color:var(--muted);font-size:var(--type-caption)}.book-song-fallback em{color:var(--danger);font-style:normal}.book-song-track-copy strong{font-size:var(--type-meta);line-height:1.35}.book-song-note-field,.book-song-note-field input{min-width:0}.book-song-note-field input:disabled{cursor:not-allowed;opacity:.72;background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){.book-song-note-field input:disabled{background:color-mix(in oklch, var(--surface-muted), var(--surface) 42%)}}.book-song-note{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.book-song-actions,.book-song-inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.book-song-actions .icon-button{flex:none}.book-song-actions .icon-button:hover:not(:disabled){background:var(--brand-soft);color:var(--brand-strong)}.book-song-actions .icon-button.danger{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.book-song-actions .icon-button.danger{background:color-mix(in oklch, var(--danger), var(--surface) 90%)}}.book-song-actions .icon-button.danger{color:var(--danger)}.book-song-edit-form{gap:9px;display:grid}.book-song-embed{background:#121212;border:0;border-radius:12px;grid-column:1/-1;width:100%;min-height:152px}.book-song-feedback{color:var(--muted);font-size:var(--type-caption);margin:0}.book-song-attribution{color:var(--muted);font-size:var(--type-caption);margin:-12px 0 0}.book-song-feedback.error{color:var(--danger)}.book-song-empty{min-width:0;color:var(--muted);align-items:center;gap:12px;padding:2px 0;display:flex}.book-song-empty p{margin:0}.book-song-state-copy{gap:6px;min-width:0;display:grid}.book-song-state-copy .button{justify-self:start}.book-song-empty.is-error{color:var(--danger)}.book-song-empty.is-error .book-song-empty-icon{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.book-song-empty.is-error .book-song-empty-icon{background:color-mix(in oklch, var(--danger), var(--surface) 90%)}}.book-song-empty.is-error .book-song-empty-icon{color:var(--danger)}.book-song-empty-icon{background:var(--brand-soft);width:44px;height:44px;color:var(--brand-strong);border-radius:12px;flex:none;place-items:center;display:grid}.book-song-empty-icon svg{width:20px;height:20px}.note-group-list{gap:20px;display:grid}.note-group{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.note-group-header{border-bottom:1px solid var(--line);color:inherit;align-items:center;gap:14px;padding:16px;text-decoration:none;transition:background .15s;display:flex}.note-group-header:hover{background:var(--surface-muted)}.note-group-cover{background:var(--surface-muted);width:42px;height:58px;color:var(--muted);border-radius:6px;flex:none;place-items:center;font-size:1.1rem;font-weight:700;display:grid;overflow:hidden}.note-group-cover img{object-fit:cover;width:100%;height:100%}.note-group-title{gap:2px;display:grid}.note-group-book{color:var(--brand-strong);font-weight:600}.note-group-count{font-size:var(--type-caption);color:var(--muted)}.note-group-items{display:grid}.note-group-item{border-bottom:1px solid var(--line);padding:14px 16px;transition:background .12s}.note-group-item:last-child{border-bottom:0}.note-group-item:hover{background:var(--surface-muted)}.note-group-item-content p{white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.note-group-item-meta{color:var(--muted);font-size:var(--type-caption);flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.note-row-content p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.note-row-meta{color:var(--muted);font-size:var(--type-caption);margin-top:4px;display:inline-block}.completion-stats{border-block:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:0;display:grid}.stat-card{text-align:left;gap:4px;padding:20px clamp(12px,3vw,28px);display:grid}.stat-card+.stat-card{border-left:1px solid var(--line)}.stat-card strong{font-size:var(--type-data-lg);color:var(--brand-strong);line-height:1}.stat-card span{color:var(--muted);font-size:var(--type-caption)}.more-groups{gap:28px;display:grid}.more-group{gap:10px;display:grid}.more-group h2{font-size:var(--type-body);margin:0}.more-list{gap:8px;display:grid}@media (width>=860px){.more-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.more-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:16px;padding:18px 14px;transition:border-color .16s,background .16s;display:flex}.more-item:hover{border-color:var(--brand);background:var(--brand-soft)}.more-item svg{width:1.4rem;height:1.4rem;color:var(--brand);flex:none}.more-item div{min-width:0}.more-item strong{display:block}.more-item p{color:var(--muted);font-size:var(--type-meta);margin:2px 0 0}.book-row-title{gap:2px;min-width:0;display:grid}.book-row-title p{margin:0}.heading-actions{gap:10px;display:flex}@media (width<=720px){.split-heading .heading-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.split-heading .heading-actions .button{width:100%;min-width:0;min-height:48px;padding-inline:10px}}.library-page{gap:0}.library-page>.split-heading{margin-bottom:24px}.library-page>.filter-bar{gap:12px;margin-bottom:32px;padding:14px 16px}@media (width>=721px){.library-page .filter-bar>.filter-row:first-child{grid-template-columns:minmax(0,1fr) minmax(180px,220px);align-items:end;gap:12px;display:grid}.library-page .filter-bar>.filter-row:first-child>label{min-width:0}}@media (width>=960px){.library-page .filter-bar>.filter-row:last-child:not(.hidden){grid-template-columns:max-content repeat(4,minmax(0,1fr));align-items:end;gap:12px;display:grid}.library-page .filter-bar>.filter-row:last-child>label{min-width:0}}@media (width<=720px){.library-page>.filter-bar{padding:12px}.library-page .page-state .button{white-space:normal;max-width:100%}.settings-summary-card>.button{justify-content:center;width:100%}}.isbn-line{font-size:var(--type-meta);color:var(--muted);margin-top:4px}.organization-editor{gap:14px;display:grid}.organization-picker-group{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-width:0;padding:16px}@supports (color:color-mix(in lab, red, red)){.organization-picker-group{background:color-mix(in oklch, var(--surface), var(--surface-muted) 24%)}}.book-new-form .organization-editor{gap:0}.book-new-form .organization-picker-group{background:0 0;border:0;border-radius:0;padding:0}.book-new-form .organization-picker-group+.organization-picker-group{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.book-new-form .organization-picker-panel{border:0;border-top:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;margin-inline:0;padding:14px 0 0}.organization-picker-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.organization-picker-header>div{gap:2px;min-width:0;display:grid}.organization-picker-trigger{flex:none;min-width:108px}.organization-picker-trigger svg{transition:transform .16s}.organization-picker-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.organization-summary{flex-wrap:wrap;gap:6px;min-width:0;margin-top:12px;display:flex}.organization-summary-chip,.organization-summary-more{background:var(--brand-soft);max-width:100%;min-height:30px;color:var(--brand-strong);font-size:var(--type-meta);overflow-wrap:anywhere;border-radius:999px;align-items:center;padding:4px 10px;font-weight:650;line-height:1.35;display:inline-flex}.organization-summary-more{background:var(--surface-muted);color:var(--muted)}.organization-empty-summary{color:var(--muted);font-size:var(--type-meta);margin:10px 0 0}.organization-picker-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:12px;min-width:0;margin-top:14px;padding:14px;display:grid;box-shadow:0 10px 30px oklch(22% .025 145/.05)}.organization-search{align-items:center;min-width:0;display:flex;position:relative}.organization-search>svg{z-index:1;color:var(--muted);pointer-events:none;position:absolute;left:14px}.organization-search input{width:100%;min-width:0;min-height:48px;padding:0 104px 0 42px}.organization-search-status{color:var(--muted);font-size:var(--type-caption);pointer-events:none;position:absolute;right:13px}.organization-results{overscroll-behavior:contain;border:1px solid var(--line);background:var(--surface);scrollbar-gutter:stable;border-radius:10px;min-width:0;max-height:min(360px,44vh);overflow-y:auto}.organization-result-group+.organization-result-group{border-top:1px solid var(--line)}.organization-result-label{color:var(--muted);font-size:var(--type-caption);margin:0;padding:10px 12px 5px;font-weight:700}.organization-option{cursor:pointer;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:48px;padding:8px 12px;transition:background .12s;display:grid;position:relative}.organization-option:hover{background:var(--surface-muted)}.organization-option input{opacity:0;width:1px;height:1px;position:absolute}.organization-option-check{border:1.5px solid var(--line);background:var(--surface);color:oklch(99% 0 0);border-radius:6px;place-items:center;width:22px;height:22px;transition:border-color .12s,background .12s;display:grid}.organization-option-check svg{opacity:0;stroke-width:2.5px;width:15px;height:15px}.organization-option input:checked+.organization-option-check{border-color:var(--brand);background:var(--brand)}.organization-option input:checked+.organization-option-check svg{opacity:1}.organization-option input:focus-visible+.organization-option-check{outline-offset:2px;outline:3px solid oklch(67% .15 145/.55)}.organization-option input:disabled~span{opacity:.55}.organization-option-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.organization-result-state{text-align:center;min-height:112px;color:var(--muted);align-content:center;place-items:center;gap:8px;padding:20px;display:grid}.organization-result-state p,.organization-result-state span{margin:0}.organization-loading{align-content:start;gap:10px;min-height:154px;padding:14px;display:grid}.organization-loading>span:not(.sr-only){background:linear-gradient(90deg, var(--surface-muted), var(--brand-soft), var(--surface-muted));background-size:220% 100%;border-radius:8px;height:42px;animation:1.4s ease-in-out infinite organization-shimmer}@keyframes organization-shimmer{to{background-position:-220% 0}}.organization-load-more{width:calc(100% - 16px);margin:8px}.organization-create{border:1px dashed var(--brand);width:100%;min-width:0;min-height:48px;padding:9px 12px}@supports (color:color-mix(in lab, red, red)){.organization-create{border:1px dashed color-mix(in oklch, var(--brand), var(--line) 35%)}}.organization-create{background:var(--brand-soft);color:var(--brand-strong);text-align:left;cursor:pointer;overflow-wrap:anywhere;border-radius:10px;align-items:center;gap:9px;display:flex}.organization-create:hover:not(:disabled){border-style:solid}.organization-create:disabled{opacity:.55;cursor:not-allowed}.organization-picker-actions{justify-content:flex-end;gap:8px;display:flex}.organization-load-error{color:var(--danger);justify-content:space-between;align-items:center;gap:12px;display:flex}.organization-load-error p{margin:0}@media (width<=480px){.organization-picker-group{padding:13px}.organization-picker-panel{margin-inline:-5px;padding:10px}.organization-search input{padding-right:42px}.organization-search-status{background:var(--brand);color:#0000;border-radius:50%;width:8px;height:8px;right:15px}.organization-picker-actions .button{flex:1}}@media (prefers-reduced-motion:reduce){.organization-loading>span:not(.sr-only){animation:none}}.org-mgmt-header{gap:16px;display:grid}.org-mgmt-form{gap:10px;display:flex}.org-mgmt-form input{flex:1}.org-mgmt-list{border-top:1px solid var(--line);margin-top:16px}.org-mgmt-item{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 4px;display:flex}.org-mgmt-item.expanded{padding-bottom:0}.org-mgmt-info{align-items:center;gap:8px;min-width:0;display:flex}.org-mgmt-info strong{font-size:var(--type-body)}.org-expand-button{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;transition:background .12s,color .12s;display:grid}.org-expand-button:hover{background:var(--surface-muted);color:var(--text)}.org-chevron{transition:transform .18s}.org-chevron.open{transform:rotate(180deg)}.org-mgmt-actions{flex:none;align-items:center;gap:6px;display:flex}.org-books-panel{border-top:1px solid var(--line);width:100%;margin-top:10px;padding:10px 0 6px 36px}.org-books-list{gap:2px;display:grid}.org-book-row{color:inherit;border-radius:8px;align-items:center;gap:10px;padding:8px;text-decoration:none;transition:background .12s;display:flex}.org-book-row:hover{background:var(--surface-muted)}.org-book-info{flex:1;gap:1px;min-width:0;display:grid}.org-book-title{font-weight:600;font-size:var(--type-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.org-book-authors{font-size:var(--type-caption);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.org-rename-form{flex:1;align-items:center;gap:8px;display:flex}.org-rename-form input{flex:1;min-height:38px}.cycle-section{padding-block:clamp(14px,2vw,18px)}.cycle-meta{font-size:var(--type-meta);margin:0}.cycle-selector{gap:10px;display:grid}.cycle-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cycle-list li{display:block}.cycle-option{text-align:left;border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;gap:2px;padding:10px 14px;transition:border-color .16s,background .16s;display:grid}.cycle-option:hover{border-color:var(--brand)}.cycle-option.active{border-color:var(--brand);background:var(--brand-soft)}.cycle-option-title{font-weight:700}.cycle-option-meta{color:var(--muted);font-size:var(--type-meta)}.cycle-start,.cycle-share{align-self:start}.note-group-rich-content{max-height:4.95em;overflow:hidden}.book-songs-library-page .page-heading,.book-songs-library-page .filter-bar,.book-song-library-list{width:100%;max-width:900px}.book-songs-library-page .page-heading{max-width:760px}.book-songs-library-page .filter-bar{background:0 0;border:0;max-width:720px;padding:0}.book-songs-library-page .search-field,.book-songs-library-page .search-field input{width:100%}.book-songs-library-page .search-field input{min-height:48px}.book-song-library-list{gap:28px;display:grid}.book-song-library-group{min-width:0}.book-song-library-header{min-width:0;color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 2px 12px;text-decoration:none;display:grid}.book-song-library-header:hover,.book-song-library-header:focus-visible{color:var(--brand-strong)}.book-song-library-cover{background:var(--brand-soft);width:44px;height:58px;color:var(--brand-strong);border-radius:10px;flex:none;place-items:center;font-size:1.1rem;font-weight:750;display:grid;overflow:hidden}.book-song-library-cover img{object-fit:cover;width:100%;height:100%}.book-song-library-title{gap:3px;min-width:0;display:grid}.book-song-library-title h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.05rem;line-height:1.25}.book-song-library-title span,.book-song-library-open{color:var(--muted);font-size:var(--type-caption)}.book-song-library-open{white-space:nowrap;color:var(--brand-strong);font-weight:700}.book-song-library-item{background:var(--surface)}.book-song-library-item .book-song-actions .button[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);box-shadow:inset 0 0 0 1px var(--brand)}.book-song-library-item+.book-song-library-item{margin-top:12px}.notes-page .note-group-list{gap:28px}.notes-page .note-group-header{padding:12px 16px}.notes-page .note-group-cover{width:40px;height:54px}.notes-page .note-group-title,.notes-page .note-group-item-content{min-width:0}.notes-page .note-group-book{overflow-wrap:anywhere}.notes-page .note-group-item{padding:16px}.notes-page .note-group-item-meta{gap:10px;margin-top:8px}@media (width<=720px){.book-songs-library-page .page-heading,.book-songs-library-page .filter-bar,.book-song-library-list{max-width:none}.notes-page .search-field,.notes-page .search-field input{width:100%}.notes-page .note-group-header{align-items:flex-start}}@media (width<=560px){.rich-text-host .ql-toolbar.ql-snow{max-height:100px;overflow-x:auto}.rich-text-host .ql-toolbar.ql-snow button{width:44px;height:44px}.book-notes-surface .note-editor-meta{grid-template-columns:1fr}.book-notes-surface .section-heading{flex-wrap:wrap;align-items:flex-start}.book-song-search-controls,.book-song-search-result,.book-song-item{grid-template-columns:1fr}.book-song-item>.book-song-main,.book-song-item>.book-song-actions,.book-song-item>.book-song-embed{grid-column:1}.book-song-item>.book-song-actions{grid-row:auto;justify-content:stretch}.book-song-search-result .button{width:100%}.book-song-actions .button{flex:auto}.book-song-library-header{grid-template-columns:auto minmax(0,1fr);align-items:start}.book-song-library-open{grid-column:2}}@media (prefers-reduced-motion:reduce){.book-songs-surface *,.book-songs-surface :before,.book-songs-surface :after,.book-songs-library-page *,.book-songs-library-page :before,.book-songs-library-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.inline-link{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.progress-history-section{gap:0;display:grid}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:12px;padding:16px 0 16px 28px;display:grid;position:relative}.timeline-item:before{content:"";background:var(--line);left:7px;width:1px;position:absolute;inset-block:0}.timeline-item.editing{grid-template-columns:1fr}.timeline-content{min-width:0}.timeline-content strong{font-size:var(--type-body)}.timeline-content p{color:var(--muted);font-size:var(--type-meta);margin:4px 0 0}.timeline-actions{align-items:center;gap:8px;display:flex}.timeline-edit-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.timeline-edit-button:hover{background:var(--surface-muted);color:var(--text)}.entry-editor{min-width:0}.editor-form{gap:10px;display:grid}.editor-fields{flex-wrap:wrap;gap:10px;display:flex}.editor-field{font-size:var(--type-meta);gap:4px;font-weight:600;display:grid}.editor-field input{width:160px;min-height:38px}.editor-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.load-more{margin-top:12px}.infinite-list-footer{text-align:center;justify-items:center;gap:8px;padding:12px 0;display:grid}.infinite-list-footer-loading{color:var(--muted);font-size:var(--type-meta)}.infinite-list-footer-error{color:var(--danger);font-size:var(--type-meta);justify-items:center;gap:8px;margin:0;display:grid}.infinite-scroll-sentinel{width:100%;height:1px;display:block}@media (width<=480px){.timeline-item{grid-template-columns:1fr}.timeline-item.editing{padding-bottom:8px}.editor-fields{flex-direction:column}.editor-field input{width:100%}}.cal-surface{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 20px;display:grid}.cal-toolbar{grid-column:2;justify-content:flex-end;align-items:center;gap:10px;display:flex}.cal-toolbar .button,.cal-actions .button{min-height:44px}.cal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.cal-export-status{color:var(--muted);text-align:right;grid-column:1/-1;margin:0}.cal-month-controls{text-align:center;grid-column:1;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-width:0;display:grid}.cal-month-controls strong{min-width:0;color:var(--text);font-size:var(--type-subhead);font-weight:700}.cal-month-controls .button{min-width:44px;min-height:44px;padding-inline:0}.cal-preview-frame{border-radius:var(--radius);aspect-ratio:4/5;width:100%;max-width:960px;margin-inline:auto;overflow:hidden}.cal-preview-frame[data-aspect="1:1"]{aspect-ratio:1}.cal-preview-frame[data-aspect="9:16"]{aspect-ratio:9/16;width:min(100%,540px)}.cal-preview-frame[data-aspect="16:9"]{aspect-ratio:16/9}.calendar-poster{box-sizing:border-box;width:100%;height:100%;color:var(--calendar-ink);grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(8px,1.8cqi,26px);padding:clamp(14px,3cqi,48px);font-family:Anuphan Variable,sans-serif;display:grid;overflow:hidden;container-type:inline-size}.calendar-poster[data-format=ig-story]{padding:var(--share-story-safe-block) var(--share-story-safe-inline)}.calendar-poster-brand{color:var(--calendar-muted);justify-content:space-between;align-items:center;gap:16px;font-size:clamp(8px,1.7cqi,24px);font-weight:600;display:flex}.calendar-poster-logo{opacity:.72;width:clamp(72px,14cqi,220px);height:auto}.calendar-poster-content{grid-template-rows:auto minmax(0,1fr);gap:clamp(6px,1.2cqi,18px);min-height:0;display:grid}.calendar-poster-content h2{color:var(--calendar-ink);text-align:center;text-wrap:balance;margin:0;font-size:clamp(1rem,3.8cqi,3.4rem);font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(var(--calendar-weeks), minmax(0, 1fr));gap:clamp(1px,.18cqi,3px);height:100%;min-height:0;display:grid}.cal-day-header{text-align:center;color:var(--calendar-muted);padding:clamp(2px,.45cqi,7px);font-size:clamp(7px,1.55cqi,22px);font-weight:600}.cal-cell{background:var(--calendar-cell);min-width:0;min-height:0;color:var(--calendar-ink);font:inherit;text-align:left;border:0;border-radius:clamp(2px,.55cqi,9px);grid-template-rows:auto minmax(0,1fr);gap:clamp(1px,.28cqi,4px);padding:clamp(2px,.38cqi,6px);display:grid;overflow:hidden}.cal-cell-empty{background:0 0}.cal-cell-has{background:var(--calendar-cell-active)}.cal-cell-button{cursor:pointer;transition:outline-color .16s,background .16s}.cal-cell-button:hover,.cal-cell-button[aria-pressed=true]{outline:max(1px, .18cqi) solid var(--calendar-ink);outline-offset:calc(max(1px, .18cqi) * -1)}.cal-cell-button:focus-visible{outline:max(2px, .28cqi) solid var(--calendar-ink);outline-offset:calc(max(2px, .28cqi) * -1)}.cal-day-num{color:var(--calendar-muted);font-size:clamp(7px,1.35cqi,19px);font-weight:600;line-height:1}.cal-cover-mosaic{gap:clamp(1px,.2cqi,3px);min-width:0;min-height:0;display:grid;overflow:hidden}.cal-cover-count-1{grid-template-columns:1fr}.cal-cover-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-cover-count-3{grid-template:repeat(2,minmax(0,1fr))/repeat(2,minmax(0,1fr))}.cal-cover-count-3 .cal-cover-tile:first-child{grid-row:1/3}.cal-cover-count-4,.cal-cover-count-5{grid-template:repeat(2,minmax(0,1fr))/repeat(2,minmax(0,1fr))}.cal-cover-tile,.cal-cover-more{background:var(--calendar-cell-active);min-width:0;min-height:0;color:var(--calendar-ink);border-radius:clamp(1px,.28cqi,5px);place-items:center;font-size:clamp(6px,1.2cqi,17px);font-weight:700;display:grid;overflow:hidden}.cal-cover-tile{position:relative}.cal-cover-tile img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.cal-cover-more{background:var(--calendar-line)}.calendar-poster-summary{text-align:center;color:var(--calendar-muted);font-size:clamp(9px,1.8cqi,26px)}.calendar-poster-summary strong{color:var(--calendar-ink);font-weight:700}.calendar-export-host{pointer-events:none;z-index:-1;position:fixed;top:0;left:-20000px}.cal-day-details{gap:18px;display:grid}.cal-day-details-heading{gap:3px;display:grid}.cal-day-details-heading h2,.cal-day-details-heading p{margin:0}.cal-day-details-heading p{color:var(--muted);font-size:var(--type-meta)}.cal-day-detail-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;display:grid}.cal-day-detail-book{min-width:0;min-height:44px;color:var(--text);align-items:center;gap:10px;font-weight:600;text-decoration:none;display:flex}.cal-day-detail-book>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-day-detail-cover{background:var(--surface-muted);width:34px;height:46px;color:var(--muted);border-radius:4px;flex:none;place-items:center;display:grid;overflow:hidden}.cal-day-detail-cover img{object-fit:cover;width:100%;height:100%}@media (width<=720px){.cal-surface{grid-template-columns:1fr;gap:14px}.cal-month-controls,.cal-toolbar,.cal-settings{grid-column:1}.cal-toolbar{justify-content:stretch}.cal-toolbar>.button{flex:none}.cal-actions{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.cal-export-status{text-align:left}}@media (width<=520px){.cal-toolbar{flex-direction:column;align-items:stretch}.cal-toolbar>.button,.cal-actions .button{width:100%}.cal-actions{grid-template-columns:1fr}.cal-preview-frame[data-aspect="9:16"]{width:100%}}.cal-settings{background:var(--surface-muted);border-radius:12px;grid-column:1/-1;gap:14px;padding:16px;display:grid}.cal-settings-group{gap:8px;display:grid}.cal-settings-label{font-weight:600;font-size:var(--type-caption);color:var(--muted)}.cal-aspect-options{flex-wrap:wrap;gap:8px;display:flex}.cal-aspect-btn{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;flex:84px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 12px;font-weight:600;transition:border-color .12s,background .12s;display:flex}.cal-aspect-btn:hover{border-color:var(--brand-soft)}.cal-aspect-btn.active{border-color:var(--brand-strong);background:var(--brand-soft);color:var(--brand-strong)}.cal-aspect-check{width:14px;height:14px}.cal-color-options{flex-wrap:wrap;gap:8px;display:flex}.cal-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:44px;height:44px;transition:border-color .12s,transform .12s}.cal-color-swatch:hover{transform:scale(1.15)}.cal-color-swatch.active{border-color:var(--brand-strong);outline:2px solid var(--brand-strong);outline-offset:2px}.cal-color-custom{cursor:pointer;font-size:var(--type-caption);color:var(--muted);align-items:center;gap:6px;display:flex}.cal-color-custom input[type=color]{cursor:pointer;border:0;border-radius:50%;width:44px;height:44px;padding:0}.cal-color-custom span{white-space:nowrap}.reading-pace-card{gap:20px;display:grid}.reading-pace-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.reading-pace-heading h2{font-size:var(--type-subhead);text-wrap:balance;margin:2px 0 0}.reading-pace-heading>svg{width:1.35rem;height:1.35rem;color:var(--brand-strong)}.section-label{color:var(--muted);font-size:var(--type-meta);font-weight:600}.pace-empty,.pace-current,.pace-target-form{gap:16px;display:grid}.pace-empty p,.pace-primary p,.pace-target-form p{max-width:68ch;margin:0}.pace-primary{gap:4px;display:grid}.pace-primary>span{color:var(--brand-strong);font-weight:700}.pace-primary p{color:var(--muted);font-size:var(--type-meta)}.pace-metrics{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.pace-metrics>div{min-width:0;padding:13px 18px}.pace-metrics>div+div{border-left:1px solid var(--line)}.pace-metrics dt{color:var(--muted);font-size:var(--type-meta)}.pace-metrics dd{margin:2px 0 0;font-weight:700}.pace-action,.pace-badge{width:fit-content;color:var(--brand-strong);background:var(--brand-soft);align-items:center;gap:7px;font-weight:600;display:inline-flex}.pace-action{border-radius:10px;margin:0;padding:9px 12px}.pace-badge{font-size:var(--type-caption);white-space:nowrap;border-radius:999px;justify-self:end;padding:3px 8px}.pace-action[data-state=overdue],.pace-badge[data-state=overdue]{color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.pace-action[data-state=overdue],.pace-badge[data-state=overdue]{background:color-mix(in oklch, var(--danger), transparent 90%)}}.pace-action[data-state=due-today],.pace-badge[data-state=due-today]{color:var(--text);background:var(--warning-soft)}.pace-actions,.pace-target-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pace-target-form>label{font-weight:600}.pace-target-controls input{min-width:min(100%,220px)}.book-identity .pace-action{font-size:var(--type-caption);margin-top:7px;padding:4px 8px}@media (width<=720px){.pace-metrics{grid-template-columns:1fr}.pace-metrics>div{padding-inline:0}.pace-metrics>div+div{border-left:0;border-top:1px solid var(--line)}.pace-target-controls{flex-direction:column;align-items:stretch}.pace-target-controls input,.pace-target-controls .button{width:100%}.pace-badge{justify-self:start}}.reading-timeline-page{gap:28px}.timeline-today-summary{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.timeline-today-summary p{align-content:center;gap:2px;min-width:0;min-height:76px;margin:0;padding:16px 20px;display:grid}.timeline-today-summary p+p{border-left:1px solid var(--line)}.timeline-today-summary span,.timeline-day-heading span,.timeline-preview-heading p{color:var(--muted);font-size:var(--type-meta)}.timeline-today-summary strong{font-size:var(--type-subhead);color:var(--brand-strong);font-variant-numeric:tabular-nums;line-height:1.25}.reading-timeline-list{border-top:1px solid var(--line)}.timeline-day{border-bottom:1px solid var(--line);padding-block:24px}.timeline-day-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:10px;display:flex}.timeline-day-heading h2{min-width:0;font-size:var(--type-subhead)}.timeline-day-heading p{text-align:right;white-space:nowrap;align-items:baseline;gap:10px;min-width:0;margin:0;display:flex}.timeline-day-heading p strong{font-size:var(--type-body)}.timeline-day-heading p span{display:block}.timeline-day-entries,.today-timeline-entries{display:grid}.reading-timeline-entry{min-width:0;min-height:76px;color:var(--text);border-radius:10px;grid-template-columns:68px 18px 38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 8px;transition:background-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1);display:grid}.reading-timeline-entry:is(:hover,:focus-visible){background:var(--surface-muted)}.reading-timeline-entry time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:var(--type-meta);text-align:right;white-space:nowrap;line-height:1.35}.timeline-entry-rail{pointer-events:none;place-self:stretch center;width:18px;min-height:44px;position:relative}.timeline-entry-rail:before{content:"";background:var(--brand);width:2px;position:absolute;top:-11px;bottom:-11px;left:50%}@supports (color:color-mix(in lab, red, red)){.timeline-entry-rail:before{background:color-mix(in oklch, var(--brand), var(--line) 72%)}}.timeline-entry-rail:before{transform:translate(-50%)}.reading-timeline-entry:first-child .timeline-entry-rail:before{top:50%}.reading-timeline-entry:last-child .timeline-entry-rail:before{bottom:50%}.timeline-entry-dot{z-index:1;background:var(--brand);width:10px;height:10px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;transition:background-color .18s cubic-bezier(.25,1,.5,1),box-shadow .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reading-timeline-entry:is(:hover,:focus-visible) .timeline-entry-dot{background:var(--brand-strong);box-shadow:0 0 0 3px var(--surface-muted), 0 0 0 4px var(--brand);transform:translate(-50%,-50%)scale(1.18)}.reading-timeline-entry:active .timeline-entry-dot{transform:translate(-50%,-50%)scale(.94)}.book-cover.timeline-cover{width:36px;height:50px;font-size:var(--type-body);border-radius:5px 8px 8px 5px;box-shadow:inset 2px 0 oklch(30% .04 145/.12),0 3px 6px oklch(22% .03 145/.11)}.timeline-entry-copy{gap:4px;min-width:0;display:grid}.timeline-entry-title-row{align-items:center;gap:6px;min-width:0;display:flex}.timeline-completed-badge{font-size:var(--type-caption);flex-shrink:0;padding:2px 7px;line-height:1.3}.timeline-entry-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timeline-entry-copy>span,.timeline-entry-source,.timeline-remaining,.timeline-preview-empty,.timeline-start-marker,.timeline-pagination>p{color:var(--muted);font-size:var(--type-meta);line-height:1.35}.timeline-entry-source{background:var(--surface-muted);overflow-wrap:anywhere;white-space:normal;border-radius:999px;max-width:100%;padding:4px 8px}.timeline-pagination{text-align:center;gap:10px;display:grid}.timeline-pagination>p,.timeline-start-marker{margin:0}.timeline-preview-heading{align-items:center}.timeline-preview-heading p{margin:2px 0 0}.today-timeline-preview{gap:14px;display:grid}.reading-timeline-entry.is-preview{grid-template-columns:62px 18px 34px minmax(0,1fr);min-height:68px;padding-inline:4px}.reading-timeline-entry.is-preview .timeline-cover{width:32px;height:44px}.timeline-remaining,.timeline-preview-empty{margin:0}.timeline-widget-error{justify-content:space-between;align-items:center;gap:16px;display:flex}.timeline-widget-error p{color:var(--muted);margin:0}.target-progress-entry{border:1px solid var(--brand);background:var(--surface-muted);border-radius:12px;margin:14px 0;padding:16px}.target-progress-message{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.target-progress-message p{color:var(--muted);margin:4px 0 0}.timeline-skeleton{gap:10px;display:grid}.timeline-skeleton-summary,.timeline-skeleton-row span{background:var(--surface-muted);animation:1.5s ease-in-out infinite timeline-pulse}.timeline-skeleton-summary{border-radius:10px;height:76px}.timeline-skeleton-row{grid-template-columns:68px 18px 38px 1fr;align-items:center;gap:10px;min-height:76px;display:grid}.timeline-skeleton-row span{border-radius:6px;height:14px}.timeline-skeleton-row .timeline-skeleton-rail{border-radius:0;justify-self:center;width:2px;height:76px}.timeline-skeleton-row span:nth-child(3){height:50px}@keyframes timeline-pulse{50%{opacity:.55}}@media (width<=600px){.timeline-today-summary p{min-height:70px;padding:13px 10px}.timeline-today-summary strong{font-size:var(--type-body)}.timeline-day-heading{flex-direction:column;align-items:flex-start;gap:4px}.timeline-day-heading p{text-align:left}.reading-timeline-entry,.reading-timeline-entry.is-preview{grid-template-columns:50px 16px 34px minmax(0,1fr);gap:8px;padding-inline:2px}.reading-timeline-entry .timeline-entry-source{grid-column:4;justify-self:start;line-height:1.3}.timeline-skeleton-summary{height:70px}.timeline-entry-rail{width:16px}.timeline-skeleton-row{grid-template-columns:50px 16px 34px 1fr;gap:8px}.timeline-preview-heading,.timeline-widget-error{flex-direction:column;align-items:flex-start}.target-progress-message{flex-direction:column}}@media (prefers-reduced-motion:reduce){.timeline-skeleton-summary,.timeline-skeleton-row span{animation:none}.reading-timeline-entry,.timeline-entry-dot{transition:none}}.page-transition-surface{min-width:0}@supports (view-transition-name:app-content){.page-transition-surface{view-transition-name:app-content}::view-transition-old(root){opacity:0;animation:none}::view-transition-new(root){opacity:1;animation:none}::view-transition-group(app-content){animation-duration:var(--motion-page-enter);animation-timing-function:var(--ease-page-enter);pointer-events:none}::view-transition-image-pair(app-content){isolation:auto}::view-transition-old(app-content){animation:app-page-exit var(--motion-page-exit) ease-out both;transform-origin:top}::view-transition-new(app-content){animation:app-page-enter var(--motion-page-enter) var(--ease-page-enter) both;transform-origin:top}}:root[data-route-transitions-ready] .page-transition-surface:not(.is-native-transition){opacity:1;transition:opacity var(--motion-page-enter) var(--ease-page-enter), transform var(--motion-page-enter) var(--ease-page-enter);transform:translateY(0)}@starting-style{:root[data-route-transitions-ready] .page-transition-surface:not(.is-native-transition){opacity:0;transform:translateY(8px)}}@keyframes app-page-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(3px)}}@keyframes app-page-enter{0%{opacity:0;filter:blur(2px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes app-page-reduced-exit{0%{opacity:1}to{opacity:0}}@keyframes app-page-reduced-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){@supports (view-transition-name:app-content){::view-transition-old(app-content){animation:app-page-reduced-exit var(--motion-page-reduced) linear both!important}::view-transition-new(app-content){animation:app-page-reduced-enter var(--motion-page-reduced) linear both!important}}:root[data-route-transitions-ready] .page-transition-surface:not(.is-native-transition){transition:none!important}}.book-detail-page{gap:clamp(25px,3vw,34px)}.book-detail-page .book-hero{border:1px solid var(--brand);grid-template-columns:auto minmax(0,1fr) minmax(176px,210px);align-items:start;gap:clamp(20px,4vw,44px);padding:clamp(22px,3vw,34px)}@supports (color:color-mix(in lab, red, red)){.book-detail-page .book-hero{border:1px solid color-mix(in oklch, var(--brand), var(--line) 72%)}}.book-detail-page .book-hero{border-radius:var(--radius);background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.book-detail-page .book-hero{background:color-mix(in oklch, var(--surface), var(--brand-soft) 10%)}}.book-detail-page .book-hero-copy{align-self:center;gap:11px}.book-detail-page .book-hero-copy h1{letter-spacing:-.015em;max-width:22ch}.book-detail-page .hero-title-row{align-items:flex-start;gap:10px}.book-detail-page .hero-progress{border-top:1px solid var(--line);max-width:520px;margin-top:14px;padding-top:14px}.book-detail-page .hero-progress strong{font-variant-numeric:tabular-nums;font-size:clamp(1.55rem,2.5vw,2rem)}.book-detail-page .cover-controls{align-self:start;justify-items:stretch;width:min(100%,210px);min-width:176px;padding-top:2px}.book-detail-page .cover-controls>.button{justify-content:flex-start;width:100%}.book-detail-page .cover-controls .button.ghost.compact{border-color:var(--line);color:var(--muted);background:0 0}.book-detail-page .cover-controls .button.ghost.compact:hover:not(:disabled){border-color:var(--line);background:var(--surface-muted);color:var(--text)}.book-detail-page .cover-link-form{width:min(100%,300px);min-width:0}.book-detail-page .cover-link-form input{min-width:0}.book-detail-page .book-hero-actions{margin-top:16px}.book-detail-page>.surface{align-content:start;gap:20px;display:grid}.book-detail-page>.cycle-section,.book-detail-page>.reading-pace-card{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.book-detail-page>.cycle-section,.book-detail-page>.reading-pace-card{background:color-mix(in oklch, var(--surface), var(--surface-muted) 24%)}}.book-detail-page>.cycle-section{padding-block:clamp(15px,2vw,18px)}.book-detail-page>.reading-pace-card{gap:18px}.book-detail-page .cycle-selector{gap:12px}.book-detail-page .cycle-option{padding-block:11px}.book-detail-page .detail-grid{gap:20px}.book-detail-page .detail-grid>.surface:first-child{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.book-detail-page .detail-grid>.surface:first-child{border-color:color-mix(in oklch, var(--brand), var(--line) 64%)}}.book-detail-page .detail-grid>.surface:first-child{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.book-detail-page .detail-grid>.surface:first-child{background:color-mix(in oklch, var(--surface), var(--brand-soft) 8%)}}.book-detail-page .detail-grid .surface{gap:22px}.book-detail-page .progress-form{gap:14px}.book-detail-page .progress-form>label:first-of-type input{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.book-detail-page .progress-form>label:first-of-type input{border-color:color-mix(in oklch, var(--brand), var(--line) 58%)}}.book-detail-page .progress-form>label:first-of-type input{font-size:var(--type-data-md);font-variant-numeric:tabular-nums;font-weight:700}.book-detail-page .progress-actions{align-items:center;padding-top:4px}.book-detail-page .progress-actions .button.primary{min-width:124px}.book-detail-page>#progress-history{border-top:1px solid var(--line);gap:0;padding-top:8px;display:grid}@media (width<=960px){.book-detail-page .book-hero{grid-template-columns:minmax(126px,auto) minmax(0,1fr);gap:20px}.book-detail-page .book-hero-copy{align-self:start}.book-detail-page .cover-controls{grid-column:2;justify-self:start;width:min(100%,320px);min-width:0}}@media (width<=720px){.book-detail-page .book-hero{grid-template-columns:105px minmax(0,1fr);gap:18px;padding:18px}.book-detail-page .cover-controls{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;padding-top:0;display:grid}.book-detail-page .cover-link-form{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;width:100%;display:grid}.book-detail-page>.surface{gap:18px}}@media (width<=480px){.book-detail-page .book-hero{gap:15px;padding:16px}.book-detail-page .book-hero-copy h1{font-size:1.75rem}.book-detail-page .cover-controls,.book-detail-page .cover-link-form{grid-template-columns:1fr}.book-detail-page .cover-link-form .button{width:100%}.book-detail-page .hero-progress{margin-top:10px;padding-top:12px}.book-detail-page>.surface{padding:19px}}.reading-timer-dock-inner{gap:clamp(14px,2.2vw,24px)}.timer-book-identity{border-radius:12px;min-height:44px;margin:-6px -8px;padding:6px 8px;transition:background .16s}.timer-book-identity:hover{background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){.timer-book-identity:hover{background:color-mix(in oklch, var(--surface-muted), transparent 30%)}}.timer-book-identity:focus-visible{outline-offset:2px}.timer-clock{color:var(--brand-strong);font-size:clamp(var(--type-data-md), 2vw, 1.65rem);padding-inline:14px}.timer-icon-button{width:44px;padding-inline:0}.timer-icon-button svg{width:18px;height:18px}.timer-controls .timer-finish-button{padding-inline:16px}.timer-controls .timer-cancel-button{background:0 0;border-color:#0000}.timer-controls .timer-cancel-button:hover:not(:disabled){border-color:var(--line);background:var(--surface-muted);color:var(--text)}.reading-timer-dock.paused{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.reading-timer-dock.paused{background:color-mix(in oklch, var(--surface), var(--warning-soft) 16%)}}@media (width<=960px){.app-layout:has(.reading-timer-dock){--timer-dock-height:120px}.reading-timer-dock,.reading-timer-dock-inner{min-height:120px}.reading-timer-dock-inner{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding-block:8px}.timer-controls{grid-column:1/-1;justify-content:flex-end}}@media (width<=720px){.app-layout:has(.reading-timer-dock){--timer-dock-height:132px}.reading-timer-dock,.reading-timer-dock-inner{min-height:132px}.reading-timer-dock-inner{gap:10px 12px;padding:10px 17px 12px}.timer-controls{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;display:grid}.timer-controls .button{width:100%;min-width:0}.timer-controls .timer-finish-button{padding-inline:12px}}@media (width<=480px){.timer-clock{min-width:6.25ch;font-size:var(--type-data-md);padding-inline:6px}.timer-book-copy strong{font-size:var(--type-meta)}.timer-controls{gap:6px}.timer-controls .timer-finish-button{font-size:var(--type-meta);padding-inline:8px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.rewind-page{--rewind-space-1:8px;--rewind-space-2:12px;--rewind-space-3:18px;--rewind-space-4:24px;--rewind-space-5:34px;gap:var(--rewind-space-5);width:min(1080px,100%);margin-inline:auto}.rewind-page-heading{justify-content:space-between;align-items:flex-start;gap:var(--rewind-space-4);display:flex}.rewind-heading-copy{gap:var(--rewind-space-2);display:grid}.rewind-page-heading p:last-child{max-width:680px;color:var(--muted);margin:0}.rewind-export-panel{justify-items:end;gap:var(--rewind-space-1);min-width:0;display:grid}.rewind-export-actions{justify-content:flex-end;gap:var(--rewind-space-1);flex-wrap:wrap;display:flex}.rewind-export-actions .button{white-space:normal;overflow-wrap:anywhere;text-align:center;flex:none;min-height:44px}.rewind-export-status{color:var(--muted);font-size:var(--type-caption);text-align:right;margin:0;line-height:1.5}.rewind-period-bar{justify-content:space-between;align-items:center;gap:var(--rewind-space-3);padding:12px 14px;display:flex}.rewind-period-tabs{background:var(--surface-muted);border-radius:10px;flex:none;gap:3px;padding:3px;display:flex}.rewind-period-tabs button{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 16px;font-weight:700;transition:background-color .16s,color .16s}.rewind-period-tabs button:hover:not(.active){background:color-mix(in oklch, var(--surface), var(--surface-muted) 62%);color:var(--text)}.rewind-period-tabs button.active{background:var(--surface);color:var(--brand-strong);box-shadow:0 2px 6px oklch(20% .02 145/.1)}.rewind-period-stepper{align-items:center;gap:var(--rewind-space-1);text-align:center;grid-template-columns:44px minmax(140px,1fr) 44px;width:min(100%,320px);min-width:252px;display:grid}.rewind-period-stepper .button{min-height:44px}.rewind-period-stepper strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;min-width:0}.rewind-workspace{gap:clamp(var(--rewind-space-4), 3.2vw, 40px);grid-template-columns:minmax(0,1fr) minmax(280px,300px);align-items:start;display:grid}.rewind-preview-column{align-content:start;gap:var(--rewind-space-2);min-width:0;display:grid}.rewind-preview-frame{width:min(100%,680px);padding:clamp(var(--rewind-space-1), 1.2vw, var(--rewind-space-2));aspect-ratio:4/5;border-radius:var(--radius);background:var(--surface-muted);margin-inline:auto;overflow:hidden}.rewind-preview-frame[data-ratio="1:1"]{aspect-ratio:1}.rewind-preview-frame[data-ratio="9:16"]{aspect-ratio:9/16;width:min(100%,500px)}.rewind-poster{--rewind-poster-pad:clamp(18px, 3.3cqi, 54px);--rewind-type-brand:clamp(11px, 1.45cqi, 22px);--rewind-type-period:clamp(13px, 1.85cqi, 28px);--rewind-type-headline:clamp(1.2rem, 4.8cqi, 4.5rem);--rewind-type-profile:clamp(11.5px, 1.5cqi, 22px);--rewind-type-metric-value:clamp(1.2rem, 3.25cqi, 3.2rem);--rewind-type-metric-label:clamp(11.5px, 1.45cqi, 21px);--rewind-type-note:clamp(11.5px, 1.5cqi, 22px);--rewind-type-footer:clamp(10.5px, 1.3cqi, 19px);box-sizing:border-box;width:100%;height:100%;padding:var(--rewind-poster-pad);background:var(--rewind-bg);color:var(--rewind-ink);grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(8px,1.7cqi,28px);font-family:Anuphan Variable,sans-serif;display:grid;overflow:hidden;container-type:inline-size}.rewind-poster-brand{min-width:0;color:var(--rewind-muted);font-size:var(--rewind-type-brand);letter-spacing:.04em;justify-content:space-between;align-items:center;gap:clamp(10px,1.6cqi,26px);font-weight:700;line-height:1.2;display:flex}.rewind-poster-brand img{opacity:.86;width:clamp(52px,11cqi,178px);height:auto}.rewind-poster-brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rewind-poster-header{justify-content:space-between;align-items:flex-start;gap:clamp(10px,2cqi,32px);min-width:0;display:flex}.rewind-poster-header>div:first-child{min-width:0}.rewind-poster-period{color:var(--rewind-muted);font-size:var(--rewind-type-period);margin-bottom:clamp(3px,.6cqi,10px);font-weight:650;line-height:1.2;display:block}.rewind-poster-header h2{max-width:18ch;color:var(--rewind-ink);font-size:var(--rewind-type-headline);text-wrap:balance;line-height:1.08}.rewind-profile{max-width:33%;color:var(--rewind-muted);font-size:var(--rewind-type-profile);flex:none;align-items:center;gap:clamp(5px,.8cqi,12px);font-weight:700;line-height:1.2;display:flex}.rewind-profile img{object-fit:cover;border-radius:50%;flex:none;width:clamp(22px,4.4cqi,70px);height:clamp(22px,4.4cqi,70px)}.rewind-profile span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rewind-cover-wall{grid-template-rows:repeat(var(--rewind-cover-rows), minmax(0, 1fr));gap:.8cqi;min-width:0;min-height:0;display:grid;overflow:hidden;container-type:inline-size}.rewind-cover-row{justify-content:center;align-items:center;gap:.8cqi;min-width:0;min-height:0;display:flex;overflow:hidden}.rewind-cover-tile{height:min(100%, var(--rewind-row-fit-height));aspect-ratio:var(--rewind-cover-ratio);min-width:0;min-height:0;color:var(--rewind-ink);border-radius:clamp(3px,.55cqi,8px);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.rewind-cover-tile.has-cover{background:0 0;box-shadow:0 clamp(1px,.2cqi,3px) clamp(3px,.6cqi,8px) oklch(8% .02 145/.24)}.rewind-cover-tile.has-fallback{background:var(--rewind-panel)}.rewind-cover-tile img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.rewind-cover-fallback{text-align:center;text-wrap:balance;max-width:18ch;padding:clamp(8px,1.6cqi,26px);font-size:clamp(9px,1.7cqi,27px);font-weight:700;line-height:1.35}.rewind-summary{gap:clamp(5px,.75cqi,12px);min-width:0;display:grid}.rewind-metric-index{border-block:1px solid color-mix(in srgb, var(--rewind-accent) 55%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.rewind-metric-index-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rewind-metric{min-width:0;padding:clamp(5px,.8cqi,13px) clamp(4px,.9cqi,14px)}.rewind-metric+.rewind-metric{border-inline-start:1px solid color-mix(in srgb, var(--rewind-accent) 35%, transparent)}.rewind-metric strong,.rewind-metric span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rewind-metric strong{color:var(--rewind-accent);font-size:var(--rewind-type-metric-value);font-variant-numeric:tabular-nums;line-height:1.05}.rewind-metric span{color:var(--rewind-muted);font-size:var(--rewind-type-metric-label);margin-top:clamp(2px,.35cqi,6px);font-weight:650;line-height:1.2}.rewind-story-notes{gap:0;display:grid}.rewind-highlight,.rewind-goal-achieved{border-block:1px solid color-mix(in srgb, var(--rewind-accent) 52%, transparent);color:var(--rewind-accent);font-size:var(--rewind-type-note);text-align:center;background:0 0;margin:0;padding:clamp(5px,.7cqi,11px) clamp(6px,1cqi,16px);font-weight:700;line-height:1.35}.rewind-highlight+.rewind-goal-achieved{border-top:0}.rewind-goal-achieved{border-color:color-mix(in srgb, var(--rewind-muted) 48%, transparent);color:var(--rewind-ink)}.rewind-poster-footer{color:var(--rewind-muted);font-size:var(--rewind-type-footer);justify-content:space-between;align-items:center;gap:12px;font-weight:700;line-height:1.2;display:flex}.rewind-poster-footer strong{color:var(--rewind-accent)}.rewind-poster[data-ratio="1:1"]{--rewind-poster-pad:clamp(14px, 2.8cqi, 45px);gap:clamp(6px,1.2cqi,20px)}.rewind-poster[data-format=ig-story]{--rewind-type-brand:clamp(12px, 1.65cqi, 25px);--rewind-type-period:clamp(14px, 2cqi, 30px);--rewind-type-headline:clamp(1.35rem, 5.2cqi, 4.75rem);--rewind-type-profile:clamp(12.5px, 1.7cqi, 25px);--rewind-type-metric-value:clamp(1.35rem, 3.65cqi, 3.5rem);--rewind-type-metric-label:clamp(12px, 1.65cqi, 24px);--rewind-type-note:clamp(12px, 1.7cqi, 25px);--rewind-type-footer:clamp(11px, 1.5cqi, 22px);padding:var(--share-story-safe-block) var(--share-story-safe-inline)}.rewind-poster[data-ratio="1:1"] .rewind-highlight,.rewind-poster[data-ratio="1:1"] .rewind-goal-achieved{padding-block:clamp(4px,.6cqi,10px)}.rewind-poster[data-ratio="9:16"] .rewind-metric{padding-block:clamp(4px,.7cqi,10px)}.rewind-controls{min-width:0;padding:var(--rewind-space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);position:sticky;top:94px}.rewind-settings{gap:var(--rewind-space-3);display:grid}.rewind-settings fieldset+fieldset{padding-top:var(--rewind-space-3);border-top:1px solid var(--line)}.rewind-settings legend{align-items:center;gap:var(--rewind-space-1);color:var(--text);font-weight:700;display:flex}.rewind-ratio-options{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:7px;display:grid}.rewind-ratio-options button{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--muted);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:5px;font-weight:700;transition:background-color .16s,border-color .16s,color .16s;display:flex}.rewind-ratio-options button:hover:not(.active),.rewind-ratio-options button.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.rewind-ratio-options button svg{width:14px;height:14px}.rewind-theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rewind-theme-options button,.rewind-custom-color{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);font-size:var(--type-meta);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-weight:700;transition:background-color .16s,border-color .16s,color .16s;display:flex}.rewind-theme-options button:hover:not(.active),.rewind-custom-color:hover:not(.active){border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.rewind-theme-options button.active,.rewind-custom-color.active{border-color:var(--brand);background:var(--brand-soft)}.rewind-theme-options button>span,.rewind-custom-color input{background:var(--theme-swatch);border:0;border-radius:50%;width:22px;min-width:22px;height:22px;min-height:22px;padding:0}.rewind-custom-color{grid-template-columns:auto minmax(0,1fr);display:grid}.rewind-custom-color input{overflow:hidden}.rewind-privacy-toggle{cursor:pointer;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:6px 8px;transition:background-color .16s}.rewind-privacy-toggle:hover{background:var(--surface-muted)}.rewind-privacy-toggle+.rewind-privacy-toggle{margin-top:var(--rewind-space-1)}.rewind-privacy-toggle span{gap:1px;display:grid}.rewind-privacy-toggle small{color:var(--muted);font-weight:400}.rewind-privacy-toggle input{border:1px solid var(--line);appearance:none;background:var(--surface-muted);cursor:pointer;border-radius:999px;width:44px;height:24px;min-height:24px;padding:2px;transition:background .18s cubic-bezier(.22,1,.36,1);position:relative}.rewind-privacy-toggle input:after{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px;transition:transform .18s cubic-bezier(.22,1,.36,1);display:block;box-shadow:0 1px 4px oklch(18% .02 145/.2)}.rewind-privacy-toggle input:checked{border-color:var(--brand);background:var(--brand)}.rewind-privacy-toggle input:checked:after{transform:translate(20px)}.rewind-privacy-note,.rewind-asset-note{color:var(--muted);font-size:var(--type-caption);margin:10px 0 0;line-height:1.55}.rewind-asset-note{text-align:center;margin:0}.rewind-mobile-settings{display:none}.rewind-export-host{pointer-events:none;z-index:-1;position:fixed;top:0;left:-20000px}.rewind-skeleton{justify-items:center;gap:var(--rewind-space-2);color:var(--muted);text-align:center;display:grid}.rewind-skeleton>div{aspect-ratio:4/5;border-radius:var(--radius);background:var(--surface-muted);width:min(100%,680px);max-width:100%;animation:1.4s ease-in-out infinite alternate rewind-pulse}.rewind-skeleton[data-ratio="1:1"]>div{aspect-ratio:1}.rewind-skeleton[data-ratio="9:16"]>div{aspect-ratio:9/16;width:min(100%,500px)}.rewind-skeleton p{margin:0}.rewind-empty-actions{gap:var(--rewind-space-1);flex-wrap:wrap;display:flex}@keyframes rewind-pulse{0%{opacity:.65}to{opacity:1}}@media (width<=1080px){.rewind-workspace{gap:var(--rewind-space-5);grid-template-columns:1fr}.rewind-controls{width:min(100%,320px);margin-inline:auto;position:static}}@media (width<=820px){.rewind-page-heading{flex-direction:column;align-items:stretch}.rewind-export-panel{justify-items:start}.rewind-export-actions{justify-content:flex-start}.rewind-export-status{text-align:left}.rewind-workspace{gap:var(--rewind-space-4)}.rewind-controls{width:100%;max-width:none;display:none}.rewind-controls.open{display:block}.rewind-mobile-settings{display:inline-flex}}@media (width<=720px){.rewind-export-panel,.rewind-export-actions,.rewind-mobile-settings{width:100%}.rewind-export-actions .button{flex:180px}}@media (width<=560px){.rewind-export-actions .button{flex-basis:100%;width:100%}.rewind-period-bar{align-items:stretch;gap:var(--rewind-space-2);flex-direction:column}.rewind-period-tabs button{flex:1}.rewind-period-stepper{grid-template-columns:44px minmax(0,1fr) 44px;width:100%;min-width:0;max-width:none}.rewind-theme-options{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.rewind-skeleton>div{animation:none}.rewind-period-tabs button,.rewind-ratio-options button,.rewind-theme-options button,.rewind-custom-color,.rewind-privacy-toggle,.rewind-privacy-toggle input,.rewind-privacy-toggle input:after{transition:none}}.completion-page{width:min(980px,100%);margin-inline:auto}.completion-page-heading{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.completion-page-heading>div{gap:8px;display:grid}.completion-page-heading h1:focus{outline:none}.completion-page-heading p{max-width:620px;color:var(--muted);margin:0}.completion-export-panel{flex:none;justify-items:end;gap:8px;min-width:0;display:grid}.completion-export-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.completion-export-actions .button{min-height:44px}.completion-export-status{max-width:380px;color:var(--muted);font-size:var(--type-meta);text-align:end;margin:0}.completion-preview-shell{justify-items:center;gap:12px;min-width:0;display:grid}.completion-workspace{grid-template-columns:minmax(0,1fr) minmax(270px,310px);align-items:start;gap:clamp(20px,3vw,34px);display:grid}.completion-preview-frame{aspect-ratio:4/5;border:1px solid var(--line);width:min(100%,560px);box-shadow:var(--shadow);background-color:oklch(91% .01 140);background-image:linear-gradient(45deg,oklch(97% .005 140) 25%,#0000 25%),linear-gradient(-45deg,oklch(97% .005 140) 25%,#0000 25%),linear-gradient(45deg,#0000 75%,oklch(97% .005 140) 75%),linear-gradient(-45deg,#0000 75%,oklch(97% .005 140) 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:22px;overflow:hidden}.completion-preview-frame[data-ratio="1:1"]{aspect-ratio:1}.completion-preview-frame[data-ratio="9:16"]{aspect-ratio:9/16;width:min(100%,430px)}.completion-preview-note,.completion-cover-note{max-width:560px;color:var(--muted);font-size:var(--type-meta);text-align:center;justify-content:center;align-items:center;gap:7px;margin:0;display:flex}.completion-controls{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px;position:sticky;top:94px}.completion-settings{gap:18px;display:grid}.completion-settings fieldset+fieldset{border-top:1px solid var(--line);padding-top:18px}.completion-settings legend{color:var(--text);align-items:center;gap:8px;font-weight:700;display:flex}.completion-settings legend svg{width:18px;height:18px}.completion-ratio-options,.completion-background-mode{gap:7px;display:grid}.completion-ratio-options{grid-template-columns:repeat(auto-fit,minmax(74px,1fr))}.completion-background-mode{grid-template-columns:repeat(2,1fr)}.completion-ratio-options button,.completion-background-mode button{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--muted);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:5px;font-weight:700;display:flex}.completion-ratio-options button:hover,.completion-background-mode button:hover,.completion-style-options button:hover,.completion-ribbon-variant-options button:hover,.completion-theme-options button:hover,.completion-custom-color:hover,.completion-background-options button:hover,.completion-background-custom:hover{border-color:var(--brand)}.completion-ratio-options button:active,.completion-background-mode button:active,.completion-style-options button:active,.completion-ribbon-variant-options button:active,.completion-theme-options button:active,.completion-custom-color:active,.completion-background-options button:active,.completion-background-custom:active{transform:translateY(1px)}.completion-ratio-options button:focus-visible,.completion-background-mode button:focus-visible,.completion-style-options button:focus-visible,.completion-ribbon-variant-options button:focus-visible,.completion-theme-options button:focus-visible,.completion-custom-color:focus-within,.completion-background-options button:focus-visible,.completion-background-custom:focus-within{outline:2px solid var(--brand);outline-offset:2px}.completion-ratio-options button.active,.completion-background-mode button.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.completion-ratio-options button svg,.completion-background-mode button svg{width:14px;height:14px}.completion-style-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.completion-style-options button{border:1px solid var(--line);background:var(--surface);min-height:64px;color:var(--text);text-align:start;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px;display:flex}.completion-style-options button.active{border-color:var(--brand);background:var(--brand-soft)}.completion-style-options button>span:last-child{min-width:0}.completion-style-options button strong,.completion-style-options button small{display:block}.completion-style-options button small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.72rem;overflow:hidden}.completion-style-swatch{border:1px solid var(--line);background:var(--surface-muted);border-radius:5px;width:34px;min-width:34px;height:44px;position:relative;overflow:hidden}.completion-style-swatch:before,.completion-style-swatch:after{content:"";position:absolute}.completion-style-swatch-ribbon:before{background:var(--brand);height:9px;box-shadow:0 25px 0 var(--brand);border-radius:2px;inset:5px 4px auto}.completion-style-swatch-ribbon:after{border:2px solid var(--brand);background:var(--surface);width:12px;height:15px;top:17px;left:11px}.completion-style-swatch-editorial:before{background:var(--brand);inset:4px 4px 19px}.completion-style-swatch-editorial:after{border-top:2px solid var(--brand);border-bottom:2px solid var(--muted);height:8px;bottom:6px;left:5px;right:5px}.completion-style-swatch-orbit:before{border:1px solid var(--brand);width:24px;height:24px;box-shadow:0 0 0 4px var(--surface-muted), 0 0 0 5px var(--brand);border-radius:50%;top:7px;left:4px}.completion-style-swatch-orbit:after{background:var(--brand);border-radius:50%;width:9px;height:9px;top:15px;left:12px}.completion-style-swatch-ticket:before{border:1px dashed var(--brand);border-radius:3px;inset:5px 3px}.completion-style-swatch-ticket:after{background:var(--brand);height:11px;top:13px;left:8px;right:8px}.completion-style-swatch-type:before{color:var(--brand);content:"1";opacity:.25;font-size:34px;font-weight:900;line-height:1;top:2px;left:3px}.completion-style-swatch-type:after{border:2px solid var(--brand);height:12px;bottom:7px;left:10px;right:6px;transform:rotate(5deg)}.completion-style-swatch-gridline:before{border-block:2px solid var(--brand);background:linear-gradient(90deg, transparent 48%, var(--brand) 49% 51%, transparent 52%);inset:8px 5px}.completion-style-swatch-gridline:after{border:2px solid var(--brand);background:var(--surface);width:9px;height:13px;top:13px;left:19px}.completion-style-swatch-signal:before{border:2px solid var(--brand);border-radius:50%;width:24px;height:17px;top:8px;left:4px}.completion-style-swatch-signal:after{background:var(--brand);height:3px;bottom:9px;left:8px;right:4px;transform:skew(-28deg)}.completion-style-swatch-archive:before{border-inline:2px solid var(--brand);inset:5px 6px}.completion-style-swatch-archive:after{border:2px solid var(--brand);background:var(--surface);width:12px;height:18px;top:12px;left:11px}.completion-ribbon-variant-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.completion-ribbon-variant-options button{border:1px solid var(--line);background:var(--surface);min-height:64px;color:var(--text);text-align:start;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px;display:flex}.completion-ribbon-variant-options button.active{border-color:var(--brand);background:var(--brand-soft)}.completion-ribbon-variant-options button>span:last-child{min-width:0}.completion-ribbon-variant-options button strong,.completion-ribbon-variant-options button small{display:block}.completion-ribbon-variant-options button small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.72rem;overflow:hidden}.completion-ribbon-variant-swatch{border:1px solid var(--line);background:var(--surface-muted);border-radius:5px;width:34px;min-width:34px;height:44px;position:relative;overflow:hidden}.completion-ribbon-variant-swatch:before,.completion-ribbon-variant-swatch:after{content:"";position:absolute}.completion-ribbon-variant-swatch-ribbon-classic:before{background:var(--brand);height:7px;box-shadow:0 25px 0 var(--brand);border-radius:2px;inset:6px 3px auto}.completion-ribbon-variant-swatch-ribbon-classic:after{border:2px solid var(--brand);background:var(--surface);width:14px;height:15px;top:15px;left:9px}.completion-ribbon-variant-swatch-ribbon-diagonal:before{background:var(--brand);width:47px;height:8px;top:17px;left:-7px;transform:rotate(-27deg)}.completion-ribbon-variant-swatch-ribbon-diagonal:after{border:2px solid var(--brand);background:var(--surface);border-radius:50%;width:14px;height:14px;top:7px;left:9px}.completion-ribbon-variant-swatch-ribbon-rosette:before{border:2px solid var(--brand);background:var(--surface);width:16px;height:16px;box-shadow:0 0 0 2px var(--surface-muted), 0 0 0 4px var(--brand);border-radius:50%;top:6px;left:8px}.completion-ribbon-variant-swatch-ribbon-rosette:after{background:var(--brand);clip-path:polygon(0 0,100% 0,78% 100%,51% 64%,24% 100%);height:12px;bottom:7px;left:4px;right:4px}.completion-theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.completion-theme-options button,.completion-custom-color{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);font-size:var(--type-caption);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-weight:700;display:flex}.completion-theme-options button.active,.completion-custom-color.active{border-color:var(--brand);background:var(--brand-soft)}.completion-theme-options button>span,.completion-custom-color input{background:var(--theme-swatch);border:0;border-radius:50%;width:22px;min-width:22px;height:22px;min-height:22px;padding:0}.completion-custom-color{grid-template-columns:auto 1fr}.completion-custom-color input{cursor:pointer;overflow:hidden}.completion-background-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.completion-background-options button,.completion-background-custom{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);font-size:var(--type-caption);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-weight:700;display:flex}.completion-background-options button.active,.completion-background-custom.active{border-color:var(--brand);background:var(--brand-soft)}.completion-background-options button>span,.completion-background-custom input{border:1px solid var(--line);background:var(--background-swatch);border-radius:50%;width:22px;min-width:22px;height:22px;min-height:22px;padding:0}.completion-background-custom{grid-template-columns:auto 1fr}.completion-background-custom input{cursor:pointer;overflow:hidden}.completion-cover-note{color:var(--brand-strong)}.completion-poster{isolation:isolate;width:100%;height:100%;color:var(--completion-ink);background:0 0;font-family:Anuphan Variable,Noto Sans Thai,sans-serif;position:relative;overflow:hidden;container-type:inline-size}.completion-poster[data-background=solid]{background:var(--completion-background)}.completion-ornaments{z-index:0;pointer-events:none;position:absolute;inset:0}.completion-ribbon-bow,.completion-ribbon-streamer{position:absolute}.completion-ribbon-bow{width:25cqi;height:24cqi;top:27%;left:3.5%}.completion-ribbon-loop{border:1.45cqi solid;border-radius:50%;width:11cqi;height:7cqi;position:absolute}.completion-ribbon-loop.coral{border-color:var(--completion-ribbon-a);top:5.2cqi;left:1.8cqi;transform:rotate(-23deg)}.completion-ribbon-loop.yellow{border-color:var(--completion-ribbon-b);top:3.8cqi;right:1.4cqi;transform:rotate(27deg)}.completion-ribbon-knot{z-index:1;border:.55cqi solid var(--completion-ink);background:var(--completion-ribbon-c);border-radius:50%;width:4.3cqi;height:4.3cqi;position:absolute;top:8.3cqi;left:10.5cqi}.completion-ribbon-tail{transform-origin:50% 0;border-radius:999px;width:2.4cqi;height:11.5cqi;position:absolute;top:11.2cqi}.completion-ribbon-tail.coral{background:var(--completion-ribbon-a);left:10.2cqi;transform:rotate(22deg)}.completion-ribbon-tail.yellow{background:var(--completion-ribbon-b);left:12.6cqi;transform:rotate(-27deg)}.completion-ribbon-streamer{width:24cqi;height:34cqi;top:23%;right:3.4%}.completion-streamer-arc{border:1.4cqi solid;border-color:currentColor currentColor #0000 #0000;border-radius:50%;width:12cqi;height:12cqi;position:absolute}.completion-streamer-arc.mint{border-top-color:var(--completion-ribbon-c);border-right-color:var(--completion-ribbon-c)}.completion-streamer-arc.yellow{border-top-color:var(--completion-ribbon-b);border-right-color:var(--completion-ribbon-b)}.completion-streamer-arc.arc-one{top:0;left:2cqi;transform:rotate(14deg)}.completion-streamer-arc.arc-two{top:8.3cqi;right:1.8cqi;transform:rotate(194deg)}.completion-streamer-arc.arc-three{top:16.4cqi;left:2cqi;transform:rotate(14deg)}.completion-streamer-tip{background:var(--completion-ribbon-a);border-radius:999px;width:2.4cqi;height:7cqi;position:absolute;top:26.5cqi;left:10.2cqi;transform:rotate(18deg)}.completion-confetti-mark{background:var(--completion-ribbon-b);border-radius:.5cqi;width:2.1cqi;height:4.7cqi;position:absolute}.completion-confetti-mark:nth-of-type(3n){background:var(--completion-ribbon-a)}.completion-confetti-mark:nth-of-type(3n+1){background:var(--completion-ribbon-c)}.completion-confetti-mark.mark-1{top:17%;left:7.5%;transform:rotate(32deg)}.completion-confetti-mark.mark-2{top:21%;right:8.5%;transform:rotate(-25deg)}.completion-confetti-mark.mark-3{top:42%;left:4%;transform:rotate(-42deg)}.completion-confetti-mark.mark-4{top:45%;right:4%;transform:rotate(35deg)}.completion-confetti-mark.mark-5{border-radius:50%;width:2.5cqi;height:2.5cqi;top:57%;left:10%;transform:rotate(18deg)}.completion-confetti-mark.mark-6{border-radius:50%;width:2.5cqi;height:2.5cqi;top:59%;right:10%;transform:rotate(18deg)}.completion-confetti-mark.mark-7{bottom:23%;left:7%;transform:rotate(40deg)}.completion-confetti-mark.mark-8{bottom:22%;right:7%;transform:rotate(-40deg)}.completion-confetti-mark.mark-9{border-radius:50%;width:2.6cqi;height:2.6cqi;bottom:13%;left:15%}.completion-confetti-mark.mark-10{border-radius:50%;width:2.6cqi;height:2.6cqi;bottom:12%;right:15%}.completion-confetti-mark.mark-11{top:67%;left:4.5%;transform:rotate(-25deg)}.completion-confetti-mark.mark-12{top:69%;right:4.5%;transform:rotate(25deg)}.completion-poster[data-style=ribbon] .completion-ribbon-bow{opacity:.88;width:20cqi;height:20cqi}.completion-poster[data-style=ribbon] .completion-ribbon-streamer{opacity:.72;width:20cqi;height:29cqi}.completion-poster[data-style=ribbon] .completion-confetti-mark{opacity:.72}.completion-top-plaque{z-index:2;border:.3cqi solid color-mix(in srgb, var(--completion-accent) 68%, transparent);clip-path:none;background:var(--completion-plaque);text-align:center;filter:drop-shadow(0 1.2cqi 2cqi #10372b24);border-radius:3cqi 3cqi 1.8cqi 1.8cqi;place-content:center;gap:.4cqi;width:52%;min-height:10.5%;padding:1.8cqi 4.5cqi 2cqi;display:grid;position:absolute;top:5.5%;left:50%;transform:translate(-50%)}.completion-top-plaque:before,.completion-bottom-plaque:before{content:"";pointer-events:none;border:.25cqi solid color-mix(in srgb, var(--completion-accent) 72%, transparent);border-radius:inherit;opacity:.72;clip-path:none;position:absolute;inset:.9cqi}.completion-top-plaque span{color:var(--completion-accent);letter-spacing:.02em;font-size:2.6cqi;font-weight:700}.completion-top-plaque strong{text-wrap:balance;font-size:6cqi;line-height:1.05}.completion-book-cover{z-index:1;box-shadow:none;background:0 0;border:0;border-radius:0;position:absolute;overflow:visible}.completion-poster[data-style=ribbon] .completion-book-cover{z-index:5;width:37%;height:42%;top:21.5%;left:50%;transform:translate(-50%)rotate(-1.4deg)}.completion-book-cover.has-cover img{object-fit:contain;background:0 0;width:100%;height:100%;display:block}.completion-book-cover.fallback{border:1.3cqi solid var(--completion-cover-ink);background:var(--completion-cover);color:var(--completion-cover-ink);text-align:center;place-items:center;padding:4cqi;display:grid;box-shadow:0 3.6cqi 4.8cqi #113a2e2e}.completion-book-cover.fallback:before{content:"";border:.45cqi solid var(--completion-ribbon-c);position:absolute;inset:1.4cqi}.completion-book-cover.fallback>div{gap:3cqi;min-width:0;max-width:100%;display:grid;position:relative}.completion-book-cover.fallback span{color:var(--completion-ribbon-a);font-size:2.4cqi;font-weight:700}.completion-book-cover.fallback strong{overflow-wrap:anywhere;text-wrap:balance;font-size:4.1cqi;line-height:1.35}.completion-bottom-plaque{z-index:2;border:.3cqi solid color-mix(in srgb, var(--completion-accent) 68%, transparent);clip-path:none;background:var(--completion-plaque);text-align:center;filter:drop-shadow(0 1.4cqi 2.4cqi #10372b26);border-radius:2.6cqi;align-content:center;gap:1.7cqi;width:70%;min-height:27%;padding:3.4cqi 5.2cqi 2.8cqi;display:grid;position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.completion-book-copy{gap:.7cqi;display:grid}.completion-book-copy h2{max-width:22ch;color:var(--completion-ink);text-wrap:balance;margin:0 auto;font-size:4.1cqi;line-height:1.22;transform:none}.completion-book-copy p{color:var(--completion-muted);margin:0;font-size:2.15cqi;font-weight:600}.completion-facts{border-block:.25cqi solid var(--completion-muted);grid-template-columns:.75fr 1.4fr .9fr;display:grid}.completion-facts>div{gap:.15cqi;min-width:0;padding:1.5cqi 1cqi;display:grid}.completion-facts>div+div{border-left:.25cqi solid var(--completion-muted)}.completion-facts span{color:var(--completion-muted);font-size:1.55cqi;font-weight:600}.completion-facts strong{color:var(--completion-accent);text-overflow:ellipsis;white-space:nowrap;font-size:2.15cqi;line-height:1.3;overflow:hidden}.completion-poster[data-style=editorial] .completion-facts,.completion-poster[data-style=orbit] .completion-facts,.completion-poster[data-style=ticket] .completion-facts,.completion-poster[data-style=type] .completion-facts,.completion-poster[data-style=gridline] .completion-facts,.completion-poster[data-style=signal] .completion-facts,.completion-poster[data-style=archive] .completion-facts{border-color:var(--completion-poster-muted);color:var(--completion-poster-text);background:0 0}.completion-poster[data-style=editorial] .completion-facts>div+div,.completion-poster[data-style=orbit] .completion-facts>div+div,.completion-poster[data-style=ticket] .completion-facts>div+div,.completion-poster[data-style=type] .completion-facts>div+div,.completion-poster[data-style=gridline] .completion-facts>div+div,.completion-poster[data-style=signal] .completion-facts>div+div,.completion-poster[data-style=archive] .completion-facts>div+div{border-left-color:var(--completion-poster-muted)}.completion-poster[data-style=editorial] .completion-facts span,.completion-poster[data-style=orbit] .completion-facts span,.completion-poster[data-style=ticket] .completion-facts span,.completion-poster[data-style=type] .completion-facts span,.completion-poster[data-style=gridline] .completion-facts span,.completion-poster[data-style=signal] .completion-facts span,.completion-poster[data-style=archive] .completion-facts span{color:var(--completion-poster-muted)}.completion-poster[data-style=editorial] .completion-facts strong,.completion-poster[data-style=orbit] .completion-facts strong,.completion-poster[data-style=ticket] .completion-facts strong,.completion-poster[data-style=type] .completion-facts strong,.completion-poster[data-style=gridline] .completion-facts strong,.completion-poster[data-style=signal] .completion-facts strong,.completion-poster[data-style=archive] .completion-facts strong{color:var(--completion-poster-text)}.completion-brand{color:var(--completion-poster-muted);justify-content:center;align-items:center;gap:1.4cqi;padding:0;font-size:1.55cqi;font-weight:600;display:flex}.completion-brand img{background:0 0;border-radius:0;width:11.5cqi;height:auto;padding:0}.completion-poster[data-style=ribbon] .completion-ribbon-brand{color:var(--completion-muted)}.completion-poster[data-style=ribbon] .completion-ribbon-brand img{background:var(--completion-ink)}.completion-layout-ribbon,.completion-layout-editorial,.completion-layout-orbit,.completion-layout-ticket,.completion-layout-type,.completion-layout-gridline,.completion-layout-signal,.completion-layout-archive{width:100%;height:100%;position:relative}.completion-poster[data-format=ig-story]>[class^=completion-layout-]{inset:var(--share-story-safe-block) var(--share-story-safe-inline);width:auto;height:auto;position:absolute;container-type:inline-size}.completion-poster[data-style=editorial] .completion-editorial-cover{width:82%;height:43%;top:10%;left:9%;transform:none}.completion-poster[data-style=editorial] .completion-editorial-cover.has-cover,.completion-poster[data-style=orbit] .completion-orbit-cover.has-cover,.completion-poster[data-style=ticket] .completion-ticket-cover.has-cover,.completion-poster[data-style=type] .completion-type-cover.has-cover{box-shadow:none;background:0 0;border:0;border-radius:0}.completion-poster[data-style=editorial] .completion-book-cover.fallback span,.completion-poster[data-style=orbit] .completion-book-cover.fallback span,.completion-poster[data-style=ticket] .completion-book-cover.fallback span,.completion-poster[data-style=type] .completion-book-cover.fallback span,.completion-poster[data-style=gridline] .completion-book-cover.fallback span,.completion-poster[data-style=signal] .completion-book-cover.fallback span,.completion-poster[data-style=archive] .completion-book-cover.fallback span{color:var(--completion-cover-ink)}.completion-poster[data-style=editorial] .completion-editorial-copy{z-index:3;box-sizing:border-box;color:var(--completion-poster-text);text-align:left;background:0 0;padding:0;position:absolute;bottom:15%;left:10%;right:10%}.completion-editorial-copy>span{color:var(--completion-poster-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2.5cqi;font-size:2.2cqi;font-weight:800;display:block}.completion-editorial-copy h2{text-wrap:balance;max-width:13ch;margin:0;font-size:6.2cqi;line-height:1.03}.completion-editorial-copy p{max-width:30ch;color:var(--completion-poster-muted);margin:2cqi 0 0;font-size:2.15cqi;font-weight:600;line-height:1.25}.completion-poster[data-style=editorial] .completion-editorial-seal{z-index:4;border:.35cqi solid var(--completion-poster-accent);width:14cqi;height:14cqi;color:var(--completion-poster-accent);text-align:center;background:0 0;border-radius:50%;place-items:center;font-size:2cqi;font-weight:800;line-height:1.05;display:grid;position:absolute;top:65%;right:12%;transform:rotate(9deg)}.completion-poster[data-style=editorial] .completion-editorial-facts{border-block-color:var(--completion-poster-muted);position:absolute;bottom:8%;left:10%;right:10%}.completion-poster[data-style=editorial] .completion-editorial-brand{background:0 0;justify-content:flex-start;padding:0;position:absolute;bottom:3%;left:10%;right:10%}.completion-poster[data-style=orbit] .completion-orbit-ring{z-index:0;aspect-ratio:1;border:.35cqi solid var(--completion-muted);opacity:.72;border-radius:50%;width:76%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.completion-poster[data-style=orbit] .completion-orbit-ring.secondary{border-style:dashed;border-color:var(--completion-ribbon-c);width:58%;transform:translate(-50%,-50%)rotate(26deg)}.completion-poster[data-style=orbit] .completion-orbit-dots{z-index:2;pointer-events:none;position:absolute;inset:0}.completion-orbit-dots span{background:var(--completion-ribbon-a);border-radius:50%;width:2.8cqi;height:2.8cqi;position:absolute}.completion-orbit-dots span:first-child{top:35%;left:13%}.completion-orbit-dots span:nth-child(2){background:var(--completion-ribbon-b);top:47%;right:10%}.completion-orbit-dots span:nth-child(3){background:var(--completion-ribbon-b);bottom:27%;left:17%}.completion-poster[data-style=orbit] .completion-orbit-mark{z-index:4;width:auto;height:auto;color:var(--completion-poster-text);text-align:center;background:0 0;border-radius:0;place-content:center;padding:1cqi 2cqi;display:grid;position:absolute;top:15%;left:50%;transform:translate(-50%)}.completion-orbit-mark strong{color:var(--completion-poster-text);font-size:4.8cqi;line-height:.95}.completion-orbit-mark span{color:var(--completion-poster-muted);font-size:1.75cqi;font-weight:700}.completion-poster[data-style=orbit] .completion-orbit-cover{width:32%;height:29%;top:32%;left:34%;transform:none}.completion-poster[data-style=orbit] .completion-orbit-facts{z-index:4;position:absolute;bottom:14%;left:10%;right:10%}.completion-poster[data-style=orbit] .completion-orbit-brand{z-index:4;text-align:center;background:0 0;padding:0;position:absolute;bottom:5%;left:10%;right:10%}.completion-poster[data-style=ticket] .completion-ticket-panel{z-index:2;background:var(--completion-cover);color:var(--completion-cover-ink);border-radius:1cqi;position:absolute;inset:12% 8% 10%;overflow:hidden}.completion-ticket-panel:before,.completion-ticket-panel:after{z-index:3;background:var(--completion-background,transparent);content:"";border-radius:50%;width:6cqi;height:6cqi;position:absolute;top:52%;transform:translateY(-50%)}.completion-ticket-panel:before{left:-3cqi}.completion-ticket-panel:after{right:-3cqi}.completion-poster[data-background=transparent] .completion-ticket-panel:before,.completion-poster[data-background=transparent] .completion-ticket-panel:after{background:0 0}.completion-ticket-heading{border-bottom:.35cqi dashed var(--completion-poster-muted);padding-bottom:4%;position:absolute;top:6%;left:10%;right:10%}.completion-ticket-heading span{color:var(--completion-poster-text);letter-spacing:.06em;text-transform:uppercase;font-size:2cqi;font-weight:800}.completion-ticket-heading strong{margin-top:1.5cqi;font-size:6cqi;line-height:.96;display:block}.completion-poster[data-style=ticket] .completion-ticket-cover{width:36%;height:36%;top:29%;left:11%;transform:none}.completion-poster[data-style=ticket] .completion-ticket-copy{z-index:4;width:35%;color:var(--completion-poster-text);position:absolute;top:31%;right:11%}.completion-ticket-copy h2{text-wrap:balance;margin:0;font-size:3.9cqi;line-height:1.15}.completion-ticket-copy p{color:var(--completion-poster-muted);margin:2.5cqi 0 0;font-size:2cqi;line-height:1.35}.completion-poster[data-style=ticket] .completion-ticket-facts{z-index:4;border-top:.35cqi dashed var(--completion-poster-muted);background:0 0;border-bottom:0;padding-top:3.6cqi;padding-bottom:2cqi;position:absolute;bottom:13%;left:11%;right:11%}.completion-poster[data-style=ticket] .completion-ticket-brand{z-index:4;background:0 0;justify-content:flex-start;padding:0;position:absolute;bottom:3.5%;left:11%;right:11%}.completion-poster[data-style=type] .completion-type-mark{z-index:0;color:color-mix(in srgb, var(--completion-poster-text) 14%, transparent);letter-spacing:-.13em;font-size:35cqi;font-weight:900;line-height:.78;position:absolute;top:10%;left:7%}.completion-poster[data-style=type] .completion-type-copy{z-index:4;box-sizing:border-box;width:46%;color:var(--completion-poster-text);background:0 0;padding:0;position:absolute;top:18%;left:11%}.completion-type-copy>span{color:var(--completion-poster-accent);letter-spacing:.1em;text-transform:uppercase;font-size:2.2cqi;font-weight:900}.completion-type-copy h2{max-width:none;color:var(--completion-poster-text);letter-spacing:-.04em;white-space:nowrap;margin:3cqi 0 0;font-size:6.6cqi;line-height:.95}.completion-type-copy p{max-width:12ch;margin:3cqi 0 0;font-size:3cqi;font-weight:800;line-height:1.15}.completion-type-copy small{max-width:18ch;color:var(--completion-poster-muted);margin-top:1.5cqi;font-size:1.9cqi;line-height:1.25;display:block}.completion-poster[data-style=type] .completion-type-cover{width:48%;height:34%;top:37%;left:39%;transform:rotate(3deg)}.completion-poster[data-style=type] .completion-type-facts{z-index:4;background:0 0;width:52%;position:absolute;bottom:14%;left:11%}.completion-poster[data-style=type] .completion-type-footer{z-index:4;text-align:left;background:0 0;justify-content:flex-start;max-width:none;padding:0;position:absolute;bottom:5%;left:11%;right:11%}.completion-gridline-copy>span,.completion-archive-copy>span,.completion-signal-copy>span{color:var(--completion-poster-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2.5cqi;font-size:2.2cqi;font-weight:800;display:block}.completion-poster[data-style=gridline] .completion-gridline-rules{border-block:.25cqi solid var(--completion-poster-muted);background:linear-gradient(90deg, transparent 49.7%, var(--completion-poster-muted) 49.8% 50.2%, transparent 50.3%);opacity:.72;position:absolute;inset:12% 9% 13%}.completion-poster[data-style=gridline] .completion-gridline-copy{z-index:3;width:40%;color:var(--completion-poster-text);position:absolute;top:16%;left:9%}.completion-gridline-copy h2{text-wrap:balance;margin:0;font-size:5.8cqi;line-height:1}.completion-gridline-copy p{color:var(--completion-poster-muted);margin:0;font-size:2.1cqi}.completion-poster[data-style=gridline] .completion-gridline-cover{z-index:3;width:31%;height:39%;top:27%;left:58%}.completion-gridline-index{z-index:3;color:var(--completion-poster-accent);font-size:12cqi;line-height:.8;position:absolute;bottom:17%;right:9%}.completion-poster[data-style=gridline] .completion-gridline-facts{z-index:3;position:absolute;bottom:8%;left:9%;right:9%}.completion-poster[data-style=gridline] .completion-gridline-brand{z-index:3;justify-content:flex-start;position:absolute;bottom:2.5%;left:9%}.completion-poster[data-style=signal] .completion-signal-watermark{z-index:0;color:color-mix(in srgb, var(--completion-poster-text) 18%, transparent);letter-spacing:-.13em;font-size:34cqi;font-weight:900;line-height:.78;position:absolute;top:11%;right:4%}.completion-poster[data-style=signal] .completion-signal-copy{z-index:4;width:45%;color:var(--completion-poster-text);position:absolute;top:21%;left:9%}.completion-signal-copy h2{margin:0;font-size:7cqi;line-height:.95}.completion-signal-copy p{margin:2.5cqi 0 0;font-size:3cqi;font-weight:800;line-height:1.15}.completion-signal-copy small{color:var(--completion-poster-muted);margin-top:1.4cqi;font-size:1.9cqi;display:block}.completion-poster[data-style=signal] .completion-signal-cover{z-index:3;width:35%;height:38%;top:30%;left:53%;transform:rotate(3deg)}.completion-poster[data-style=signal] .completion-signal-mark{z-index:2;background:var(--completion-poster-accent);transform-origin:0;height:.7cqi;position:absolute;bottom:27%;left:9%;right:9%;transform:skew(-31deg)}.completion-poster[data-style=signal] .completion-signal-facts{z-index:4;position:absolute;bottom:12%;left:9%;right:9%}.completion-poster[data-style=signal] .completion-signal-brand{z-index:4;justify-content:flex-start;position:absolute;bottom:3%;left:9%}.completion-poster[data-style=archive] .completion-archive-index{z-index:3;color:var(--completion-poster-muted);writing-mode:vertical-rl;position:absolute;top:15%;left:3%;transform:rotate(180deg)}.completion-archive-index span,.completion-archive-index strong{display:block}.completion-archive-index span{letter-spacing:.08em;text-transform:uppercase;font-size:1.8cqi;font-weight:800}.completion-archive-index strong{color:var(--completion-poster-accent);margin-top:1cqi;font-size:8cqi;line-height:.8}.completion-poster[data-style=archive] .completion-archive-copy{z-index:3;width:53%;color:var(--completion-poster-text);text-align:right;position:absolute;top:17%;right:12%}.completion-archive-copy h2{text-wrap:balance;margin:0;font-size:5.8cqi;line-height:.98}.completion-archive-copy p{color:var(--completion-poster-muted);margin:0;font-size:2.1cqi}.completion-poster[data-style=archive] .completion-archive-cover{z-index:3;width:36%;height:38%;top:38%;left:17%;transform:rotate(-2deg)}.completion-poster[data-style=archive] .completion-archive-seal{z-index:4;border:.35cqi solid var(--completion-poster-accent);width:13cqi;height:13cqi;color:var(--completion-poster-accent);text-align:center;border-radius:50%;place-items:center;font-size:1.8cqi;font-weight:800;line-height:1.05;display:grid;position:absolute;top:44%;right:13%;transform:rotate(9deg)}.completion-poster[data-style=archive] .completion-archive-facts{z-index:4;border-block-color:var(--completion-poster-muted);display:block;position:absolute;bottom:12%;left:58%;right:11%}.completion-poster[data-style=archive] .completion-archive-facts>div{grid-template-columns:1fr auto;padding:1.2cqi 0}.completion-poster[data-style=archive] .completion-archive-facts>div+div{border-left:0;border-top:.25cqi solid var(--completion-poster-muted)}.completion-poster[data-style=archive] .completion-archive-brand{z-index:4;justify-content:flex-start;position:absolute;bottom:3%;left:12%}.completion-poster[data-style=editorial][data-ratio="1:1"] .completion-editorial-cover{height:39%;top:8%}.completion-poster[data-style=editorial][data-ratio="9:16"] .completion-editorial-cover{height:39%;top:13%}.completion-poster[data-style=orbit][data-ratio="1:1"] .completion-orbit-mark{top:12%}.completion-poster[data-style=orbit][data-ratio="9:16"] .completion-orbit-mark{top:18%}.completion-poster[data-style=ticket][data-ratio="1:1"] .completion-ticket-panel{inset:8% 7% 7%}.completion-poster[data-style=ticket][data-ratio="9:16"] .completion-ticket-panel{inset:14% 10% 12%}.completion-poster[data-style=type][data-ratio="1:1"] .completion-type-cover{height:31%;top:39%}.completion-poster[data-style=type][data-ratio="9:16"] .completion-type-copy{top:20%}.completion-poster[data-style=type][data-ratio="9:16"] .completion-type-cover{height:31%;top:40%}.completion-poster[data-style=gridline][data-ratio="1:1"] .completion-gridline-cover{height:42%;top:25%}.completion-poster[data-style=gridline][data-ratio="9:16"] .completion-gridline-cover{height:35%;top:29%}.completion-poster[data-style=signal][data-ratio="1:1"] .completion-signal-copy{top:18%}.completion-poster[data-style=signal][data-ratio="9:16"] .completion-signal-copy{top:23%}.completion-poster[data-style=signal][data-ratio="9:16"] .completion-signal-cover{height:35%;top:33%}.completion-poster[data-style=archive][data-ratio="1:1"] .completion-archive-cover{height:40%;top:35%}.completion-poster[data-style=archive][data-ratio="9:16"] .completion-archive-copy{top:19%}.completion-poster[data-style=archive][data-ratio="9:16"] .completion-archive-cover{height:34%;top:40%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-top-plaque{width:50%;min-height:10%;top:4%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-book-cover{width:30%;height:44%;top:18%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-bottom-plaque{width:74%;min-height:29%;bottom:3%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-bow{top:20%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-streamer{top:17%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-top-plaque{width:58%;min-height:8.5%;top:6%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-book-cover{width:44%;height:37%;top:20%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-bottom-plaque{width:72%;min-height:23%;bottom:6%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-bow{top:27%;left:1%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-streamer{top:25%;right:1%}.completion-poster[data-style=ribbon] .completion-ribbon-copy{z-index:3;min-width:0;color:var(--completion-poster-text);gap:1cqi;display:grid;position:absolute}.completion-poster[data-style=ribbon] .completion-ribbon-copy>span{color:var(--completion-poster-accent);letter-spacing:.12em;text-transform:uppercase;font-size:2.25cqi;font-weight:800}.completion-poster[data-style=ribbon] .completion-ribbon-copy h2{overflow-wrap:anywhere;text-wrap:balance;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:5.3cqi;line-height:1.08;display:-webkit-box;overflow:hidden}.completion-poster[data-style=ribbon] .completion-ribbon-copy p{color:var(--completion-poster-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:2.1cqi;font-weight:650;overflow:hidden}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-art,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-art{z-index:1;pointer-events:none;position:absolute;inset:0}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-badge,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-badge{z-index:2;pointer-events:none;position:absolute}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-band{background:var(--completion-ribbon-a);width:69%;height:8%;color:var(--completion-cover-ink);border-radius:999px 1.2cqi 1.2cqi 999px;place-items:center;display:grid;position:absolute;top:35.5%;left:10%;transform:rotate(-8deg);box-shadow:0 1cqi 2.2cqi #113a2e1f}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-band:before{border-block:.35cqi solid color-mix(in srgb, var(--completion-cover-ink) 45%, transparent);content:"";position:absolute;inset:1.4cqi 0}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-band span{display:none}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-badge{width:25cqi;height:31cqi;top:11%;right:7%}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-rosette{z-index:3;aspect-ratio:1;border:.65cqi solid var(--completion-medal-highlight);background:radial-gradient(circle at 35% 28%, var(--completion-medal-highlight), var(--completion-medal-gold) 68%, color-mix(in srgb, var(--completion-medal-gold) 72%, #8a5a00));width:20cqi;color:var(--completion-medal-ink);filter:drop-shadow(0 1.8cqi 2.5cqi #113a2e33);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;right:0;transform:rotate(12deg)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-rosette:before{border:.35cqi dashed var(--completion-medal-ink);border-radius:inherit;content:"";opacity:.48;position:absolute;inset:1.2cqi}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-rosette strong{color:var(--completion-medal-ink);font-size:3.1cqi;line-height:1;position:relative}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-tail{z-index:1;clip-path:polygon(0 0,100% 0,78% 100%,50% 80%,22% 100%);width:3.6cqi;height:7.2cqi;position:absolute;top:17.5cqi}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-tail.tail-one{background:var(--completion-ribbon-b);right:10cqi;transform:rotate(18deg)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-tail.tail-two{background:var(--completion-ribbon-c);right:4.5cqi;transform:rotate(-20deg)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-copy{text-align:left;width:46%;top:8.5%;left:9%}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-cover{z-index:6;filter:drop-shadow(0 3cqi 4cqi #113a2e38);width:39%;height:37%;top:29%;right:9%;transform:rotate(3deg)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-facts{z-index:3;position:absolute;bottom:13%;left:9%;right:9%}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-brand{z-index:3;justify-content:flex-end;position:absolute;bottom:5%;right:9%}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion{z-index:3;aspect-ratio:1;border:.65cqi solid var(--completion-medal-highlight);background:radial-gradient(circle at 35% 28%, var(--completion-medal-highlight), var(--completion-medal-gold) 68%, color-mix(in srgb, var(--completion-medal-gold) 72%, #8a5a00));width:22cqi;color:var(--completion-medal-ink);text-align:center;filter:drop-shadow(0 2cqi 3cqi #113a2e33);border-radius:50%;place-content:center;gap:.7cqi;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%)rotate(-4deg)}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion:before{border:.35cqi dashed var(--completion-medal-ink);border-radius:inherit;content:"";opacity:.48;position:absolute;inset:1.2cqi}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion strong,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion span{color:var(--completion-medal-ink);position:relative}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion strong{font-size:4cqi;line-height:1}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-medallion span{letter-spacing:.08em;text-transform:uppercase;font-size:1.8cqi;font-weight:800}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-tail{z-index:1;clip-path:polygon(0 0,100% 0,76% 100%,50% 82%,20% 100%);width:5.5cqi;height:8cqi;position:absolute;top:20cqi}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-tail.tail-one{background:var(--completion-ribbon-a);left:5cqi;transform:rotate(18deg)}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-tail.tail-two{background:var(--completion-ribbon-c);left:15cqi;transform:rotate(-18deg)}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-badge{width:26cqi;height:31cqi;top:5%;left:50%;transform:translate(-50%)}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-copy{text-align:center;top:30.5%;left:9%;right:9%}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-copy h2{max-width:18ch;margin-inline:auto;font-size:4.8cqi}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-cover{z-index:6;filter:drop-shadow(0 3cqi 4cqi #113a2e33);width:37%;height:29%;top:43.5%;left:50%;transform:translate(-50%)rotate(-2deg)}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-facts{z-index:3;position:absolute;bottom:13%;left:9%;right:9%}.completion-poster[data-style=ribbon] .completion-ribbon-rosette-brand{z-index:3;justify-content:center;position:absolute;bottom:5%;right:9%}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-facts,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-facts{border-color:var(--completion-poster-muted);color:var(--completion-poster-text);background:0 0}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-facts>div+div,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-facts>div+div{border-left-color:var(--completion-poster-muted)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-facts span,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-facts span{color:var(--completion-poster-muted)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-facts strong,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-facts strong{color:var(--completion-poster-text)}.completion-poster[data-style=ribbon] .completion-ribbon-diagonal-brand img,.completion-poster[data-style=ribbon] .completion-ribbon-rosette-brand img{background:var(--completion-poster-text)}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-copy{width:48%;top:7%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-band{width:69%;height:9%;top:39.5%;left:8%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-badge{width:24cqi;height:29cqi;top:9.5%;right:6%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-rosette{width:19cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-tail{width:3.3cqi;height:6.5cqi;top:15.5cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-tail.tail-one{right:8.5cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-tail.tail-two{right:3.5cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-cover{width:36%;height:34%;top:31%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-badge{width:23cqi;height:27cqi;top:3.5%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-medallion{width:19cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-tail{width:4.8cqi;height:7cqi;top:17cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-tail.tail-one{left:4cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-tail.tail-two{left:14cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-copy{top:32%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-copy h2{font-size:4.6cqi}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-cover{height:29%;top:50.5%}.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-diagonal-facts,.completion-poster[data-style=ribbon][data-ratio="1:1"] .completion-ribbon-rosette-facts{bottom:10.5%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-copy{text-align:left;width:58%;top:9%;left:9%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-band{width:62%;height:7.5%;top:37.5%;left:6%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-badge{width:22cqi;height:28cqi;top:21.5%;right:6%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-rosette{width:18.5cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-tail{width:3.4cqi;height:6.8cqi;top:15.8cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-tail.tail-one{right:10cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-tail.tail-two{right:4.5cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-diagonal-cover{width:50%;height:30.5%;top:36.5%;left:50%;right:auto;transform:translate(-50%)rotate(2deg)}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-badge{width:22cqi;height:28cqi;top:5%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-medallion{width:18.5cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-tail{width:4.8cqi;height:7.5cqi;top:16.5cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-tail.tail-one{left:4cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-tail.tail-two{left:13cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-copy{top:25%}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-copy h2{font-size:4.6cqi}.completion-poster[data-style=ribbon][data-ratio="9:16"] .completion-ribbon-rosette-cover{width:48%;height:29%;top:44%}.completion-export-host{z-index:-1;pointer-events:none;position:fixed;top:0;left:-20000px}.completion-skeleton{width:min(560px,100%);color:var(--muted);text-align:center;justify-items:center;gap:14px;margin-inline:auto;display:grid}.completion-skeleton>div{aspect-ratio:4/5;background:var(--surface-muted);border-radius:22px;width:100%;animation:1.4s ease-in-out infinite alternate completion-pulse}.completion-skeleton p{margin:0}@keyframes completion-pulse{0%{opacity:.62}to{opacity:1}}@media (width<=680px){.completion-page-heading{flex-direction:column;align-items:stretch}.completion-export-panel,.completion-export-actions{width:100%}.completion-export-panel{justify-items:stretch}.completion-export-actions{display:grid}.completion-export-actions .button{width:100%}.completion-export-status{text-align:start;max-width:none}.completion-preview-frame{border-radius:14px}.completion-workspace{grid-template-columns:1fr}.completion-controls{position:static}}@media (width<=420px){.completion-style-options,.completion-ribbon-variant-options,.completion-theme-options,.completion-background-options{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.completion-poster,.completion-poster *{transition:none!important;animation:none!important}.completion-skeleton>div{animation:none}.completion-ratio-options button:active,.completion-background-mode button:active,.completion-ribbon-variant-options button:active,.completion-theme-options button:active,.completion-custom-color:active,.completion-background-options button:active,.completion-background-custom:active{transform:none}}.review-share-dialog-content{grid-template-rows:auto minmax(0,1fr) auto;width:min(1160px,100vw - 32px);height:min(820px,100dvh - 32px);max-height:calc(100dvh - 32px);padding:0;display:grid;overflow:hidden}.review-share-dialog-content>.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 28px 20px;display:flex}.review-share-dialog-content>.dialog-header>div{min-width:0}.review-share-dialog-content>.dialog-header h2,.review-share-dialog-content>.dialog-header p{margin:0}.review-share-dialog-content>.dialog-header p{color:var(--muted);font-size:var(--type-meta);margin-top:4px;line-height:1.5}.review-share-dialog-content>.dialog-header h2{font-size:var(--type-subhead);letter-spacing:-.015em;line-height:1.3}.review-share-dialog-content>.dialog-header .icon-button{transition:background-color .15s var(--ease-page-enter), color .15s var(--ease-page-enter);flex:none}.review-share-dialog-content>.dialog-header .icon-button:hover{background:var(--brand-soft);color:var(--brand-strong)}.review-share-workspace{grid-template-columns:minmax(0,1.27fr) minmax(320px,1fr);min-width:0;min-height:0;display:grid}.review-share-preview{background:var(--surface-muted);grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:10px;min-width:0;min-height:0;padding:20px 24px;display:grid;overflow:hidden}.review-share-preview-frame{background:#dfe8e3;border-radius:16px;width:auto;max-width:100%;height:100%;max-height:100%;margin:0;overflow:hidden;box-shadow:0 18px 38px #122a242e;container-type:inline-size}.review-share-preview-frame[data-ratio="1:1"]{aspect-ratio:1}.review-share-preview-frame[data-ratio="4:5"]{aspect-ratio:4/5}.review-share-preview-frame[data-ratio="9:16"]{aspect-ratio:9/16}.review-share-settings-pane{border-left:1px solid var(--line);overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0;min-height:0;padding:24px 28px 32px;overflow:hidden auto}.review-share-poster{--review-card-row-gap:5.4cqi;background:var(--review-card-background);width:100%;height:100%;color:var(--review-card-foreground);grid-template-rows:auto auto minmax(0,1fr) auto;gap:0;padding:8cqi;font-family:Anuphan Variable,Noto Sans Thai,sans-serif;display:grid;overflow:hidden;container-type:inline-size}.review-share-poster .review-share-brand,.review-share-poster .review-share-book-copy p,.review-share-poster .review-share-byline{color:var(--review-card-muted)}.review-share-poster .review-share-book-copy h2,.review-share-poster .review-share-excerpt{color:var(--review-card-foreground)}.review-share-poster .review-share-stars,.review-share-poster .review-share-star-fill,.review-share-poster .review-share-byline span:last-child,.review-share-poster .review-share-excerpt a{color:var(--review-card-accent)}.review-share-poster .review-share-star{color:var(--review-card-star-base)}.review-share-poster .review-share-cover{background:var(--review-card-accent);color:var(--review-card-background)}.review-share-themes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.review-share-themes label{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--muted);cursor:pointer;text-align:left;transition:transform .15s var(--ease-page-enter), background-color .15s var(--ease-page-enter), border-color .15s var(--ease-page-enter), color .15s var(--ease-page-enter);border-radius:12px;justify-content:flex-start;align-items:center;padding:8px 10px;display:flex;position:relative}.review-share-themes label.is-selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);font-weight:700}.review-share-themes label:has(input:focus-visible){outline-offset:2px;outline:3px solid oklch(67% .15 145/.55)}.review-share-themes input{opacity:0;width:1px;height:1px;position:absolute}.review-share-theme-swatch{border-radius:50%;flex:none;width:18px;height:18px;margin-right:10px}.review-share-theme-swatch.evergreen{background:#133e38}.review-share-theme-swatch.ink{background:#172a45}.review-share-theme-swatch.ember{background:#542333}.review-share-theme-swatch.cloud{border:1px solid var(--line);background:#edf2ef}.review-share-poster[data-ratio="1:1"]{--review-card-row-gap:4.4cqi;padding:7cqi}.review-share-poster[data-ratio="9:16"]{--review-card-row-gap:7cqi;padding:9cqi}.review-share-poster[data-format=ig-story]{padding:var(--share-story-safe-block) var(--share-story-safe-inline)}.review-share-header,.review-share-byline{justify-content:space-between;align-items:center;gap:3cqi;display:flex}.review-share-header,.review-share-book{margin-bottom:var(--review-card-row-gap)}.review-share-brand{object-fit:contain;object-position:left center;width:11cqi;height:auto;display:block}.review-share-stars{color:#d8a35d;gap:.55cqi;display:flex}.review-share-star{color:#71958b;width:3.7cqi;height:3.7cqi;display:block;position:relative;overflow:hidden}.review-share-star>svg,.review-share-star-fill svg{width:100%;height:100%;display:block}.review-share-star-fill{color:#d8a35d;display:block;position:absolute;inset:0 auto 0 0;overflow:hidden}.review-share-book{grid-template-columns:25cqi minmax(0,1fr);align-items:center;gap:4cqi;display:grid}.review-share-cover{aspect-ratio:2/3;color:#143d37;background:#d8a35d;place-items:center;display:grid;overflow:hidden;box-shadow:0 2.8cqi 5.6cqi #00000038}.review-share-cover img{object-fit:cover;width:100%;height:100%}.review-share-cover.fallback{text-align:center;padding:2cqi;font-size:2.65cqi;font-weight:750;line-height:1.18}.review-share-book-copy{min-width:0}.review-share-book-copy h2{color:#fffdf6;letter-spacing:-.025em;overflow-wrap:anywhere;margin:0;font-size:5.4cqi;line-height:1.03}.review-share-book-copy p{color:#c7ddd1;overflow-wrap:anywhere;margin:1.4cqi 0 0;font-size:2.8cqi;line-height:1.35}.review-share-excerpt{color:#fffdf6;align-self:stretch;min-width:0;min-height:0;font-size:3.6cqi;line-height:1.45;position:relative;overflow:hidden}.review-share-excerpt.has-overflow-cover:after{height:var(--review-share-overflow-cover-height);background:var(--review-card-background);content:"";pointer-events:none;position:absolute;inset:auto 0 0}.review-share-excerpt .rich-text-content>:first-child{margin-top:0}.review-share-excerpt .rich-text-content>:last-child{margin-bottom:0}.review-share-excerpt p,.review-share-excerpt blockquote{margin:0 0 2.6cqi}.review-share-excerpt blockquote{color:#dce9e2;border-left:1cqi solid #d8a35d;padding-left:3cqi}.review-share-excerpt ul,.review-share-excerpt ol{margin:0;padding-left:5.5cqi}.review-share-excerpt a{color:#f4c67d}.review-share-byline{color:#c7ddd1;border-top:.28cqi solid #c7ddd173;padding-top:3cqi;font-size:2.7cqi;font-weight:650}.review-share-byline span:last-child{color:#f4c67d}.review-share-settings{gap:28px;display:grid}.review-share-settings fieldset{border:0;margin:0;padding:0}.review-share-settings legend{color:var(--text);font-size:var(--type-meta);margin-bottom:10px;font-weight:700;line-height:1.4}.review-share-ratios{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:8px;display:grid}.review-share-ratios label{border:1px solid var(--line);background:var(--surface);min-height:50px;color:var(--muted);font-size:var(--type-caption);cursor:pointer;text-align:center;transition:transform .15s var(--ease-page-enter), background-color .15s var(--ease-page-enter), border-color .15s var(--ease-page-enter), color .15s var(--ease-page-enter);border-radius:12px;place-items:center;padding:8px;font-weight:700;display:grid;position:relative}.review-share-ratios label.is-selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.review-share-ratios input{opacity:0;width:1px;height:1px;position:absolute}.review-share-ratios label:has(input:focus-visible){outline-offset:2px;outline:3px solid oklch(67% .15 145/.55)}@media (hover:hover){.review-share-ratios label:hover:not(.is-selected),.review-share-themes label:hover:not(.is-selected){border-color:var(--brand);background:color-mix(in oklch, var(--brand-soft), var(--surface) 48%);color:var(--text);transform:translateY(-1px)}}.review-share-footer{min-width:0;padding:16px 28px max(16px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;display:grid}.review-share-footer-status{min-width:0;color:var(--muted);font-size:var(--type-meta);align-self:center;align-items:center;gap:8px;margin:0;line-height:1.45;display:inline-flex}.review-share-footer-status:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.review-share-footer-status[data-state=ready]{color:var(--brand-strong)}.review-share-footer-status[data-state=warning]{color:var(--warning-text)}.review-share-footer-status[data-state=error]{color:var(--danger)}.review-share-actions{justify-content:flex-end;gap:10px;margin:0;display:flex}.review-share-actions .button:first-child{margin-right:0}@media (width<=720px){.review-share-dialog-content{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}.review-share-dialog-content>.dialog-header{padding:16px 18px 14px}.review-share-workspace{overscroll-behavior:contain;display:block;overflow:hidden auto}.review-share-preview{grid-template-rows:auto auto;padding:20px 18px 24px;overflow:visible}.review-share-preview-frame{width:min(78vw,380px);height:auto;max-height:none}.review-share-settings-pane{border-top:1px solid var(--line);border-left:0;padding:20px 18px 24px;overflow:visible}.review-share-footer{padding:12px 18px max(12px, env(safe-area-inset-bottom));grid-template-columns:1fr;gap:10px}.review-share-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.review-share-actions .button{width:100%}.review-share-actions .button.primary{grid-column:1/-1}}@media (width<=379px){.review-share-actions{grid-template-columns:1fr}.review-share-actions .button.primary{grid-column:auto}}@media (prefers-reduced-motion:reduce){.review-share-dialog-content>.dialog-header .icon-button,.review-share-ratios label,.review-share-themes label{transition:none}}.public-profile-page{gap:28px}.public-profile-identity,.public-profile-switcher{gap:12px;min-width:0;display:grid}.public-profile-card{background:var(--brand-soft);align-items:center;gap:20px;padding:clamp(24px,4vw,34px);display:flex}.public-profile-avatar{object-fit:cover;background:var(--surface-muted);border-radius:50%;flex:none;width:88px;height:88px}.public-profile-avatar-fallback{font-size:var(--type-subhead);color:var(--muted);text-transform:uppercase;place-items:center;font-weight:700;display:grid}.public-profile-avatar-skeleton,.public-profile-skeleton-line{background:var(--surface-muted);animation:1.5s ease-in-out infinite timeline-pulse}.public-profile-card-body{min-width:0}.public-profile-card-body h1{margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:750;line-height:1.3}.public-profile-handle,.public-profile-joined{font-size:var(--type-meta);margin:2px 0 0}.public-profile-handle{color:var(--brand-strong);font-weight:700}.public-profile-stats{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:0;overflow:hidden}.public-profile-stats .stat-item{text-align:center;min-width:0;padding:16px 12px}.public-profile-stats .stat-item+.stat-item{border-left:1px solid var(--line)}.public-profile-stats .stat-item strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(1.15rem,3vw,1.6rem)}.public-profile-stats .stat-item span{overflow-wrap:anywhere;line-height:1.4}.public-profile-brand{justify-content:center;padding-top:8px;display:flex}.public-profile-brand-link{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);justify-items:center;gap:8px;padding:18px 20px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.public-profile-brand-link:hover{border-color:var(--muted)}.public-profile-brand-link:active{transform:translateY(1px)}.public-profile-brand-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.public-profile-brand-link img{width:116px;height:auto}.public-profile-brand-link>span{color:var(--muted);font-size:var(--type-meta);text-align:center}.public-reading-insights{gap:18px;display:grid}.public-reading-insights-heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.public-reading-insights-heading h2{font-size:var(--type-subhead);margin:0}.public-insights-metrics{border:1px solid var(--line);background:var(--line);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.public-insights-metrics>div{background:var(--surface);gap:5px;min-width:0;padding:14px;display:grid}.public-insights-metrics dt{color:var(--muted);font-size:var(--type-meta)}.public-insights-metrics dd{font-variant-numeric:tabular-nums;margin:0;font-size:clamp(1rem,2vw,1.2rem);font-weight:700}.public-insights-chart{gap:8px;display:grid}.public-insights-chart>p,.public-insights-empty{margin:0}.public-insights-bars{border-bottom:1px solid var(--line);grid-template-columns:repeat(30,minmax(3px,1fr));align-items:end;gap:clamp(2px,.45vw,5px);height:86px;margin:0;padding:0;list-style:none;display:grid}.public-insights-bars li{align-items:end;height:100%;display:flex;position:relative}.public-insights-bars i{width:100%;min-height:0;height:calc(var(--reading-bar-level) * 100%);background:var(--brand);opacity:.78;border-radius:3px 3px 0 0;display:block}.public-insights-bars li.has-duration i{min-height:4px}.public-insights-bars li.progress-only:after{border:1px solid var(--brand);content:"";border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.public-insights-chart-dates{color:var(--muted);font-size:var(--type-meta);justify-content:space-between;display:flex}.public-profile-skeleton-line{border-radius:7px;max-width:100%;height:14px;display:block}.public-profile-card-body .public-profile-skeleton-line{margin-inline:auto}.public-profile-skeleton-line.w-sm{width:80px}.public-profile-skeleton-line.w-md{width:120px}.public-profile-skeleton-line.w-lg{width:180px}.public-profile-skeleton-stat{text-align:center;gap:6px;min-width:0;padding:16px 12px;display:grid}.public-profile-skeleton-stat .public-profile-skeleton-line{justify-self:center}.public-profile-skeleton-stat+.public-profile-skeleton-stat{border-left:1px solid var(--line)}.public-profile-tabs{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-self:start;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex}.public-profile-tabs button{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;padding:8px 16px;font-weight:600;transition:background .15s,color .15s}.public-profile-tabs button:hover{color:var(--text)}.public-profile-tabs button.active{background:var(--surface-muted);color:var(--text)}.public-profile-tabs button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.public-review-toolbar{justify-content:flex-end;margin:0 0 12px;display:flex}.public-review-sort{grid-template-columns:auto minmax(150px,190px);align-items:center;gap:10px;display:grid}.public-review-sort select{width:auto}.public-review-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.public-review-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:14px;padding:clamp(16px,2.5vw,22px);display:flex}.public-review-cover{background:var(--surface-muted);border-radius:8px;width:56px;height:80px}.public-review-cover img{object-fit:cover;width:100%;height:100%}.public-review-cover>span{width:100%;height:100%;font-size:var(--type-subhead);color:var(--muted);place-items:center;font-weight:700;display:grid}.public-review-body{flex:1;min-width:0}.public-review-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.public-review-head strong{font-size:var(--type-body);text-overflow:ellipsis;min-width:0;overflow:hidden}.public-review-stars{color:var(--line);flex:none;gap:2px;display:inline-flex}.public-review-stars svg{width:16px;height:16px}.public-review-star{width:16px;height:16px;position:relative}.public-review-star>svg,.public-review-star>span,.public-review-star>span>svg{width:16px;height:16px;position:absolute;inset:0}.public-review-star>span{color:oklch(70% .18 75);overflow:hidden}.public-review-star>span>svg{fill:currentColor;max-width:none}.public-review-authors{font-size:var(--type-meta);margin:4px 0 0}.public-review-content-block{margin:10px 0 0}.public-review-content-clip{overflow:hidden}.public-review-content-clip.is-collapsed{max-height:8em}.public-review-content{font-size:var(--type-body);color:var(--text);margin:0;line-height:1.6}.public-review-expand{min-height:44px;color:var(--brand-strong);cursor:pointer;background:0 0;border:0;margin:2px 0 -8px;padding:8px 0;font-weight:700}.public-review-expand:hover{color:var(--text)}.public-review-date{font-size:var(--type-meta);margin:8px 0 0}@media (width<=560px){.public-review-toolbar{display:block}.public-review-sort{grid-template-columns:1fr}.public-review-sort select{width:100%}.public-profile-avatar{width:56px;height:56px}.public-profile-tabs{width:100%}.public-profile-tabs button{flex:1}.public-review-cover{width:44px;height:64px}.public-reading-insights-heading{flex-direction:column;align-items:start;gap:4px}.public-insights-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.public-insights-bars{gap:2px}}@media (prefers-reduced-motion:reduce){.public-profile-avatar-skeleton,.public-profile-skeleton-line{animation:none}}.public-profile-setting{gap:14px;display:grid}.public-setting-fields{gap:10px;display:grid}.public-reading-stats-toggle{border:1px solid var(--line);background:var(--surface-muted);border-radius:11px;align-items:start;padding:12px}.public-reading-stats-toggle>span{gap:3px;display:grid}.public-reading-stats-toggle strong{color:var(--text);font-size:var(--type-body)}.public-reading-stats-toggle small{color:var(--muted);font-size:var(--type-meta);line-height:1.5}.public-setting-handle{font-size:var(--type-meta);color:var(--muted);gap:6px;display:grid}.public-handle-input{align-items:center;display:flex;position:relative}.public-handle-prefix{color:var(--muted);pointer-events:none;font-weight:600;position:absolute;left:12px}.public-handle-input input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;text-transform:lowercase;border-radius:11px;padding:10px 12px 10px 30px;font-weight:600}.public-handle-input input:focus-visible{outline:2px solid var(--text);outline-offset:2px}.public-setting-share{border:1px solid var(--line);background:var(--surface-muted);border-radius:11px;gap:6px;padding:12px;display:grid}.public-setting-link{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;font-family:inherit;font-size:var(--type-meta);color:var(--text);border-radius:9px;padding:10px 12px}.public-setting-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.public-setting-share-status{color:var(--muted);font-size:var(--type-meta);margin:0}.public-setting-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.field-error{color:oklch(55% .18 25);font-size:var(--type-meta);margin:0}
