@font-face{font-family:Circular;src:url('fonts/circular-book.otf')}@font-face{font-family:Circular;src:url('fonts/circular-medium.otf');font-weight:600}:root{--paper:#f4ead7;--ink:#342c24;--muted:#7a7061;--rust:#ab4f31;--line:#342c2425}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Circular,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--rust);outline-offset:5px}button{border:1px solid var(--line);background:transparent;border-radius:30px;padding:9px 17px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:-.04em}h1{font-size:clamp(48px,6.7vw,100px)}h2{font-size:clamp(36px,4.3vw,64px)}h3{font-size:32px}em{color:var(--rust);font-weight:400}p{margin-bottom:20px}img{max-width:100%;display:block}.site-header{padding:25px 4.5%;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.wordmark{font-size:23px;letter-spacing:-1px;white-space:nowrap}.wordmark span{color:var(--rust);font-size:30px;vertical-align:middle}.header-note{font-size:12px;color:var(--muted);flex:1}.site-header nav{display:flex;gap:28px;font-size:14px}.site-header nav a[aria-current]{color:var(--rust);text-decoration:underline;text-underline-offset:8px}.eyebrow{font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:600;margin-bottom:22px}.hero{position:relative;max-width:1800px;margin:auto;isolation:isolate}.art-stage{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden}.hero-art{width:100%;height:100%;object-fit:contain}.intro{position:absolute;left:7%;top:13%;width:32%;pointer-events:none}.intro h1{font-size:clamp(50px,6.25vw,104px);line-height:.98}.intro-copy{margin-top:28px;font-size:22px;line-height:1.4}.invitation{font-size:13px;margin-top:32px;color:var(--muted)}.invitation strong{font-weight:400;color:var(--rust)}.scene-bar{display:flex;justify-content:space-between;align-items:center;margin:0 4.5%;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.scene-bar button{font-size:12px}.art-hotspots{position:absolute;inset:0}.hotspot{position:absolute;transform:translate(-50%,-50%);width:46px;height:46px;padding:0;border:1px solid #ab4f3177;background:#f4ead7c9;box-shadow:0 0 0 7px #f4ead730;display:grid;place-items:center;color:var(--rust);font-size:21px;transition:background .2s,box-shadow .2s}.hotspot:after{content:attr(data-label);position:absolute;bottom:calc(100% + 12px);padding:6px 12px;border-radius:4px;background:var(--ink);color:var(--paper);font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hotspot:hover{background:var(--paper);box-shadow:0 0 0 12px #ab4f3120}.hotspot.visited{background:var(--rust);color:var(--paper)}.accent{position:absolute;pointer-events:none;color:var(--rust);font-size:32px;animation:blossom .8s ease-out forwards}@keyframes blossom{from{opacity:1;transform:translate(-50%,-50%) scale(.6)}to{opacity:0;transform:translate(-50%,-110%) scale(1.8)}}.skill-strip{padding:36px 7%;display:flex;justify-content:space-between;gap:30px;align-items:center}.skill-strip p{margin:0}.skill-strip .eyebrow{margin-bottom:7px}.skill-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.skill-buttons button{font-size:13px}.skill-buttons button:hover,.filter-bar button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.section-shell{padding:90px 7%;max-width:1600px;margin:auto}.home-intro{display:grid;grid-template-columns:1fr 1.7fr;border-top:1px solid var(--line);margin-top:25px}.home-intro h2{margin-bottom:28px}.home-intro p:not(.eyebrow){max-width:550px;color:var(--muted);font-size:19px}.text-link{display:inline-block;border-bottom:1px solid var(--rust);padding-bottom:6px;font-size:14px;margin-top:12px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:58px 30px}.project-card{display:block}.project-card img{width:100%;aspect-ratio:1.55;object-fit:cover;background:#ded4c1;border-radius:3px;transition:filter .2s}.project-card:hover img{filter:brightness(1.06)}.project-card .eyebrow{margin:20px 0 8px;color:var(--muted)}.project-card h3{display:flex;justify-content:space-between;margin-bottom:10px}.project-card h3 span{color:var(--rust)}.project-card p:last-child{color:var(--muted)}.site-footer{border-top:1px solid var(--line);padding:45px 7%;display:flex;justify-content:space-between;gap:35px}.site-footer p,.footer-note{font-size:12px;color:var(--muted);margin-top:10px}.site-footer nav{display:grid;gap:8px;font-size:13px}.page-heading{max-width:1100px;margin-bottom:50px}.page-heading h1{margin-bottom:30px}.lead{font-size:22px;line-height:1.5;max-width:730px;margin-top:28px}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:45px}.editorial-note{color:var(--muted);font-size:12px;margin-top:35px}.work-end,.journal-end{text-align:center;padding-top:100px}.work-end>span{font-size:75px;color:var(--rust)}.about-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:9%;align-items:center}.about-hero h1{font-size:clamp(48px,5vw,76px)}.about-hero p:not(.eyebrow){max-width:590px}.portrait{position:relative;transform:rotate(2deg);max-width:420px}.portrait img{aspect-ratio:.78;object-fit:cover;border-radius:50% 50% 3px 3px}.portrait figcaption{font-size:12px;margin-top:15px}.portrait-flower{position:absolute;bottom:2%;right:-25px;font-size:105px;color:var(--rust)}.about-practice{border-block:1px solid var(--line)}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:55px}.practice-grid article>span{font-size:11px;color:var(--rust);letter-spacing:.15em}.practice-grid h3{margin:16px 0}.practice-grid p{color:var(--muted)}.chapters{display:grid;grid-template-columns:1fr 1fr;gap:50px}.chapter-list>a,.chapter-list>div{padding:20px 0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:5px}.chapter-list small{width:100%;color:var(--muted)}.chapter-list b{margin-left:auto}.essay-feature{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.essay-art{aspect-ratio:1.25;background:#cf7953;color:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:12%;font:clamp(32px,5vw,70px)/1.1 Georgia,serif;position:relative;overflow:hidden}.essay-art em{color:#503829}.essay-art b{position:absolute;right:8%;bottom:5%;font-weight:400}.essay-feature h2{font-size:42px;margin-bottom:22px}.case-page h1{font-size:clamp(45px,6vw,88px)}.case-cover{width:100%;max-height:700px;object-fit:contain;background:#e7ddcb}.case-body{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:70px 0}.case-body h2{margin-bottom:30px}.case-body p{max-width:700px}.case-body p:not(.eyebrow){font-size:19px;color:var(--muted)}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;width:min(580px,90vw);padding:55px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#2b241bad;backdrop-filter:blur(5px)}dialog h2{font-size:48px;margin-bottom:25px}dialog p:not(.eyebrow){color:var(--muted)}.close-dialog{position:absolute;right:15px;top:12px;font-size:25px;border:0;padding:0 10px}.dialog-symbol{font-size:50px;color:var(--rust);display:block;margin-bottom:20px}body:has(dialog[open]){overflow:hidden}.skip{position:fixed;top:-80px;left:15px;background:var(--paper);padding:10px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.quiet *{animation:none!important;transition:none!important}
@media(min-width:1600px){.intro{top:17%}}@media(max-width:1000px){.header-note{display:none}.site-header{justify-content:space-between}.skill-strip{display:block}.skill-buttons{justify-content:flex-start;margin-top:20px}.intro{left:5%;top:10%;width:35%}.intro h1{font-size:6.5vw}.intro-copy{font-size:18px;margin-top:18px}.invitation{margin-top:18px}.intro .eyebrow{font-size:9px;margin-bottom:15px}.hotspot{width:36px;height:36px}.section-shell{padding:65px 6%}.about-hero{gap:6%}}
@media(max-width:650px){.site-header{padding:19px 5%;gap:15px;flex-wrap:wrap}.wordmark{font-size:21px}.site-header nav{gap:19px;font-size:13px}.hero{display:flex;flex-direction:column;overflow:hidden}.intro{position:relative;order:-1;left:auto;top:auto;width:auto;padding:44px 7% 12px}.intro h1{font-size:64px}.intro .eyebrow{font-size:10px}.intro-copy{font-size:20px;margin-top:20px}.invitation{margin-bottom:0}.art-stage{width:152%;margin-left:-49%;flex:none}.hotspot{width:34px;height:34px;font-size:17px}.hotspot:after{display:none}.scene-bar{font-size:10px;gap:8px}.scene-bar button{font-size:11px;white-space:nowrap}.home-intro,.about-hero,.chapters,.case-body,.essay-feature{grid-template-columns:1fr;gap:28px}.home-intro>.eyebrow{margin-bottom:5px}.section-heading{align-items:start;flex-direction:column}.project-grid{grid-template-columns:1fr;gap:35px}.practice-grid{grid-template-columns:1fr;gap:25px}.site-footer{flex-wrap:wrap}.footer-note{display:none}.about-hero .portrait{margin:25px auto 0;width:85%}.lead{font-size:19px}.essay-feature h2{font-size:35px}.page-heading h1{font-size:52px}.filter-bar{gap:7px}.filter-bar button{font-size:13px;padding:8px 13px}dialog{padding:40px 27px}dialog h2{font-size:40px}.case-body{padding-top:40px}.skill-strip{padding:25px 7%}.section-shell{padding:55px 7%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Personal portfolio identity and primary contact action. */
.contact-cta{display:inline-flex;align-items:center;gap:28px;padding:11px 23px;border-radius:30px;background:var(--rust);color:var(--paper);font-size:14px;pointer-events:auto;box-shadow:0 3px 0 #71342022}.contact-cta:hover{background:#8c3f27}.intro .invitation{margin-top:20px}.site-header .wordmark,.site-footer .wordmark{font-size:21px}.site-header .header-note{font-size:11px}.intro{pointer-events:none}.intro a{pointer-events:auto}@media(max-width:1100px){.header-note{display:none}}@media(max-width:650px){.site-header{justify-content:center}.site-header nav{width:100%;justify-content:center}.intro .contact-cta{margin-top:2px}.site-footer .wordmark{font-size:20px}}

/* About portrait: a simple photograph mounted on warm paper. */
.about-hero .portrait{transform:none;max-width:430px;width:100%;padding:16px 16px 0;background:#fff9ed;border:1px solid #d6c9b3;box-shadow:0 12px 35px #342c2410}.about-hero .portrait img{width:100%;height:auto;aspect-ratio:959/1280;object-fit:contain;border-radius:0}.about-hero .portrait figcaption{margin:0;padding:17px 4px 19px;color:var(--muted);font-size:12px;letter-spacing:.03em}@media(max-width:650px){.about-hero .portrait{width:100%;padding:12px 12px 0;max-width:390px}}
