:root{color-scheme:light;--paper:#fff;--ink:#373737;--line:#555;--accent:#df6b5f;--edge:clamp(22px,2.604167vw,64px);--header:clamp(102px,10.37037vh,112px);--brand-width:clamp(136px,9.114584vw,218px);--brand-top:clamp(26px,4.62963vh,50px);font-family:Arial,'Malgun Gothic',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{min-width:280px;scroll-behavior:auto}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:hover,button:hover{color:var(--accent)}:focus-visible{outline:1px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%}button{background:none;border:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.error-state{padding:25vh var(--edge);text-align:center;font-size:14px}.error-state a{display:inline-block;margin-top:24px;border-bottom:1px solid}
.intro{position:relative;overflow:hidden;display:grid;place-items:center;min-height:100vh;min-height:100svh;background:#fff}
.intro__identity{margin:0;font-size:1rem;line-height:0;opacity:0}
.intro.is-ready .intro__identity{animation:page-fade-in .6s ease both}
.intro.is-merging .intro__identity{animation:none;opacity:1}
.intro__button{display:block;position:relative;width:clamp(144px,min(10vw,17.777778vh),256px);aspect-ratio:192/296;max-width:calc(100vw - 48px)}
.intro__button:disabled{opacity:1;cursor:default}
.intro__part{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.intro__plus{fill:none;stroke:#3e3a39;stroke-width:1}
.intro-wordmark{position:absolute;left:50%;top:50%;width:clamp(204px,26vw,380px);max-width:calc(100vw - 44px);transform:translate(-50%,-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .6s ease .5s}
.intro-wordmark .wordmark{width:100%;height:auto}
.intro.is-merging .intro__top{animation:merge-top 1.1s cubic-bezier(.45,0,.2,1) both}
.intro.is-merging .intro__bottom{animation:merge-bottom 1.1s cubic-bezier(.45,0,.2,1) both}
.intro.is-merging .intro__plus{animation:merge-plus .55s ease both}
.intro.is-merging .intro-wordmark{opacity:1;visibility:visible}
.intro.is-brand-held .intro-wordmark{transition:none;opacity:1}
.intro.is-leaving{animation:page-fade-out .45s ease both;pointer-events:none}
#app.main-arriving{animation:page-fade-in .55s ease both}
/* Original PDF glyph centers meet at the plus inside the 192x296 viewBox. */
@keyframes merge-top{0%{opacity:1;transform:translateY(0)}40%{opacity:1}75%,100%{opacity:0;transform:translateY(42.44%)}}
@keyframes merge-bottom{0%{opacity:1;transform:translateY(0)}40%{opacity:1}75%,100%{opacity:0;transform:translateY(-41.54%)}}
@keyframes merge-plus{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.05)}}
@keyframes page-fade-out{from{opacity:1}to{opacity:0}}
@keyframes page-fade-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.intro.is-ready .intro__identity{animation-duration:.15s}.intro.is-merging .intro__part{animation:page-fade-out .25s ease both}.intro-wordmark{transition:opacity .25s ease}.intro.is-leaving,#app.main-arriving{animation-duration:.15s}}
.site-header{height:var(--header);padding:var(--brand-top) var(--edge) 20px;display:flex;justify-content:space-between;align-items:flex-start;position:fixed;inset:0 0 auto;z-index:10;background:#fff}.wordmark{display:block;width:var(--brand-width);height:auto}.brand-link:hover .wordmark{opacity:.62}.symbol-link{display:grid;place-items:center;width:28px;height:28px;margin-top:-1px}.brand-symbol{width:27px;height:27px}.symbol-link:hover{opacity:.55}.page{padding:var(--header) var(--edge) 50px;min-height:100svh}.categories{padding:0 var(--edge);display:grid;align-items:center;min-height:100vh;min-height:100svh}.category-line{width:100%;min-height:45px;border-block:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:clamp(55px,10.6vw,204px)}.category-line a{font-size:20px;line-height:43px}.archive{padding-top:var(--header)}.archive-labels,.project-row{display:grid;grid-template-columns:13.36% 22.05% 30.27% 22.97% 11.35%;align-items:center}.archive-labels{position:sticky;top:var(--header);z-index:5;background:#fff;height:38px;border-bottom:1px solid var(--line);font-weight:600;font-size:14px}.archive-labels abbr{text-decoration:none}.archive-labels a{width:fit-content}.project-row{min-height:44px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4;padding-block:10px}.project-row>span{padding-right:14px;overflow-wrap:anywhere}.project-row:hover{color:var(--accent);outline:1px solid var(--accent);outline-offset:-1px}.project-row.blank{pointer-events:none;color:transparent}.archive-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px;font-size:12px}.archive-footer nav{display:flex;gap:28px}.archive-footer [aria-current=page]{color:var(--accent)}
.project-page{padding-top:clamp(148px,18.518519vh,200px)}.project-layout{display:grid;grid-template-columns:28.85% 1fr;gap:2.95%;align-items:start}.project-information{position:sticky;top:clamp(148px,18.518519vh,200px)}.project-information dl{margin:0;border-top:1px solid var(--line)}.project-information dl>div{min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line);font-size:14px;font-weight:400;padding:10px 0}.project-information dt{white-space:nowrap}.project-information dd{margin:0;text-align:right;overflow-wrap:anywhere}.gallery figure{margin:0}.gallery img{width:100%;height:auto;object-position:right center}.gallery-empty{min-height:56vh;display:grid;place-items:center;border-block:1px solid #ddd;color:#888;font-size:14px}.project-navigation{display:flex;justify-content:space-between;gap:24px;grid-column:1/-1;font-size:12px;padding:10px 0}.project-navigation a{border-bottom:1px solid #aaa;padding-bottom:6px}.project-navigation .next{margin-left:auto}
.about-page{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:110px var(--edge)}.about-layout{width:min(780px,100%);display:grid;grid-template-columns:40% 60%;min-height:330px}.about-identity{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding-right:56px}.about-identity .brand-symbol{width:40px;height:40px}.about-identity .wordmark{width:180px}.about-copy{border-left:1px solid var(--line);font-size:14px;line-height:1.6}.about-statements,.about-contact{padding:18px 0 18px 36px}.about-statements{border-bottom:1px solid var(--line)}.about-copy p{margin:0 0 25px}.about-copy p:last-child{margin-bottom:0}.about-contact{padding-top:26px}.about-close{position:fixed;right:var(--edge);top:clamp(26px,4.62963vh,50px);z-index:11;width:28px;height:28px}.about-close::before,.about-close::after{content:'';position:absolute;left:13px;top:2px;width:1px;height:25px;background:var(--ink)}.about-close::before{transform:rotate(45deg)}.about-close::after{transform:rotate(-45deg)}
.project-page{--scene-top:clamp(148px,18.518519vh,200px);--scene-height:max(220px,calc(100svh - var(--scene-top) - 42px));--scene-step:max(640px,150svh);--scene-hold-ratio:.65}
.gallery{display:block;min-width:0}
.gallery-track{position:relative;height:calc(var(--scene-height) + (var(--photo-count) - 1 + var(--scene-hold-ratio))*var(--scene-step))}
.gallery-stage{position:sticky;top:var(--scene-top);height:var(--scene-height);overflow:hidden;isolation:isolate}
.gallery .gallery-scene{position:absolute;inset:0 0 28px;margin:0;opacity:0;visibility:hidden;display:flex;align-items:center;justify-content:center;pointer-events:none}
.gallery .gallery-scene:first-child{opacity:1;visibility:visible}
.gallery .gallery-scene img{width:100%;height:100%;object-fit:contain}
.gallery .gallery-pair{display:flex;align-items:center;justify-content:flex-end;gap:clamp(10px,1.4vw,24px)}
.gallery .gallery-pair img{flex:0 1 auto;min-width:0;min-height:0;width:auto;height:100%;object-fit:contain}
.gallery-count{position:absolute;right:0;bottom:0;font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.12em;color:#888}
.gallery-status{position:absolute;inset:45% 0 auto;margin:0;text-align:center;color:#888;font-size:12px}
.gallery .project-navigation{margin-top:28px}
.project-information dl{animation:information-appear .45s cubic-bezier(.22,.61,.36,1) both}
@keyframes information-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.project-information dl{animation:none}}
@media(max-width:700px){.project-page{--scene-top:var(--header);--scene-height:max(220px,calc(100svh - var(--header) - 30px))}.gallery .gallery-scene img{object-position:right top}}
@media(max-width:700px),(max-width:1100px) and (hover:none) and (pointer:coarse){
  .project-page .gallery-track{height:auto}
  .project-page .gallery-stage{position:static;height:auto;overflow:visible;isolation:auto;display:grid;gap:16px}
  .project-page .gallery .gallery-scene{position:static;inset:auto;opacity:1;visibility:visible;transform:none;will-change:auto;align-items:flex-start;justify-content:flex-end}
  .project-page .gallery .gallery-scene img{width:100%;height:auto;object-fit:contain;object-position:right top}
  .project-page .gallery .gallery-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
  .project-page .gallery-count,.project-page .gallery-status{display:none}
  .project-page .project-information dl{animation:none}
}
@media(min-width:2000px){.project-row{font-size:14px;min-height:48px}}
@media(max-width:700px){:root{--header:100px}.category-line{gap:0;justify-content:space-around}.category-line a{font-size:16px}.archive-labels,.project-row{grid-template-columns:11% 20% 39% 18% 12%}.project-row{min-height:58px;font-size:11px}.project-row>span{padding-right:6px}.archive-labels{font-size:12px;height:36px}.archive-footer{flex-wrap:wrap;align-items:flex-start}.archive-footer nav{gap:16px}.project-page{padding-top:134px}.project-layout{grid-template-columns:1fr;gap:32px}.project-information{position:static}.project-information dl>div{min-height:40px;font-size:12px}.gallery-empty{min-height:32vh}.project-navigation{font-size:11px}.about-layout{grid-template-columns:1fr;min-height:0;max-width:360px}.about-identity{padding:0 0 38px;gap:22px}.about-identity .wordmark{width:150px}.about-identity .brand-symbol{width:30px;height:30px}.about-copy{font-size:12px}.about-statements,.about-contact{padding-left:22px}.about-page{padding-top:110px;padding-bottom:48px}}
@media(max-width:700px){.archive-labels,.project-row{grid-template-columns:10% 18% 36% 20% 16%}.project-row{font-size:12px}.symbol-link{width:44px;height:44px;margin-top:-9px;margin-right:-8px}}
@media(max-width:359px){:root{--edge:16px}.project-row{font-size:11px}.category-line a{font-size:14px}}
@media(max-height:360px){.intro__button{width:116px}}

.category-menu{width:100%;position:relative}.category-line{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;text-align:center}
.categories-all{position:absolute;left:50%;top:calc(100% + 26px);transform:translateX(-50%);font-size:11px;color:#777;white-space:nowrap}
.archive-footer nav{flex-wrap:wrap;justify-content:center;row-gap:12px}
.about-close{top:calc(var(--header) + 10px)}
@media(max-width:700px){.category-line{display:flex;flex-direction:column;align-items:stretch}.category-line a{line-height:52px;border-bottom:1px solid #ddd;font-size:17px}.category-line a:last-child{border-bottom:0}.category-menu{max-width:420px;margin:auto}.archive-footer nav{justify-content:flex-start}}

/* Approved typography-line consultation link. */
.about-contact>p:last-of-type{margin-bottom:0}
.about-consult{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px;min-height:82px;gap:20px;margin-top:25px;padding:15px 0 17px;border-bottom:1px solid #828282;color:var(--ink);background:transparent;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color .25s ease,border-color .25s ease}
.about-consult-title{font-size:27px;font-weight:400;letter-spacing:-1.1px;line-height:1.4;white-space:nowrap}
.about-consult-caption{margin-top:7px;font-size:8px;font-weight:400;line-height:1.7;letter-spacing:1.6px;color:#777;white-space:nowrap}
.about-consult::after{content:'';position:absolute;left:0;bottom:-1px;width:0;height:1px;background:#191919;transition:width .45s ease}
.about-consult:is(:hover,:focus-visible){color:#111;border-color:#191919}
.about-consult:is(:hover,:focus-visible)::after{width:100%}
.about-consult:focus-visible{outline:2px solid #747474;outline-offset:6px}
.about-consult:active{opacity:.8}
@media(max-width:700px){.about-consult{max-width:100%;min-height:77px;gap:12px;padding:16px 0}.about-consult-title{font-size:23px;letter-spacing:-.8px}.about-consult-caption{font-size:7px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.about-consult,.about-consult::after{transition:none}}
