:root{--bg:#f3efe7;--bg-strong:#e6dece;--surface:#fffbf5c7;--surface-strong:#241f18e0;--text:#181512;--text-soft:#181512b8;--line:#18151224;--accent:#7b5d34;--accent-soft:#7b5d3429;--shadow:0 24px 80px #40311b1f;--font-serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, "Times New Roman", serif;--font-sans:"Avenir Next", "Segoe UI", "PingFang SC", "Hiragino Sans GB", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);font-family:var(--font-sans);background:radial-gradient(circle at top,#d2c3a947,#0000 30%),linear-gradient(#f6f2e9 0%,#f1eadf 34%,#eee6d9 100%);min-height:100vh;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.section-label{color:var(--text-soft);letter-spacing:.24em;text-transform:uppercase;margin:0 0 .75rem;font-size:.76rem}.home-page,.place-page,.not-found{width:min(1200px,100% - 2rem);margin:0 auto}.hero{padding:1.2rem 0 5rem;position:relative;overflow:clip}.hero__backdrop{box-shadow:var(--shadow);background:linear-gradient(135deg,#ffffff4d,#0000 45%),linear-gradient(#473c281f,#ffffff2e),radial-gradient(circle at 80% 20%,#ad8d5833,#0000 35%),#ebe3d3;border:1px solid #ffffff80;border-radius:32px;position:absolute;inset:0}.hero__content,.hero__rail{z-index:1;position:relative}.hero__content{padding:4rem 1.5rem 2rem;animation:.9s ease-out both rise-in}.hero__eyebrow{color:var(--text-soft);letter-spacing:.28em;margin:0 0 1rem;font-size:.76rem}.hero h1,.intro h2,.place-page__intro h1,.not-found h1{font-family:var(--font-serif);letter-spacing:-.04em;margin:0;font-weight:600;line-height:.94}.hero h1{max-width:6ch;font-size:clamp(4.4rem,13vw,8.8rem)}.hero__summary{max-width:38rem;color:var(--text-soft);margin:1.5rem 0 0;font-size:1.05rem;line-height:1.9}.hero__meta{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.hero__meta span,.place-card__index,.place-card__body span,.gallery__item figcaption,.guide-button,.back-link{letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.hero__meta span{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffbf58c;border-radius:999px;padding:.7rem .95rem}.hero__rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:0 1.5rem 1.5rem;display:grid}.hero__tile{background:var(--surface);box-shadow:var(--shadow);border:1px solid #ffffff8c;border-radius:24px;margin:0;overflow:hidden}.hero__tile:nth-child(2){transform:translateY(2rem)}.hero__tile:nth-child(3){transform:translateY(.75rem)}.hero__tile img{aspect-ratio:4/5;object-fit:cover;width:100%}.hero__tile figcaption{justify-content:space-between;gap:1rem;padding:1rem 1rem 1.1rem;display:flex}.hero__tile strong{font-size:1rem}.hero__tile span{color:var(--text-soft);font-size:.84rem}.intro{grid-template-columns:1.1fr .9fr;align-items:end;gap:2rem;padding:2rem 0 2.5rem;display:grid}.intro h2{font-size:clamp(2.3rem,4vw,4rem)}.intro p:last-child{color:var(--text-soft);margin:0;line-height:1.9}.places-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.2rem;padding-bottom:5rem;display:grid}.place-card{grid-column:span 4;min-height:100%;animation:.7s ease-out both rise-in}.place-card:nth-child(5n+1),.place-card:nth-child(5n+4){grid-column:span 5}.place-card:nth-child(5n+2),.place-card:nth-child(5n+3),.place-card:nth-child(5n+5){grid-column:span 3}.place-card__link{background:var(--surface);min-height:100%;box-shadow:var(--shadow);border:1px solid #ffffff8f;border-radius:24px;flex-direction:column;transition:transform .26s,box-shadow .26s;display:flex;overflow:hidden}.place-card__link:hover{transform:translateY(-6px);box-shadow:0 28px 90px #40311b29}.place-card__media img{aspect-ratio:4/5;object-fit:cover;width:100%}.place-card__body{grid-template-columns:auto 1fr;gap:1rem;padding:1rem 1rem 1.25rem;display:grid}.place-card__index,.place-card__body span{color:var(--text-soft)}.place-card__body h2{font-size:1.1rem;font-family:var(--font-serif);margin:0}.place-card__body p{color:var(--text-soft);margin:.35rem 0 0;font-size:.96rem;line-height:1.7}.place-page{padding:1.5rem 0 5rem}.place-page__hero{grid-template-columns:minmax(0,1fr);gap:2rem;padding:1rem 0 2rem;display:grid}.back-link{border:1px solid var(--line);background:#fffbf58a;border-radius:999px;width:fit-content;padding:.8rem 1rem}.place-page__intro{gap:1.25rem;max-width:44rem;display:grid}.place-page__intro h1{font-size:clamp(3.3rem,10vw,7rem)}.place-page__intro p{color:var(--text-soft);margin:0;font-size:1.04rem;line-height:1.9}.guide-button{background:var(--surface-strong);color:#f7f1e5;border:1px solid #0000;border-radius:999px;width:fit-content;padding:.95rem 1.2rem}.guide-button--disabled{color:#1815127a;background:#473c2824}.curator-note{box-shadow:var(--shadow);background:#fffaf3a3;border:1px solid #ffffff94;border-radius:24px;margin-top:.4rem;padding:1.25rem 1.25rem 1.35rem}.curator-note .section-label{margin-bottom:.9rem}.curator-note__body{gap:.9rem;display:grid}.curator-note__body p{color:var(--text-soft);margin:0;font-size:1rem;line-height:1.92}.gallery{gap:1.2rem;display:grid}.gallery__item{box-shadow:var(--shadow);background:#fffaf3b8;border:1px solid #ffffff85;border-radius:28px;margin:0;overflow:hidden}.gallery__item img{object-fit:cover;width:100%}.gallery__item figcaption{color:var(--text-soft);justify-content:space-between;gap:1rem;padding:1rem 1.1rem 1.2rem;display:flex}.not-found{text-align:center;place-items:center;min-height:100vh;display:grid}.not-found p{max-width:30rem;color:var(--text-soft);line-height:1.8}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width:960px){.hero__rail,.intro,.places-grid{grid-template-columns:1fr}.hero__tile:nth-child(2),.hero__tile:nth-child(3){transform:none}.place-card,.place-card:nth-child(5n+1),.place-card:nth-child(5n+2),.place-card:nth-child(5n+3),.place-card:nth-child(5n+4),.place-card:nth-child(5n+5){grid-column:auto}}@media (max-width:640px){.home-page,.place-page,.not-found{width:min(100% - 1rem,1200px)}.hero{padding-top:.5rem}.hero__content{padding:3rem 1rem 1.5rem}.hero__rail{gap:.8rem;padding:0 1rem 1rem}.intro{gap:1rem;padding:1.5rem 0 2rem}.places-grid{gap:1rem}.place-card__body{grid-template-columns:1fr}.place-page{padding-top:1rem}}
