:root{
  --paper:#f6f2e9;
  --ink:#182b40;
  --red:#a42f2d;
  --muted:#46534f;
  --line:#d6d0c3;
  --font:"PingFang TC","Microsoft JhengHei","Noto Sans TC",sans-serif}

*{
  box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:24px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font);
  font-size:18px;
  -webkit-font-smoothing:antialiased}
a{
  color:inherit;
  text-decoration:none}
button{
  font:inherit}
button,a{
  -webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{
  outline:3px solid var(--red);
  outline-offset:5px}
.wrap{
  width:min(1240px,calc(100% - 96px));
  margin-inline:auto}
.skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:10;
  padding:12px 18px;
  background:var(--ink);
  color:white;
  transform:translateY(-160%)}
.skip-link:focus{
  transform:translateY(0)}
.masthead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-block:27px}
.identity{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-family:var(--font);
  font-size:22px;
  font-weight:bold;
  letter-spacing:.05em}
.identity span{
  margin-left:8px;
  color:var(--red);
  font-weight:normal}
.edition{
  font-size:16px;
  letter-spacing:.12em}
.edition-divider{
  margin-inline:12px;
  color:var(--red)}
.intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:50px;
  padding-block:58px 46px;
  align-items:end}
.eyebrow{
  font-size:16px;
  letter-spacing:.14em;
  margin:0 0 20px}
.year{
  font-family:var(--font);
  font-size:36px;
  line-height:1;
  margin:0 0 14px;
  letter-spacing:.05em}
.year span{
  color:var(--red)}
h1{
  font-family:var(--font);
  font-size:clamp(50px,5.7vw,82px);
  font-weight:600;
  letter-spacing:.05em;
  line-height:1.15;
  margin:0}
.title-dot{
  color:var(--red)}
.intro-note{
  border-left:1px solid var(--line);
  padding-left:28px;
  margin-bottom:5px}
.intro-note p{
  font-family:var(--font);
  font-size:22px;
  line-height:1.8;
  margin:0 0 24px}
.view-all{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  font-size:18px;
  min-height:48px;
  padding-block:10px;
  border-bottom:1px solid var(--ink)}
.view-all span{
  font-size:21px;
  color:var(--red)}
.proposal-nav{
  display:flex;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-block:18px;
  align-items:center}
.nav-caption{
  font-family:var(--font);
  font-size:18px;
  color:var(--muted)}
.nav-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px 32px}
.nav-links a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:18px;
  white-space:nowrap}
.nav-links a:hover,.view-all:hover,footer a:hover{
  color:var(--red)}
.nav-links span{
  font-family:var(--font);
  color:var(--red);
  margin-right:8px}
.proposal{
  padding-top:38px;
  scroll-margin-top:24px}
.proposal+.proposal{
  margin-top:72px;
  border-top:1px solid var(--line)}
.proposal-heading{
  display:flex;
  align-items:center;
  gap:24px;
  margin-bottom:22px}
.proposal-number{
  margin:0;
  font-family:var(--font);
  font-size:25px;
  color:var(--red)}
.proposal-number span{
  font-size:16px;
  color:var(--muted);
  margin-left:5px}
h2{
  margin:0;
  font-family:var(--font);
  font-size:34px;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.05em}
.proposal-tag{
  font-size:16px;
  color:var(--muted);
  margin-left:auto;
  letter-spacing:.12em}
figure{
  margin:0}
.artwork{
  display:block;
  width:100%;
  border:0;
  padding:0;
  background:var(--ink);
  position:relative;
  cursor:zoom-in;
  text-align:left}
.artwork img{
  display:block;
  width:100%;
  height:auto}
.image-hint{
  position:absolute;
  right:18px;
  bottom:18px;
  background:rgba(246,242,233,.95);
  padding:10px 15px;
  font-size:18px;
  color:var(--ink);
  letter-spacing:.04em;
  transition:background .2s}
.artwork:hover .image-hint{
  background:#fff}
.caption{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);
  gap:56px;
  padding-top:30px}
.story h3{
  font-family:var(--font);
  font-size:34px;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.025em;
  margin:0 0 12px}
.caption p{
  font-size:22px;
  line-height:1.9;
  margin:0;
  color:#293b47;
  overflow-wrap:break-word}
.design-note{
  border-left:1px solid var(--line);
  padding-left:32px}
.note-label{
  display:block;
  color:var(--red);
  font-size:16px;
  letter-spacing:.16em;
  margin-bottom:9px}
.design-note a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:18px;
  margin-top:14px;
  border-bottom:1px solid var(--line);
  padding-bottom:5px}
.design-note a span{
  margin-left:16px;
  color:var(--red)}
.design-note a:hover{
  border-color:var(--red);
  color:var(--red)}
footer{
  margin-top:100px;
  padding-block:32px;
  border-top:1px solid var(--ink);
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px}
footer p{
  margin:0;
  font-family:var(--font);
  font-size:19px}
footer p span{
  font-family:var(--font);
  margin-left:14px}
footer a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-left:auto;
  font-size:18px}
