:root{--font-serif:"Times-Roman", serif;--color-parchment:#e9e4d8;--color-paper:#f6efe0;--color-ink:#2c1f14;--color-text:#333;--color-border:#b7a97f;--color-surface-raised:#fdfaf3;--color-primary:#b98f46;--color-button-face:#efe8d5;--color-button-face-hover:#e6dcc2;--color-muted:#777;--color-danger:#b23434;--z-page:10;--z-controls:300;--z-modal:1000}body{background:var(--color-parchment);margin:0}.corner-cluster{z-index:var(--z-controls);flex-direction:column;gap:.75rem;display:flex;position:fixed}.has-tooltip{position:relative}.has-tooltip:after{content:attr(data-tooltip);z-index:var(--z-controls);background:var(--color-primary);color:#fff;font-family:var(--font-serif);white-space:nowrap;opacity:0;pointer-events:none;border-radius:.25rem;padding:.25rem .5rem;font-size:.9375rem;transition:opacity .15s;position:absolute}.has-tooltip--left:after,.has-tooltip--right:after{top:50%;transform:translateY(-50%)}.has-tooltip--left:after{right:calc(100% + .5rem)}.has-tooltip--right:after{left:calc(100% + .5rem)}.has-tooltip--top:after{bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.has-tooltip:hover:after,.has-tooltip:focus-visible:after{opacity:1}.has-tooltip:disabled:hover:after{opacity:0}[data-sonner-toast][data-type=success] [data-icon]{color:#2e7d32}@media print{.no-print{display:none!important}}.library{box-sizing:border-box;background:var(--color-parchment);min-height:100vh;font-family:var(--font-serif);color:var(--color-ink);padding:5%}.library__templates{bottom:1.5rem;right:1.5rem}.library__legal{z-index:var(--z-controls);gap:1rem;display:flex;position:fixed;bottom:1.5rem;left:1.5rem}.library__legal-link{color:var(--color-muted);font-size:.875rem;text-decoration:none}.library__legal-link:hover{text-decoration:underline}.library__grid{grid-template-columns:repeat(auto-fill,11.5rem);justify-content:center;gap:7rem;display:grid}.library__binder{width:11.5rem;height:15.25rem;position:relative}.library__papers{z-index:1;transition:transform .15s;position:absolute;inset:0}.library__paper{background:var(--color-paper);width:10.75rem;height:14.5rem;transform:translate(var(--dx,0), var(--dy,0)) rotate(var(--rot,0deg));border-radius:.125rem;transition:box-shadow .15s;position:absolute;top:.375rem;left:.65rem;box-shadow:0 .25rem .5rem #00000040}.library__tabs{z-index:1;transition:transform .15s,filter .15s;position:absolute;top:.6rem;right:-.65rem}.library__tabs .tabs{transform-origin:100% 0;pointer-events:none;position:static;transform:scale(.33)}.library__cover{z-index:2;background:linear-gradient(160deg, var(--spine-light), var(--spine-dark));color:#f7efe1;cursor:pointer;border:none;border-radius:.25rem .125rem .125rem .25rem;flex-direction:column;align-items:center;width:11.5rem;height:15.25rem;padding:1.25rem 1rem;transition:transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 .75rem 1rem #00000073,inset .375rem 0 .5rem -.25rem #0006,inset 0 0 0 1px #ffffff1a}.library__binder:hover .library__cover,.library__cover:focus-visible,.library__binder:hover .library__papers,.library__binder:focus-within .library__papers,.library__binder:hover .library__tabs,.library__binder:focus-within .library__tabs{transform:translateY(-.6rem)}.library__binder:hover .library__paper,.library__binder:focus-within .library__paper{box-shadow:0 .9rem 1.1rem #00000029}.library__binder:hover .library__tabs,.library__binder:focus-within .library__tabs{filter:drop-shadow(0 .7rem .85rem #00000024)}.library__portrait{width:8.25rem;height:8.25rem;color:var(--spine-dark);background:#f3e7d3;border-radius:50%;justify-content:center;align-items:center;margin:auto 0;font-size:4.25rem;font-weight:700;display:flex;box-shadow:inset 0 0 0 1px #00000026}.library__cover-name{text-align:center;overflow-wrap:anywhere;word-break:break-word;-webkit-line-clamp:2;text-shadow:0 1px 2px #00000080;-webkit-box-orient:vertical;width:100%;height:2.88rem;font-size:1.2rem;line-height:1.2;display:-webkit-box;overflow:hidden}.library__binder-actions{z-index:5;opacity:0;pointer-events:none;flex-direction:column;gap:.5rem;transition:opacity .15s;display:flex;position:absolute;top:-.75rem;right:-.75rem}.library__binder:hover .library__binder-actions,.library__binder:focus-within .library__binder-actions{opacity:1;pointer-events:auto}.library__binder--ghost{opacity:.6;transition:opacity .15s}.library__binder--ghost:hover,.library__binder--ghost:focus-within{opacity:.7}.library__binder--ghost .library__cover{background:linear-gradient(160deg,#8c857d,#6c6660)}.library__binder--ghost .library__portrait{color:#6c6660}.library__binder--ghost .library__portrait svg{stroke-width:2.5px;width:4.75rem;height:4.75rem}.app-shell{margin:2.5rem 5%;position:relative}.page{z-index:var(--z-page);border:1px solid var(--sheet-border-color);margin-left:1.7rem;margin-right:1.7rem;position:relative;box-shadow:0 6px 22px #00000038}.page>*{margin-top:0}.page--bare{box-shadow:none;border:none}@media print{@page{margin:0}.app-shell{margin:0}.page{box-shadow:none;border:none;margin-left:0;margin-right:0}}.tabs{flex-direction:column;display:flex;position:absolute;top:0;right:0}.tabs__tab{--hue:0;background:var(--tab-color,hsl(var(--hue) 55% 82%));width:1.7rem;min-height:4.8rem;color:hsl(var(--hue) 45% 22%);cursor:pointer;touch-action:none;border:1px solid #00000038;border-left:none;border-radius:0 .4rem .4rem 0;margin-top:-.5rem;padding:0;transition:background .15s,transform .15s;position:relative;left:-.1rem}.tabs__tab:first-child{margin-top:0}.tabs__tab:hover{background:hsl(var(--hue) 60% 86%)}.tabs__tab--active{box-shadow:2px 2px 5px #00000026}@media print{.tabs__label{display:none}.tabs__tab--active{box-shadow:none}}.tabs__label{writing-mode:vertical-lr;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;padding:1.6rem .32rem;font-family:Mongolian Baiti,serif;font-size:.8rem;display:block;transform:rotate(180deg)}.modal__backdrop{z-index:var(--z-modal);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface-raised);border:1px solid var(--color-border);width:min(24rem,90vw);font-family:var(--font-serif);color:var(--color-text);border-radius:.375rem;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;box-shadow:0 10px 30px #0000004d}.modal__title{margin:0;font-size:1.375rem}.modal__body{flex-direction:column;gap:1rem;display:flex}.modal__prompt{margin:0;line-height:1.4}.modal__field{flex-direction:column;gap:.375rem;font-size:.9375rem;display:flex}.modal__field input[type=text],.modal__field select{font:inherit;border:1px solid var(--color-border);background:#fff;border-radius:.25rem;padding:.5rem}.modal__actions{justify-content:flex-end;gap:.75rem;display:flex}.modal__btn{font:inherit;border:1px solid var(--color-border);background:var(--color-button-face);cursor:pointer;border-radius:.25rem;padding:.5rem 1rem}.modal__btn:disabled{opacity:.5;cursor:not-allowed}.modal__btn--primary{background:var(--color-primary);color:#fff;border-color:#6f562a}.modal__btn--danger{color:#fff;background:#b23434;border-color:#8a2828}.modal__btn--danger-outline{color:#9e2e2e;border-color:#b23434}.icon-button{background:var(--color-surface-raised);color:#635336;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;transition:background .15s,box-shadow .15s,transform .15s;display:flex;position:relative;box-shadow:0 1px 3px #00000040,0 1px 2px #00000026}.icon-button:hover{background:#fff;transform:translateY(-1px);box-shadow:0 3px 8px #00000047,0 2px 4px #0000002e}.icon-button:disabled{color:#aaa192;cursor:default;box-shadow:0 1px 2px #0000001f}.icon-button:disabled:hover{background:var(--color-surface-raised);transform:none;box-shadow:0 1px 2px #0000001f}.icon-button--danger{color:#a63030}.icon-button--small{width:1.5rem;height:1.5rem;box-shadow:0 1px 2px #0003}.icon-button--large{width:3.25rem;height:3.25rem}.icon-button--small svg{width:.9375rem;height:.9375rem}.icon-button svg{width:1.25rem;height:1.25rem;display:block}.icon-button--large svg{width:1.5rem;height:1.5rem}.icon-button--flat,.icon-button--flat:hover{box-shadow:none;background:0 0;transform:none}.tab-controls{bottom:1.5rem;right:1.5rem}.tab-controls__library{top:1.5rem;left:1.5rem}.tab-controls__to-top{opacity:0;pointer-events:none;transition:transform .2s,opacity .2s;top:1.5rem;right:1.5rem;transform:scale(0)}.tab-controls__to-top--visible{opacity:1;pointer-events:auto;transform:scale(1)}.binder-view{transform-origin:top;width:fit-content;margin:0 auto;transition:transform .25s ease-in-out;position:relative}.binder-view--zooming{will-change:transform}@media print{.binder-view{transform:none!important}}.view-controls{bottom:1.5rem;left:1.5rem}.color-picker__presets{gap:.5rem;display:flex}.color-picker__preset{cursor:pointer;border:1px solid #00000038;border-radius:50%;width:2rem;height:2rem;padding:0}.color-picker__swatch{border:1px solid #00000038;border-radius:.5rem;height:3rem}@font-face{font-family:Mongolian Baiti;src:url(/fonts/MongolianBaiti.woff2)format("woff2");font-display:swap}@font-face{font-family:Times-Roman;src:url(/fonts/LiberationSerif.woff2)format("woff2");font-display:swap}@font-face{font-family:Times-Roman;font-weight:700;src:url(/fonts/LiberationSerif-Bold.woff2)format("woff2");font-display:swap}.traced-sheet-page{background:#fff;height:auto;margin:0 auto;display:block}.sheet-checkbox{box-sizing:border-box;appearance:none;cursor:pointer;background:0 0;border:none;border-radius:50%;outline:none;width:100%;height:100%;margin:0;padding:0;display:block;position:relative}.sheet-checkbox:hover{background:#aa3bff14}.sheet-checkbox-fill{fill:#231f20;pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sheet-field[type=number]{appearance:textfield}.sheet-field[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sheet-field[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sheet-field{box-sizing:border-box;color:#231f20;background:0 0;border:none;outline:none;width:100%;height:100%;padding:0 2px;font-family:Mongolian Baiti,serif;font-size:9px;line-height:1;display:block}.sheet-field:focus,.sheet-field:hover{background:#aa3bff14}.sheet-field--multiline{resize:none;white-space:pre-wrap;padding:1px 2px;line-height:1.15;overflow:hidden}.menu{z-index:var(--z-controls);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:.5rem;min-width:10rem;box-shadow:0 4px 12px #00000026}.menu__list{padding:.25rem}.menu__item{color:var(--color-ink);font-family:var(--font-serif);cursor:pointer;border:1px solid #0000;border-radius:.35rem;outline:none;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.9rem;display:flex}.menu__item[data-highlighted],.menu__item[data-selected=true]{background:#efe8d5}.menu__item.is-active{border-color:var(--color-border);background:#0000001a;font-weight:600}.menu__item--danger{color:var(--color-danger)}.image-panel{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.image-panel__toolbar{height:calc(1.5rem / var(--page-scale,1));flex:none;justify-content:flex-end;align-items:flex-start;display:flex}.image-panel__menu{transform:scale(calc(1 / var(--page-scale,1)));transform-origin:100% 0}.image-panel__content{flex:1;min-height:0}.image-panel__image{object-fit:cover;width:100%;height:100%;display:block}.image-panel--circle .image-panel__toolbar{z-index:1;height:auto;position:absolute;top:0;right:0}.image-panel--circle .image-panel__content{position:absolute;inset:0}.image-panel--circle .image-panel__image{border-radius:50%}.paper-page{aspect-ratio:210/297;box-sizing:border-box;font-family:var(--font-serif);color:var(--color-text);text-align:left;background:#fff;flex-direction:column;padding:4rem 4.5rem;font-size:1rem;line-height:1.6;display:flex}.paper-page h1{margin:0 0 1rem;font-size:1.75rem}.paper-page h2{color:var(--color-ink);margin-top:1.75rem}.paper-page p{margin:0 0 1rem}.paper-page ul{margin:0 0 1rem;padding-left:1.25rem}.paper-page a{color:var(--color-ink)}.loading-spinner{flex:1;justify-content:center;align-items:center;display:flex}.loading-spinner__icon{width:3rem;height:3rem;color:var(--color-parchment);animation:2.8s ease-in-out infinite loading-spinner-flip}@keyframes loading-spinner-flip{0%{transform:rotate(0)}35.714%{transform:rotate(0)}50%{transform:rotate(180deg)}85.714%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.storage-settings__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.storage-settings__option{border:1px solid var(--color-border);background:var(--color-paper);width:100%;font-family:var(--font-serif);color:var(--color-ink);text-align:left;cursor:pointer;border-radius:.35rem;flex-direction:column;gap:.2rem;padding:.6rem .75rem;display:flex}.storage-settings__option--selected{border-color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-ink)}.storage-settings__option:disabled{cursor:default;opacity:.55}.storage-settings__label{align-items:center;gap:.5rem;font-weight:700;display:flex}.storage-settings__badge{background:var(--color-border);color:var(--color-ink);text-transform:uppercase;letter-spacing:.03em;border-radius:.75rem;padding:.05rem .4rem;font-size:.7rem;font-weight:400}.storage-settings__description{color:var(--color-text);font-size:.85rem}.storage-settings__back{font-family:var(--font-serif);color:var(--color-text);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.3rem;padding:0;font-size:.9rem;display:inline-flex}.storage-settings__back:hover{color:var(--color-ink)}.storage-connect__hint{color:var(--color-text);font-size:.8rem}.storage-connect__toggle{cursor:pointer;align-items:flex-start;gap:.5rem;display:flex}.storage-connect__toggle input{margin-top:.2rem}.storage-connect__toggle span{font-family:var(--font-serif);color:var(--color-ink);flex-direction:column;gap:.15rem;display:flex}.storage-connect__toggle small{color:var(--color-text);font-size:.8rem}.storage-connect__error{color:var(--color-ink);margin:0;font-size:1rem;font-weight:700}.storage-controls--binder{top:4.75rem;left:1.5rem}.storage-controls--library{top:1.5rem;left:1.5rem}.template-list{flex-direction:column;gap:.5rem;max-height:50vh;display:flex;overflow-y:auto}.template-list__back{font-family:var(--font-serif);color:var(--color-text);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.3rem;padding:0;font-size:.9rem;display:inline-flex}.template-list__back:hover{color:var(--color-ink)}.template-list__empty{color:var(--color-text);margin:0;padding:.5rem 0;font-style:italic}.template-list__row{border:1px solid var(--row-border,var(--color-border));background:var(--row-color,var(--color-paper));border-radius:.375rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;transition:transform .15s;display:flex;position:relative}.template-list__grip{color:var(--color-text);cursor:grab;touch-action:none;flex-shrink:0;display:flex}.template-list__grip svg{width:1.25rem;height:1.25rem}.template-list__grip:active{cursor:grabbing}.template-list__text{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.template-list__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.template-list__meta{color:var(--color-text);font-size:.8rem}.template-list__actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.template-list__actions .icon-button{width:1.75rem;height:1.75rem;color:var(--color-ink)}.template-list__actions .icon-button:hover{color:#635336}.template-list__actions .icon-button--danger,.template-list__actions .icon-button--danger:hover{color:#a63030}.template-list__add{border:1px dashed var(--color-border);color:var(--color-ink);font-family:var(--font-serif);cursor:pointer;background:0 0;border-radius:.375rem;justify-content:center;align-items:center;gap:.375rem;padding:.5rem;font-size:.95rem;transition:background .15s;display:flex}.template-list__add:hover{background:#0000000d}.template-list__add svg{width:1.1rem;height:1.1rem}.template-editor__library{top:1.5rem;left:1.5rem}.info-page{background:var(--color-parchment);justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 1rem;display:flex}.info-page__home{top:1.5rem;left:1.5rem}.info-page__sheet{border:1px solid var(--color-border);border-radius:.5rem;max-width:100%;box-shadow:0 2px 12px #0000001f}
