.work-page,.work-case{--silk:#857364;--serif:var(--font-fraunces), ui-serif, Georgia, serif;--mono:var(--font-jetbrains-mono), ui-monospace, monospace;--sans:var(--font-dm-sans), ui-sans-serif, system-ui, sans-serif}:root[data-theme=dark] :is(.work-page,.work-case){--silk:#8f7f86}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.work-page,.work-case){--silk:#8f7f86}}.work-page .eyebrow,.work-case .crumb{font:500 .8rem/1.3 var(--mono);letter-spacing:.04em;color:var(--muted)}.work-page .display{font-family:var(--serif);letter-spacing:-.03em;font-variation-settings:"opsz" 144;font-size:clamp(2.6rem,6.5vw,5rem);font-weight:300;line-height:1.02}.work-page .display em{font-weight:600}.work-page .lede,.work-case .lede{max-width:38em;color:var(--muted);font-size:clamp(1.02rem,1.5vw,1.18rem)}.work-pills{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.work-pills li{border:1px solid var(--line-strong);min-height:32px;font:500 .78rem/1 var(--mono);color:var(--ink);background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:999px;align-items:center;padding:4px 12px;display:inline-flex}.work-ph{aspect-ratio:16/10;background:repeating-linear-gradient(115deg, #ffffff2e 0 1px, transparent 1px 14px), radial-gradient(120% 90% at 20% 10%, #ffffff8c, transparent 60%), var(--c);color:#2f2029;border-radius:10px;align-content:end;padding:14px 16px;display:grid;position:relative;overflow:hidden}.work-ph .ph-name{font:italic 500 clamp(1.3rem, 2.4vw, 1.9rem) / 1 var(--serif);letter-spacing:-.02em}.work-ph .ph-note{font:.68rem var(--mono);letter-spacing:.04em;color:#4a3843;margin-top:4px}.work-ph:before{content:"";background:#ffffff8c;border-radius:6px;height:10px;position:absolute;top:12px;left:14px;right:14px}.work-page .intro{gap:18px;max-width:60rem;display:grid}.weave{margin-top:72px;position:relative}.weave-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.weave-svg .silk{fill:none;stroke:var(--silk);stroke-width:1.6px;stroke-linecap:round}.weave-svg .silk-ghost{fill:none;stroke:var(--line);stroke-width:1px;stroke-dasharray:2 7}.weave-svg .tie{fill:none;stroke:var(--silk);stroke-width:1.1px;stroke-dasharray:var(--len) var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1) .15s}.weave-svg .knot{fill:var(--bg);stroke:var(--silk);stroke-width:1.6px;transition:r .5s cubic-bezier(.3,1.6,.5,1),fill .4s,stroke .4s}.weave-svg .knot-wrap{fill:none;stroke:var(--rust);stroke-width:1.4px;stroke-linecap:round;opacity:0;transition:opacity .4s .15s}.weave-svg .reached .knot{fill:var(--rust);stroke:var(--rust);r:7}.weave-svg .reached .knot-wrap{opacity:1}.weave-svg .reached .tie{stroke-dashoffset:0}.weave-svg .active .knot{r:9}.weave .projects{gap:clamp(56px,9vw,120px);padding:0;list-style:none;display:grid;position:relative}.weave .proj{grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr);align-items:start;display:grid}.weave .proj .anchor{grid-area:1/2;height:1px;margin-top:46px}.weave .proj .card{grid-row:1}.weave .proj:nth-child(odd) .card{text-align:right;grid-column:1;justify-self:end}.weave .proj:nth-child(2n) .card{grid-column:3;justify-self:start}.weave .card{gap:14px;max-width:30rem;display:grid;position:relative}.weave .card .meta{font:500 .78rem/1.4 var(--mono);color:var(--muted);letter-spacing:.03em}.weave .card h2{font:300 clamp(2.4rem, 5vw, 3.8rem) / .98 var(--serif);letter-spacing:-.035em;font-variation-settings:"opsz" 144}.weave .card h2 a{color:var(--ink);background-image:linear-gradient(var(--rust), var(--rust));background-position:0 92%;background-repeat:no-repeat;background-size:0 2px;text-decoration:none;transition:background-size .5s cubic-bezier(.2,.8,.2,1)}.weave .card h2 a:after{content:"";position:absolute;inset:0}.weave .card:hover h2 a,.weave .card h2 a:focus-visible{background-size:100% 2px}.weave .card h2 a:focus-visible{outline:none}.weave .card:has(a:focus-visible){outline:2px solid var(--rust);outline-offset:10px;border-radius:12px}.weave .card .role{font-weight:500}.weave .card .sum{color:var(--muted)}.weave .proj:nth-child(odd) .card .work-pills{justify-content:flex-end}.weave .card .shot{transform-origin:50% 0;margin-top:4px;transition:transform .5s cubic-bezier(.3,1.4,.5,1),box-shadow .4s}.weave .card .shot img{aspect-ratio:16/10;object-fit:cover;border-radius:10px;width:100%;display:block}.weave .card:hover .shot{transform:rotate(-1.2deg)translateY(-4px);box-shadow:0 22px 40px -26px #1e0f1499}.weave .card:has(a:focus-visible) .shot{transform:rotate(-1.2deg)translateY(-4px);box-shadow:0 22px 40px -26px #1e0f1499}.weave .proj:nth-child(2n) .card:hover .shot{transform:rotate(1.2deg)translateY(-4px)}.weave .proj:nth-child(2n) .card:has(a:focus-visible) .shot{transform:rotate(1.2deg)translateY(-4px)}.weave .read{font:500 .82rem var(--mono);color:var(--ink)}.weave .read span{transition:transform .3s;display:inline-block}.weave .card:hover .read span{transform:translate(4px)}.work-page .end-note{text-align:center;font:.85rem var(--mono);color:var(--muted);margin-top:90px}.weave .walker .body{fill:#3a2a2c}.weave .walker .leg{fill:none;stroke:#3a2a2c;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.weave .walker .spot{fill:#e0a83a}.weave .walker .eye{fill:#0a0608}:root[data-theme=dark] .weave .walker .body{fill:#e7d8cf}:root[data-theme=dark] .weave .walker .leg{stroke:#e7d8cf}:root[data-theme=dark] .weave .walker .eye{fill:#1d1418}@media (max-width:760px){.weave .proj{grid-template-columns:64px minmax(0,1fr)}.weave .proj .anchor{grid-column:1}.weave .proj:nth-child(odd) .card,.weave .proj:nth-child(2n) .card{text-align:left;grid-column:2;justify-self:start}.weave .proj:nth-child(odd) .card .work-pills{justify-content:flex-start}.weave .card h2{font-size:2.3rem}}.work-case .crumb a{color:var(--ink)}.work-case .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(32px,6vw,96px);margin-top:28px;display:grid}.work-case .head h1{font:300 clamp(3rem, 8vw, 6rem) / .92 var(--serif);letter-spacing:-.045em;font-variation-settings:"opsz" 144;overflow-wrap:anywhere}.work-case .head h1 a{color:inherit;background-image:linear-gradient(var(--rust), var(--rust));background-position:0 92%;background-repeat:no-repeat;background-size:0 3px;text-decoration:none;transition:background-size .4s cubic-bezier(.2,.8,.2,1),color .2s}.work-case .head h1 a:hover,.work-case .head h1 a:focus-visible{color:var(--rust);background-size:100% 3px}.work-case .head h1 .ext{vertical-align:.9em;margin-left:.12em;font-size:.42em;font-style:normal}.work-case .head .role{font:500 .85rem var(--mono);color:var(--muted);margin-top:10px}.work-case .head .lede{margin-top:18px}.work-case .head .work-pills{margin-top:20px}.work-case .head .code-link{min-height:44px;font:500 .85rem var(--mono);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rust);text-decoration-color:var(--rust);text-underline-offset:4px;align-items:center;margin-top:12px;text-decoration-thickness:2px;display:inline-flex}.work-case .body{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px clamp(32px,6vw,88px);max-width:1100px;margin-top:clamp(64px,9vw,120px);display:grid}.work-case .body .intro-p{font:300 clamp(1.4rem, 2.6vw, 2rem) / 1.3 var(--serif);letter-spacing:-.01em;grid-column:1/-1;max-width:34em}.work-case .body .intro-p>*+*{margin-top:.6em}.work-case .body h2{font:500 .8rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);margin-bottom:14px;padding-bottom:10px}.work-case .body .prose-silk{max-width:none;font-size:1rem}.work-case .body .prose-silk>*+*{margin-top:12px}.box2{background:repeating-linear-gradient(0deg,#6a4329 0 6px,#74492d 6px 9px,#63402a 9px 14px);border-radius:4px;padding:22px;position:relative;box-shadow:inset 0 0 0 1px #0000004d,inset 0 2px #ffffff26,0 34px 50px -30px #1e0f14b3}.box2 .foam{aspect-ratio:6/5;background:radial-gradient(circle at 1px 1px,#2f202914 1px,#0000 1.4px) 0 0/7px 7px,#f4ecde;grid-template-columns:auto 1fr;align-items:center;gap:28px;padding:28px 36px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 10px 18px -8px #2f202973,inset 0 0 0 1px #2f202933}.box2 .pinned{position:relative}.box2 .pinned img{object-fit:contain;width:min(220px,100%);height:auto;max-height:300px;display:block;box-shadow:0 6px 14px -6px #1e0f1480}.box2 .pinned .work-ph{aspect-ratio:4/5;width:200px}.box2 .pin{z-index:2;background:radial-gradient(circle at 35% 30%,#f3d48e,#9a6a22);border-radius:50%;width:11px;height:11px;position:absolute;box-shadow:1px 2px 2px #00000059}.box2 .slip{color:#2f2029;font:.74rem/1.55 var(--mono);background:#fffdf6;place-self:end start;max-width:15rem;padding:12px 14px;position:relative;rotate:-1.5deg;box-shadow:0 2px 4px #2f202933}.box2 .slip b{font:italic 600 1.05rem var(--serif);display:block}.box2 .lens{pointer-events:none;opacity:0;z-index:5;border-radius:50%;width:170px;height:170px;transition:opacity .25s;position:absolute;overflow:hidden;box-shadow:0 0 0 6px #2f2029,0 0 0 8px #c8973f,0 18px 30px -10px #00000080}.box2 .lens.on{opacity:1}.box2 .lens .zoomed{transform-origin:0 0;position:absolute;top:0;left:0}.work-case .look{margin-top:14px}.work-case .look button{border:1px solid var(--line-strong);min-height:44px;color:var(--ink);font:500 .85rem var(--sans);cursor:pointer;background:0 0;border-radius:999px;padding:0 16px}.work-case .look button[aria-pressed=true]{background:var(--ink);color:var(--bg)}@media (max-width:860px){.work-case .hero,.work-case .body{grid-template-columns:1fr}.box2 .foam{aspect-ratio:auto;grid-template-columns:1fr;justify-items:center}.box2 .slip{justify-self:center}}
