.memo-page,.archive-page{padding-top:112px;background:#fff;min-height:100vh}
.memo-page{--memo-image-fade:280ms}
.memo-hero,.archive-hero{min-height:52svh;padding:42px 16px 34px;display:flex;flex-direction:column;justify-content:flex-end;border-bottom:1px solid var(--line)}
.memo-hero__inner,.archive-hero__inner{width:100%;max-width:1180px;margin:0 auto}
.memo-hero h1,.archive-hero h1{font-size:clamp(42px,12vw,128px);line-height:.82;letter-spacing:-.065em;margin:0;text-transform:uppercase;max-width:none}
.memo-hero .note,.archive-hero .note{max-width:540px;margin:26px 0 0;font-size:12.5px;color:#555}
.memo-index{display:flex;gap:7px;overflow-x:auto;padding:13px 16px 15px;border-bottom:1px solid var(--line);scrollbar-width:none;background:#fff}
.memo-index::-webkit-scrollbar{display:none}
.memo-index a{flex:0 0 auto;border:1px solid var(--line);padding:7px 10px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.04em}
.memo-index a:hover{border-color:#111}
.memo-entry{padding:48px 16px 58px;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.memo-entry__inner{max-width:1180px;margin:0 auto;display:grid;gap:30px}
.memo-copy{max-width:560px}
.memo-meta{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:13px;border-bottom:1px solid #111;margin-bottom:26px}
.memo-number{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.memo-date{font-size:10px;color:var(--muted)}
.memo-copy h2{font-size:clamp(24px,7vw,58px);line-height:.96;letter-spacing:-.045em;text-transform:none;margin:0 0 25px;max-width:500px}
.memo-copy p{font-size:12.5px;line-height:1.66;margin:0 0 16px;max-width:540px}
.memo-copy p:last-child{margin-bottom:0}
.memo-carousel{position:relative;min-width:0}
.memo-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:var(--soft)}
.memo-gallery::-webkit-scrollbar{display:none}
.memo-gallery:focus-visible{outline:1px solid #111;outline-offset:3px}
.memo-gallery figure{position:relative;isolation:isolate;height:clamp(420px,68svh,650px);margin:0;scroll-snap-align:start;scroll-snap-stop:always;background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden}
.memo-gallery figure::before{content:"";position:absolute;inset:-8px;z-index:0;background-color:var(--soft);background-image:var(--memo-placeholder,none);background-repeat:no-repeat;background-position:center;background-size:contain;filter:blur(12px);transform:scale(1.04);opacity:1;transition:opacity var(--memo-image-fade) ease;pointer-events:none}
.memo-gallery picture{position:absolute;inset:0;z-index:1;display:block}
.memo-gallery img{display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity var(--memo-image-fade) ease}
.memo-gallery figure.is-loaded img{opacity:1}
.memo-gallery figure.is-loaded::before{opacity:0}
.memo-gallery figure.is-error img{opacity:0}
.memo-carousel__arrow{display:none;position:absolute;top:50%;z-index:4;width:32px;height:46px;padding:0;border:0;background:rgba(255,255,255,.52);color:rgba(5,5,5,.65);font:200 28px/1 Arial,sans-serif;align-items:center;justify-content:center;transform:translateY(-50%);cursor:pointer;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.memo-carousel__arrow:hover{background:rgba(255,255,255,.78);color:#050505}
.memo-carousel__arrow--prev{left:10px}
.memo-carousel__arrow--next{right:10px}
.memo-carousel__count{position:absolute;right:10px;bottom:10px;z-index:4;padding:6px 8px;background:rgba(255,255,255,.72);color:#111;font-size:9px;line-height:1;letter-spacing:.05em;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);pointer-events:none}
.archive-stage{padding:16px 16px 72px}
.archive-empty{max-width:1180px;min-height:58svh;margin:0 auto;background:#0b0b0b;color:var(--paper);padding:30px 22px;display:flex;flex-direction:column;justify-content:space-between}
.archive-empty__top{display:flex;justify-content:space-between;gap:20px;color:rgba(245,241,234,.52);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.archive-empty__center{max-width:660px;padding:70px 0}
.archive-empty h2{font-size:clamp(36px,10vw,92px);line-height:.88;letter-spacing:-.055em;text-transform:uppercase;color:var(--paper);max-width:none}
.archive-empty p{max-width:480px;margin:25px 0 0;font-size:12.5px;line-height:1.6;color:rgba(245,241,234,.64)}
.archive-empty__foot{display:flex;flex-wrap:wrap;gap:8px 22px;color:rgba(245,241,234,.45);font-size:10px;text-transform:uppercase;letter-spacing:.045em}
@media(min-width:760px){
  .memo-page,.archive-page{padding-top:126px}
  .memo-hero,.archive-hero{min-height:58svh;padding:58px 7vw 48px}
  .memo-hero h1,.archive-hero h1{font-size:clamp(86px,13vw,176px)}
  .memo-index{position:sticky;top:76px;z-index:20;padding-left:7vw;padding-right:7vw;background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}
  .memo-entry{padding:84px 7vw 100px}
  .memo-entry__inner{grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);gap:clamp(50px,8vw,130px);align-items:start}
  .memo-copy{position:sticky;top:145px}
  .memo-copy h2{font-size:clamp(34px,4vw,62px)}
  .memo-gallery{grid-auto-columns:100%}
  .memo-gallery figure{height:clamp(500px,68vh,760px)}
  .memo-carousel__arrow{display:flex}
  .memo-entry:nth-of-type(even) .memo-entry__inner{grid-template-columns:minmax(0,1.55fr) minmax(260px,.72fr)}
  .memo-entry:nth-of-type(even) .memo-copy{grid-column:2;grid-row:1}
  .memo-entry:nth-of-type(even) .memo-carousel{grid-column:1;grid-row:1}
  .archive-stage{padding:24px 7vw 110px}
  .archive-empty{padding:42px 46px}
}
@media(min-width:1180px){
  .memo-entry__inner{grid-template-columns:minmax(300px,.68fr) minmax(0,1.7fr)}
  .memo-entry:nth-of-type(even) .memo-entry__inner{grid-template-columns:minmax(0,1.7fr) minmax(300px,.68fr)}
}
@media(prefers-reduced-motion:reduce){
  .memo-gallery,.memo-gallery img,.memo-gallery figure::before{scroll-behavior:auto;transition-duration:.01ms}
}
