/* キャラクターが主役の、森の童話の街。 */
.forest-hero{position:relative;isolation:isolate;min-height:790px;background:#334b36;overflow:hidden;color:#fff9ee;display:flex;flex-direction:column;align-items:center;text-align:center}
.forest-scenery{position:absolute;inset:0;z-index:-3}.forest-scenery img{width:100%;height:100%;object-fit:cover;object-position:center 57%}.forest-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#0c251dcc 0%,#102a1e7a 31%,#182d1820 54%,#0e251e12 75%,#233d2d70 100%)}.forest-hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:65px;background:linear-gradient(0deg,var(--paper),#fff9ee00);pointer-events:none;z-index:3}
.forest-intro{position:relative;z-index:4;padding:35px 20px 0;max-width:850px}.forest-welcome{display:inline-flex;align-items:center;gap:9px;border:1px solid #d6d9a26e;border-radius:99px;padding:5px 17px;background:#193d2f80;font-size:10px;letter-spacing:.16em;margin-bottom:15px;backdrop-filter:blur(6px)}.forest-welcome:before{content:"✦";color:#f4d97e}.forest-title{font-family:var(--sans);font-size:clamp(33px,4.2vw,54px);font-weight:800;line-height:1.55;letter-spacing:.045em;margin-bottom:13px;text-shadow:0 3px 20px #12241980}.forest-title em{font-style:normal;color:#ffe8a3}.forest-description{font-size:13px;line-height:1.95;letter-spacing:.05em;color:#fff9ee;margin:0 0 19px;text-shadow:0 1px 8px #0008}.forest-hero .button{background:#f4d97e;color:#233c2c;border:1px solid #fcebad;box-shadow:0 5px 0 #715a32,0 12px 30px #142c1d35;padding:15px 28px;font-size:14px;gap:34px}.forest-hero .button:hover{background:#ffe9a8;transform:translateY(-2px)}.forest-meta{font-size:9px;margin-top:13px;color:#fff8e6;letter-spacing:.05em}
.forest-cast{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);width:min(1180px,96%);height:337px;display:flex;align-items:end;justify-content:center;gap:0;z-index:2}.forest-resident{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:end;flex:1;min-width:0;max-width:210px;text-decoration:none;transform-origin:bottom center;transition:transform .25s}.forest-resident img{width:100%;max-height:300px;object-fit:contain;filter:drop-shadow(0 12px 8px #192b2b65);transition:transform .25s}.forest-resident:nth-child(3){max-width:260px;flex:1.25;z-index:3;transform:translateY(10px)}.forest-resident:nth-child(3) img{max-height:340px}.forest-resident:nth-child(2),.forest-resident:nth-child(4){transform:translateY(-11px);z-index:2}.forest-resident:nth-child(1),.forest-resident:nth-child(5){transform:translateY(-28px);max-width:183px}.forest-resident:hover img{transform:translateY(-9px) rotate(-2deg)}.forest-resident-name{display:block;font-size:10px;line-height:1.65;padding:5px 13px;background:#fff9eeee;border:1px solid #e6dbb9;border-radius:100px;box-shadow:0 3px 8px #19312530;color:#294736;white-space:nowrap;font-weight:600}.forest-note{position:absolute;bottom:20px;z-index:4;font-size:8px;letter-spacing:.12em;color:#354d3b;margin:0;left:15px;right:15px}.forest-below{padding:25px 0 0}.forest-below:empty{display:none}
.residents-first{position:relative}.residents-first .section-head h2{font-size:34px}.residents-first .section-head .eyebrow{letter-spacing:.15em}.residents-first .type-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:23px}.residents-first .type-card{box-shadow:0 7px 0 #5467470f}.residents-first .resident-portrait img{max-width:240px;width:100%;padding-top:17px}.residents-first .resident-portrait{background:radial-gradient(ellipse at 50% 30%,#fff8e5,#eedcbb)}.residents-first .type-card:nth-child(2) .resident-portrait{background:radial-gradient(ellipse at 50% 30%,#fbf9ee,#d7e4c9)}.residents-first .type-card:nth-child(3) .resident-portrait{background:radial-gradient(ellipse at 50% 30%,#fff7ed,#e6d2c5)}.residents-first .type-card:nth-child(4) .resident-portrait{background:radial-gradient(ellipse at 50% 30%,#f4f9ef,#cedfda)}
@media(min-width:1450px){.forest-hero{min-height:860px}.forest-intro{padding-top:48px}.forest-cast{height:370px;bottom:55px}.forest-resident{max-width:225px}.forest-resident:nth-child(3){max-width:280px}.forest-resident img{max-height:330px}.forest-resident:nth-child(3) img{max-height:370px}}
@media(max-width:900px){.forest-hero{min-height:750px}.forest-intro{padding-top:35px}.forest-title{font-size:42px}.forest-cast{height:285px;bottom:60px;width:97%}.forest-resident-name{font-size:8px;padding:5px 9px}.forest-resident:nth-child(1),.forest-resident:nth-child(5){max-width:145px}.forest-resident:nth-child(3){max-width:220px}.forest-resident img{max-height:260px}.forest-resident:nth-child(3) img{max-height:290px}.residents-first .section-head h2{font-size:28px}}
@media(max-width:650px){.forest-hero{min-height:770px}.forest-scenery img{object-position:53% center}.forest-hero:before{background:linear-gradient(180deg,#0a251cda,#102a1e8c 34%,#1a361b20 58%,#19352125 80%,#233d2d66)}.forest-intro{padding:30px 16px 0;width:100%}.forest-welcome{font-size:8px;padding:5px 12px;letter-spacing:.08em;margin-bottom:17px}.forest-title{font-size:31px;letter-spacing:.02em;line-height:1.6;margin-bottom:17px}.forest-description{font-size:12px;line-height:2;margin-bottom:20px}.forest-description br.optional{display:none}.forest-hero .button{padding:15px 22px;font-size:13px;gap:28px}.forest-meta{font-size:8px;margin-top:13px}.forest-cast{height:285px;width:110%;bottom:54px;gap:0}.forest-resident:nth-child(1),.forest-resident:nth-child(5){display:none}.forest-resident:nth-child(2),.forest-resident:nth-child(4){max-width:33%;flex:1;transform:translateY(-27px)}.forest-resident:nth-child(3){max-width:39%;flex:1.15;transform:translateY(3px)}.forest-resident img{max-height:265px}.forest-resident:nth-child(3) img{max-height:290px}.forest-resident-name{font-size:8px;padding:5px 9px;white-space:normal;max-width:120px}.forest-note{font-size:7px;bottom:18px;letter-spacing:.035em}.residents-first .type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}.residents-first .section-head h2{font-size:25px}.residents-first .resident-portrait img{padding-top:19px}.forest-below{padding-top:20px}}
@media(max-width:360px){.forest-hero{min-height:735px}.forest-title{font-size:28px}.forest-description{font-size:11px}.forest-welcome{font-size:7px}.forest-hero .button{font-size:12px;padding:14px 20px}.forest-cast{height:250px;bottom:60px}.forest-resident:nth-child(3) img{max-height:250px}.forest-resident img{max-height:220px}.forest-resident-name{font-size:7px;padding:4px 7px}.forest-meta{font-size:7px}.forest-note{font-size:6px}}
.forest-hero:before{background:linear-gradient(180deg,#0c251de6 0%,#102a1ebd 42%,#182d182e 62%,#0e251e12 80%,#233d2d70 100%)}
@media(max-width:650px){.forest-cast{width:110%}.forest-resident:nth-child(2),.forest-resident:nth-child(4){flex:0 0 34%;max-width:34%}.forest-resident:nth-child(3){flex:0 0 43%;max-width:43%}.forest-description{font-size:13px}}
@media(prefers-reduced-motion:reduce){.forest-resident,.forest-resident img{transition:none!important}.forest-resident:hover img{transform:none!important}}
.forest-intro .forest-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:21px 0 0;font-size:13px;font-weight:600;line-height:1.6;letter-spacing:.025em;color:#fff9ee}
.forest-meta li{display:flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid #a9b993;border-radius:8px;background:#203c35}
.forest-meta li span{color:#f4d97e;font-weight:700}
@media(max-width:650px){.forest-intro .forest-meta{font-size:12px;gap:7px;margin-top:20px;max-width:355px;margin-left:auto;margin-right:auto}.forest-meta li{padding:6px 10px}.forest-meta li:last-child{flex-basis:100%;justify-content:center;max-width:235px}}
