:root {
  --paper: #f5f2eb;
  --ink: #252421;
  --muted: #69625b;
  --line: #d8d1c7;
  --stone: #e7e1d8;
  --accent: #7d5946;
  --serif: 'Songti SC', 'STSong', 'Noto Serif CJK SC', Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 76px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; min-height: 100svh; display: flex; flex-direction: column; }
a { color: inherit; text-decoration: none; touch-action: manipulation; }
button { font: inherit; color: inherit; }
p, h1, h2, h3 { margin: 0; }
svg { display: block; }
[hidden] { display: none !important; }
::selection { background: #ded1c2; color: var(--ink); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
main:focus { outline: none; }
.wrap { width: min(1168px, calc(100% - 96px)); margin-inline: auto; }
.skip-link { position: fixed; top: 10px; left: 10px; padding: 12px 18px; background: var(--ink); color: var(--paper); z-index: 20; transform: translateY(-170%); }
.skip-link:focus { transform: none; }
.site-header { display: flex; align-items: center; justify-content: space-between; min-height: 83px; border-bottom: 1px solid var(--line); gap: 24px; flex-shrink: 0; }
.brand { display: inline-flex; align-items: center; font-size: 25px; font-weight: 630; letter-spacing: -1px; min-height: 44px; }
.brand svg { width: 25px; height: 25px; margin-right: 12px; stroke: var(--ink); stroke-width: 2; }
.contact-link { display: inline-flex; align-items: center; gap: 28px; min-height: 44px; font-size: 13px; }
.contact-link span { font-size: 21px; color: var(--accent); }
.contact-link:hover, .back-link:hover { color: var(--accent); }
.site-footer { min-height: 54px; display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; justify-content: space-between; font-size: 10px; color: var(--muted); flex-shrink: 0; padding-block: 15px; margin-top: auto; }
.eyebrow { font-size: 10px; letter-spacing: 1.8px; font-weight: 500; line-height: 1.8; color: var(--muted); }
.serif { font-family: var(--serif); font-weight: 500; }
.accent { color: var(--accent); }

/* The home screen is a set of doors, each with a real destination. */
.portal { flex: 1; display: flex; flex-direction: column; justify-content: center; padding-block: 27px 24px; }
.portal-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; margin-bottom: 27px; }
.portal-heading h1 { font-size: clamp(32px, 3.3vw, 47px); line-height: 1.35; font-weight: 500; letter-spacing: -1.5px; margin-top: 10px; }
.portal-heading h1 .serif { color: var(--accent); }
.portal-intro { font-size: 13px; line-height: 1.8; color: var(--muted); margin-top: 12px; }
.portal-guide { font-size: 12px; line-height: 1.9; text-align: right; color: var(--muted); padding-bottom: 3px; }
.window-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.window { display: flex; flex-direction: column; border: 1px solid #cec5b8; min-width: 0; height: clamp(300px, 47vh, 448px); border-radius: 5px; overflow: hidden; position: relative; isolation: isolate; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.window:hover { transform: translateY(-6px); box-shadow: 0 14px 24px #33281c12; border-color: var(--accent); }
.window:active { transform: translateY(-2px); }
.window-bar { display: flex; align-items: center; justify-content: space-between; padding: 13px 17px; font-size: 9px; letter-spacing: 1px; color: #62574c; border-bottom: 1px solid #82746033; min-height: 39px; }
.window-dots { display: flex; gap: 4px; }
.window-dots i { width: 4px; height: 4px; border: 1px solid currentColor; border-radius: 50%; }
.window-art { flex: 1; min-height: 0; position: relative; overflow: hidden; }
.window-caption { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 23px 24px; position: relative; z-index: 2; }
.window-caption h2 { font-size: 28px; font-weight: 500; letter-spacing: -.8px; line-height: 1.4; }
.window-caption p { font-size: 11px; line-height: 1.8; margin-top: 7px; color: #62574c; }
.enter-arrow { display: flex; align-items: center; justify-content: center; font-family: Arial, sans-serif; font-size: 26px; line-height: 1; width: 43px; height: 43px; border: 1px solid currentColor; border-radius: 50%; flex-shrink: 0; transition: background .2s, color .2s, transform .2s; }
.window:hover .enter-arrow { transform: rotate(45deg); background: var(--ink); color: var(--paper); border-color: var(--ink); }
.window-about { background: #e7dfd2; }
.art-initial { position: absolute; inset: 1px 0 0; text-align: center; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(120px, 13vw, 190px); line-height: 1.3; font-weight: 400; color: #493f33; letter-spacing: -15px; }
.art-initial>span { color: #9c7960; }
.art-orbit { position: absolute; width: 71%; height: 66%; top: 22%; left: 15%; border: 1px solid #aa947b; border-radius: 50%; transform: rotate(-26deg); }
.art-script { position: absolute; left: 22px; bottom: 7px; font-size: 11px; color: #6b5e4d; letter-spacing: 3px; }
.art-spark { position: absolute; right: 30px; top: 22px; font-size: 29px; color: #7e5e46; }
.window-work { background: #2d2c29; color: #f5f2eb; border-color: #2d2c29; }
.window-work .window-bar { border-color: #f5f2eb25; color: #c8c0b4; }
.window-work .window-caption p { color: #c8c0b4; }
.window-work:hover .enter-arrow { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.art-browser { background: var(--paper); width: 69%; height: 70%; position: absolute; left: 15%; top: 15%; border: 1px solid #b9aea0; transform: rotate(-8deg); transition: transform .3s ease; box-shadow: 8px 12px 0 #bca48a; }
.window:hover .art-browser { transform: rotate(-3deg) translateY(-3px); }
.art-browser-bar { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; font-size: 7px; color: var(--muted); border-bottom: 1px solid var(--line); }
.art-browser-content { padding: 16px; height: calc(100% - 28px); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.art-shape { display: block; width: 47%; aspect-ratio: 1; border-radius: 50% 50% 0 0; background: #9c7960; }
.art-lines { width: 43%; display: grid; gap: 10px; }
.art-lines i { display: block; height: 3px; background: #50483e; }
.art-lines i:nth-child(2) { width: 78%; }
.art-lines i:last-child { width: 45%; height: 12px; margin-top: 4px; }
.art-work-label { position: absolute; bottom: 4px; right: 25px; font: 8px monospace; letter-spacing: 1px; color: #c8c0b4; }
.window-journal { background: #eeebe4; }
.art-paper { width: 48%; height: 87%; left: 25%; top: 9%; position: absolute; border: 1px solid #cabeae; }
.art-paper-back { background: #cdbba5; transform: rotate(10deg); left: 29%; }
.art-paper-front { background: #faf7f0; transform: rotate(-7deg); padding: 15px; display: flex; flex-direction: column; justify-content: space-between; transition: transform .3s ease; }
.window:hover .art-paper-front { transform: rotate(-2deg); }
.paper-index { font-size: 6px; letter-spacing: .6px; color: var(--muted); }
.paper-glyph { font-size: clamp(41px, 5vw, 71px); font-family: var(--serif); color: #5b4b3b; }
.paper-rules { height: 18px; background: repeating-linear-gradient(to bottom, #cabeae 0 1px, transparent 1px 8px); }
.paper-footer { font-size: 5px; letter-spacing: .5px; color: var(--muted); margin-top: 9px; }

/* Consistent page navigation stays in reach on longer individual pages. */
.page-nav { position: sticky; top: 0; z-index: 5; background: #f5f2ebf7; }
.page-nav>.wrap { display: flex; align-items: center; justify-content: space-between; min-height: 61px; gap: 20px; border-bottom: 1px solid var(--line); }
.back-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; }
.back-link>span { font-size: 22px; }
.current-page { font-size: 11px; color: var(--muted); }
.view-main { padding-top: 29px; padding-bottom: 46px; flex: 1; }
.view-heading { margin-bottom: 26px; }
.view-heading h1 { font-size: 40px; line-height: 1.4; letter-spacing: -1.5px; font-weight: 500; margin-top: 7px; }
.heading-with-note { display: flex; justify-content: space-between; gap: 25px; align-items: flex-end; }
.heading-with-note>p { font-size: 12px; color: var(--muted); line-height: 1.9; text-align: right; padding-bottom: 5px; }
.about-layout { display: grid; grid-template-columns: .88fr 1.5fr; gap: 70px; align-items: center; }
.identity-panel { background: #e7dfd2; border: 1px solid #d2c7b6; padding: 0 27px 23px; }
.identity-art { position: relative; height: 212px; display: flex; align-items: center; justify-content: center; }
.identity-art>span:not(.identity-orbit) { font: 160px/.9 Georgia, serif; color: #4a4035; z-index: 1; }
.identity-orbit { position: absolute; width: 85%; height: 59%; border: 1px solid #aa947b; border-radius: 50%; transform: rotate(-25deg); }
.identity-art>i { position: absolute; top: 30px; right: 17px; font-size: 24px; font-style: normal; color: var(--accent); }
.identity-caption { border-top: 1px solid #bbae993f; padding-top: 18px; }
.identity-caption h2 { font-size: 29px; font-weight: 550; letter-spacing: -.8px; }
.identity-caption>p { font-size: 12px; color: #6b5e4d; margin-top: 7px; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.profile-tags>span { padding: 5px 9px; font-size: 11px; border: 1px solid #a79780; color: #5f5242; }
.about-kicker { font-size: 11px; color: var(--accent); margin-bottom: 15px; }
.about-copy h2 { font-size: 34px; font-weight: 500; line-height: 1.5; letter-spacing: -.7px; }
.about-copy h2 .serif { color: var(--accent); }
.prose { font-size: 14px; color: var(--muted); line-height: 1.95; overflow-wrap: anywhere; }
.prose p+p { margin-top: 14px; }
.about-copy .prose { margin-top: 20px; }
.experience-line { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding-top: 20px; margin-top: 24px; border-top: 1px solid var(--line); }
.experience-line div { display: grid; gap: 7px; }
.experience-line div>span { font-size: 10px; color: var(--muted); }
.experience-line strong { font-size: 14px; font-weight: 500; }
.experience-line>span { color: #8a7965; }
.about-timeline { margin-top: 82px; padding-top: 30px; border-top: 1px solid var(--line); }
.timeline-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; margin-bottom: 34px; }
.timeline-heading h2 { font-size: 30px; line-height: 1.45; font-weight: 500; margin-top: 8px; letter-spacing: -.6px; }
.timeline-heading h2 .serif { color: var(--accent); }
.timeline-heading>p { max-width: 260px; color: var(--muted); font-size: 12px; line-height: 1.85; text-align: right; }
.timeline-list { list-style: none; padding: 0; margin: 0; }
.timeline-item { display: grid; grid-template-columns: 76px 24px minmax(0, 1fr); column-gap: 18px; min-height: 138px; }
.timeline-year { font: 18px/1.2 var(--serif); color: #5e5142; padding-top: 3px; letter-spacing: -.3px; }
.timeline-year>span { display: block; font: 12px/1 var(--sans); color: var(--muted); margin-top: 2px; }
.timeline-marker { position: relative; display: flex; justify-content: center; }
.timeline-marker::before { content: ""; width: 9px; height: 9px; margin-top: 6px; background: var(--accent); border: 3px solid var(--paper); border-radius: 50%; box-shadow: 0 0 0 1px #bda990; z-index: 1; }
.timeline-marker::after { content: ""; position: absolute; top: 16px; bottom: -1px; width: 1px; background: #d6cabb; }
.timeline-item:last-child .timeline-marker::after { display: none; }
.timeline-body { border-bottom: 1px solid #dfd7cb; padding: 0 0 27px; margin-bottom: 27px; }
.timeline-phase { font-size: 10px; color: var(--accent); letter-spacing: .4px; margin-bottom: 8px; }
.timeline-body h3 { font-size: 19px; line-height: 1.5; font-weight: 500; letter-spacing: -.3px; }
.timeline-body>p:last-child { max-width: 680px; color: var(--muted); font-size: 13px; line-height: 1.9; margin-top: 8px; }
.timeline-item-current .timeline-year { color: var(--accent); }
.timeline-note { color: var(--muted); font-size: 11px; line-height: 1.8; margin: 2px 0 0 118px; }
.projects-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.project-card { border: 1px solid var(--line); background: #f8f5ef; }
.project-link { display: grid; grid-template-columns: 1fr 1.05fr; min-height: 296px; height: 100%; }
.projects-grid:has(.project-card:only-child) { grid-template-columns: 1fr; }
.projects-grid:has(.project-card:only-child) .project-link { grid-template-columns: 1.1fr 1fr; }
.project-cover { background: var(--stone); padding: 30px; display: flex; justify-content: center; align-items: center; min-height: 260px; overflow: hidden; position: relative; }
.project-cover>img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.cover-sheet { position: relative; background: #f9f6ef; width: min(100%, 316px); height: 220px; padding: 19px 23px; border: 1px solid #cbbfae; transform: rotate(-5deg); transition: transform .2s; }
.project-link:hover .cover-sheet { transform: rotate(-1deg); }
.cover-brand { font-size: 16px; letter-spacing: -.6px; font-weight: 550; }
.cover-title { display: block; font-family: var(--serif); font-size: 30px; line-height: 1.3; margin-top: 24px; position: relative; z-index: 1; }
.cover-circle { position: absolute; width: 96px; height: 96px; background: #a98c72; border-radius: 50%; right: 19px; top: 73px; }
.cover-bottom { display: block; position: absolute; bottom: 15px; font-size: 7px; letter-spacing: 1px; color: var(--muted); }
.project-card-copy { padding: 27px; display: flex; flex-direction: column; justify-content: center; }
.project-meta { display: flex; justify-content: space-between; font-size: 10px; color: var(--muted); gap: 12px; margin-bottom: 20px; }
.project-card-title, .entry-card-title { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.project-card-title h2 { font-size: 28px; line-height: 1.5; white-space: pre-line; font-weight: 500; letter-spacing: -.6px; }
.project-card-title .enter-arrow, .entry-card-title .enter-arrow { width: 35px; height: 35px; font-size: 21px; }
.project-summary, .entry-summary { font-size: 13px; line-height: 1.9; color: var(--muted); margin-top: 16px; }
.card-action { display: inline-flex; align-items: center; gap: 27px; font-size: 12px; margin-top: 22px; color: var(--accent); }
.project-link:hover h2, .entry-link:hover h2 { color: var(--accent); }
.projects-grid:not(:has(.project-card:only-child)) .project-link { grid-template-columns: 1fr; }
.entries-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; }
.entry-card { border: 1px solid var(--line); background: #f8f5ef; }
.entry-link { display: block; height: 100%; }
.entry-cover { height: 144px; background: #e5ded2; position: relative; overflow: hidden; }
.entry-cover-mark { position: absolute; left: 25px; top: 21px; font: 10px monospace; letter-spacing: 1px; color: #695b49; }
.entry-cover-symbol { position: absolute; right: 37px; top: -21px; font-family: var(--serif); font-size: 143px; line-height: 1.2; color: #927d63; }
.entry-cover-label { position: absolute; left: 25px; bottom: 22px; font-size: 9px; letter-spacing: 1px; color: #695b49; }
.entry-card:nth-child(even) .entry-cover { background: #dedbd5; }
.entry-card:nth-child(even) .entry-cover-symbol { color: #726e67; font-size: 102px; top: 17px; }
.entry-card-copy { padding: 23px 25px 26px; }
.entry-category { margin-bottom: 12px; }
.entry-card-title h2 { font-size: 27px; font-weight: 500; letter-spacing: -.8px; }
.detail-main { padding-top: 32px; }
.detail-heading { max-width: 860px; margin-bottom: 29px; }
.detail-heading h1 { font-size: 42px; line-height: 1.45; letter-spacing: -1px; font-weight: 500; margin-top: 12px; white-space: pre-line; }
.detail-summary { font-size: 14px; line-height: 1.9; color: var(--muted); margin-top: 15px; }
.detail-layout { display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 50px; }
.detail-cover { min-height: 242px; background: #e7dfd2; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; overflow: hidden; }
.detail-cover>span { font-family: Georgia, serif; font-size: 85px; letter-spacing: -5px; }
.detail-cover>p { font-size: 9px; letter-spacing: 2px; color: var(--muted); margin-top: 20px; }
.detail-cover>img { display: block; width: 100%; height: auto; }
.detail-label { margin-bottom: 15px; }
.project-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }
.project-gallery figure { margin: 0; }
.project-gallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid var(--line); background: #e7dfd2; }
.project-gallery figcaption { font-size: 10px; color: var(--muted); line-height: 1.5; margin-top: 7px; }
.project-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 19px; }
.project-tags>span { font-size: 11px; border: 1px solid var(--line); padding: 5px 9px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; min-height: 46px; background: var(--ink); color: var(--paper); padding: 12px 19px; font-size: 13px; border: 1px solid var(--ink); margin-top: 25px; }
.button:hover { background: var(--accent); border-color: var(--accent); color: var(--paper); }
.button-outline { background: transparent; color: var(--ink); }
.reading-main { max-width: 810px; padding-top: 43px; }
.project-detail-section + .project-detail-section { margin-top: 22px; }
.project-detail-section h3 { font-size: 10px; line-height: 1.4; letter-spacing: 1.6px; color: var(--accent); font-weight: 500; }
.project-detail-section p { margin-top: 6px; }
.reading-body { max-width: 650px; }
.entry-quote { border-left: 2px solid #a98c72; padding: 7px 0 7px 20px; font-family: var(--serif); font-size: 24px; line-height: 1.7; color: var(--accent); margin-bottom: 23px; }
.empty-state { font-size: 14px; color: var(--muted); line-height: 1.9; padding: 25px 0; }
@media (min-width: 1500px) { .portal-heading h1 { font-size: 49px; }.portal-heading { margin-bottom: 34px; }.window-grid { gap: 24px; } }
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 64px); }.window-grid { gap: 13px; }.window-caption { padding: 20px 17px; }.window-caption h2 { font-size: 24px; }.window-caption p { font-size: 10px; }.enter-arrow { width: 34px; height: 34px; font-size: 23px; }.window-bar { font-size: 8px; padding-inline: 14px; }.art-initial { font-size: 130px; top: 22px; }.art-browser { width: 74%; left: 10%; }.art-paper { width: 56%; left: 20%; }.art-paper-back { left: 26%; }.about-layout { gap: 36px; grid-template-columns: .9fr 1.3fr; }.about-copy h2 { font-size: 30px; }.prose { font-size: 13px; }.identity-art>span:not(.identity-orbit) { font-size: 133px; }.identity-art { height: 200px; }.project-card-title h2 { font-size: 25px; }.project-card-copy { padding: 22px; }.project-card-title .enter-arrow { display: none; }.entry-card-title h2 { font-size: 24px; }.detail-layout { gap: 30px; }
}
@media (max-width: 700px) {
  .wrap { width: calc(100% - 40px); }.site-header { min-height: 64px; }.brand { font-size: 23px; }.brand svg { width: 23px; height: 23px; margin-right: 9px; }.contact-link { font-size: 12px; gap: 19px; }.site-footer { min-height: 43px; font-size: 9px; padding-block: 12px; }.portal { padding-block: 22px 15px; justify-content: flex-start; }.portal-heading { margin-bottom: 20px; display: block; }.portal-heading .eyebrow { font-size: 8px; letter-spacing: 1.5px; }.portal-heading h1 { font-size: 33px; margin-top: 7px; letter-spacing: -1px; }.portal-intro { font-size: 12px; margin-top: 8px; }.portal-guide { display: none; }.window-grid { grid-template-columns: 1fr; gap: 13px; }.window { height: 145px; border-radius: 4px; }.window:hover { transform: translateY(-2px); }.window-bar { min-height: 28px; padding: 7px 14px; font-size: 8px; }.window-caption { padding: 19px 17px; flex: 1; align-items: center; }.window-caption h2 { font-size: 26px; }.window-caption p { max-width: 220px; font-size: 10px; line-height: 1.75; margin-top: 6px; }.window-caption .enter-arrow { width: 33px; height: 33px; font-size: 21px; }.window-art { position: absolute; top: 29px; bottom: 0; right: 30px; width: 111px; opacity: .12; z-index: 0; }.window-work .window-art { opacity: .25; }.art-initial { font-size: 112px; line-height: 1; top: 0; letter-spacing: -8px; }.art-orbit { width: 99%; left: 0; height: 65%; top: 15%; }.art-script, .art-spark, .art-work-label, .paper-index, .paper-footer { display: none; }.art-browser { height: 78%; width: 86%; left: 2%; top: 8%; box-shadow: 4px 5px 0 #bca48a; }.art-browser-bar { padding: 5px; font-size: 5px; }.art-browser-content { padding: 7px; height: calc(100% - 17px); gap: 7px; }.art-lines { gap: 5px; }.art-lines i { height: 2px; }.art-lines i:last-child { height: 7px; }.art-paper { top: 8%; height: 94%; padding: 8px; width: 70%; left: 13%; }.art-paper-back { left: 22%; }.paper-glyph { font-size: 57px; }.paper-rules { height: 13px; }.page-nav>.wrap { min-height: 55px; }.back-link { font-size: 12px; gap: 10px; }.current-page { font-size: 10px; }.view-main { padding-top: 23px; padding-bottom: 32px; }.view-heading { margin-bottom: 21px; }.view-heading h1 { font-size: 32px; }.view-heading .eyebrow { font-size: 9px; }.heading-with-note { display: block; }.heading-with-note>p { font-size: 12px; text-align: left; padding: 0; margin-top: 12px; }.heading-with-note>p br { display: none; }.about-layout { grid-template-columns: 1fr; gap: 28px; }.identity-panel { display: grid; grid-template-columns: 105px 1fr; gap: 20px; padding: 18px; align-items: center; }.identity-art { height: 119px; }.identity-art>span:not(.identity-orbit) { font-size: 92px; }.identity-orbit { width: 113%; height: 62%; }.identity-art>i { font-size: 18px; top: 1px; right: -4px; }.identity-caption { border: 0; padding: 0; }.identity-caption h2 { font-size: 25px; }.identity-caption>p { font-size: 10px; }.profile-tags { gap: 5px; margin-top: 13px; }.profile-tags>span { font-size: 9px; padding: 4px 6px; }.about-copy h2 { font-size: 29px; }.about-copy .prose { margin-top: 17px; }.prose { font-size: 14px; line-height: 1.95; }.about-kicker { font-size: 11px; margin-bottom: 11px; }.experience-line { gap: 8px; }.experience-line strong { font-size: 13px; }.experience-line div>span { font-size: 9px; }.projects-grid, .entries-grid { grid-template-columns: 1fr; gap: 22px; }.project-link, .projects-grid:has(.project-card:only-child) .project-link { grid-template-columns: 1fr; }.project-cover { min-height: 196px; padding: 23px; }.cover-sheet { height: 174px; max-width: 240px; padding: 15px 18px; }.cover-title { font-size: 26px; margin-top: 13px; }.cover-circle { width: 75px; height: 75px; top: 56px; }.cover-bottom { font-size: 6px; bottom: 12px; }.project-card-copy { padding: 21px; }.project-card-title h2 { font-size: 25px; }.project-card-title .enter-arrow { display: flex; }.project-meta { margin-bottom: 14px; }.project-summary { margin-top: 12px; }.card-action { margin-top: 17px; min-height: 25px; }.entry-link { display: grid; grid-template-columns: 78px 1fr; }.entry-cover { height: 100%; min-height: 204px; }.entry-cover-mark { left: 13px; top: 17px; }.entry-cover-symbol { right: -7px; top: 54px; font-size: 92px; }.entry-cover-label { display: none; }.entry-card:nth-child(even) .entry-cover-symbol { font-size: 65px; right: 3px; top: 64px; }.entry-card-copy { padding: 18px; }.entry-category { font-size: 9px; margin-bottom: 9px; }.entry-card-title { gap: 10px; }.entry-card-title h2 { font-size: 23px; line-height: 1.4; }.entry-card-title .enter-arrow { width: 27px; height: 27px; font-size: 18px; }.entry-summary { font-size: 12px; margin-top: 11px; }.detail-heading h1 { font-size: 31px; }.detail-layout { grid-template-columns: 1fr; gap: 27px; }.detail-cover { min-height: 195px; }.detail-cover>span { font-size: 76px; }.detail-summary { font-size: 13px; }.reading-main { padding-top: 29px; }.entry-quote { font-size: 21px; }.reading-body .button { margin-top: 24px; }
}
@media (max-width: 360px) {
  .wrap { width: calc(100% - 32px); }.portal { padding-top: 19px; }.portal-heading h1 { font-size: 29px; }.window { height: 137px; }.window-grid { gap: 11px; }.window-caption h2 { font-size: 24px; }.window-caption p { max-width: 205px; font-size: 10px; }.window-caption { padding: 16px 14px; }.window-caption .enter-arrow { width: 28px; height: 28px; font-size: 19px; }.window-art { right: 19px; }.identity-panel { grid-template-columns: 86px 1fr; gap: 16px; padding: 15px; }.identity-art>span:not(.identity-orbit) { font-size: 80px; }.identity-caption h2 { font-size: 23px; }.profile-tags { gap: 4px; }.profile-tags>span { font-size: 8px; padding: 4px 5px; }.about-copy h2 { font-size: 27px; }.entry-link { grid-template-columns: 54px 1fr; }.entry-card-copy { padding: 17px 14px; }.entry-card-title h2 { font-size: 21px; }.entry-card-title .enter-arrow { width: 24px; height: 24px; font-size: 16px; }.entry-cover-symbol { font-size: 76px; }.entry-card:nth-child(even) .entry-cover-symbol { font-size: 54px; right: -1px; }.detail-heading h1 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
.project-cover>img{object-fit:contain;background:#e8dfd2;padding:10px}

/* Activity and works portal */
.work-doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.work-door{display:grid;grid-template-rows:minmax(260px,1fr) auto;border:1px solid var(--line);background:#f8f5ef;min-height:520px;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}.work-door:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 16px 28px #33281c12}.work-door-art{position:relative;overflow:hidden;min-height:260px}.work-door-activity .work-door-art{background:#d8c8b4;color:#62513f}.work-door-activity .work-door-art:before,.work-door-activity .work-door-art:after{content:"";position:absolute;border:1px solid #987f65;border-radius:50%;opacity:.55}.work-door-activity .work-door-art:before{width:320px;height:320px;left:18%;top:-90px}.work-door-activity .work-door-art:after{width:180px;height:180px;right:-25px;bottom:-70px}.door-calendar{position:absolute;left:14%;top:17%;font:500 clamp(95px,13vw,170px)/1 Georgia,serif;letter-spacing:-8px}.work-door-activity .work-door-art i,.work-door-activity .work-door-art b,.work-door-activity .work-door-art em{position:absolute;display:block;background:#987f65;transform:rotate(-24deg)}.work-door-activity .work-door-art i{width:150px;height:1px;left:18%;top:60%}.work-door-activity .work-door-art b{width:90px;height:1px;left:30%;top:68%}.work-door-activity .work-door-art em{width:125px;height:1px;left:13%;top:76%}.work-door-art small{position:absolute;left:24px;bottom:20px;font-size:8px;letter-spacing:2px}.work-door-work .work-door-art{background:#2d2c29;color:#f5f2eb}.door-paper{position:absolute;width:52%;height:78%;left:24%;top:10%;background:#f5f2eb;color:#332c27;padding:22px;transform:rotate(-5deg);box-shadow:10px 14px 0 #b87b5e;transition:transform .3s}.work-door:hover .door-paper{transform:rotate(-1deg) translateY(-5px)}.door-paper span{font-size:13px;letter-spacing:1px}.door-paper strong{display:block;margin-top:34px;font:500 clamp(24px,3vw,42px)/1.1 var(--serif);letter-spacing:-1px}.door-paper i{position:absolute;width:90px;height:90px;border:1px solid #b87b5e;border-radius:50%;right:20px;bottom:27px}.work-door-work .work-door-art small{color:#c8c0b4}.work-door-copy{padding:25px 28px 28px}.work-door-copy h2{margin-top:10px;font:500 34px/1.35 var(--serif)}.work-door-copy p{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.9;max-width:420px}.door-action{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:15px;border-top:1px solid var(--line);color:var(--accent);font-size:12px}.door-action b{font:24px Arial,sans-serif;transition:transform .25s}.work-door:hover .door-action b{transform:translate(4px,-4px)}.activity-main{padding-bottom:70px}.activity-feature{display:grid;grid-template-columns:1fr 1.15fr;border:1px solid var(--line);background:#f8f5ef;min-height:370px}.activity-feature-art{position:relative;overflow:hidden;background:#2d2c29;color:#e8dcca}.activity-feature-art:before{content:"";position:absolute;width:380px;height:380px;border:1px solid #c7a77f;border-radius:50%;left:-80px;top:-100px}.activity-feature-art span{position:absolute;left:32px;top:26px;font:12px monospace;letter-spacing:2px}.activity-feature-art i{position:absolute;left:24%;top:25%;font:170px Georgia,serif;font-style:normal;color:#b87b5e}.activity-feature-art b{position:absolute;bottom:24px;left:28px;font:10px/1.5 Arial,sans-serif;letter-spacing:2px;color:#c8c0b4}.activity-feature-copy{padding:48px 50px}.activity-feature-copy h2{margin-top:13px;font:500 35px/1.4 var(--serif)}.activity-feature-copy p{margin-top:19px;color:var(--muted);font-size:14px;line-height:2}.activity-status{display:inline-block;margin-top:28px;color:var(--accent);font-size:11px;border-top:1px solid var(--line);padding-top:14px}.activity-next{margin-top:23px;color:var(--muted);font-size:12px}
@media(max-width:700px){.work-doors{grid-template-columns:1fr;gap:16px}.work-door{min-height:0;grid-template-rows:180px auto}.work-door-art{min-height:180px}.door-paper{height:80%;padding:14px}.door-paper strong{margin-top:20px;font-size:28px}.work-door-copy{padding:19px 20px 21px}.work-door-copy h2{font-size:28px}.work-door-copy p{font-size:12px}.activity-feature{grid-template-columns:1fr}.activity-feature-art{min-height:190px}.activity-feature-copy{padding:25px 22px}.activity-feature-copy h2{font-size:29px}.activity-feature-copy p{font-size:13px}}
@media(max-width:700px){.about-timeline{margin-top:56px;padding-top:24px}.timeline-heading{display:block;margin-bottom:27px}.timeline-heading h2{font-size:26px}.timeline-heading>p{max-width:none;text-align:left;font-size:11px;margin-top:11px}.timeline-item{grid-template-columns:54px 18px minmax(0,1fr);column-gap:9px;min-height:0}.timeline-year{font-size:16px}.timeline-body{padding-bottom:22px;margin-bottom:22px}.timeline-phase{font-size:9px}.timeline-body h3{font-size:16px;line-height:1.5}.timeline-body>p:last-child{font-size:12px;line-height:1.85;margin-top:6px}.timeline-note{margin-left:81px;font-size:10px}}
@media(max-width:360px){.timeline-item{grid-template-columns:45px 15px minmax(0,1fr);column-gap:7px}.timeline-heading h2{font-size:24px}.timeline-body h3{font-size:15px}.timeline-note{margin-left:67px}}

/* Activity archive cards */
.activity-archive{margin-top:74px;padding-top:30px;border-top:1px solid var(--line)}
.activity-archive-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}
.activity-archive-heading h2{font:500 29px/1.45 var(--serif);margin-top:8px}
.activity-archive-heading>p{max-width:310px;color:var(--muted);font-size:12px;line-height:1.85;text-align:right}
.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.activity-card{background:#f8f5ef;border:1px solid var(--line);min-height:245px;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.activity-card:hover{transform:translateY(-3px);border-color:#bfa68a;box-shadow:0 12px 24px #33281c10}
.activity-card-art{position:relative;height:160px;overflow:hidden;background:#2d2c29;color:#e9dfd1;padding:17px 20px;isolation:isolate}
.activity-art-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78;filter:saturate(.72) contrast(.96);z-index:-2}
.activity-card-art:after{background:linear-gradient(120deg,#1f1d1a9c,#1f1d1a1f 58%,#1f1d1a85);border:0;border-radius:0;inset:0;width:auto;height:auto;right:auto;bottom:auto;opacity:1;z-index:-1}
.activity-card-art:before{content:"";position:absolute;width:210px;height:210px;border:1px solid currentColor;border-radius:50%;left:37%;top:-114px;opacity:.46;z-index:-1}
.activity-card-art:after{content:"";position:absolute;width:90px;height:90px;border:1px solid currentColor;border-radius:50%;right:-29px;bottom:-44px;opacity:.34;z-index:-1}
.activity-art-index{font:11px/1 monospace;letter-spacing:2px;opacity:.9}.activity-art-mark{position:absolute;left:39%;top:28px;font:78px/1 Georgia,serif;font-style:normal;color:#c88b6d;opacity:.8}.activity-art-label{position:absolute;left:20px;bottom:17px;font:9px/1.4 Arial,sans-serif;letter-spacing:2px;font-weight:400;color:#d5c8b9}
.activity-visual-media .activity-card-art{background:#2f3338}.activity-visual-public .activity-card-art{background:#435250}.activity-visual-culture .activity-card-art{background:#765e4d}.activity-visual-forum .activity-card-art{background:#434b5a}.activity-visual-ethics .activity-card-art{background:#4b4542}.activity-visual-community .activity-card-art{background:#576365}.activity-visual-employer .activity-card-art{background:#6f5a4e}.activity-visual-ai .activity-card-art{background:#364b5f}.activity-visual-brand .activity-card-art{background:#6b5e55}
.activity-card-body{display:flex;flex-direction:column;flex:1;padding:22px 24px 23px}
.activity-card-top{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:10px;color:var(--muted);letter-spacing:.2px}
.activity-year{font:17px/1 var(--serif);color:var(--ink)}
.activity-scale{text-align:right}
.activity-category{font-size:10px;color:var(--accent);margin-top:21px}
.activity-title{font:500 22px/1.45 var(--serif);margin-top:8px;letter-spacing:-.4px}
.activity-role{font-size:11px;color:#6f6253;margin-top:10px}
.activity-summary{font-size:12px;color:var(--muted);line-height:1.85;margin-top:13px;max-width:500px}
.activity-toggle{align-self:flex-start;margin-top:auto;padding-top:15px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--accent);font-size:11px;cursor:pointer;width:100%;text-align:left}
.activity-toggle span{float:right;font-size:18px;line-height:.6;transition:transform .2s}
.activity-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
.activity-detail{font-size:11px;line-height:1.8;color:var(--muted);padding-top:12px}.activity-detail-block{border-top:1px solid #ded5c8;padding-top:10px;margin-top:10px}.activity-detail-block small{display:block;color:var(--accent);font-size:9px;letter-spacing:1px}.activity-detail-block p{margin-top:3px}
@media(max-width:700px){.activity-archive{margin-top:54px}.activity-archive-heading{display:block;margin-bottom:22px}.activity-archive-heading h2{font-size:25px}.activity-archive-heading>p{text-align:left;max-width:none;margin-top:11px;font-size:11px}.activity-grid{grid-template-columns:1fr;gap:14px}.activity-card{min-height:0}.activity-card-art{height:130px}.activity-card-body{padding:19px 18px 20px}.activity-title{font-size:20px}.activity-summary{font-size:12px}}

/* Navigation stays text-led on small screens. Decorative Unicode arrows used
   to render as bright blue/white glyphs in some mobile browsers, so hide the
   glyph-only spans while keeping the links and accessible labels intact. */
.contact-link > span[aria-hidden="true"],
.back-link > span[aria-hidden="true"],
.enter-arrow,
.card-action > span[aria-hidden="true"],
.button > span[aria-hidden="true"],
.door-action > b,
.text-link > span[aria-hidden="true"] { display: none !important; }
.experience-line > span[aria-hidden="true"] { display: none !important; }
