@font-face {
  font-family:'Sereun Sans';
  src:url(../fonts/sereun-sans-medium.woff) format('woff');
  font-weight:500;
  font-display:swap
}
@font-face {
  font-family:'Sereun Sans';
  src:url(../fonts/sereun-sans.woff) format('woff');
  font-weight:400;
  font-display:swap
}
:root {
  --paper:#F4F2EC;
  --ink:#191A17;
  --muted:#696B63;
  --line:#D4D4CA;
  --berry:#702C3B;
  --sage:#B4BBA5;
  --sans:'Sereun Sans','Pretendard','Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;
  --serif:Georgia,'Times New Roman',serif;
  --header:84px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:120px
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input {
  font:inherit
}
button {
  color:inherit;
  cursor:pointer
}
button:disabled {
  cursor:default
}
img {
  display:block;
  max-width:100%
}
h1,h2,h3,h4,p,figure {
  margin:0
}
h1,h2,h3,h4 {
  font-weight:500;
  line-height:1.25
}
h1,h2 {
  letter-spacing:-.055em
}
em {
  font-style:normal;
  color:var(--berry)
}
a,button,input {
  outline-offset:6px
}
a:focus-visible,button:focus-visible,input:focus-visible {
  outline:2px solid var(--berry)
}
::selection {
  background:var(--berry);
  color:var(--paper)
}
[hidden] {
  display:none!important
}
.wrap {
  width:min(1280px,calc(100% - 96px));
  margin-inline:auto
}
.section {
  padding-block:128px
}
.eyebrow {
  font-size:14px;
  font-weight:500;
  letter-spacing:.035em;
  line-height:1.5;
  margin-bottom:26px
}
.muted {
  color:var(--muted)
}
.text-link {
  display:inline-block;
  font-size:15px;
  font-weight:500;
  padding-block:8px;
  border-bottom:1px solid var(--ink);
  line-height:1.5;
  transition:color .2s,border-color .2s
}
.text-link:hover {
  color:var(--berry);
  border-color:var(--berry)
}
.text-link.inverse {
  border-color:var(--paper)
}
.text-link.inverse:hover {
  color:var(--sage);
  border-color:var(--sage)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:13px 25px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
  font-size:15px;
  font-weight:500;
  border-radius:0;
  transition:background .2s,color .2s,border-color .2s
}
.button:hover {
  background:var(--berry);
  border-color:var(--berry)
}
.button.light {
  background:var(--paper);
  border-color:var(--paper);
  color:var(--ink)
}
.button.light:hover {
  background:var(--sage);
  border-color:var(--sage)
}
.button.outline {
  background:transparent
}
.button.light-outline {
  border-color:#83887C;
  color:var(--paper)
}
.button.light-outline:hover {
  background:var(--paper);
  color:var(--ink)
}
.button-row {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip {
  position:fixed;
  top:-90px;
  left:20px;
  z-index:2000;
  padding:12px 20px;
  background:var(--berry);
  color:white
}
.skip:focus {
  top:10px
}
.site-header {
  height:var(--header);
  display:flex;
  align-items:center;
  gap:48px;
  padding:0 48px;
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(244,242,236,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)
}
.brand {
  font-family:var(--serif);
  font-size:30px;
  letter-spacing:-1.3px;
  line-height:1;
  display:flex;
  align-items:baseline;
  gap:3px
}
.brand-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--berry)
}
.header-note {
  color:var(--muted);
  font-size:13px;
  margin-right:auto
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:34px;
  font-size:15px
}
.site-header nav>a {
  padding:10px 0
}
.site-header nav>a:hover {
  color:var(--berry)
}
.site-header nav [aria-current] {
  color:var(--berry)
}
.site-header nav .nav-contact {
  margin-left:10px;
  border:1px solid var(--line);
  padding:7px 16px;
  font-size:14px
}
.menu-toggle {
  display:none
}
.hero {
  padding-top:44px;
  overflow:hidden
}
.hero-overline {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:13px;
  letter-spacing:.02em
}
.hero-overline p {
  display:flex;
  align-items:center;
  gap:10px
}
.status-dot {
  width:6px;
  height:6px;
  background:var(--berry);
  border-radius:50%
}
.hero-copy {
  display:flex;
  justify-content:space-between;
  gap:56px;
  padding-top:50px;
  padding-bottom:40px
}
.hero h1 {
  font-size:clamp(38px,4.35vw,65px);
  font-weight:450;
  line-height:1.3;
  letter-spacing:-.058em
}
.hero-side {
  width:310px;
  padding-top:4px;
  position:relative;
  font-size:17px;
  line-height:1.65
}
.hero-side .asterisk {
  font-family:Arial,sans-serif;
  position:absolute;
  font-size:74px;
  line-height:1;
  color:var(--berry);
  top:3px;
  left:-140px
}
.hero-side p+p {
  margin-top:21px;
  font-size:15px;
  line-height:1.8
}
.hero-side .text-link {
  margin-top:21px
}
.hero-wordmark {
  font-family:var(--serif);
  font-size:clamp(84px,17.55vw,250px);
  font-weight:400;
  letter-spacing:-.07em;
  line-height:.95;
  white-space:nowrap;
  margin-left:-.014em
}
.hero-wordmark>span {
  color:var(--berry)
}
.hero-bottom {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--ink);
  font-size:13px;
  color:var(--muted);
  padding:21px 0;
  margin-top:24px
}
.selected {
  padding-top:105px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:52px;
  margin-bottom:58px
}
.section-heading h2 {
  font-size:clamp(30px,3.35vw,48px);
  line-height:1.3
}
.section-desc {
  font-size:16px;
  color:var(--muted);
  line-height:1.9;
  max-width:460px;
  padding-bottom:4px
}
.featured-grid {
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:38px;
  align-items:start
}
.featured-grid .project-card:nth-child(2) {
  margin-top:116px
}
.project-cover {
  display:block;
  position:relative;
  overflow:hidden;
  background:var(--cover);
  padding:76px 30px 60px;
  min-height:350px
}
.cover-index {
  position:absolute;
  top:23px;
  left:24px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1;
  z-index:1;
  color:var(--cover-ink)
}
.screen-frame {
  box-shadow:0 22px 28px -22px rgba(21,21,21,.4);
  transform:translateY(0);
  transition:transform .55s cubic-bezier(.2,.7,.2,1);
  border:1px solid rgba(0,0,0,.08);
  background:#fff
}
.screen-frame img {
  width:100%;
  aspect-ratio:1.68;
  object-fit:cover;
  object-position:top
}
.project-cover:hover .screen-frame {
  transform:translateY(-6px)
}
.browser-bar {
  height:21px;
  background:#F3F3F0;
  display:flex;
  gap:4px;
  align-items:center;
  padding:0 8px;
  border-bottom:1px solid rgba(0,0,0,.06);
  position:relative
}
.browser-bar i {
  width:4px;
  height:4px;
  border:1px solid #B9B9B3;
  border-radius:50%
}
.browser-bar>span {
  font-size:8px;
  letter-spacing:0;
  color:#787971;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap
}
.cover-label {
  position:absolute;
  bottom:20px;
  left:24px;
  font-size:12px;
  letter-spacing:.03em;
  color:var(--cover-ink)
}
.view-project {
  position:absolute;
  bottom:18px;
  right:24px;
  font-size:13px;
  line-height:1.5;
  color:var(--cover-ink);
  border-bottom:1px solid currentColor
}
.project-meta {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding-top:22px
}
.project-meta p {
  font-size:13px;
  color:var(--muted);
  margin-bottom:7px
}
.project-meta h3 {
  font-size:23px;
  letter-spacing:-.045em;
  line-height:1.5
}
.project-meta h3 a:hover {
  color:var(--berry)
}
.project-meta>span {
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  margin-top:5px
}
.featured .project-cover {
  padding:95px 40px 79px
}
.featured .screen-frame img {
  aspect-ratio:1.2;
  object-fit:cover
}
.featured:nth-child(2) .screen-frame img {
  aspect-ratio:1.01
}
.selected>.button {
  margin-top:35px
}
.statement {
  background:var(--ink);
  color:var(--paper);
  padding:104px 0 112px;
  position:relative;
  overflow:hidden
}
.statement-grid {
  display:grid;
  grid-template-columns:1.2fr 5fr 3fr;
  gap:60px
}
.statement .eyebrow {
  font-size:13px;
  color:var(--sage);
  padding-top:13px;
  line-height:1.8;
  max-width:120px
}
.statement h2 {
  font-size:clamp(32px,3.5vw,50px);
  line-height:1.35
}
.statement h2 span {
  color:var(--sage)
}
.statement p:not(.eyebrow) {
  font-size:16px;
  color:#BFC1B5;
  margin-top:31px;
  line-height:1.9
}
.statement .text-link {
  margin-top:32px
}
.statement-art {
  position:relative;
  min-height:340px;
  display:flex;
  align-items:center;
  justify-content:center
}
.statement-art i {
  position:absolute;
  display:block;
  width:195px;
  height:195px;
  border:1px solid #696F5D;
  border-radius:50%;
  top:55px
}
.statement-art i:nth-child(1) {
  left:-25px
}
.statement-art i:nth-child(2) {
  left:40px;
  top:20px
}
.statement-art i:nth-child(3) {
  left:104px;
  top:55px
}
.statement-art span {
  position:absolute;
  top:277px;
  left:49px;
  color:#BFC1B5;
  font-size:12px;
  letter-spacing:.07em
}
.work-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:64px 36px
}
.planning-grid {
  margin-bottom:10px
}
.planning-grid .project-cover {
  padding-top:80px;
  padding-bottom:60px
}
.team-preview {
  padding-top:36px
}
.team-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px
}
.team-mark {
  height:290px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  background:#E4E4DA;
  position:relative;
  overflow:hidden;
  padding:25px
}
.team-mark>span {
  font-family:var(--serif);
  font-size:20px
}
.team-mark strong {
  position:absolute;
  bottom:27px;
  left:25px;
  font-size:44px;
  font-weight:400;
  letter-spacing:-.05em;
  z-index:1
}
.team-mark i {
  position:absolute;
  width:220px;
  height:220px;
  border:1px solid #9B9E8F;
  border-radius:50%;
  right:-60px;
  top:35px
}
.team-card:nth-child(2) .team-mark {
  background:#E7DCD5
}
.team-card:nth-child(2) i {
  width:230px;
  height:230px;
  border-radius:0;
  transform:rotate(45deg);
  border-color:#B9A69B;
  right:-105px;
  top:28px
}
.team-card:nth-child(3) .team-mark {
  background:#DCE0E1
}
.team-card:nth-child(3) i {
  width:100px;
  box-shadow:35px 0 0 -1px #DCE0E1,35px 0 0 0 #A8B1B1,70px 0 0 -1px #DCE0E1,70px 0 0 0 #A8B1B1;
  border-radius:0;
  border-color:#A8B1B1;
  right:58px;
  top:30px
}
.team-card-info {
  padding-top:24px
}
.team-card-info>p {
  font-size:13px;
  color:var(--muted);
  margin-bottom:15px
}
.team-card-info h3 {
  font-size:24px;
  letter-spacing:-.05em;
  line-height:1.5
}
.team-card-info .text-link {
  margin-top:26px
}
.footer {
  background:#242920;
  color:var(--paper);
  padding-top:92px
}
.footer-top {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:80px;
  padding-bottom:80px
}
.footer-top .eyebrow {
  grid-column:1 / -1;
  color:var(--sage);
  font-size:13px
}
.footer-top h2 {
  font-size:clamp(34px,3.7vw,52px);
  line-height:1.35
}
.footer h2 em {
  color:var(--sage)
}
.footer-action {
  padding-top:6px;
  font-size:16px;
  line-height:1.85
}
.footer-action .button-row {
  margin-top:30px
}
.contact-note {
  font-size:13px;
  color:#BCC1B4;
  margin-top:23px
}
.footer-bottom {
  display:flex;
  align-items:center;
  gap:30px;
  padding:28px 0;
  border-top:1px solid #555C4E;
  font-size:12px;
  color:#BBC1B3
}
.footer-logo {
  font-family:var(--serif);
  color:var(--paper);
  font-size:40px;
  line-height:1;
  margin-right:18px;
  letter-spacing:-2px
}
.footer-bottom>p {
  margin-right:auto
}
.footer-bottom>a:not(.footer-logo) {
  padding:10px 0
}
.footer-bottom>a:hover {
  color:var(--sage)
}
.page-intro {
  padding-top:86px;
  padding-bottom:76px
}
.page-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:80px
}
.page-heading h1 {
  font-size:clamp(38px,4.7vw,67px);
  line-height:1.3;
  max-width:850px
}
.page-heading>p {
  width:390px;
  font-size:16px;
  color:var(--muted);
  line-height:1.9;
  padding-bottom:6px
}
.project-list {
  padding-bottom:110px
}
.filter-bar {
  display:flex;
  align-items:center;
  gap:30px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
  padding:23px 0
}
.filters {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-right:auto
}
.filter {
  padding:6px 0;
  border:0;
  background:none;
  font-size:15px;
  color:var(--muted);
  border-bottom:1px solid transparent;
  white-space:nowrap
}
.filter span {
  font-family:var(--serif);
  font-size:13px;
  margin-left:3px;
  color:#898B82
}
.filter.active {
  color:var(--berry);
  border-color:var(--berry)
}
.filter:hover {
  color:var(--berry)
}
.search-box {
  position:relative
}
.search-box input {
  width:230px;
  border:0;
  border-bottom:1px solid #A5A79B;
  background:transparent;
  border-radius:0;
  padding:7px 30px 7px 4px;
  font-size:14px
}
.search-box>span:last-child {
  position:absolute;
  right:9px;
  top:1px;
  font-size:28px;
  pointer-events:none;
  line-height:1.4
}
.filter-count {
  padding:18px 0 22px;
  color:var(--muted);
  font-size:13px
}
.all-work .project-cover {
  min-height:365px
}
.graphic-frame {
  background:transparent;
  box-shadow:none;
  border:0;
  margin:-55px -8px -37px
}
.graphic-frame img {
  aspect-ratio:1.68;
  object-fit:cover
}
.archive-note {
  margin-top:73px;
  display:flex;
  align-items:center;
  gap:30px;
  border-top:1px solid var(--line);
  padding-top:28px;
  color:var(--muted);
  font-size:14px;
  line-height:1.85
}
.small-plus {
  font-size:34px;
  color:var(--berry);
  font-weight:300
}
.no-results {
  padding:100px 0;
  text-align:center;
  color:var(--muted)
}
.team-band {
  display:flex;
  gap:45px;
  align-items:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:70px;
  padding:29px 0
}
.team-band>span {
  font-size:20px;
  flex:1;
  letter-spacing:-.04em
}
.team-band small {
  display:block;
  margin-top:5px;
  font-size:13px;
  color:var(--muted);
  letter-spacing:0
}
.team-band b {
  font-size:28px;
  font-weight:300;
  color:#A5A99B
}
.profile-sections {
  padding-bottom:30px
}
.profile {
  display:grid;
  grid-template-columns:1fr 2.15fr;
  column-gap:80px;
  padding-top:80px;
  padding-bottom:95px;
  border-bottom:1px solid var(--line);
  scroll-margin-top:110px
}
.profile-id h2 {
  font-size:54px;
  margin-bottom:11px;
  line-height:1.2
}
.profile-en {
  font-family:var(--serif);
  font-size:22px;
  letter-spacing:.02em;
  color:var(--muted)
}
.career-badge {
  display:inline-block;
  border:1px solid var(--line);
  font-size:13px;
  padding:5px 12px;
  margin-top:22px
}
.profile-symbol {
  position:relative;
  height:250px;
  margin-top:50px
}
.profile-symbol i {
  display:block;
  position:absolute;
  width:155px;
  height:155px;
  border:1px solid #B5B9A9;
  border-radius:50%;
  left:0;
  top:20px
}
.profile-symbol i:nth-child(2) {
  left:52px
}
.profile-symbol i:nth-child(3) {
  left:105px
}
.symbol-02 i {
  border-radius:0;
  border-color:#CCB8AC;
  transform:rotate(45deg);
  width:132px;
  height:132px;
  left:20px;
  top:35px
}
.symbol-02 i:nth-child(2) {
  left:70px
}
.symbol-02 i:nth-child(3) {
  left:120px
}
.symbol-03 i {
  border-radius:0;
  border-color:#B9C3C4;
  width:100px;
  height:170px;
  left:20px;
  top:10px
}
.symbol-03 i:nth-child(2) {
  left:66px;
  top:35px
}
.symbol-03 i:nth-child(3) {
  left:112px;
  top:60px
}
.profile-content>h3 {
  font-size:34px;
  line-height:1.45;
  letter-spacing:-.05em
}
.profile-intro {
  margin-top:30px;
  font-size:17px;
  line-height:1.95;
  color:#50544A;
  max-width:750px
}
.profile-special {
  border-top:1px solid var(--line);
  margin-top:45px;
  padding-top:29px
}
.profile-special .eyebrow {
  color:var(--berry);
  margin-bottom:18px
}
.profile-special ol {
  list-style:none;
  padding:0;
  margin:0;
  counter-reset:special;
  display:grid;
  gap:9px
}
.profile-special li {
  counter-increment:special;
  font-size:16px;
  display:flex;
  gap:19px;
  line-height:1.7
}
.profile-special li:before {
  content:'0' counter(special);
  font-family:var(--serif);
  color:var(--muted);
  min-width:23px
}
.profile-skills {
  margin-top:36px
}
.profile-skills>.eyebrow {
  margin-bottom:20px;
  color:var(--berry)
}
.skill-row {
  display:grid;
  grid-template-columns:190px 1fr;
  gap:25px;
  border-top:1px solid var(--line);
  padding:22px 0
}
.skill-row h4 {
  font-size:15px;
  line-height:1.8
}
.skill-row p {
  font-size:15px;
  line-height:1.9;
  color:var(--muted)
}
.tool-tags {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px
}
.tool-tags span {
  padding:4px 11px;
  border:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
  line-height:1.6
}
.about-end {
  padding-block:100px 120px
}
.about-end h2 {
  font-size:48px;
  line-height:1.35
}
.about-end>p:not(.eyebrow) {
  margin-top:28px;
  color:var(--muted);
  font-size:17px;
  line-height:1.9
}
.about-end .button {
  margin-top:35px
}
.process-list {
  border-top:1px solid var(--ink);
  margin-top:5px
}
.process-row {
  display:grid;
  grid-template-columns:70px 1.05fr 1fr;
  gap:45px;
  padding:58px 0;
  border-bottom:1px solid var(--line)
}
.process-num {
  font-family:var(--serif);
  font-size:45px;
  line-height:1.1;
  color:var(--berry)
}
.process-row h2 {
  font-size:33px;
  line-height:1.4
}
.process-row .eyebrow {
  margin-bottom:13px;
  font-size:13px;
  color:var(--muted)
}
.process-body>p {
  font-size:16px;
  line-height:1.9;
  color:var(--muted)
}
.process-body .tool-tags {
  margin-top:26px
}
.handoff {
  padding-block:120px
}
.handoff-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px
}
.handoff-grid article {
  border-top:1px solid var(--ink);
  padding-top:24px
}
.handoff-grid article>span {
  font-size:13px;
  color:var(--berry)
}
.handoff-grid h3 {
  font-size:25px;
  margin-top:20px;
  margin-bottom:18px;
  letter-spacing:-.04em
}
.handoff-grid p {
  font-size:16px;
  color:var(--muted);
  line-height:1.9
}
.handoff>.button {
  margin-top:45px
}
.case-intro {
  padding-block:42px 66px
}
.case-breadcrumb {
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:20px;
  margin-bottom:47px;
  font-size:13px;
  color:var(--muted)
}
.case-breadcrumb>a:hover {
  color:var(--berry)
}
.case-intro>.eyebrow {
  font-size:14px;
  color:var(--berry);
  margin-bottom:21px
}
.case-intro h1 {
  font-size:clamp(36px,4.7vw,65px);
  line-height:1.35
}
.case-summary {
  max-width:670px;
  margin-top:26px;
  font-size:18px;
  color:var(--muted);
  line-height:1.85
}
.case-meta {
  display:grid;
  grid-template-columns:1.2fr .8fr 1.5fr;
  gap:35px;
  margin:45px 0 0;
  border-top:1px solid var(--line);
  padding-top:24px
}
.case-meta dt {
  font-size:12px;
  color:var(--muted);
  margin-bottom:9px
}
.case-meta dd {
  margin:0;
  font-size:15px;
  line-height:1.8
}
.case-cover {
  background:var(--cover);
  padding-block:32px 56px
}
.case-cover-label {
  display:flex;
  justify-content:space-between;
  color:var(--cover-ink);
  font-size:13px;
  padding:0 0 22px
}
.case-cover-button {
  display:block;
  position:relative;
  background:none;
  border:0;
  padding:0;
  width:min(1040px,100%);
  margin-inline:auto
}
.case-cover-button>img {
  width:100%;
  aspect-ratio:1.6;
  object-fit:cover;
  object-position:top;
  box-shadow:0 16px 25px -18px #36372E66
}
.expand-label {
  display:flex;
  align-items:center;
  gap:18px;
  position:absolute;
  right:18px;
  bottom:18px;
  background:var(--paper);
  padding:9px 13px;
  color:var(--ink);
  font-size:12px;
  line-height:1.5;
  border:1px solid #18191722
}
.expand-label b {
  font-size:19px;
  font-weight:400;
  line-height:1
}
.case-cover-button:hover .expand-label,.screen-item button:hover .expand-label {
  background:var(--berry);
  color:var(--paper)
}
.case-nav {
  position:sticky;
  top:var(--header);
  z-index:90;
  background:rgba(244,242,236,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px)
}
.case-nav>.wrap {
  display:flex;
  gap:42px
}
.case-nav a {
  font-size:14px;
  padding-block:18px;
  border-bottom:1px solid transparent
}
.case-nav a:hover,.case-nav a.active {
  color:var(--berry);
  border-color:var(--berry)
}
.case-section {
  padding-block:90px;
  scroll-margin-top:160px
}
.case-overview {
  display:grid;
  grid-template-columns:1fr 3.2fr;
  gap:80px
}
.case-overview>.eyebrow {
  padding-top:9px;
  color:var(--muted)
}
.case-overview>div {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:50px
}
.case-overview h2 {
  font-size:34px;
  line-height:1.4
}
.case-overview>div>p {
  font-size:17px;
  color:var(--muted);
  line-height:1.95
}
.case-decisions {
  border-top:1px solid var(--line);
  padding-top:85px
}
.case-decisions .section-heading {
  margin-bottom:42px
}
.decision-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:38px
}
.decision-grid article {
  border-top:1px solid var(--ink);
  padding-top:23px
}
.decision-grid article>span {
  font-family:var(--serif);
  font-size:26px;
  color:var(--berry)
}
.decision-grid h3 {
  font-size:23px;
  letter-spacing:-.04em;
  margin-top:23px;
  margin-bottom:18px;
  line-height:1.45
}
.decision-grid p {
  font-size:16px;
  line-height:1.9;
  color:var(--muted)
}
.reading-flow {
  margin-top:64px;
  border-top:1px solid var(--line);
  padding-top:25px
}
.reading-flow>p {
  font-size:13px;
  color:var(--muted);
  margin-bottom:20px
}
.reading-flow ol {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  padding:0;
  margin:0;
  background:#E9EADF
}
.reading-flow li {
  padding:25px 20px;
  border-left:1px solid #C9CBBE;
  font-size:16px;
  line-height:1.5
}
.reading-flow li:first-child {
  border-left:0
}
.reading-flow li>span {
  display:block;
  font-family:var(--serif);
  font-size:13px;
  color:var(--muted);
  margin-bottom:12px
}
.screen-section {
  background:#E9E8E1;
  padding:88px 0 96px;
  scroll-margin-top:140px
}
.screen-gallery {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:55px 34px
}
.screen-item:first-child {
  grid-column:1/-1
}
.screen-item>button {
  display:block;
  position:relative;
  border:0;
  background:#D3D2C9;
  padding:26px;
  width:100%;
  overflow:hidden
}
.screen-item img {
  width:100%;
  height:auto;
  object-fit:cover;
  object-position:top;
  box-shadow:0 6px 12px #18191711
}
.screen-item:first-child img {
  aspect-ratio:1.62
}
.tall-screen>button {
  height:650px
}
.tall-screen img {
  height:auto;
  width:100%
}
.screen-item figcaption {
  padding-top:20px
}
.screen-item figcaption h3 {
  font-size:19px;
  letter-spacing:-.03em
}
.screen-item figcaption p {
  font-size:14px;
  color:var(--muted);
  margin-top:8px
}
.long-screen-label {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  min-height:90px;
  display:flex;
  align-items:flex-end;
  padding:15px 25px;
  background:linear-gradient(transparent,#E9E8E1);
  font-size:12px;
  pointer-events:none;
  text-align:left
}
.tall-screen .expand-label {
  bottom:60px;
  z-index:1
}
.case-source {
  padding-block:45px 55px;
  font-size:14px;
  color:var(--muted);
  border-bottom:1px solid var(--line)
}
.case-source .eyebrow {
  font-size:13px;
  margin-bottom:15px
}
.case-source>p:not(.eyebrow) {
  max-width:850px;
  line-height:1.9
}
.case-source .text-link {
  margin-top:18px
}
.case-next {
  padding-block:75px 95px
}
.case-next>.eyebrow {
  color:var(--muted);
  font-size:13px;
  margin-bottom:23px
}
.case-next>a:first-of-type {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:35px;
  padding-bottom:33px;
  border-bottom:1px solid var(--ink)
}
.case-next h2 {
  font-size:43px;
  line-height:1.4;
  transition:color .2s
}
.case-next>a:hover h2 {
  color:var(--berry)
}
.case-next>a:first-of-type>span {
  font-size:14px;
  white-space:nowrap
}
.case-next>.text-link {
  margin-top:20px;
  font-size:13px;
  border-bottom:0;
  color:var(--muted)
}
.archive-detail {
  padding-block:90px;
  display:grid;
  grid-template-columns:1fr 3fr;
  gap:70px;
  border-bottom:1px solid var(--line)
}
.archive-detail h2 {
  font-size:38px;
  line-height:1.4;
  margin-bottom:25px
}
.archive-detail>div>p {
  max-width:780px;
  font-size:17px;
  color:var(--muted);
  line-height:1.9;
  margin-bottom:18px
}
.archive-detail .button {
  margin-top:18px
}
.toast {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translate(-50%,20px);
  background:var(--ink);
  color:var(--paper);
  border:1px solid #5D6455;
  font-size:14px;
  padding:13px 22px;
  z-index:1000;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
  max-width:calc(100% - 30px);
  text-align:center
}
.toast.visible {
  opacity:1;
  transform:translate(-50%,0)
}
.image-dialog {
  width:calc(100vw - 64px);
  height:calc(100dvh - 64px);
  max-width:1540px;
  max-height:none;
  padding:0;
  border:0;
  background:#E5E5DE;
  color:var(--ink);
  overflow:hidden
}
.image-dialog::backdrop {
  background:rgba(15,17,13,.85);
  backdrop-filter:blur(8px)
}
.dialog-toolbar {
  display:flex;
  gap:30px;
  align-items:center;
  padding:16px 23px;
  border-bottom:1px solid #CACCBF;
  background:var(--paper);
  height:66px
}
.dialog-title {
  font-size:14px;
  font-weight:500;
  margin-right:auto
}
.dialog-original {
  font-size:12px;
  border-bottom:1px solid var(--ink)
}
.dialog-close {
  font-size:14px;
  background:transparent;
  border:0;
  padding:4px 0;
  display:flex;
  gap:13px;
  align-items:center
}
.dialog-close span {
  font-size:26px;
  font-weight:300;
  line-height:1
}
.dialog-scroll {
  height:calc(100% - 66px);
  overflow:auto;
  padding:34px
}
.dialog-image {
  margin:auto;
  width:auto;
  max-width:100%;
  height:auto
}
.image-dialog[open] {
  animation:dialog-in .2s ease-out
}
@keyframes dialog-in {
  from {
    opacity:0;
    transform:translateY(15px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@media(min-width:1600px) {
  .site-header {
    padding-inline:calc((100vw - 1380px)/2)
  }
  .hero-wordmark {
    font-size:252px
  }
  .hero h1 {
    font-size:65px
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 64px)
  }
  .site-header {
    padding-inline:32px;
    gap:27px
  }
  .header-note {
    display:none
  }
  .site-header nav {
    margin-left:auto;
    gap:25px
  }
  .hero-copy {
    gap:45px
  }
  .hero-side {
    width:275px;
    min-width:240px
  }
  .hero-side .asterisk {
    left:-70px;
    top:5px;
    font-size:47px
  }
  .hero h1 {
    font-size:47px
  }
  .hero-wordmark {
    font-size:17.3vw
  }
  .section {
    padding-block:90px
  }
  .section-heading {
    gap:35px
  }
  .section-desc {
    font-size:15px;
    max-width:370px
  }
  .featured-grid {
    gap:26px
  }
  .featured .project-cover {
    padding:74px 25px 65px
  }
  .project-meta h3 {
    font-size:21px
  }
  .statement-grid {
    grid-template-columns:1fr 5fr 2.2fr;
    gap:28px
  }
  .statement-art {
    transform:scale(.8);
    transform-origin:left center
  }
  .team-grid {
    gap:22px
  }
  .team-mark {
    height:250px
  }
  .team-mark strong {
    font-size:39px
  }
  .team-card-info h3 {
    font-size:20px
  }
  .page-heading {
    gap:40px
  }
  .page-heading>p {
    width:325px;
    font-size:15px
  }
  .all-work .project-cover {
    min-height:300px;
    padding-inline:25px
  }
  .profile {
    grid-template-columns:1fr 2.2fr;
    gap:45px
  }
  .profile-id h2 {
    font-size:46px
  }
  .profile-content>h3 {
    font-size:30px
  }
  .skill-row {
    grid-template-columns:150px 1fr;
    gap:20px
  }
  .profile-symbol {
    transform:scale(.8);
    transform-origin:left top
  }
  .process-row {
    grid-template-columns:50px 1fr 1.15fr;
    gap:30px
  }
  .case-overview {
    grid-template-columns:.8fr 3fr;
    gap:40px
  }
  .case-overview>div {
    grid-template-columns:1fr;
    gap:26px
  }
  .case-overview h2 {
    font-size:35px
  }
  .decision-grid {
    gap:25px
  }
  .decision-grid h3 {
    font-size:21px
  }
  .footer-top {
    gap:30px 50px
  }
  .filter-bar {
    flex-wrap:wrap
  }
  .search-box {
    margin-left:auto
  }
  .profile-special li {
    font-size:15px
  }
}
@media(max-width:760px) {
  :root {
    --header:70px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  .site-header {
    padding-inline:20px;
    height:70px
  }
  .brand {
    font-size:27px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    margin-left:auto;
    width:40px;
    height:40px;
    border:0;
    background:transparent;
    padding:8px
  }
  .menu-toggle span {
    height:1px;
    width:24px;
    background:var(--ink);
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(4px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-4px) rotate(-45deg)
  }
  .site-header nav {
    display:none;
    position:absolute;
    top:69px;
    left:0;
    right:0;
    background:var(--paper);
    padding:22px 20px 28px;
    border-bottom:1px solid var(--line);
    gap:9px;
    flex-direction:column;
    align-items:stretch
  }
  .site-header nav.open {
    display:flex
  }
  .site-header nav>a {
    font-size:21px;
    padding:12px 0;
    line-height:1.4
  }
  .site-header nav .nav-contact {
    margin:9px 0 0;
    padding:11px 13px;
    font-size:16px;
    width:100%;
    text-align:center
  }
  .hero {
    padding-top:26px
  }
  .hero-overline {
    font-size:11px;
    gap:15px
  }
  .hero-overline>span {
    display:none
  }
  .hero-copy {
    display:block;
    padding-top:33px;
    padding-bottom:31px
  }
  .hero h1 {
    font-size:clamp(29px,8.3vw,43px);
    line-height:1.37;
    letter-spacing:-.055em
  }
  .hero-side {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    width:auto;
    min-width:0;
    max-width:100%;
    padding:0;
    margin-top:33px;
    padding-left:55px;
    font-size:16px
  }
  .hero-side .asterisk {
    font-size:39px;
    left:0;
    top:1px
  }
  .hero-side p:first-of-type br {
    display:none
  }
  .hero-side p+p {
    margin-top:13px;
    font-size:14px;
    line-height:1.8
  }
  .hero-side .text-link {
    margin-top:15px;
    font-size:13px;
    padding-bottom:4px
  }
  .hero-wordmark {
    font-size:17.2vw;
    line-height:1;
    letter-spacing:-.075em;
    margin-top:10px
  }
  .hero-bottom {
    font-size:11px;
    margin-top:17px;
    padding:16px 0;
    gap:10px
  }
  .hero-bottom span:last-child {
    display:none
  }
  .section {
    padding-block:66px
  }
  .selected {
    padding-top:52px
  }
  .section-heading {
    display:block;
    margin-bottom:34px
  }
  .eyebrow {
    font-size:12px;
    margin-bottom:18px
  }
  .section-heading h2 {
    font-size:33px;
    line-height:1.35
  }
  .section-desc {
    font-size:14px;
    margin-top:23px;
    line-height:1.9;
    max-width:100%
  }
  .section-desc br {
    display:none
  }
  .featured-grid,.work-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .featured-grid .project-card:nth-child(2) {
    margin-top:0
  }
  .featured .project-cover {
    padding:66px 28px 55px
  }
  .featured .screen-frame img,.featured:nth-child(2) .screen-frame img {
    aspect-ratio:1.4
  }
  .project-cover {
    min-height:260px;
    padding:65px 25px 55px
  }
  .cover-index {
    font-size:21px;
    top:21px;
    left:20px
  }
  .cover-label {
    left:20px;
    bottom:18px;
    font-size:11px
  }
  .view-project {
    right:20px;
    bottom:17px;
    font-size:12px
  }
  .project-meta {
    padding-top:17px;
    gap:15px
  }
  .project-meta p {
    font-size:12px;
    margin-bottom:4px
  }
  .project-meta h3 {
    font-size:22px;
    line-height:1.5
  }
  .project-meta>span {
    font-size:11px
  }
  .selected>.button {
    margin-top:30px;
    width:100%
  }
  .statement {
    padding-block:55px 64px
  }
  .statement-grid {
    display:block
  }
  .statement .eyebrow {
    padding-top:0;
    max-width:none;
    font-size:12px;
    margin-bottom:26px
  }
  .statement h2 {
    font-size:37px
  }
  .statement p:not(.eyebrow) {
    font-size:15px;
    line-height:1.95;
    margin-top:23px
  }
  .statement-art {
    display:none
  }
  .statement .text-link {
    margin-top:26px;
    font-size:14px
  }
  .desktop-only {
    display:none
  }
  .team-preview {
    padding-top:10px
  }
  .team-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .team-mark {
    height:240px;
    padding:20px
  }
  .team-mark strong {
    font-size:43px;
    bottom:25px;
    left:21px
  }
  .team-mark>span {
    font-size:19px
  }
  .team-mark i {
    right:-15px
  }
  .team-card-info {
    padding-top:18px
  }
  .team-card-info>p {
    font-size:12px;
    margin-bottom:10px
  }
  .team-card-info h3 {
    font-size:23px
  }
  .team-card-info .text-link {
    margin-top:17px;
    font-size:14px
  }
  .footer {
    padding-top:57px
  }
  .footer-top {
    display:block;
    padding-bottom:45px
  }
  .footer-top .eyebrow {
    font-size:12px;
    margin-bottom:21px
  }
  .footer-top h2 {
    font-size:37px
  }
  .footer-action {
    padding-top:26px;
    font-size:14px
  }
  .footer-action .button-row {
    margin-top:24px;
    gap:8px
  }
  .footer .button {
    font-size:13px;
    padding-inline:18px;
    min-height:49px
  }
  .contact-note {
    font-size:12px;
    line-height:1.9;
    margin-top:18px
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:13px 25px;
    padding-block:25px 29px
  }
  .footer-logo {
    width:100%;
    font-size:37px;
    margin-bottom:3px
  }
  .footer-bottom>p {
    width:100%;
    font-size:11px;
    margin-right:0
  }
  .footer-bottom>a:not(.footer-logo) {
    font-size:12px;
    padding:0
  }
  .footer-bottom>span {
    margin-left:auto;
    font-size:11px
  }
  .page-intro {
    padding-block:50px 45px
  }
  .page-heading {
    display:block
  }
  .page-heading h1 {
    font-size:39px;
    line-height:1.35
  }
  .page-heading>p {
    width:auto;
    max-width:100%;
    font-size:15px;
    margin-top:26px;
    padding:0
  }
  .filter-bar {
    display:block;
    padding:17px 0
  }
  .filters {
    gap:18px 22px
  }
  .filter {
    font-size:13px
  }
  .filter span {
    font-size:12px
  }
  .search-box {
    display:block;
    margin-top:18px
  }
  .search-box input {
    width:100%;
    font-size:14px;
    padding-bottom:10px
  }
  .filter-count {
    padding-block:15px 22px;
    font-size:12px
  }
  .all-work .project-cover {
    min-height:260px
  }
  .project-list {
    padding-bottom:60px
  }
  .archive-note {
    margin-top:45px;
    gap:15px;
    font-size:12px;
    align-items:flex-start
  }
  .archive-note br {
    display:none
  }
  .small-plus {
    font-size:25px;
    line-height:1.4
  }
  .team-band {
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:15px 24px;
    margin-top:38px;
    padding-block:20px
  }
  .team-band>span {
    font-size:18px;
    flex:none;
    min-width:70px
  }
  .team-band small {
    font-size:11px
  }
  .team-band>b {
    display:none
  }
  .profile {
    display:block;
    padding-block:50px 55px;
    scroll-margin-top:90px
  }
  .profile-id h2 {
    font-size:43px;
    margin-bottom:8px
  }
  .profile-en {
    font-size:20px
  }
  .career-badge {
    margin-top:16px;
    font-size:12px
  }
  .profile-symbol {
    display:none
  }
  .profile-content {
    padding-top:35px
  }
  .profile-content>h3 {
    font-size:27px;
    line-height:1.45
  }
  .profile-intro {
    margin-top:21px;
    font-size:16px;
    line-height:1.9
  }
  .profile-special {
    margin-top:30px;
    padding-top:23px
  }
  .profile-special li {
    font-size:14px;
    gap:13px;
    line-height:1.85
  }
  .profile-special ol {
    gap:11px
  }
  .profile-skills {
    margin-top:27px
  }
  .skill-row {
    display:block;
    padding:19px 0
  }
  .skill-row h4 {
    font-size:15px;
    margin-bottom:8px
  }
  .skill-row p {
    font-size:14px;
    line-height:1.9
  }
  .tool-tags {
    gap:7px;
    margin-top:18px
  }
  .tool-tags span {
    font-size:11px;
    padding:4px 9px
  }
  .about-end {
    padding-block:55px 65px
  }
  .about-end h2 {
    font-size:34px
  }
  .about-end>p:not(.eyebrow) {
    font-size:15px;
    margin-top:20px
  }
  .about-end>p br {
    display:none
  }
  .about-end .button {
    margin-top:27px
  }
  .process-row {
    grid-template-columns:44px 1fr;
    gap:17px;
    padding-block:33px
  }
  .process-num {
    font-size:33px;
    grid-row:1/3
  }
  .process-row h2 {
    font-size:25px
  }
  .process-row .eyebrow {
    font-size:12px;
    margin-bottom:8px
  }
  .process-body {
    grid-column:2;
    font-size:15px
  }
  .process-body>p {
    font-size:15px;
    line-height:1.9
  }
  .process-body .tool-tags {
    margin-top:19px
  }
  .handoff {
    padding-block:60px 68px
  }
  .handoff-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .handoff-grid article {
    padding-top:18px
  }
  .handoff-grid h3 {
    font-size:23px;
    margin-top:14px;
    margin-bottom:12px
  }
  .handoff-grid p {
    font-size:15px
  }
  .handoff>.button {
    margin-top:30px
  }
  .case-intro {
    padding-block:28px 40px
  }
  .case-breadcrumb {
    font-size:12px;
    padding-bottom:17px;
    margin-bottom:30px
  }
  .case-intro>.eyebrow {
    font-size:12px;
    margin-bottom:17px
  }
  .case-intro h1 {
    font-size:clamp(27px,7.5vw,37px);
    line-height:1.4
  }
  .case-summary {
    font-size:16px;
    line-height:1.9;
    margin-top:21px
  }
  .case-meta {
    grid-template-columns:1fr;
    gap:15px;
    margin-top:29px;
    padding-top:19px
  }
  .case-meta>div {
    display:grid;
    grid-template-columns:78px 1fr;
    gap:15px
  }
  .case-meta dt {
    font-size:11px;
    margin:3px 0 0
  }
  .case-meta dd {
    font-size:13px;
    line-height:1.8
  }
  .case-cover {
    padding-block:23px 30px
  }
  .case-cover-label {
    font-size:11px;
    padding-bottom:17px
  }
  .case-cover-button>img {
    aspect-ratio:1.3
  }
  .expand-label {
    font-size:10px;
    gap:8px;
    padding:6px 9px;
    right:9px;
    bottom:9px
  }
  .expand-label b {
    font-size:17px
  }
  .case-nav>.wrap {
    gap:25px;
    justify-content:flex-start;
    overflow:auto;
    white-space:nowrap;
    width:calc(100% - 40px)
  }
  .case-nav a {
    font-size:12px;
    padding-block:15px
  }
  .case-section {
    padding-block:48px;
    scroll-margin-top:130px
  }
  .case-overview {
    display:block
  }
  .case-overview>.eyebrow {
    padding:0;
    margin-bottom:24px;
    font-size:12px
  }
  .case-overview>div {
    display:block
  }
  .case-overview h2 {
    font-size:31px;
    line-height:1.4
  }
  .case-overview>div>p {
    font-size:16px;
    line-height:1.9;
    margin-top:24px
  }
  .case-decisions {
    padding-top:50px
  }
  .decision-grid {
    grid-template-columns:1fr;
    gap:27px
  }
  .decision-grid article {
    padding-top:18px
  }
  .decision-grid article>span {
    font-size:22px
  }
  .decision-grid h3 {
    font-size:23px;
    margin-top:15px;
    margin-bottom:13px
  }
  .decision-grid p {
    font-size:15px;
    line-height:1.9
  }
  .reading-flow {
    margin-top:34px;
    padding-top:23px
  }
  .reading-flow>p {
    font-size:12px;
    margin-bottom:17px
  }
  .reading-flow ol {
    grid-template-columns:repeat(2,1fr)
  }
  .reading-flow li {
    padding:18px 16px;
    font-size:14px;
    border-bottom:1px solid #C9CBBE
  }
  .reading-flow li:nth-child(3) {
    border-left:0;
    border-bottom:0
  }
  .reading-flow li:nth-child(4) {
    border-bottom:0
  }
  .reading-flow li>span {
    margin-bottom:8px;
    font-size:12px
  }
  .screen-section {
    padding-block:48px 54px;
    scroll-margin-top:120px
  }
  .screen-gallery {
    grid-template-columns:1fr;
    gap:32px
  }
  .screen-item:first-child {
    grid-column:auto
  }
  .screen-item>button {
    padding:13px
  }
  .screen-item:first-child img {
    aspect-ratio:1.4
  }
  .tall-screen>button {
    height:480px
  }
  .screen-item figcaption {
    padding-top:15px
  }
  .screen-item figcaption h3 {
    font-size:18px
  }
  .screen-item figcaption p {
    font-size:12px;
    margin-top:5px
  }
  .long-screen-label {
    font-size:11px;
    padding:12px 16px;
    min-height:70px
  }
  .tall-screen .expand-label {
    bottom:44px
  }
  .case-source {
    padding-block:32px 35px;
    font-size:12px
  }
  .case-source .eyebrow {
    font-size:12px;
    margin-bottom:11px
  }
  .case-source .text-link {
    font-size:12px;
    margin-top:12px
  }
  .case-next {
    padding-block:44px 55px
  }
  .case-next>.eyebrow {
    font-size:12px;
    margin-bottom:17px
  }
  .case-next>a:first-of-type {
    display:block;
    padding-bottom:23px
  }
  .case-next h2 {
    font-size:31px;
    line-height:1.4
  }
  .case-next>a:first-of-type>span {
    display:block;
    margin-top:14px;
    font-size:12px
  }
  .case-next>.text-link {
    font-size:12px;
    margin-top:16px
  }
  .archive-detail {
    display:block;
    padding-block:47px 50px
  }
  .archive-detail>.eyebrow {
    font-size:12px;
    margin-bottom:24px
  }
  .archive-detail h2 {
    font-size:32px;
    margin-bottom:20px
  }
  .archive-detail>div>p {
    font-size:15px;
    line-height:1.9
  }
  .archive-detail .button {
    font-size:14px
  }
  .image-dialog {
    width:100vw;
    height:100dvh;
    max-width:100vw;
    margin:0
  }
  .dialog-toolbar {
    padding:12px 16px;
    height:60px;
    gap:14px
  }
  .dialog-title {
    font-size:12px;
    max-width:calc(100% - 65px);
    line-height:1.6
  }
  .dialog-original {
    display:none
  }
  .dialog-close {
    font-size:12px;
    gap:7px;
    white-space:nowrap
  }
  .dialog-close span {
    font-size:22px
  }
  .dialog-scroll {
    height:calc(100% - 60px);
    padding:12px
  }
  .dialog-image {
    max-width:none;
    width:100%;
    min-width:650px
  }
  .toast {
    font-size:13px;
    padding:12px 17px;
    bottom:17px
  }
}
@media(max-width:360px) {
  .hero h1 {
    font-size:28px
  }
  .hero-wordmark {
    font-size:17vw
  }
  .page-heading h1 {
    font-size:35px
  }
  .project-meta h3 {
    font-size:20px
  }
  .filters {
    gap:12px 16px
  }
  .filter {
    font-size:12px
  }
  .hero-side {
    padding-left:45px
  }
  .hero-side .asterisk {
    font-size:31px
  }
  .case-nav>.wrap {
    gap:20px
  }
  .case-next h2 {
    font-size:27px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
@media print {
  .site-header,.footer,.case-nav,.filter-bar,.button,.text-link,.expand-label,.cover-label,.view-project,.menu-toggle {
    display:none!important
  }
  body {
    background:#fff;
    color:#000
  }
  .wrap {
    width:100%
  }
  .section,.page-intro,.case-section {
    padding-block:30px
  }
  .project-card,.profile,.process-row,.decision-grid article {
    break-inside:avoid
  }
  .case-intro h1,.page-heading h1 {
    font-size:36px
  }
  .case-cover {
    padding:20px 0
  }
  .case-cover-button>img {
    max-height:300px;
    object-fit:contain
  }
  .screen-item>button {
    height:auto;
    padding:0
  }
  .screen-item img {
    height:auto
  }
  .screen-item {
    break-inside:avoid
  }
  .hero-wordmark {
    font-size:120px
  }
  .hero-side .asterisk {
    display:none
  }
}
/* Keep intrinsic image dimensions from widening compact layouts. */
.project-card,.screen-frame,.team-card {
  min-width:0
}
.screen-frame img,.case-cover-button>img {
  height:auto
}
.work-grid,.featured-grid,.team-grid,.screen-gallery {
  min-width:0
}
@media(max-width:760px) {
  .work-grid,.featured-grid,.team-grid,.screen-gallery {
    grid-template-columns:minmax(0,1fr)
  }
}
.planning-section {
  background:var(--paper);
  border-bottom:1px solid var(--line)
}
.planning-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px
}
.case-source .text-link+.text-link {
  margin-left:24px
}
.dialog-zoom {
  border:1px solid #b7b9ae;
  background:transparent;
  padding:7px 12px;
  font-size:12px;
  white-space:nowrap
}
.dialog-zoom[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink)
}
.image-dialog.original-size .dialog-image {
  width:var(--image-width);
  max-width:none
}
.dialog-title {
  min-width:0;
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
@media(max-width:760px) {
  .planning-actions {
    gap:9px;
    margin-top:24px
  }
  .planning-actions .button {
    width:100%;
    font-size:13px
  }
  .dialog-toolbar {
    gap:10px
  }
  .dialog-zoom {
    padding:5px 9px;
    font-size:11px
  }
  .dialog-image {
    width:100%;
    min-width:0
  }
  .case-source .text-link+.text-link {
    margin-left:18px
  }
}
.planning-actions .button.outline {
  color:var(--ink)
}
.planning-actions .button.outline:hover {
  color:var(--paper);
  background:var(--ink);
  border-color:var(--ink)
}