footer small{
  width:100%;
  font-size:16px;
  line-height:1.8;
  letter-spacing:.1em;
  color:var(--muted)}
dialog{
  border:0;
  background:var(--paper);
  color:var(--ink);
  padding:20px 24px 14px;
  width:min(1440px,calc(100% - 40px));
  max-height:calc(100dvh - 40px);
  overflow:auto}
dialog::backdrop{
  background:rgba(7,17,28,.85)}
.dialog-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px}
.dialog-bar h2{
  font-size:28px}
 .dialog-bar button{
  font-size:18px;
  min-height:48px;
  flex-shrink:0;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  padding:8px 12px;
  cursor:pointer;
  white-space:nowrap}
.dialog-bar button span{
  font-size:21px;
  margin-left:12px}
.dialog-image{
  text-align:center}
.dialog-image img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100dvh - 185px);
  object-fit:contain;
  margin:auto}
 .dialog-footnote{
  font-size:18px;
  line-height:1.8;
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  justify-content:space-between;
  margin:14px 0 0}
body.dialog-open{
  overflow:hidden}

@media(min-width:1500px){
  .intro{
  padding-block:68px 56px}
}

@media(max-width:1050px){
  
  .intro{
  grid-template-columns:1fr;
  gap:32px}

  .intro-note{
  max-width:640px;
  border:0;
  padding:0;
  margin:0}

  .intro-note p{
  margin-bottom:16px}

  .caption{
  grid-template-columns:1fr;
  gap:30px}

  .design-note{
  padding-left:24px}

  .proposal-nav{
  align-items:flex-start;
  flex-direction:column;
  gap:12px}

}

@media(max-width:760px){
  
  html{
  scroll-padding-top:16px}

  .wrap{
  width:calc(100% - 40px)}

  .masthead{
  padding-block:20px;
  align-items:flex-start;
  flex-direction:column;
  gap:12px}

  .identity{
  font-size:22px;
  display:inline-flex;
  align-items:center;
  min-height:44px}

  .edition{
  font-size:16px;
  line-height:1.8;
  letter-spacing:.02em}

  .edition-divider{
  margin-inline:6px}

  .intro{
  gap:28px;
  padding-block:38px 30px}

  .eyebrow{
  font-size:16px;
  line-height:1.8;
  letter-spacing:.04em;
  margin-bottom:20px}

  .year{
  font-size:32px;
  margin-bottom:16px}

  h1{
  font-size:clamp(36px,10vw,70px);
  letter-spacing:.015em}

  .intro-note{
  width:100%}

  .intro-note p{
  font-size:22px;
  line-height:1.9;
  margin-bottom:20px}

  .intro-note br{
  display:none}

  .view-all{
  font-size:18px;
  gap:14px;
  min-height:48px}

  .view-all span{
  font-size:24px;
  flex-shrink:0}

  .proposal-nav{
  padding-block:18px}

  .nav-caption{
  font-size:18px;
  line-height:1.8}

  .nav-links{
  width:100%;
  gap:8px 24px}

  .nav-links a{
  font-size:18px}

  .nav-links span{
  margin-right:6px}

  .proposal{
  padding-top:28px}

  .proposal-heading{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px 16px;
  margin-bottom:20px;
  align-items:center}

  .proposal-number{
  font-size:25px;
  white-space:nowrap}

  .proposal-number span{
  font-size:16px;
  margin-left:2px}

  h2{
  font-size:30px;
  letter-spacing:.025em}

  .proposal-tag{
  grid-column:2;
  margin-left:0;
  font-size:16px;
  line-height:1.8;
  letter-spacing:.02em}

  .image-hint{
  position:static;
  display:block;
  text-align:right;
  padding:10px 14px;
  font-size:18px;
  background:var(--paper);
  border-bottom:1px solid var(--line)}

  .caption{
  gap:26px;
  padding-top:26px}

  .story h3{
  font-size:30px;
  line-height:1.6;
  margin-bottom:14px}

  .caption p{
  font-size:22px;
  line-height:1.9}

  .caption br{
  display:none}

  .design-note{
  padding-left:18px}

  .note-label{
  font-size:16px;
  line-height:1.8}

  .proposal+.proposal{
  margin-top:54px}

  footer{
  margin-top:60px;
  padding-block:28px;
  gap:16px}

  footer p{
  font-size:20px}

  footer p span{
  margin-left:8px}

  footer small{
  font-size:16px;
  letter-spacing:.02em}

  dialog{
  width:calc(100% - 24px);
  padding:16px;
  max-height:calc(100dvh - 24px)}

  .dialog-bar{
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:16px}

  .dialog-bar h2{
  font-size:28px}

  .dialog-bar button{
  font-size:18px;
  padding:8px 12px}

  .dialog-footnote{
  font-size:18px;
  flex-direction:column;
  gap:4px}

  .dialog-image img{
  max-height:none}

}

@media(prefers-reduced-motion:reduce){
  html{
  scroll-behavior:auto}
*{
  transition:none!important}
}

