@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500..650&family=Inter:wght@400..700&family=JetBrains+Mono:wght@400;500&display=swap";body{background-color:#f2efea}.page-title.paperloom-page-title{display:none}.paperloom-page{--paperloom-ink: #2a1a33;--paperloom-text: #4d4155;--paperloom-muted: #7b6e82;--paperloom-plum: #5b3471;--paperloom-plum-deep: #3f2151;--paperloom-violet: #9b78b5;--paperloom-lilac: #f3ecf7;--paperloom-paper: #fcf9f3;--paperloom-line: rgba(70, 38, 90, .12);--paperloom-line-strong: rgba(70, 38, 90, .2);--paperloom-shadow-sm: 0 1px 2px rgba(42, 22, 54, .06), 0 6px 16px -8px rgba(42, 22, 54, .14);--paperloom-shadow-md: 0 2px 6px rgba(42, 22, 54, .05), 0 22px 44px -22px rgba(42, 22, 54, .32);--paperloom-shadow-lg: 0 8px 20px -10px rgba(42, 22, 54, .14), 0 44px 90px -40px rgba(42, 22, 54, .45);--paperloom-serif: "Fraunces", Georgia, "Times New Roman", serif;--paperloom-sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--paperloom-mono: "JetBrains Mono", Menlo, Monaco, Consolas, monospace;--paperloom-ease: cubic-bezier(.22, 1, .36, 1);--paperloom-swing: cubic-bezier(.65, 0, .35, 1);container:paperloom / inline-size;max-width:1120px;margin:0 auto;color:var(--paperloom-text);font-family:var(--paperloom-sans);font-size:clamp(15px,.88rem,16.5px);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(.paperloom-page) h1,:where(.paperloom-page) h2,:where(.paperloom-page) h3{margin:0;padding:0;color:var(--paperloom-ink);font-family:var(--paperloom-serif);font-weight:600;line-height:1.12;letter-spacing:-.02em;text-align:left;border:0}:where(.paperloom-page) h2{font-size:clamp(1.75rem,4.4cqi,2.6rem)}:where(.paperloom-page) h3{font-family:var(--paperloom-sans);font-size:1em;line-height:1.35;letter-spacing:-.005em}:where(.paperloom-page) p,:where(.paperloom-page) ul{margin:0}:where(.paperloom-page) ul{padding:0;list-style:none}:where(.paperloom-page) strong{padding:0;color:var(--paperloom-ink);font-weight:600}:where(.paperloom-page) img{margin:0;border-radius:0}:where(.paperloom-page) a{color:var(--paperloom-plum);text-decoration:underline;text-decoration-color:#5b34714d;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease,text-decoration-color .2s ease}:where(.paperloom-page) a:hover{color:var(--paperloom-plum-deep);text-decoration-color:currentColor}:where(.paperloom-page) :focus-visible{outline:2px solid var(--paperloom-violet);outline-offset:3px}:where(.paperloom-page) code{padding:.12em .4em;color:var(--paperloom-plum);background:#5b347114;border-radius:5px;font-family:var(--paperloom-mono);font-size:.84em;overflow-wrap:anywhere}:where(.paperloom-page) kbd{display:inline-block;min-width:1.7em;padding:.05em .45em;color:var(--paperloom-ink);background:#fff;border:1px solid var(--paperloom-line-strong);border-bottom-width:2px;border-radius:6px;font-family:var(--paperloom-sans);font-size:.78em;font-weight:500;line-height:1.6;text-align:center;white-space:nowrap}.paperloom-icon{flex:none;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.paperloom-sprite{position:absolute;width:0;height:0;overflow:hidden}.paperloom-section{margin-top:clamp(4rem,10cqi,6.5rem);scroll-margin-top:2rem}.paperloom-section-heading{max-width:40rem;margin-bottom:2rem}.paperloom-kicker{display:flex;gap:.6rem;align-items:center;margin-bottom:.85rem;color:var(--paperloom-plum);font-size:.7rem;font-weight:600;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}.paperloom-kicker:before{content:"";width:1.4rem;height:1px;background:currentColor;opacity:.55}.paperloom-section-lead{margin-top:.9rem;color:var(--paperloom-muted);font-size:1.02em}.paperloom-fine-print{color:var(--paperloom-muted);font-size:.78em}.paperloom-actions{display:flex;flex-wrap:wrap;gap:.75rem}.paperloom-button{display:inline-flex;gap:.75rem;align-items:center;min-height:3.25rem;padding:.55rem 1.05rem;border:1px solid transparent;border-radius:14px;font-weight:600;line-height:1.25;text-decoration:none;transition:transform .25s var(--paperloom-ease),box-shadow .25s ease,background-color .25s ease,border-color .25s ease}.paperloom-button .paperloom-icon{width:1.15rem;height:1.15rem}.paperloom-button-text{display:grid;gap:.1rem;text-align:left}.paperloom-button-label{font-size:.84rem}.paperloom-button-meta{font-size:.68rem;font-weight:500;opacity:.72}.paperloom-button-primary{color:#fff;background:linear-gradient(180deg,#6b3f84,#4e2a63);box-shadow:inset 0 1px #ffffff2e,0 1px 2px #2a163640,0 12px 24px -12px #4e2a63b3}.paperloom-button-primary:hover,.paperloom-button-primary:focus-visible{color:#fff;transform:translateY(-2px);box-shadow:inset 0 1px #fff3,0 2px 4px #2a163640,0 18px 32px -14px #4e2a63bf}.paperloom-button-secondary{color:var(--paperloom-ink);background:#ffffffb8;border-color:var(--paperloom-line-strong);box-shadow:0 1px 2px #2a16360d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.paperloom-button-secondary:hover,.paperloom-button-secondary:focus-visible{color:var(--paperloom-ink);background:#fff;border-color:#5b347159;transform:translateY(-2px);box-shadow:var(--paperloom-shadow-sm)}.paperloom-button:active{transform:translateY(0)}.paperloom-breadcrumb{margin-bottom:1.1rem;font-size:.78rem}.paperloom-breadcrumb a{display:inline-flex;gap:.45rem;align-items:center;margin-left:-.7rem;padding:.35rem .8rem .35rem .7rem;color:var(--paperloom-muted);border-radius:999px;font-weight:500;text-decoration:none;transition:color .2s ease,background-color .2s ease}.paperloom-breadcrumb a:hover{color:var(--paperloom-plum);background:#ffffffb3}.paperloom-breadcrumb .paperloom-icon{transition:transform .25s var(--paperloom-ease)}.paperloom-breadcrumb a:hover .paperloom-icon{transform:translate(-3px)}.paperloom-hero{--paperloom-hero-pad: clamp(1.4rem, 5.5cqi, 3.5rem);position:relative;display:grid;grid-template-areas:"art" "copy" "facts";grid-template-columns:minmax(0,1fr);gap:1.25rem;padding:var(--paperloom-hero-pad) var(--paperloom-hero-pad) 0;overflow:hidden;isolation:isolate;background:radial-gradient(90% 70% at 0% 0%,rgba(255,255,255,.9),transparent 70%),linear-gradient(165deg,#fdfbf7,#f6f0e8);border:1px solid var(--paperloom-line);border-radius:28px;box-shadow:var(--paperloom-shadow-lg)}.paperloom-hero:before{content:"";position:absolute;z-index:-1;inset:-3% -3% auto auto;width:78%;height:70%;background:url(/public/img/projects/paperloom-ribbons.webp) right center / cover no-repeat;opacity:.45;-webkit-mask-image:radial-gradient(120% 100% at 100% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 100% at 100% 0%,#000 30%,transparent 75%);transform:translate3d(var(--paperloom-shift-x, 0px),var(--paperloom-shift-y, 0px),0);transition:transform .8s var(--paperloom-ease);pointer-events:none}.paperloom-hero-copy{grid-area:copy;position:relative;min-width:0}.paperloom-status{display:flex;gap:.55rem;align-items:center;width:fit-content;margin-bottom:1.1rem;padding:.3rem .8rem .3rem .65rem;color:var(--paperloom-plum);background:#ffffffb8;border:1px solid var(--paperloom-line);border-radius:999px;box-shadow:0 1px 2px #2a16360a;font-size:.72rem;font-weight:600;line-height:1.4}.paperloom-status-dot{position:relative;flex:none;width:7px;height:7px;background:#9a6fb8;border-radius:50%}.paperloom-status-dot:after{content:"";position:absolute;inset:-4px;background:#9a6fb8;border-radius:50%;opacity:0;animation:paperloom-pulse 2.4s ease-out infinite}.paperloom-status-version{padding-left:.6rem;color:var(--paperloom-muted);border-left:1px solid var(--paperloom-line-strong);font-weight:500}.paperloom-hero h1{margin-bottom:.55rem;font-size:clamp(2.7rem,9cqi,5.25rem);letter-spacing:-.025em;line-height:.98}.paperloom-tagline{margin-bottom:1rem;color:var(--paperloom-ink);font-size:clamp(1.1rem,2.4cqi,1.4rem);font-weight:500;letter-spacing:-.01em;line-height:1.35}.paperloom-tagline span{color:var(--paperloom-plum)}.paperloom-hero-description{max-width:31rem;margin-bottom:1.6rem;font-size:1.02em}.paperloom-verify{display:flex;gap:.5rem;align-items:center;margin-top:1rem;color:var(--paperloom-muted);font-size:.74rem}.paperloom-verify .paperloom-icon{width:1rem;height:1rem;color:var(--paperloom-violet)}.paperloom-hero-art{grid-area:art;position:relative;display:grid;justify-self:start;perspective:900px}.paperloom-hero-art:before{content:"";position:absolute;inset:12%;background:radial-gradient(circle,rgba(155,120,181,.4),transparent 68%);filter:blur(24px)}.paperloom-hero-logo{position:relative;width:5.5rem;height:auto;filter:drop-shadow(0 18px 22px rgba(55,30,68,.22));transform:rotateX(var(--paperloom-tilt-x, 0deg)) rotateY(var(--paperloom-tilt-y, 0deg));transition:transform .6s var(--paperloom-ease)}.paperloom-facts{grid-area:facts;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:.5rem calc(var(--paperloom-hero-pad) * -1) 0;padding:0 max(0px,calc(var(--paperloom-hero-pad) - 1.25rem));background:#fff9;border-top:1px solid var(--paperloom-line);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}.paperloom-facts li{display:grid;gap:.15rem;align-content:start;padding:1rem 1.25rem 1.1rem}.paperloom-facts li:nth-child(2n){border-left:1px solid var(--paperloom-line)}.paperloom-facts li:nth-child(n+3){border-top:1px solid var(--paperloom-line)}.paperloom-facts strong{font-family:var(--paperloom-serif);font-size:1.35rem;letter-spacing:-.02em;line-height:1.2}.paperloom-facts span{color:var(--paperloom-muted);font-size:.74rem;line-height:1.4}.paperloom-explorer-body{display:grid;gap:1.25rem;align-items:start}.paperloom-feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.paperloom-feature{position:relative;display:flex;gap:.7rem;align-items:center;width:100%;margin:0;padding:.6rem .75rem;color:inherit;background:#ffffff73;border:1px solid var(--paperloom-line);border-radius:14px;font:inherit;text-align:left;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;-webkit-tap-highlight-color:transparent}.paperloom-feature:hover{background:#fffc;border-color:var(--paperloom-line-strong)}.paperloom-feature[aria-pressed=true]{background:#fff;border-color:#5b347147;box-shadow:var(--paperloom-shadow-sm)}.paperloom-feature-icon{display:grid;flex:none;place-items:center;width:2.1rem;height:2.1rem;color:var(--paperloom-plum);background:var(--paperloom-lilac);border-radius:10px;transition:color .25s ease,background-color .25s ease}.paperloom-feature-icon .paperloom-icon{width:1.05rem;height:1.05rem}.paperloom-feature[aria-pressed=true] .paperloom-feature-icon{color:#fff;background:linear-gradient(160deg,#6b3f84,#4e2a63)}.paperloom-feature-text{display:grid;gap:.15rem;min-width:0}.paperloom-feature-title{color:var(--paperloom-ink);font-size:.86rem;font-weight:600;line-height:1.3}.paperloom-feature-desc{color:var(--paperloom-muted);font-size:.76rem;line-height:1.5}.paperloom-js .paperloom-feature-desc{position:absolute;width:1px;height:1px;overflow:hidden;white-space:nowrap;clip-path:inset(50%)}.paperloom-preview{min-width:0}.paperloom-preview-caption{display:none;margin-top:1rem;padding:0 .25rem;color:var(--paperloom-muted);font-size:.82rem;line-height:1.55}.paperloom-preview-caption strong{margin-right:.2rem}.paperloom-js .paperloom-preview-caption{display:block}.paperloom-stage{--w-bg: #fffdfa;--w-chrome: #f6f1ea;--w-line: rgba(60, 35, 75, .1);--w-text: #40364a;--w-heading: #231a2b;--w-muted: #8b8092;--w-soft: rgba(60, 35, 75, .05);--w-accent: #6c3f88;--w-accent-soft: rgba(108, 63, 136, .12);--w-code: #f7f2eb;--w-tk-key: #a24680;--w-tk-fn: #3f68b0;--w-tk-type: #24806d;--w-tk-str: #9c6224;--w-shadow: 0 26px 60px -24px rgba(30, 15, 40, .5), 0 4px 14px rgba(30, 15, 40, .1);container:paperloom-stage / inline-size;position:relative;padding-top:1.4rem}.paperloom-stage:before{content:"";position:absolute;inset:12% 4% -4%;background:radial-gradient(55% 60% at 25% 40%,rgba(155,120,181,.32),transparent 70%),radial-gradient(50% 55% at 80% 75%,rgba(214,186,140,.32),transparent 70%);filter:blur(28px)}.paperloom-ghost,.paperloom-window{font-family:var(--paperloom-sans);font-size:clamp(10.5px,2.2cqi,14px);line-height:1.6;text-align:left;user-select:none}.paperloom-ghost{position:absolute;top:0;right:7%;left:7%;height:6em;overflow:hidden;background:#f1ebe3;border:1px solid rgba(60,35,75,.12);border-radius:12px;box-shadow:var(--paperloom-shadow-md);opacity:0;transform:translateY(1.4rem) scale(.97);transition:opacity .45s ease,transform .6s var(--paperloom-ease)}.paperloom-preview[data-feature=tabs] .paperloom-ghost{opacity:1;transform:translateY(-1.1rem)}.paperloom-window{position:relative;display:flex;flex-direction:column;height:36em;overflow:hidden;color:var(--w-text);background:var(--w-bg);border:1px solid rgba(60,35,75,.14);border-radius:14px;box-shadow:var(--paperloom-shadow-lg);transition:background-color .5s ease,color .5s ease,border-color .5s ease}.paperloom-window-bar{display:flex;flex:none;gap:1em;align-items:flex-end;height:3.1em;padding:0 .9em;background:var(--w-chrome);border-bottom:1px solid var(--w-line);transition:background-color .5s ease,border-color .5s ease}.paperloom-lights{display:flex;flex:none;gap:.5em;align-self:center}.paperloom-lights i{width:.85em;height:.85em;background:#ff5f57;border-radius:50%;box-shadow:inset 0 0 0 .5px #00000024}.paperloom-lights i:nth-child(2){background:#febc2e}.paperloom-lights i:nth-child(3){background:#28c840}.paperloom-tabs{display:flex;gap:.3em;min-width:0}.paperloom-tab{position:relative;flex:none;width:10.4em;margin-bottom:-1px;padding:.5em .85em .6em;overflow:hidden;color:var(--w-muted);border-radius:.6em .6em 0 0;font-size:.92em;font-weight:500;line-height:1.4;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:color .25s ease,background-color .5s ease}.paperloom-tab:before{content:"";display:inline-block;width:.45em;height:.45em;margin-right:.55em;vertical-align:.12em;background:currentColor;border-radius:50%;opacity:.45}.paperloom-tab:hover{color:var(--w-text)}.paperloom-tab.is-active{color:var(--w-heading);background:var(--w-bg)}.paperloom-tab.is-active:before{background:var(--w-accent);opacity:1}.paperloom-window-body{position:relative;display:flex;flex:1;min-height:0}.paperloom-window-body:after{content:"";position:absolute;z-index:2;inset:0;background:#23162d29;opacity:0;transition:opacity .3s ease;pointer-events:none}.paperloom-preview[data-feature=search] .paperloom-window-body:after{opacity:1}.paperloom-activity{display:flex;flex:none;flex-direction:column;gap:.3em;align-items:center;width:3em;padding:.7em 0;background:var(--w-chrome);border-right:1px solid var(--w-line);transition:background-color .5s ease,border-color .5s ease}.paperloom-activity span{display:grid;place-items:center;width:2.1em;height:2.1em;color:var(--w-muted);border-radius:.55em;cursor:pointer;transition:color .25s ease,background-color .25s ease}.paperloom-activity span:hover{color:var(--w-text)}.paperloom-activity .paperloom-icon{width:1.2em;height:1.2em;stroke-width:1.8}.paperloom-activity-settings{margin-top:auto}.paperloom-preview[data-feature=outline] .paperloom-activity-outline,.paperloom-preview[data-feature=customization] .paperloom-activity-files{color:var(--w-accent);background:var(--w-accent-soft)}.paperloom-sidebar{flex:none;width:0;overflow:hidden;background:var(--w-chrome);border-right:1px solid transparent;transition:width .5s var(--paperloom-ease),border-color .5s ease,background-color .5s ease}.paperloom-preview[data-feature=outline] .paperloom-sidebar,.paperloom-preview[data-feature=customization] .paperloom-sidebar{width:11.5em;border-right-color:var(--w-line)}.paperloom-sidebar-view{display:none;gap:.1em;align-content:start;width:11.5em;padding:.9em .7em}.paperloom-preview[data-feature=outline] .paperloom-sidebar-outline,.paperloom-preview[data-feature=customization] .paperloom-sidebar-files{display:grid}.paperloom-sidebar-title{margin:0 .4em .45em;color:var(--w-muted);font-size:.75em;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.paperloom-outline-item,.paperloom-tree-item{display:flex;gap:.4em;align-items:center;padding:.28em .55em;overflow:hidden;color:var(--w-text);border-radius:.45em;font-size:.9em;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:color .2s ease,background-color .2s ease}.paperloom-outline-item:hover,.paperloom-tree-item:hover{background:var(--w-soft)}.paperloom-outline-item.is-level-2{padding-left:1.25em}.paperloom-outline-item.is-level-3{padding-left:2.05em;color:var(--w-muted)}.paperloom-outline-item.is-current,.paperloom-tree-item.is-current{color:var(--w-accent);background:var(--w-accent-soft);font-weight:500}.paperloom-tree-item.is-folder{color:var(--w-muted)}.paperloom-tree-item.is-nested{padding-left:1.8em}.paperloom-editor{position:relative;flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}.paperloom-doc{max-width:36em;margin:0 auto;padding:2.2em 2.6em 12em}.paperloom-doc p{margin:0 0 .9em}.paperloom-doc b{color:var(--w-heading);font-weight:650}.paperloom-doc code{padding:.1em .38em;white-space:nowrap;color:var(--w-accent);background:var(--w-accent-soft);border-radius:.35em;font-size:.86em}.paperloom-doc-h1{margin-bottom:.55em;color:var(--w-heading);font-size:1.75em;font-weight:600;letter-spacing:-.02em;line-height:1.2}.paperloom-doc-h2{margin:1.3em 0 .45em;color:var(--w-heading);font-size:1.19em;font-weight:600;line-height:1.3}.paperloom-doc-h3{margin:1em 0 .3em;color:var(--w-heading);font-size:1.06em;font-weight:600;line-height:1.3}.paperloom-doc-tasks{margin-bottom:1em}.paperloom-doc-tasks li{display:flex;gap:.65em;align-items:center;margin:.3em 0}.paperloom-check{position:relative;flex:none;width:1.05em;height:1.05em;border:1.5px solid var(--w-muted);border-radius:.3em}.paperloom-doc-tasks .is-done .paperloom-check{background:var(--w-accent);border-color:var(--w-accent)}.paperloom-doc-tasks .is-done .paperloom-check:after{content:"";position:absolute;top:.1em;left:.27em;width:.3em;height:.55em;border:solid var(--w-bg);border-width:0 .13em .13em 0;transform:rotate(45deg)}.paperloom-doc-tasks .is-done>span:last-child{color:var(--w-muted)}.paperloom-caret{display:inline-block;width:1.5px;height:1.15em;margin-left:1px;vertical-align:-.2em;background:var(--w-accent);opacity:0}.paperloom-preview[data-feature=editing] .paperloom-doc .paperloom-caret,.paperloom-preview[data-feature=search] .paperloom-palette .paperloom-caret{animation:paperloom-blink 1.05s linear infinite}.paperloom-doc blockquote{margin:1.1em 0;padding:.55em 1em;color:var(--w-muted);background:var(--w-soft);border-left:3px solid var(--w-accent);border-radius:0 .5em .5em 0;font-style:italic}.paperloom-doc-figure{height:7em;background:url(/public/img/projects/paperloom-ribbons.webp) center 74% / cover;border-radius:.7em;box-shadow:inset 0 0 0 1px var(--w-line)}.paperloom-doc-frontmatter{margin-bottom:1.3em;padding:.65em .95em;background:var(--w-code);border:1px solid var(--w-line);border-radius:.6em;font-family:var(--paperloom-mono);font-size:.82em;line-height:1.75}.paperloom-doc-frontmatter span{color:var(--w-accent)}.paperloom-wikilink{color:var(--w-accent);border-radius:.3em;font-weight:500;transition:background-color .3s ease,box-shadow .3s ease}.paperloom-wikilink i{font-style:normal;opacity:.5}.paperloom-preview[data-feature=outline] .paperloom-wikilink{background:var(--w-accent-soft);box-shadow:0 0 0 .2em var(--w-accent-soft)}.paperloom-doc-code{margin:0 0 1.3em;overflow:hidden;background:var(--w-code);border:1px solid var(--w-line);border-radius:.75em}.paperloom-doc-code-head{display:flex;gap:.8em;align-items:center;padding:.45em .85em;color:var(--w-muted);border-bottom:1px solid var(--w-line);font-size:.8em}.paperloom-doc-code-lang{margin-right:auto;font-family:var(--paperloom-mono)}.paperloom-doc-code-head .paperloom-icon{width:1.1em;height:1.1em}.paperloom-doc-code pre{max-height:8.1em;margin:0;padding:.85em 1.1em;overflow:hidden;color:var(--w-text);font-family:var(--paperloom-mono);font-size:.84em;line-height:1.6;white-space:pre}.paperloom-doc-code code{padding:0;color:inherit;background:none;font-size:1em;white-space:inherit}.paperloom-tk-key{color:var(--w-tk-key)}.paperloom-tk-fn{color:var(--w-tk-fn)}.paperloom-tk-type{color:var(--w-tk-type)}.paperloom-tk-str{color:var(--w-tk-str)}.paperloom-tk-comment{color:var(--w-muted);font-style:italic}.paperloom-page .paperloom-doc-table{width:100%;margin:0;overflow:hidden;border:1px solid var(--w-line);border-collapse:separate;border-spacing:0;border-radius:.7em;font-size:.92em;table-layout:fixed}.paperloom-page .paperloom-doc-table th,.paperloom-page .paperloom-doc-table td{position:relative;padding:.42em .85em;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:transparent;border:0;border-top:1px solid var(--w-line)}.paperloom-page .paperloom-doc-table th{color:var(--w-heading);background:var(--w-soft);border-top:0;font-weight:600}.paperloom-page .paperloom-doc-table th:first-child{width:62%;overflow:visible}.paperloom-page .paperloom-doc-table th:first-child:after{content:"";position:absolute;top:.3em;right:-2px;bottom:.3em;width:3px;background:var(--w-accent);border-radius:3px;opacity:0}.paperloom-window kbd{color:var(--w-text);background:var(--w-bg);border-color:var(--w-line);font-size:.82em}.paperloom-palette{position:absolute;z-index:3;top:1.4em;left:50%;width:min(25em,calc(100% - 2em));overflow:hidden;background:var(--w-bg);border:1px solid var(--w-line);border-radius:.9em;box-shadow:var(--w-shadow);opacity:0;visibility:hidden;transform:translate(-50%,-.6em) scale(.98);transition:opacity .25s ease,transform .35s var(--paperloom-ease),visibility 0s linear .35s}.paperloom-preview[data-feature=search] .paperloom-palette{opacity:1;visibility:visible;transform:translate(-50%);transition:opacity .25s ease,transform .35s var(--paperloom-ease),visibility 0s}.paperloom-palette-field{display:flex;align-items:center;padding:.8em 1em;color:var(--w-heading);border-bottom:1px solid var(--w-line);font-size:1.05em}.paperloom-palette-field>.paperloom-icon{width:1.05em;height:1.05em;margin-right:.6em;color:var(--w-muted)}.paperloom-palette-placeholder{color:var(--w-muted)}.paperloom-palette-query:not(:empty)~.paperloom-palette-placeholder{display:none}.paperloom-palette-field kbd{margin-left:auto}.paperloom-palette-label{display:block;padding:.7em 1.1em .3em;color:var(--w-muted);font-size:.72em;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.paperloom-palette-results{padding:0 .45em .45em}.paperloom-palette-results li{display:flex;gap:.6em;align-items:center;padding:.42em .65em;border-radius:.5em}.paperloom-palette-results li[hidden]{display:none}.paperloom-palette-results li.is-selected{background:var(--w-accent-soft)}.paperloom-palette-results .paperloom-icon{color:var(--w-muted)}.paperloom-palette-name{color:var(--w-heading);font-weight:500}.paperloom-palette-name mark{padding:0;color:var(--w-accent);background:none;font-weight:700}.paperloom-palette-path{margin-left:auto;overflow:hidden;color:var(--w-muted);font-size:.85em;white-space:nowrap;text-overflow:ellipsis}.paperloom-palette-foot{display:flex;flex-wrap:wrap;gap:.4em 1.1em;padding:.6em 1.1em;color:var(--w-muted);background:var(--w-chrome);border-top:1px solid var(--w-line);font-size:.78em}.paperloom-appearance{position:absolute;z-index:3;right:1em;bottom:1em;display:grid;width:14em;padding:.75em .9em .45em;background:var(--w-bg);border:1px solid var(--w-line);border-radius:.9em;box-shadow:var(--w-shadow);opacity:0;visibility:hidden;transform:translateY(.6em);transition:opacity .25s ease,transform .35s var(--paperloom-ease),visibility 0s linear .35s,background-color .5s ease,border-color .5s ease}.paperloom-preview[data-feature=customization] .paperloom-appearance{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease .15s,transform .35s var(--paperloom-ease) .15s,visibility 0s,background-color .5s ease,border-color .5s ease}.paperloom-appearance-title{margin-bottom:.35em;color:var(--w-heading);font-weight:600}.paperloom-appearance-row{display:flex;align-items:center;justify-content:space-between;padding:.42em 0;border-top:1px solid var(--w-line);font-size:.9em}.paperloom-appearance-value{color:var(--w-muted)}.paperloom-swatches{display:flex;gap:.45em}.paperloom-swatches i{width:1.2em;height:1.2em;border-radius:50%;box-shadow:inset 0 0 0 1px #0000002e;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease}.paperloom-swatches i:hover{transform:scale(1.12)}.paperloom-swatches [data-theme-option=paper]{background:linear-gradient(135deg,#fffdfa 50%,#6c3f88 50%)}.paperloom-swatches [data-theme-option=nordic-light]{background:linear-gradient(135deg,#fbfcfc 50%,#2f9a73 50%)}.paperloom-swatches [data-theme-option=nordic-dark]{background:linear-gradient(135deg,#22272b 50%,#5cc196 50%)}.paperloom-window[data-theme=paper] [data-theme-option=paper],.paperloom-window[data-theme=nordic-light] [data-theme-option=nordic-light],.paperloom-window[data-theme=nordic-dark] [data-theme-option=nordic-dark]{box-shadow:inset 0 0 0 1px #0000002e,0 0 0 2px var(--w-bg),0 0 0 3.5px var(--w-accent)}.paperloom-slider{position:relative;width:4.6em;height:.3em;background:linear-gradient(to right,var(--w-accent) 62%,var(--w-line) 62%);border-radius:1em}.paperloom-slider:after{content:"";position:absolute;top:50%;left:62%;width:.95em;height:.95em;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transform:translate(-50%,-50%)}.paperloom-toggle{position:relative;width:2em;height:1.15em;background:var(--w-accent);border-radius:1em}.paperloom-toggle:after{content:"";position:absolute;top:.15em;right:.15em;width:.85em;height:.85em;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040}.paperloom-window-status{display:flex;flex:none;gap:1.3em;align-items:center;justify-content:space-between;height:2.3em;padding:0 1em;color:var(--w-muted);background:var(--w-chrome);border-top:1px solid var(--w-line);font-size:.82em;transition:background-color .5s ease,border-color .5s ease}.paperloom-saved{display:inline-flex;gap:.35em;align-items:center;color:var(--w-accent)}.paperloom-saved .paperloom-icon{width:1.05em;height:1.05em;stroke-width:2.4}.paperloom-window[data-theme=nordic-light]{--w-bg: #fbfcfc;--w-chrome: #f0f3f4;--w-line: rgba(30, 50, 60, .1);--w-text: #3a454c;--w-heading: #1c2429;--w-muted: #7d888f;--w-soft: rgba(30, 50, 60, .045);--w-accent: #2f9a73;--w-accent-soft: rgba(47, 154, 115, .13);--w-code: #f2f5f6;--w-tk-key: #a9447a;--w-tk-fn: #3466b0;--w-tk-type: #1d8068;--w-tk-str: #966022;border-color:#1e323c29}.paperloom-window[data-theme=nordic-dark]{--w-bg: #22272b;--w-chrome: #1b1f23;--w-line: rgba(255, 255, 255, .08);--w-text: #cfd6db;--w-heading: #eef2f4;--w-muted: #8b959c;--w-soft: rgba(255, 255, 255, .045);--w-accent: #5cc196;--w-accent-soft: rgba(92, 193, 150, .16);--w-code: #1c2024;--w-tk-key: #e08bbf;--w-tk-fn: #84aff0;--w-tk-type: #70cfb2;--w-tk-str: #e1b27a;border-color:#0000008c}.paperloom-preview[data-feature=tabs] .paperloom-window .paperloom-tab:nth-child(2){animation:paperloom-tab-right 6s var(--paperloom-swing) infinite}.paperloom-preview[data-feature=tabs] .paperloom-window .paperloom-tab:nth-child(3){z-index:1;animation:paperloom-tab-left 6s var(--paperloom-swing) infinite}.paperloom-preview[data-feature=code] .paperloom-doc-code{animation:paperloom-widen 9s var(--paperloom-swing) infinite}.paperloom-preview[data-feature=code] .paperloom-doc-code pre{animation:paperloom-lengthen 9s var(--paperloom-swing) infinite}.paperloom-preview[data-feature=code] .paperloom-doc-code-widen{animation:paperloom-tint-widen 9s linear infinite}.paperloom-preview[data-feature=code] .paperloom-doc-code-lengthen{animation:paperloom-tint-lengthen 9s linear infinite}.paperloom-preview[data-feature=code] .paperloom-doc-table th:first-child{animation:paperloom-resize 9s var(--paperloom-swing) infinite}.paperloom-preview[data-feature=code] .paperloom-doc-table th:first-child:after{animation:paperloom-handle 9s linear infinite}.paperloom-pdf{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;align-items:center;padding:clamp(1.5rem,5cqi,3.25rem);overflow:hidden;background:radial-gradient(80% 120% at 100% 0%,rgba(255,255,255,.75),transparent 60%),linear-gradient(135deg,#efe4f4,#f8f3ee);border:1px solid rgba(91,52,113,.14);border-radius:28px}.paperloom-pdf-copy h2{margin-bottom:1rem}.paperloom-pdf-copy h2+p{max-width:34rem}.paperloom-pdf-options{display:grid;gap:.6rem;margin:1.5rem 0 1.1rem}.paperloom-pdf-options li{display:flex;gap:.85rem;align-items:center;padding:.75rem .9rem;background:#ffffffb8;border:1px solid var(--paperloom-line);border-radius:14px;font-size:.86em;line-height:1.45}.paperloom-pdf-options strong{display:block}.paperloom-pdf-options kbd{margin-left:auto}.paperloom-pdf-option-icon{display:grid;flex:none;place-items:center;width:2.2rem;height:2.2rem;color:var(--paperloom-plum);background:var(--paperloom-lilac);border-radius:10px}.paperloom-pdf-art{container:paperloom-pdf / inline-size;display:flex;align-items:center;justify-content:center;min-width:0;padding:1rem 0}.paperloom-pdf-art>*{font-size:min(1rem,3.5cqi)}.paperloom-pdf-source{display:grid;flex:none;gap:.5em;width:9em;padding:1em;background:#fffdfa;border:1px solid var(--paperloom-line);border-radius:.7em;box-shadow:var(--paperloom-shadow-md);transform:rotate(-4deg)}.paperloom-pdf-name{margin-bottom:.2em;color:var(--paperloom-ink);font-size:.72em;font-weight:600}.paperloom-pdf-md{overflow:hidden;color:var(--paperloom-plum);font-family:var(--paperloom-mono);font-size:.58em;line-height:1.3;white-space:nowrap}.paperloom-pdf-line{display:block;height:.32em;background:#46265a1f;border-radius:1em}.paperloom-pdf-line.is-short{width:62%}.paperloom-pdf-arrow{display:grid;flex:none;place-items:center;width:2.4em;height:2.4em;margin:0 1.4em;color:#fff;background:var(--paperloom-plum);border-radius:50%;box-shadow:0 8px 18px -8px #4e2a63cc}.paperloom-pdf-sheet{position:relative;flex:none;width:11em;height:19em;background:#fff;border-radius:.35em;box-shadow:var(--paperloom-shadow-lg);transform:rotate(2deg);transform-origin:top center;transition:height 1.4s var(--paperloom-ease) .25s,transform .4s var(--paperloom-ease)}.paperloom-pdf-art:hover .paperloom-pdf-sheet{transform:rotate(0) translateY(-4px)}.paperloom-pdf-page{display:grid;gap:.55em;align-content:start;height:100%;padding:1.4em 1.1em;overflow:hidden}.paperloom-pdf-badge{position:absolute;z-index:1;top:-1.1em;right:-1.1em;padding:.3em .9em;color:#fff;background:#b4465a;border-radius:.6em;box-shadow:0 6px 14px -6px #8c283cb3;font-size:.62em;font-weight:700;letter-spacing:.06em}.paperloom-pdf-heading{display:block;width:60%;height:.6em;margin-bottom:.2em;background:var(--paperloom-ink);border-radius:1em;opacity:.75}.paperloom-pdf-table{display:grid;grid-template-columns:1.4fr 1fr;gap:1px;margin:.25em 0;overflow:hidden;background:#46265a29;border:1px solid rgba(70,38,90,.16);border-radius:.25em}.paperloom-pdf-table i{height:.85em;background:#fff}.paperloom-pdf-table i:nth-child(-n+2){background:var(--paperloom-lilac)}.paperloom-pdf-code{display:grid;gap:.35em;margin:.25em 0;padding:.6em;background:#f7f2eb;border-radius:.3em}.paperloom-pdf-code i{height:.28em;background:#5b347147;border-radius:1em}.paperloom-pdf-code i:nth-child(2){width:75%;margin-left:12%}.paperloom-pdf-code i:nth-child(3){width:55%;margin-left:12%}.paperloom-pdf-code i:nth-child(4){width:25%}.paperloom-files{display:grid;gap:2.5rem;align-items:center}.paperloom-files-copy h2{margin-bottom:1rem}.paperloom-files-copy h2+p{max-width:34rem}.paperloom-checklist{display:grid;gap:.75rem;margin-top:1.5rem}.paperloom-checklist li{display:flex;gap:.75rem;align-items:flex-start;font-size:.95em;line-height:1.5}.paperloom-check-badge{display:grid;flex:none;place-items:center;width:1.35rem;height:1.35rem;margin-top:.05rem;color:#fff;background:var(--paperloom-plum);border-radius:50%}.paperloom-check-badge .paperloom-icon{width:.8rem;height:.8rem;stroke-width:3}.paperloom-open-ways{display:grid;gap:1rem;min-width:0}.paperloom-terminal{overflow:hidden;color:#ece6f2;background:linear-gradient(180deg,#2a2033,#1d1625);border:1px solid rgba(0,0,0,.25);border-radius:16px;box-shadow:var(--paperloom-shadow-lg)}.paperloom-terminal-bar{display:flex;gap:.9rem;align-items:center;min-height:2.6rem;padding:.5rem .75rem .5rem .9rem;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.07);font-size:.8rem}.paperloom-terminal-title{flex:1;color:#ece6f28c;font-size:.72rem;font-weight:500;text-align:center}.paperloom-copy{display:inline-flex;gap:.4rem;align-items:center;margin:0;padding:.3rem .65rem;color:#ece6f2d9;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:8px;font:inherit;font-size:.7rem;font-weight:500;cursor:pointer;transition:color .2s ease,background-color .2s ease}.paperloom-copy[hidden]{display:none}.paperloom-copy:hover{color:#fff;background:#ffffff26}.paperloom-copy.is-copied{color:#bdf0d2}.paperloom-page .paperloom-terminal-body{margin:0;padding:1.25rem 1.3rem 1.4rem;color:#f4eff8;background:none;font-family:var(--paperloom-mono);font-size:.82rem;line-height:1.7;white-space:pre-wrap}.paperloom-terminal-body code{padding:0;color:inherit;background:none;font-size:1em}.paperloom-terminal-prompt{color:#c9a8e0}.paperloom-terminal-sign{color:#8f7f9c}.paperloom-finder{display:flex;gap:.95rem;align-items:center;padding:.95rem 1.1rem;background:#ffffffb8;border:1px solid var(--paperloom-line);border-radius:16px;font-size:.86em;line-height:1.5}.paperloom-finder strong{display:block}.paperloom-finder-icon{display:grid;flex:none;place-items:end center;width:2.4rem;height:3rem;padding-bottom:.45rem;color:var(--paperloom-plum);background:linear-gradient(180deg,#fff,var(--paperloom-lilac));border:1px solid var(--paperloom-line-strong);border-radius:4px 12px 4px 4px;box-shadow:var(--paperloom-shadow-sm);font-size:.6rem;font-weight:700;letter-spacing:.04em}.paperloom-perf{position:relative;padding:clamp(1.75rem,5.5cqi,3.5rem);overflow:hidden;isolation:isolate;color:#f4edf9c7;background:radial-gradient(70% 90% at 100% 0%,rgba(155,120,181,.45),transparent 60%),radial-gradient(60% 80% at 0% 100%,rgba(120,70,140,.35),transparent 60%),linear-gradient(160deg,#3a2149,#241430);border-radius:28px;box-shadow:var(--paperloom-shadow-lg)}.paperloom-perf:before{content:"";position:absolute;z-index:-1;inset:0 0 0 50%;background:url(/public/img/projects/paperloom-ribbons.webp) center / cover;opacity:.16;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(to right,transparent,#000 70%);mask-image:linear-gradient(to right,transparent,#000 70%)}.paperloom-perf h2,.paperloom-perf h3,.paperloom-perf strong{color:#fff}.paperloom-perf .paperloom-kicker{color:#d6bdea}.paperloom-perf-head{display:grid;gap:1.5rem;align-items:end;margin-bottom:2.25rem}.paperloom-perf-head h2{margin-bottom:.9rem}.paperloom-perf-head h2+p{max-width:30rem}.paperloom-perf-size{display:flex;flex-wrap:wrap;gap:0 .4rem;align-items:baseline;color:#fff;font-family:var(--paperloom-serif);font-size:1.6rem;font-weight:600;line-height:1}.paperloom-perf-size span{color:transparent;background:linear-gradient(180deg,#fff 35%,#d9c2ea);-webkit-background-clip:text;background-clip:text;font-size:clamp(4.5rem,14cqi,7.5rem);letter-spacing:-.05em}.paperloom-perf-size small{flex-basis:100%;margin-top:.6rem;color:#f4edf9a6;font-family:var(--paperloom-sans);font-size:.78rem;font-weight:500}.paperloom-perf-grid{display:grid;gap:1rem}.paperloom-perf-grid li{padding:1.3rem 1.25rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:18px;transition:background-color .3s ease,border-color .3s ease,transform .3s var(--paperloom-ease)}.paperloom-perf-grid li:hover{background:#ffffff17;border-color:#ffffff2e;transform:translateY(-3px)}.paperloom-perf-grid h3{margin:.9rem 0 .35rem;font-size:.95rem}.paperloom-perf-grid p{color:#f4edf9b8;font-size:.86em;line-height:1.55}.paperloom-perf-icon{display:grid;place-items:center;width:2.3rem;height:2.3rem;color:#e6d3f3;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:11px}.paperloom-cta{display:grid;justify-items:center;margin-bottom:1rem;padding:clamp(2rem,6cqi,3.5rem) 1.5rem;text-align:center;background:radial-gradient(60% 80% at 50% 0%,rgba(155,120,181,.2),transparent 70%),var(--paperloom-paper);border:1px solid var(--paperloom-line);border-radius:28px}.paperloom-cta-logo{width:6.5rem;height:auto;margin-bottom:1.1rem;filter:drop-shadow(0 14px 18px rgba(55,30,68,.2))}.paperloom-cta h2{text-align:center}.paperloom-cta>p{margin:.6rem 0 1.6rem;color:var(--paperloom-muted)}.paperloom-cta .paperloom-actions{justify-content:center}.paperloom-reveal [data-reveal]{transition:opacity .8s var(--paperloom-ease),transform .8s var(--paperloom-ease)}.paperloom-reveal [data-reveal]:not(.is-revealed){opacity:0;transform:translateY(18px)}.paperloom-reveal .paperloom-pdf:not(.is-revealed) .paperloom-pdf-sheet{height:7em}@container paperloom (min-width: 560px){.paperloom-feature-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@container paperloom (min-width: 620px){.paperloom-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.paperloom-facts li:nth-child(n){border-top:0;border-left:1px solid var(--paperloom-line)}.paperloom-facts li:first-child{border-left:0}}@container paperloom (min-width: 700px){.paperloom-pdf{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.paperloom-files{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}.paperloom-perf-head{grid-template-columns:minmax(0,1fr) auto}.paperloom-perf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container paperloom (min-width: 760px){.paperloom-hero{grid-template-areas:"copy art" "facts facts";grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:1rem 2rem;align-items:center}.paperloom-hero:before{inset:-3% -3% -3% auto;width:62%;height:auto;opacity:.75;-webkit-mask-image:linear-gradient(to right,transparent,#000 55%);mask-image:linear-gradient(to right,transparent,#000 55%)}.paperloom-hero-art{justify-self:center}.paperloom-hero-logo{width:min(100%,23rem);animation:paperloom-float 8s ease-in-out infinite}.paperloom-facts{margin-top:1.5rem}}@container paperloom (min-width: 820px){.paperloom-explorer-body{grid-template-columns:minmax(15rem,.75fr) minmax(0,1.6fr);gap:2rem;align-items:center}.paperloom-feature-list{grid-template-columns:minmax(0,1fr);gap:.3rem}.paperloom-feature{align-items:flex-start;padding:.7rem .9rem;background:transparent;border-color:transparent}.paperloom-feature:hover{background:#ffffff8c;border-color:var(--paperloom-line)}.paperloom-feature-text{padding-top:.45rem}.paperloom-js .paperloom-feature-text{gap:0}.paperloom-js .paperloom-feature-desc{position:static;width:auto;height:auto;max-height:0;overflow:hidden;white-space:normal;clip-path:none;opacity:0;transition:max-height .45s var(--paperloom-ease),margin-top .45s var(--paperloom-ease),opacity .3s ease}.paperloom-js .paperloom-feature[aria-pressed=true] .paperloom-feature-desc{max-height:6rem;margin-top:.25rem;opacity:1}.paperloom-js .paperloom-preview-caption{display:none}}@media(max-width:57.99em){.paperloom-page{padding:0 1rem}}@keyframes paperloom-pulse{0%{opacity:.55;transform:scale(.6)}80%,to{opacity:0;transform:scale(1.8)}}@keyframes paperloom-float{0%,to{translate:0 0}50%{translate:0 -10px}}@keyframes paperloom-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes paperloom-tab-left{0%,12%,92%,to{background:transparent;box-shadow:none;transform:none}18%,86%{background:var(--w-bg);box-shadow:0 .5em 1.2em -.5em #1e0f2873;transform:translateY(-.2em)}36%,68%{background:var(--w-bg);box-shadow:0 .5em 1.2em -.5em #1e0f2873;transform:translate(-10.73em,-.2em)}42%,62%{background:transparent;box-shadow:none;transform:translate(-10.73em)}}@keyframes paperloom-tab-right{0%,18%,86%,to{transform:none}36%,68%{transform:translate(10.73em)}}@keyframes paperloom-widen{0%,8%,52%,to{margin-inline:0}16%,42%{margin-inline:-1.8em}}@keyframes paperloom-lengthen{0%,16%,52%,to{max-height:8.1em}24%,42%{max-height:16.5em}}@keyframes paperloom-tint-widen{0%,7%,50%,to{color:var(--w-muted)}9%,44%{color:var(--w-accent)}}@keyframes paperloom-tint-lengthen{0%,15%,50%,to{color:var(--w-muted)}17%,44%{color:var(--w-accent)}}@keyframes paperloom-resize{0%,60%,96%,to{width:62%}72%,84%{width:44%}}@keyframes paperloom-handle{0%,54%,to{opacity:0}58%,96%{opacity:1}}@media(prefers-reduced-motion:reduce){.paperloom-page *,.paperloom-page *:before,.paperloom-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}}@media print{.paperloom-reveal [data-reveal]{opacity:1!important;transform:none!important}}
