.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--paper: #ece8e1;--paper-2: #e3ded5;--ink: #1d1914;--ink-soft: #4a4238;--muted: #6b6155;--rule: #d5cec2;--wine: #7a2338;--wine-ink: #6b1e31;--pen: #4b2a7b;--leaf: #22321f;--leaf-2: #2f4a2a;--cream: #f5ecde;--card: #f5f2ed;--stage-personal: var(--wine);--stage-multimodal: var(--pen);--stage-research: #34602d;--stage-capstone: var(--ink-soft);--display: "Fraunces", "Iowan Old Style", Georgia, serif;--serif: "Newsreader", "Iowan Old Style", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--hand: "Caveat", "Bradley Hand", cursive;--measure: 40rem;--wide: 76rem;--gutter: clamp(1rem, 4vw, 2.5rem);--ease-out: cubic-bezier(.22, 1, .36, 1);color-scheme:light}:root[data-theme=dark]{--paper: #1a0a0f;--paper-2: #241016;--ink: #f1e6dc;--ink-soft: #d8c7bd;--muted: #a68f8a;--rule: #3a1c25;--wine: #e08aa0;--wine-ink: #eda3b5;--pen: #b49cec;--leaf: #1b2a19;--leaf-2: #2a4226;--card: #220e15;--stage-research: #93c487;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:clamp(1.08rem,.35vw + 1rem,1.22rem);line-height:1.65;font-optical-sizing:auto;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-wrap:break-word}.grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}[data-theme=dark] .grain{mix-blend-mode:screen;opacity:.035}::selection{background:color-mix(in srgb,var(--wine) 28%,transparent)}a{color:var(--wine-ink);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--wine);outline-offset:3px;border-radius:2px}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;letter-spacing:-.015em;margin:0 0 .6em;text-wrap:balance}h1{font-size:clamp(2.4rem,6vw,4.2rem);font-variation-settings:"opsz" 144}h2{font-size:clamp(1.7rem,3.5vw,2.5rem)}h3{font-size:1.4rem}p{margin:0 0 1em;text-wrap:pretty}.mono{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.hand{font-family:var(--hand);color:var(--wine);font-weight:600}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);margin:0 0 1.25rem;display:flex;align-items:center;gap:.75rem}.eyebrow:before{content:"";width:2rem;height:1px;background:currentColor}.skip-link{position:absolute;left:-999px;top:.5rem;z-index:200;background:var(--ink);color:var(--paper);padding:.5rem .9rem;border-radius:4px}.skip-link:focus{left:.5rem}.signature{display:block;aspect-ratio:476 / 108;width:100%;background:currentColor;-webkit-mask:url(/signature.png) left center / contain no-repeat;mask:url(/signature.png) left center / contain no-repeat}.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.9rem var(--gutter);background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);border-bottom:1px solid color-mix(in srgb,var(--rule) 60%,transparent)}.site-mark{color:var(--ink);width:9.5rem;flex-shrink:0;transition:color .3s}.site-mark:hover{color:var(--wine)}.site-header nav{margin-left:auto;display:flex;gap:clamp(.9rem,2.5vw,2rem);font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;overflow-x:auto;scrollbar-width:none}.site-header nav a{position:relative;color:var(--ink-soft);text-decoration:none;white-space:nowrap;padding:.35rem 0}.site-header nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--wine);border-radius:2px;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.site-header nav a:hover:after,.site-header nav a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.site-header nav a[aria-current=page]{color:var(--ink)}.header-tools{display:flex;align-items:center;gap:.15rem;flex-shrink:0}.search-link{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;color:var(--ink-soft);transition:color .3s}.search-link:hover,.search-link[aria-current=page]{color:var(--wine)}.theme-toggle{position:relative;isolation:isolate;display:grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;padding:0;border:0;border-radius:50%;background:none;color:var(--ink-soft);cursor:pointer;transition:color .3s}.theme-toggle:hover{color:var(--wine)}.theme-toggle svg{transition:transform .5s var(--ease-out)}[data-theme=dark] .theme-toggle svg{transform:rotate(180deg)}.theme-toggle:before{content:"";position:absolute;inset:-.7rem;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--wine) 30%,transparent),transparent);opacity:0;pointer-events:none}:root[data-lamp=light] .theme-toggle:before{animation:lamp-on .9s var(--ease-out)}:root[data-lamp=dark] .theme-toggle:before{animation:lamp-off .9s ease-in}@keyframes lamp-on{0%{opacity:0;scale:.3}35%{opacity:1;scale:1.1}to{opacity:0;scale:1.25}}@keyframes lamp-off{0%{opacity:1;scale:1.1}60%{opacity:.8;scale:.35}to{opacity:0;scale:.15}}:root[data-switching]::view-transition-old(root),:root[data-switching]::view-transition-new(root){animation-duration:.5s;animation-timing-function:var(--ease-out)}:root[data-switching] [data-astro-transition-scope]{view-transition-name:none}:root[data-switching] .theme-toggle{view-transition-name:theme-toggle}::view-transition-old(theme-toggle){display:none}::view-transition-new(theme-toggle){animation:none}@media(max-width:34rem){.site-header{flex-direction:column;align-items:flex-start;gap:.4rem;padding-block:.7rem .4rem}.site-mark{width:8rem}.site-header nav{width:100%;margin-left:0;flex-wrap:wrap;row-gap:.1rem}.header-tools{position:absolute;top:.45rem;right:var(--gutter)}}@media(max-width:24rem){.site-header nav{column-gap:.55rem;font-size:.7rem;letter-spacing:.03em}}main{padding:0 var(--gutter)}main.narrow{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding-top:clamp(2.5rem,6vw,4.5rem);padding-bottom:3rem}main.wide{max-width:calc(var(--wide) + 2 * var(--gutter));margin:0 auto}.page-head{margin-bottom:2.5rem}.page-head .lede{font-size:1.25rem;font-style:italic;color:var(--ink-soft);max-width:34rem}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--delay, 0s)}[data-reveal].is-visible{opacity:1;transform:none}@media(scripting:none){[data-reveal]{opacity:1;transform:none}}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.3rem;border-radius:999px;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);color:var(--ink);transition:background .3s,color .3s,transform .3s var(--ease-out)}.btn:hover{transform:translateY(-2px)}.btn.solid{background:var(--ink);color:var(--paper)}.btn.solid:hover{background:var(--wine);border-color:var(--wine)}.btn .arrow{transition:transform .3s var(--ease-out)}.btn:hover .arrow{transform:translate(4px)}.btn .mark{display:inline-block;font-size:1.15rem;line-height:1;color:var(--wine);transition:transform .5s var(--ease-out),color .3s}.btn:hover .mark{transform:rotate(90deg)}.btn.solid:hover .mark{color:var(--paper)}.essay-list{--title-size: clamp(1.35rem, 2.6vw, 1.9rem);list-style:none;padding:0;margin:0;border-top:1px solid var(--rule);counter-reset:essay}.essay-list li{counter-increment:essay;border-bottom:1px solid var(--rule)}.essay-list a{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;gap:.25rem 1.25rem;align-items:baseline;padding:1.6rem 0;color:inherit;text-decoration:none;overflow-wrap:anywhere}.essay-list a:before{content:counter(essay,decimal-leading-zero);font-family:var(--mono);font-size:.75rem;color:var(--muted);transition:color .3s}.essay-list a[data-number]{grid-template-columns:3.9rem minmax(0,1fr) auto}.essay-list a[data-number]:before{content:none}.essay-list .no{position:relative;font-size:.75rem;line-height:1;color:var(--muted);transition:color .3s;translate:0 calc(1.16rem - var(--title-size) * .72)}.essay-list .no .label{position:absolute;bottom:.76rem;left:0;font-size:.78em;line-height:1;white-space:nowrap}.essay-list a:hover .no{color:var(--wine)}.essay-list .title{font-family:var(--display);font-size:var(--title-size);line-height:1.15;letter-spacing:-.01em;background:linear-gradient(var(--wine),var(--wine)) left 100% / 0 2px no-repeat;transition:background-size .6s var(--ease-out),color .3s;justify-self:start;padding-bottom:.1em}.essay-list .desc{grid-column:2;color:var(--ink-soft);font-style:italic;margin:.35rem 0 0}.essay-list .meta{grid-column:2;grid-row:3;margin-top:.6rem;color:var(--muted)}.essay-list .meta .tag{color:var(--wine);text-transform:none;white-space:nowrap}.essay-list .nib{grid-column:3;grid-row:1;font-family:var(--display);font-size:1.5rem;color:var(--wine);opacity:0;transform:translate(-10px);transition:opacity .35s,transform .45s var(--ease-out)}.essay-list a:hover .title,.essay-list a:focus-visible .title{background-size:100% 2px;color:var(--wine-ink)}.essay-list a:hover:before{color:var(--wine)}.essay-list a:hover .nib{opacity:1;transform:none}@media(max-width:34rem){.essay-list a{grid-template-columns:2rem minmax(0,1fr)}.essay-list .nib{display:none}.essay-list a[data-number]{grid-template-columns:minmax(0,1fr)}.essay-list a[data-number] .desc,.essay-list a[data-number] .meta{grid-column:1;grid-row:auto}.essay-list .no{translate:none}.essay-list .no .label{position:static;margin-right:.5em}}.badge{display:inline-block;font-family:var(--hand);font-size:1.15rem;line-height:1;color:var(--wine);transform:rotate(-3deg);margin-left:.6rem;white-space:nowrap;vertical-align:middle}.badge.draft{color:var(--muted)}.essay-sort{margin:-.75rem 0 1.25rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1.25rem}.project-card{position:relative;display:flex;flex-direction:column;min-height:15rem;padding:1.6rem;border-radius:1.1rem;background:var(--card);border:1px solid var(--rule);color:inherit;text-decoration:none;overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .3s}.project-card:before{content:"";position:absolute;inset:3.6rem 0 auto;height:1px;background:color-mix(in srgb,var(--wine) 35%,transparent)}.project-card:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 22px 40px -24px color-mix(in srgb,var(--ink) 45%,transparent);border-color:color-mix(in srgb,var(--wine) 40%,var(--rule))}.project-card .kind{color:var(--wine);display:flex;justify-content:space-between;gap:1rem}.project-card .kind span:last-child{color:var(--muted)}.project-card h3{margin:1.6rem 0 .5rem;font-size:1.55rem}.project-card p{color:var(--ink-soft);margin:0;font-size:1.02rem}.project-card .go{margin-top:auto;padding-top:1.25rem;color:var(--ink);transition:color .3s}.project-card:hover .go{color:var(--wine)}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:var(--wine);transform:scaleX(0);transform-origin:left;border-radius:0 2px 2px 0}.article-head{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--rule)}.article-head .meta,.page-head .meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:.3rem 1.2rem}.process-tag{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin-top:.6rem;color:var(--muted)}.process-tag a{color:var(--wine)}.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:.8rem 0 0;padding:0}.tags a{display:inline-block;padding:.15rem .65rem;border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);text-decoration:none;text-transform:none;transition:border-color .3s,color .3s}.tags a:hover,.tags a[aria-current=page]{border-color:var(--wine);color:var(--wine)}.tags a span{color:var(--muted)}.tag-filter{margin:-1rem 0 2rem}.article-head .lede{font-size:1.3rem;font-style:italic;color:var(--ink-soft);margin-top:.5rem}.margin-note{font-family:var(--hand);font-size:1.45rem;line-height:1.15;color:var(--wine);transform:rotate(-2deg);margin:0 0 1.25rem;display:inline-block}.prose>*+*{margin-top:0}.prose h2{font-size:1.7rem;margin:2.4rem 0 .8rem}.prose h3{margin:2rem 0 .6rem}.prose:not(:has(>:is(.sidequest,.stand-in):first-child))>p:first-of-type:first-letter,.prose>:is(.sidequest,.stand-in):first-child>p:first-of-type:first-letter{float:left;font-family:var(--display);font-size:4.3em;line-height:.85;padding:.06em .1em 0 0;color:var(--wine);font-variation-settings:"opsz" 144}.prose blockquote{margin:2rem 0;padding:0 0 0 1.4rem;border-left:3px solid var(--wine);font-family:var(--display);font-size:1.35rem;font-style:italic;line-height:1.4;color:var(--ink-soft)}.prose hr{border:0;text-align:center;margin:2.5rem 0}.prose hr:after{content:"⁂";color:var(--wine);font-size:1.3rem}.prose img{border-radius:.6rem;border:1px solid var(--rule);margin:2rem 0}.prose code{font-family:var(--mono);font-size:.85em;background:var(--paper-2);padding:.1em .35em;border-radius:4px}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.35rem}.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0 2rem;font-size:1rem;line-height:1.4}.prose th,.prose td{padding:.55rem 1rem .55rem 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.prose thead th{font-family:var(--mono);font-size:.72rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--wine)}.ai-note{margin:3rem 0 0;padding:1.3rem 1.4rem;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--wine);border-radius:.6rem;font-size:1rem;line-height:1.55}.ai-note .mono{display:block;color:var(--wine);margin-bottom:.5rem}.ai-note p{margin:0}.article-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.article-nav a{text-decoration:none;color:inherit}.article-nav a:last-child:not(:first-child),.article-nav .next{text-align:right;grid-column:2}.article-nav .mono{display:block;color:var(--muted);margin-bottom:.3rem}.article-nav .t{font-family:var(--display);font-size:1.15rem;line-height:1.25}.article-nav a:hover .t{color:var(--wine-ink)}[data-stage=personal]{--stage: var(--stage-personal)}[data-stage=multimodal]{--stage: var(--stage-multimodal)}[data-stage=research]{--stage: var(--stage-research)}[data-stage=capstone]{--stage: var(--stage-capstone)}.stage-chip{display:inline-flex;align-items:baseline;gap:.45rem;padding:.2rem .7rem .2rem .25rem;border:1px solid color-mix(in srgb,var(--stage) 45%,var(--rule));border-radius:999px;background:color-mix(in srgb,var(--stage) 7%,transparent);color:var(--ink);font-family:var(--serif);font-size:.95rem;line-height:1.35;letter-spacing:0;text-transform:none;text-decoration:none}.stage-chip .n{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;border-radius:50%;background:var(--stage);color:var(--paper);font-family:var(--mono);font-size:.68rem;align-self:center}a.stage-chip{transition:border-color .3s,background .3s}a.stage-chip:hover{border-color:var(--stage);background:color-mix(in srgb,var(--stage) 14%,transparent)}.stage-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .35rem;list-style:none;margin:.8rem 0 0;padding:0}ol.stage-chain>li{display:flex;align-items:center;min-width:0}ol.stage-chain>li+li:before{content:"→";flex-shrink:0;margin-right:.35rem;color:var(--muted)}.teaching-section{margin-top:3.5rem}.teaching-section>h2{font-size:1.9rem}.arc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:1rem;list-style:none;margin:0 0 1.25rem;padding:0}.arc li{position:relative;padding:1rem 1.1rem 4.4rem;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--stage);border-radius:.6rem}.arc p{margin:.7rem 0 0;font-size:1rem;line-height:1.5;color:var(--ink-soft)}.arc-note{color:var(--ink-soft)}.talk-row{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:1.2rem;margin:1.2rem 0 1rem;padding:0}.talk-row a{display:flex;flex-direction:column;gap:.6rem;color:inherit;text-decoration:none}.talk-row-title{font-family:var(--display);font-size:1.05rem;line-height:1.25}.talk-row a:hover .talk-row-title{color:var(--wine-ink)}.talk-row-dates{display:flex;flex-direction:column;gap:.15rem;margin-top:-.3rem;font-size:.66rem;letter-spacing:.04em;color:var(--muted)}.essay-sort.talk-sort{margin:1.2rem 0 0}.essay-sort.talks-sort{margin:0 0 2rem}.prose .talk-row.assignment-talks{grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));padding:0}.prose .assignment-talks li+li{margin-top:0}.fold{margin-top:1.5rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);scroll-margin-top:5rem}.fold+.fold{margin-top:0;border-top:0}.fold>summary{display:flex;align-items:baseline;gap:.8rem;padding:.95rem 0;cursor:pointer;list-style:none;font-family:var(--display);font-size:1.3rem}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"+";font-family:var(--mono);font-size:1rem;color:var(--wine);width:1ch;transition:transform .3s var(--ease-out)}.fold[open]>summary:before{content:"−"}.fold-count{margin-left:auto;font-size:.68rem;letter-spacing:.06em;color:var(--muted)}.fold>:not(summary){padding-bottom:1.2rem}.sequence{list-style:none;margin:0 0 2.5rem;padding:0}.sequence li{position:relative;padding:0 0 1.75rem 1.5rem;border-left:2px solid color-mix(in srgb,var(--stage) 55%,transparent)}.sequence li:last-child{padding-bottom:.25rem}.sequence li:before{content:"";position:absolute;left:-7px;top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--stage);box-shadow:0 0 0 4px var(--paper)}.sequence h3{margin:.6rem 0 .35rem}.sequence p{margin:0;color:var(--ink-soft)}.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem 1.5rem;margin:0 0 2.5rem;padding:1.25rem 1.4rem;background:var(--card);border:1px solid var(--rule);border-radius:.6rem}.spec dt{color:var(--wine);margin-bottom:.2rem}.spec dd{margin:0;font-size:1rem;line-height:1.45}.teaching-lists{margin-top:1rem}.prose.teaching-lists ul{font-size:1rem}.borrow{margin:3rem 0 0;padding:1.4rem 1.5rem 1.5rem;border:1px dashed color-mix(in srgb,var(--wine) 50%,var(--rule));border-radius:.8rem}.borrow .mono{display:block;color:var(--wine);margin-bottom:.5rem}.borrow p:last-child{margin:0}.borrow-actions{display:flex;flex-wrap:wrap;gap:.6rem}.assignment-filter{display:grid;gap:.9rem;margin-bottom:2rem}.assignment-filter input{width:100%;padding:.75rem 1rem;border:1px solid var(--rule);border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-size:1rem}.assignment-filter input:focus-visible{border-color:var(--wine)}.assignment-filter .tags{margin:0}.tags button{padding:.15rem .65rem;border:1px solid var(--rule);border-radius:999px;background:none;color:var(--ink-soft);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:border-color .3s,color .3s}.tags button:hover,.tags button[aria-pressed=true]{border-color:var(--wine);color:var(--wine)}.essay-list .meta .stage-chip{margin-right:.5rem;font-size:.85rem}.essay-list .meta .length{text-transform:none;letter-spacing:.02em}.essay-list li[hidden]{display:none}.filter-empty{font-size:1.6rem;margin-top:1.5rem}.site-footer{max-width:calc(var(--wide) + 2 * var(--gutter));margin:5rem auto 0;padding:3rem var(--gutter) 2.5rem;border-top:1px solid var(--rule)}.footer-sign{width:min(100%,34rem);color:var(--wine);margin-bottom:2.5rem}.footer-sign .signature{clip-path:inset(-10% 100% -10% 0);transition:clip-path 2.2s cubic-bezier(.65,0,.35,1) .2s}.site-footer.is-visible .footer-sign .signature{clip-path:inset(-10% 0 -10% 0)}.footer-cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem 3rem}.footer-note{max-width:28rem;color:var(--ink-soft)}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;align-content:flex-start}.footer-links a{color:var(--ink);text-decoration:none}.footer-links a:hover{color:var(--wine)}.footer-fine{margin:2.5rem 0 0;color:var(--muted);text-transform:none;letter-spacing:.02em}.footer-fine a{color:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}}.photo-wash{position:relative}.photo-wash:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,color-mix(in srgb,var(--paper) 55%,transparent)),linear-gradient(160deg,#781e321a,#460c1c59);mix-blend-mode:multiply}[data-theme=dark] .photo-wash:after{background:linear-gradient(180deg,transparent 50%,color-mix(in srgb,var(--paper) 70%,transparent)),linear-gradient(160deg,#6e192d4d,#3208148c)}[data-theme=dark] .photo-wash img{filter:saturate(.8)}.link-hints{position:fixed;inset:0;z-index:2147483000;pointer-events:none}.link-hint{position:absolute;padding:.05rem .28rem .08rem;border-radius:.25rem;background:var(--wine);color:var(--paper);font-size:.68rem;font-weight:500;line-height:1.25;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 .15rem .4rem -.15rem #00000080;white-space:nowrap}.link-hint b{font-weight:500;opacity:.45}.help-tab{position:fixed;right:max(.9rem,env(safe-area-inset-right));bottom:max(.9rem,env(safe-area-inset-bottom));z-index:60;display:grid;place-items:center;width:1.9rem;height:1.9rem;padding:0;border:1px solid var(--rule);border-radius:50%;background:var(--card);color:var(--wine);font-family:var(--hand);font-size:1.2rem;font-weight:600;line-height:1;cursor:pointer;box-shadow:0 8px 16px -12px color-mix(in srgb,var(--ink) 60%,transparent);opacity:0;translate:0 .4rem;pointer-events:none;transition:opacity .6s var(--ease-out),translate .6s var(--ease-out),border-color .2s}.help-tab.is-shown,.help-tab:focus-visible{opacity:.85;translate:0 0;pointer-events:auto}.help-tab:hover{opacity:1;border-color:var(--wine)}:root:has(.deck.is-presenting,.pj.is-lit,:fullscreen) :is(.help-tab,.dock){display:none}@media print{.help-tab,.help-card,.dock,.palette{display:none!important}}.help-card{position:fixed;inset:auto max(.9rem,env(safe-area-inset-right)) calc(max(.9rem,env(safe-area-inset-bottom)) + 2.6rem) auto;width:min(21rem,calc(100vw - 1.8rem));margin:0;padding:1rem 1.1rem .9rem;border:1px solid var(--rule);border-radius:.5rem;background:var(--card);color:var(--ink);box-shadow:0 24px 40px -28px color-mix(in srgb,var(--ink) 70%,transparent)}.help-card .help-title{margin:0 0 .6rem;font-family:var(--hand);font-size:1.5rem;font-weight:600;color:var(--wine);line-height:1}.help-card dl{display:grid;gap:.5rem;margin:0}.help-card dl>div{display:grid;grid-template-columns:4.6rem minmax(0,1fr);gap:.6rem;align-items:baseline}.help-card dl>div[hidden]{display:none}.help-card dt{white-space:nowrap}.help-card dd{margin:0;font-size:.92rem;line-height:1.4;color:var(--ink-soft)}:is(.help-card,.palette) kbd{display:inline-block;min-width:1.4em;padding:0 .3em;border:1px solid var(--rule);border-bottom-width:2px;border-radius:4px;background:var(--paper);font-family:var(--mono);font-size:.72rem;text-align:center;color:var(--ink-soft)}.help-card .help-more{margin:.8rem 0 0;padding-top:.6rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase}.palette{width:min(38rem,calc(100vw - 2rem));height:min(44rem,calc(var(--room, 100dvh) - 5rem));margin:calc(var(--room-top, 0px) + max(8vh,1rem)) auto auto;padding:0;border:1px solid var(--rule);border-radius:.6rem;background:var(--card);color:var(--ink);box-shadow:0 40px 70px -40px color-mix(in srgb,var(--ink) 75%,transparent);overflow:hidden}.palette[open]{display:flex;flex-direction:column}.palette[open]{animation:palette-in .22s var(--ease-out) both}.palette[open]::backdrop{animation:palette-dim .22s ease-out both}.palette.is-closing{animation:palette-out .16s ease-in both}.palette.is-closing::backdrop{animation:palette-dim .16s ease-in reverse both}@keyframes palette-in{0%{opacity:0;translate:0 .9rem;scale:.97}}@keyframes palette-out{to{opacity:0;translate:0 .5rem;scale:.985}}@keyframes palette-dim{0%{opacity:0}}@media(prefers-reduced-motion:reduce){@keyframes palette-in{0%{opacity:0}}@keyframes palette-out{to{opacity:0}}}.palette::backdrop{background:color-mix(in srgb,var(--paper) 55%,color-mix(in srgb,var(--ink) 30%,transparent));backdrop-filter:blur(6px) saturate(.8);-webkit-backdrop-filter:blur(6px) saturate(.8)}.palette-head{display:grid;gap:.2rem;padding:.9rem 1.1rem .6rem;border-bottom:1px solid var(--rule)}.palette-mode{color:var(--wine);font-size:.62rem}.palette-input{width:100%;padding:.2rem 0;border:0;background:none;color:var(--ink);font-family:var(--display);font-size:1.5rem;outline:none}@media(max-width:34rem){.palette{width:calc(100vw - 1rem);height:min(44rem,calc(var(--room, 100dvh) - 1rem));margin:calc(var(--room-top, 0px) + .5rem) auto auto;border-radius:.5rem}.palette-head{padding:.55rem .8rem .4rem}.palette-input{font-size:1.25rem}.palette-list{padding:.2rem 0}.palette-list .group{padding:.45rem .8rem .1rem}.palette-list [role=option]{grid-template-columns:3.2rem minmax(0,1fr);gap:.05rem .6rem;padding:.32rem .8rem}.palette-list .hint{display:none}.palette-list .thumb,.palette-list .no-thumb{width:3.2rem}.palette-list .label{font-size:.98rem}.palette-list .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}}.palette-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr)}.palette-preview{display:none}@media(min-width:56rem){.palette{width:min(66rem,calc(100vw - 2rem))}.palette-body{grid-template-columns:minmax(0,1fr) 25rem}.palette-preview{display:grid;align-content:start;gap:.6rem;padding:1rem 1.1rem;border-left:1px solid var(--rule);overflow-y:auto}.palette-preview img{width:100%;height:auto;aspect-ratio:1200 / 630;border:1px solid var(--rule);border-radius:.35rem;background:var(--paper);box-shadow:0 14px 24px -20px color-mix(in srgb,var(--ink) 70%,transparent)}.palette-preview .p-title{font-family:var(--display);font-size:1.15rem;line-height:1.25}.palette-preview .p-where{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--wine)}.palette-preview .p-text{margin:0;font-size:.9rem;line-height:1.45;color:var(--ink-soft)}.palette-preview .p-label{display:block;margin-bottom:.2rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.palette-preview .p-facts{display:grid;gap:.15rem;margin:0;font-size:.82rem}.palette-preview .p-facts div{display:grid;grid-template-columns:5.2rem minmax(0,1fr);gap:.5rem}.palette-preview .p-facts dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:.15rem}.palette-preview .p-facts dd{margin:0;color:var(--ink-soft)}.palette-preview .p-serp{display:grid;gap:.15rem;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:.35rem;background:var(--paper)}.palette-preview .p-crumb{font-size:.72rem;color:var(--muted);overflow-wrap:anywhere}.palette-preview .p-serp-title{font-family:var(--display);font-size:.98rem;line-height:1.25;color:var(--wine)}.palette-preview .p-serp-text{font-size:.82rem;line-height:1.4;color:var(--ink-soft)}.palette-preview .p-words{display:grid;gap:.45rem}.palette-preview .p-place{font-family:var(--display);color:var(--ink)}.palette-preview mark{background:color-mix(in srgb,var(--wine) 18%,transparent);color:inherit;border-radius:2px}}:root.palette-open{overflow:hidden;overscroll-behavior:none}.palette,.palette-preview{overscroll-behavior:contain}:root.palette-open,.palette,.palette::backdrop,.palette-list,.palette-preview{touch-action:none}.palette-list{-webkit-overflow-scrolling:touch;min-height:0;margin:0;padding:.4rem 0;list-style:none;overflow-y:auto;overscroll-behavior:contain}.palette-list .group{padding:.6rem 1.1rem .2rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.palette-list [role=option]{display:grid;grid-template-columns:4.4rem minmax(0,1fr) auto;gap:.15rem 1rem;align-items:baseline;padding:.45rem 1.1rem;cursor:pointer;border-left:3px solid transparent}.palette-list [role=option][aria-selected=true]{background:color-mix(in srgb,var(--wine) 8%,transparent);border-left-color:var(--wine)}.palette-list .label{font-family:var(--serif);font-size:1.02rem;line-height:1.3}.palette-list .hint{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.palette-list .thumb{grid-row:span 2;align-self:center;width:4.4rem;height:auto;aspect-ratio:1200 / 630;border:1px solid var(--rule);border-radius:3px;background:var(--paper);object-fit:cover}.palette-list .no-thumb{grid-row:span 2;width:4.4rem}.palette-list .sub{grid-column:2 / -1;font-size:.86rem;color:var(--muted);line-height:1.35}.palette-list mark{background:color-mix(in srgb,var(--wine) 18%,transparent);color:inherit;border-radius:2px}.palette-foot{margin:0;padding:.55rem 1.1rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.6rem}@media(hover:none){.palette-foot,.palette-list .keys{display:none}}.dock{position:fixed;left:0;right:0;bottom:max(.8rem,env(safe-area-inset-bottom));z-index:55;width:max-content;margin-inline:auto;display:flex;align-items:center;gap:.6rem;max-width:calc(100vw - 6rem);padding:.4rem .5rem .4rem .9rem;border:1px solid var(--rule);border-radius:.6rem;background:var(--card);box-shadow:0 18px 34px -24px color-mix(in srgb,var(--ink) 70%,transparent)}.dock[hidden]{display:none}:root.has-dock body{padding-bottom:4.5rem}.dock-title{font-family:var(--hand);font-size:1.3rem;font-weight:600;color:var(--wine);line-height:1}.dock-list{flex:1 1 auto;min-width:0;display:flex;gap:.3rem;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.dock-list li{display:flex;align-items:center;flex-shrink:0}.dock-list a{user-select:none;-webkit-user-select:none;padding:.3rem .6rem;border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.dock-list a:hover{border-color:var(--wine);color:var(--wine)}.dock-list a[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.dock-list .n{opacity:.6;margin-right:.3rem}.dock-list a.present{margin-left:.15rem;padding-inline:.45rem;color:var(--wine)}.dock.is-editing{border-color:var(--wine);flex-wrap:wrap;row-gap:.4rem}.dock.is-editing .dock-list{order:3;flex-basis:100%;flex-wrap:wrap;row-gap:.3rem;overflow:visible}.dock.is-editing .dock-tools{margin-left:auto}.dock-list li.is-editing{gap:.1rem;touch-action:none}.dock-list li.is-dragging{position:relative;z-index:2;cursor:grabbing}.dock-list li.is-dragging a{background:var(--card);border-style:solid;border-color:var(--wine);box-shadow:0 .4rem 1rem -.4rem #00000059}html.is-dragging-pin,html.is-dragging-pin *{cursor:grabbing!important;user-select:none}.dock-list li.is-editing a{border-style:dashed}.dock-list .pin-tool{width:1.6rem;height:1.6rem;padding:0;border:0;border-radius:50%;background:none;color:var(--ink-soft);font-family:var(--mono);font-size:.85rem;line-height:1;cursor:pointer}.dock-list .pin-tool:hover:not(:disabled){background:color-mix(in srgb,var(--wine) 12%,transparent);color:var(--wine)}.dock-list .pin-tool:disabled{opacity:.25;cursor:default}@media(pointer:coarse){.dock-list .pin-tool{width:2.2rem;height:2.2rem}}.dock-tools [aria-pressed=true]{color:var(--wine)}.dock-tools{display:flex;gap:.25rem;flex-shrink:0}.dock-tools button{padding:.3rem .55rem;border:0;border-radius:999px;background:none;color:var(--muted);font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.dock-tools button:hover{color:var(--wine)}.dock-close{font-size:1rem!important}.hub-note{position:fixed;left:1rem;bottom:1rem;z-index:40;max-width:min(26rem,calc(100vw - 2rem));margin:0;padding:.45rem .75rem;background:var(--card);border:1px solid var(--rule);border-radius:.5rem;box-shadow:0 .5rem 1.2rem -.8rem #00000059;color:var(--ink-soft);font-size:.68rem;letter-spacing:.03em}html.has-dock .hub-note{bottom:5rem}.dock-said{position:absolute;left:.9rem;bottom:calc(100% + .4rem);color:var(--wine);font-size:.62rem}@media(pointer:coarse){.dock-list a,.dock-tools button{min-height:40px;display:inline-flex;align-items:center}}@media(max-width:34rem){.dock{left:.6rem;right:3.2rem;width:auto;margin:0;max-width:none;flex-wrap:wrap;row-gap:.3rem}.dock-list{order:3;flex-basis:100%}.dock-tools{margin-left:auto}}
