:root{--ink:#284337;--ink-soft:#52675d;--cream:#fbf7ee;--paper:#fffdf7;--sage:#e6ece0;--yellow:#edc75f;--line:#d9dfd3;--page:1180px;--header:88px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 14px)}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;line-height:1.75;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.35}h2{font-size:clamp(2rem,4.2vw,3.7rem);letter-spacing:.045em}p{line-height:1.9}.container{width:min(calc(100% - 64px),var(--page));margin-inline:auto}.section-pad{padding-block:clamp(85px,10vw,150px)}.skip-link{position:fixed;z-index:100;top:-60px;left:12px;background:#fff;padding:8px 16px}.skip-link:focus{top:12px}.demo-ribbon{min-height:28px;background:#385949;color:#fff;text-align:center;font-size:11px;letter-spacing:.045em;padding:3px 14px}.demo-ribbon span{opacity:.6;margin-inline:5px}.site-header{height:var(--header);position:sticky;top:0;z-index:40;background:rgba(251,247,238,.95);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;padding-inline:max(4vw,calc((100vw - 1360px)/2));border-bottom:1px solid rgba(40,67,55,.08);transition:box-shadow .3s}.site-header.scrolled{box-shadow:0 8px 28px rgba(33,63,48,.08)}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-mark{width:47px;height:47px}.brand strong{display:block;font-size:25px;font-weight:800;letter-spacing:.1em;line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:.12em;font-weight:700;color:var(--ink-soft);margin-top:3px}.site-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px)}.site-nav>a:not(.nav-contact){font-size:11px;letter-spacing:.13em;font-weight:800;line-height:1.2;transition:color .25s}.site-nav>a:not(.nav-contact):hover{color:#73935b}.site-nav>a:not(.nav-contact) span{display:block;font-size:10px;letter-spacing:.05em;font-weight:500;margin-top:6px}.nav-contact{display:flex;align-items:center;gap:16px;min-height:47px;padding:0 19px;border-radius:100px;background:var(--yellow);font-weight:800;font-size:13px;white-space:nowrap;transition:transform .25s,background .25s}.nav-contact:hover,.pill-link:hover{transform:translateY(-3px)}.menu-toggle{display:none}.hero{height:min(760px,calc(100svh - 116px));min-height:600px;position:relative;isolation:isolate;overflow:hidden;background:#d8dfcf}.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,52,38,.14),transparent 52%)}.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 55%;position:absolute;inset:0;z-index:-2;animation:hero-arrive 1.3s ease-out both}.hero-card{position:absolute;left:max(5.5vw,calc((100vw - 1280px)/2));bottom:72px;width:min(510px,44vw);padding:43px 45px 44px;background:rgba(255,253,247,.94);box-shadow:0 24px 65px rgba(35,55,41,.12);border-radius:6px 64px 6px 6px;animation:card-arrive .85s .15s ease-out both}.eyebrow,.section-label{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:800;letter-spacing:.18em;line-height:1.4}.eyebrow-line{height:1px;width:27px;background:#95a55c}.hero-card h1{font-size:clamp(2.2rem,3.9vw,3.8rem);font-weight:850;letter-spacing:.035em;line-height:1.4;margin:20px 0}.hero-card h1 em{font-style:normal;white-space:nowrap}.hero-lead{font-size:15px;font-weight:600;margin-bottom:25px}.pill-link{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;border-radius:100px;padding:15px 21px 15px 26px;min-height:52px;font-size:13px;font-weight:800;line-height:1.25;transition:transform .25s,background .25s}.pill-link.dark{background:var(--ink);color:white;border:0}.pill-link.dark:hover{background:#41684f}.pill-link span:last-child{font-size:21px;font-weight:400;line-height:1}.hero-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:20px 5vw;color:white;font-size:10px;font-weight:800;letter-spacing:.2em;text-shadow:0 1px 5px rgba(0,0,0,.4)}.hero-bottom span:last-child span{margin-left:10px;font-size:16px}.concept{background:var(--paper);position:relative;overflow:hidden}.concept::after{content:"";position:absolute;width:340px;height:340px;border:1px solid #e8eadf;border-radius:50%;right:-160px;bottom:-210px;box-shadow:0 0 0 50px #f8f8ee,0 0 0 51px #e8eadf}.concept-grid{display:grid;grid-template-columns:220px minmax(0,1fr) 160px;gap:50px;align-items:start}.section-label{color:#73935b;margin-bottom:26px}.section-label>span:last-child{color:#9caf91;font-weight:500;margin-left:6px}.label-dot{width:7px;height:7px;background:var(--yellow);border-radius:50%;flex-shrink:0}.concept .section-label{margin-top:13px}.small-intro{font-size:14px;font-weight:800;color:#6b8b64;letter-spacing:.15em}.concept-copy h2{margin-bottom:32px}.understroke{background:linear-gradient(transparent 76%,#f6e6a9 76%)}.concept-copy>p:last-child{max-width:660px;color:var(--ink-soft);font-size:15px}.concept-stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;width:150px;height:150px;border:1px solid #c6d7bc;border-radius:50%;transform:rotate(12deg);color:#8fa385;font-family:Georgia,serif;font-size:14px;letter-spacing:.16em;line-height:1.6}.ideas{background:#edf1e8}.section-heading,.scenes-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:50px}.section-heading h2,.scenes-heading h2{margin-bottom:0}.section-heading>p{max-width:280px;color:var(--ink-soft);font-size:14px;margin-bottom:8px}.idea-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.idea-card{position:relative;background:var(--paper);min-height:390px;padding:32px 30px 30px;border-radius:5px 45px 5px 5px;overflow:hidden}.idea-card:nth-child(2){border-radius:45px 5px 5px 5px}.idea-card:nth-child(3){border-radius:5px 5px 45px 5px}.idea-no{font-family:Georgia,serif;font-size:13px;color:#a1ae98}.idea-glyph{position:absolute;top:27px;right:30px;width:86px;height:86px;border-radius:50%;background:#f5eabd}.idea-glyph::before,.idea-glyph::after{content:"";position:absolute}.view-glyph::before{inset:28px 16px;border:2px solid #71936f;border-radius:50%}.view-glyph::after{width:17px;height:17px;left:35px;top:35px;background:#71936f;border-radius:50%}.run-glyph::before{width:58px;height:25px;left:13px;top:27px;border:2px solid #71936f;border-top:0;border-radius:0 0 50% 50%;transform:rotate(-16deg)}.run-glyph::after{width:9px;height:9px;right:24px;top:21px;background:#71936f;border-radius:50%;box-shadow:-32px 34px 0 #71936f}.grow-glyph::before{width:3px;height:45px;top:30px;left:42px;background:#71936f}.grow-glyph::after{width:35px;height:28px;top:18px;left:25px;border:2px solid #71936f;border-radius:50% 50% 2px 50%;transform:rotate(-35deg)}.idea-card h3{font-size:29px;margin:94px 0 12px}.idea-main{font-size:16px;font-weight:800;margin-bottom:22px}.idea-detail{font-size:13px;color:var(--ink-soft);margin:0}.scenes{background:var(--paper)}.scenes-head-right{max-width:270px}.scenes-head-right>p{font-size:14px;color:var(--ink-soft);margin:0 0 20px}.gallery-controls{display:none;gap:8px}.gallery-controls button{width:43px;height:43px;border:1px solid #becbbd;border-radius:50%;background:transparent;color:var(--ink);font-size:20px;transition:background .25s}.gallery-controls button:hover{background:var(--sage)}.scene-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.scene-card{min-width:0}.scene-image{position:relative;aspect-ratio:1/1.02;overflow:hidden;background:var(--sage);border-radius:4px 48px 4px 4px}.scene-card:nth-child(2) .scene-image{border-radius:48px 4px 4px 4px}.scene-card:nth-child(3) .scene-image{border-radius:4px 4px 48px 4px}.scene-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.scene-card:hover .scene-image img{transform:scale(1.055)}.scene-image>span{position:absolute;bottom:13px;left:14px;background:rgba(255,253,247,.94);font-size:10px;font-weight:800;letter-spacing:.1em;padding:6px 11px;border-radius:100px}.scene-caption{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding:20px 2px 12px}.scene-caption small{display:block;font-size:11px;color:#77976d;font-weight:800;letter-spacing:.12em}.scene-caption h3{font-size:19px;margin:7px 0 0}.scene-caption>span{font-size:23px;color:#77976d}.scene-card>p{font-size:13px;color:var(--ink-soft);margin:14px 3px}.scene-note{font-size:11px;color:#7a877e;margin:28px 0 0}.day{background:#f4eddc;position:relative}.day::after{content:"";position:absolute;right:5%;top:40px;width:140px;height:140px;border-radius:50%;background:#f0d887;opacity:.38;filter:blur(1px)}.day-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:9vw}.day-intro h2{margin-bottom:25px}.day-intro>p:last-child{font-size:15px;max-width:420px;color:var(--ink-soft)}.day-list{border-top:1px solid #cfc9ba}.day-list>div{display:grid;grid-template-columns:88px 1fr;gap:20px;border-bottom:1px solid #cfc9ba;padding:25px 0}.day-list time{font-family:Georgia,serif;font-size:21px;color:#8a9d77}.day-list p{margin:0}.day-list strong{display:block;font-size:17px;margin-bottom:5px}.day-list span{display:block;color:var(--ink-soft);font-size:13px}.message{background:var(--paper)}.message-grid{display:grid;grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr);gap:clamp(60px,8vw,125px);align-items:center}.message-photo{position:relative;margin-right:15px}.message-photo img{width:100%;height:600px;object-fit:cover;object-position:center 32%;border-radius:150px 5px 5px 5px}.message-photo::after{content:"";position:absolute;inset:18px -16px -18px 16px;border:1px solid #cad7bc;border-radius:150px 5px 5px 5px;z-index:-1}.message-photo>span{position:absolute;bottom:15px;left:16px;background:rgba(255,253,247,.88);font-size:10px;padding:6px 10px}.message-copy h2{margin-bottom:24px}.quote-mark{font-family:Georgia,serif;font-size:95px;color:#e5d898;height:65px;line-height:1}.message-strong{font-size:23px;font-weight:800;line-height:1.6;margin-bottom:26px}.message-copy>p:not(.section-label):not(.message-strong){font-size:14px;color:var(--ink-soft)}.signature{display:flex;align-items:end;gap:17px;margin-top:35px;border-top:1px solid var(--line);padding-top:20px}.signature span{font-size:12px;color:var(--ink-soft)}.signature strong{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:25px;font-weight:500;letter-spacing:.16em}.contact{background:#e5eddc}.contact-grid{display:grid;grid-template-columns:.85fr 1fr;gap:9vw}.contact-copy h2{margin-bottom:23px}.contact-copy>p:not(.section-label){font-size:15px;max-width:420px}.contact-note{background:#f7f9ef;border-left:4px solid #9cae80;padding:18px 20px;max-width:420px;margin-top:40px}.contact-note strong,.contact-note span{display:block}.contact-note strong{font-size:13px;margin-bottom:7px}.contact-note span{font-size:12px;color:var(--ink-soft)}.contact-form{background:var(--paper);padding:37px 42px;border-radius:5px 60px 5px 5px;box-shadow:0 20px 60px rgba(48,71,53,.06)}.contact-form label{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:800;margin-bottom:9px}.contact-form label span{font-size:10px;background:#eef1e8;padding:2px 8px;font-weight:600;color:#647468}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;border:1px solid #ced9ca;background:#fff;padding:11px 14px;border-radius:3px;outline:none;margin-bottom:23px;font-size:14px;color:var(--ink)}.contact-form :is(input,select,textarea):focus{border-color:#71936f;box-shadow:0 0 0 3px rgba(113,147,111,.16)}.contact-form textarea{resize:vertical;min-height:110px}.form-button{width:100%}.form-foot{font-size:11px;color:#738176;text-align:center;margin:10px 0 0}.form-result{background:#f3f6ed;padding:16px 18px;margin-top:18px;font-size:13px;border-left:3px solid #71936f}.footer{background:#284337;color:#fff;padding:60px 0 25px}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer-brand{font-size:27px;font-weight:800;letter-spacing:.09em}.footer-brand span{color:#eccb72;font-size:25px}.footer-grid p{font-size:13px;color:#becdc2}.footer nav{display:flex;flex-wrap:wrap;gap:21px;font-size:10px;font-weight:800;letter-spacing:.12em}.footer nav a:hover{text-decoration:underline}.copyright{text-align:right;margin-top:30px!important;font-size:10px!important;letter-spacing:.09em}.footer-note{margin-top:42px;padding-top:20px;border-top:1px solid rgba(255,255,255,.19);font-size:10px;color:#b4c7ba}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}@keyframes hero-arrive{from{transform:scale(1.05);opacity:.8}to{transform:scale(1);opacity:1}}@keyframes card-arrive{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:1050px){:root{--header:76px}.site-nav{gap:15px}.site-nav>a:not(.nav-contact){font-size:10px}.brand strong{font-size:21px}.brand small{font-size:8px}.brand-mark{width:40px;height:40px}.nav-contact{font-size:11px;gap:7px;padding:0 13px}.hero-card{width:490px;max-width:55vw}.concept-grid{grid-template-columns:155px 1fr;gap:35px}.concept-stamp{display:none}.message-photo img{height:560px}}
@media(max-width:760px){:root{--header:69px}.container{width:min(calc(100% - 36px),var(--page))}.section-pad{padding-block:80px}.demo-ribbon{font-size:9px;line-height:1.35;padding:6px 9px}.site-header{padding-inline:18px}.brand{gap:5px}.brand-mark{width:37px;height:37px}.brand strong{font-size:20px}.brand small{font-size:7px}.menu-toggle{display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column;width:58px;height:47px;border:0;background:transparent;color:var(--ink)}.menu-toggle span{width:22px;height:2px;background:var(--ink);transition:transform .25s}.menu-toggle b{font-size:8px;line-height:1;margin-top:3px;letter-spacing:.08em}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}.site-nav{position:absolute;top:var(--header);left:0;right:0;background:var(--cream);display:none;flex-direction:column;align-items:stretch;gap:0;padding:10px 20px 26px;box-shadow:0 25px 35px rgba(35,55,41,.14)}.site-nav.open{display:flex}.site-nav>a:not(.nav-contact){border-bottom:1px solid var(--line);padding:14px 5px;font-size:14px}.site-nav>a:not(.nav-contact) span{display:inline;margin-left:12px;font-size:11px}.nav-contact{margin-top:16px;justify-content:space-between;max-width:100%;font-size:14px;padding:0 20px}.hero{height:auto;min-height:0;display:flex;flex-direction:column;background:var(--paper)}.hero-image{position:relative;inset:auto;height:51svh;min-height:330px;max-height:520px;object-position:56% center;animation:none}.hero::after{display:none}.hero-card{position:relative;left:auto;bottom:auto;width:calc(100% - 28px);max-width:none;margin:-52px auto 0;padding:30px 24px 34px;z-index:1;border-radius:4px 40px 4px 4px;background:var(--paper);animation:none}.eyebrow{font-size:9px;letter-spacing:.1em}.hero-card h1{font-size:clamp(30px,8.5vw,47px);margin:13px 0 14px}.hero-card h1 em{white-space:normal}.hero-lead{font-size:13px}.hero-bottom{position:relative;color:var(--ink-soft);text-shadow:none;padding:15px 18px 23px;font-size:8px}.concept-grid,.day-grid,.message-grid,.contact-grid{grid-template-columns:1fr;gap:26px}.concept .section-label{margin:0}.concept-copy h2{font-size:clamp(29px,8.5vw,43px);margin-bottom:25px}.concept-copy>p:last-child{font-size:14px}.section-heading,.scenes-heading{display:block;margin-bottom:30px}.section-heading h2,.scenes-heading h2{font-size:clamp(29px,8vw,43px)}.section-heading>p{max-width:100%;margin-top:18px}.idea-grid{grid-template-columns:1fr;gap:12px}.idea-card{min-height:0;padding:26px 27px 27px;border-radius:4px 35px 4px 4px!important}.idea-glyph{width:65px;height:65px;top:24px;right:23px;transform:scale(.8);transform-origin:top right}.idea-card h3{margin:44px 0 7px;font-size:24px}.idea-main{font-size:15px;margin-bottom:11px}.idea-main br{display:none}.idea-detail{font-size:12px}.scenes-head-right{max-width:none;margin-top:16px;display:flex;align-items:end;gap:15px;justify-content:space-between}.scenes-head-right>p{font-size:12px;max-width:260px}.gallery-controls{display:flex;flex-shrink:0}.gallery-controls button{width:37px;height:37px}.scene-track{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-18px;padding-inline:18px;scroll-padding-left:18px}.scene-track::-webkit-scrollbar{display:none}.scene-card{flex:0 0 min(80vw,340px);scroll-snap-align:start}.scene-image{aspect-ratio:1/1}.scene-caption h3{font-size:17px}.day-list>div{grid-template-columns:72px 1fr;gap:10px}.day-list strong{font-size:15px}.day-list span{font-size:12px}.message-photo{width:min(85%,400px);margin:0 auto 32px}.message-photo img{height:auto;aspect-ratio:4/5}.message-copy h2{font-size:clamp(31px,8.5vw,45px)}.message-strong{font-size:21px}.contact-note{margin-top:23px}.contact-form{padding:30px 24px;border-radius:5px 42px 5px 5px}.footer-grid{display:block}.footer nav{margin-top:30px;gap:13px 22px}.copyright{text-align:left}.footer-note{line-height:1.8}}
@media(max-width:380px){.hero-card h1{font-size:28px}.scenes-head-right{display:block}.gallery-controls{margin-top:14px}.brand strong{font-size:18px}.brand small{letter-spacing:.04em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:760px){.scenes-heading h2{font-size:clamp(23px,7vw,32px)}}

/* Section compositions: let each menu stop land on a complete visual idea. */
#concept,#ideas,#scenes,#message,#contact{scroll-margin-top:0}
.concept{padding-block:clamp(48px,6vh,75px)}
.concept-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);grid-template-rows:auto auto 1fr;column-gap:clamp(32px,5vw,82px);row-gap:8px;align-items:center}
.concept-grid>.section-label{grid-column:1/-1;grid-row:1;align-self:start}
.concept-title{grid-column:1;grid-row:2;align-self:end}
.concept-title h2{font-size:clamp(32px,3.45vw,50px);line-height:1.42;margin:0 0 15px}
.concept-title .small-intro{margin-bottom:15px}
.concept-visual{grid-column:2;grid-row:2/4;align-self:stretch;min-height:350px;overflow:hidden;border-radius:130px 5px 50px 5px}
.concept-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.concept-body{grid-column:1;grid-row:3;align-self:start;max-width:590px;font-size:15px;color:var(--ink-soft);margin:0}
#ideas{padding-block:clamp(38px,5vh,62px)}
#ideas .section-heading{margin-bottom:24px}
#ideas .section-heading h2{font-size:clamp(31px,3.5vw,49px);line-height:1.3}
.idea-card{min-height:0;padding:19px 20px 22px}
.idea-no{display:block;margin-bottom:8px}
.idea-visual{height:142px;overflow:hidden;border-radius:12px;background:#f1f4e9}
.idea-visual img{display:block;width:100%;height:100%;object-fit:cover}
.idea-card h3{margin:12px 0 4px;font-size:25px;line-height:1.3}
.idea-main{font-size:15px;line-height:1.55;margin:0 0 7px}
.idea-detail{font-size:12px;line-height:1.55}
#scenes{padding-block:clamp(26px,4vh,48px)}
#scenes .scenes-heading{margin-bottom:12px}
#scenes .scenes-heading h2{font-size:clamp(31px,3.45vw,49px);line-height:1.25}
.scene-image{aspect-ratio:1.65/1}
.scene-caption{padding-block:12px 9px}
.scene-caption h3{font-size:17px;margin-top:4px}
.scene-card>p{font-size:12px;line-height:1.55;margin:9px 3px 0}
.scene-note{margin-top:8px}
.day{padding-block:clamp(55px,7vh,80px)}
.day-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.1fr) minmax(0,1.2fr);gap:clamp(22px,3.2vw,52px);align-items:center}
.day-intro h2{font-size:clamp(30px,3.2vw,45px);line-height:1.4;margin-bottom:15px}
.day-intro>p:last-child{font-size:13px}
.day-photo{height:365px;overflow:hidden;border-radius:6px 100px 6px 6px}
.day-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.day-list>div{grid-template-columns:64px 1fr;gap:10px;padding:17px 0}
.day-list time{font-size:18px}
.day-list strong{font-size:14px;line-height:1.5}
.day-list span{font-size:12px;line-height:1.55}
#message{padding-block:clamp(42px,5.5vh,65px)}
.message-grid{gap:clamp(40px,5vw,85px)}
.message-photo img{height:500px}
.message-copy h2{font-size:clamp(31px,3.3vw,47px);line-height:1.35;margin-bottom:6px}
.quote-mark{font-size:62px;height:42px}
.message-strong{font-size:19px;line-height:1.5;margin:0 0 12px}
.message-copy>p:not(.section-label):not(.message-strong){font-size:12px;line-height:1.65;margin:0 0 10px}
.signature{margin-top:12px;padding-top:10px}
.signature strong{font-size:21px}
#contact{padding-block:clamp(40px,5.5vh,65px)}
.contact-grid{gap:clamp(36px,5vw,75px);align-items:start}
.contact-copy h2{font-size:clamp(31px,3.3vw,47px);line-height:1.35;margin-bottom:12px}
.contact-copy>p:not(.section-label){font-size:13px;line-height:1.65;margin-bottom:14px}
.contact-photo{height:165px;max-width:440px;overflow:hidden;border-radius:5px 75px 5px 5px}
.contact-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.contact-note{margin-top:12px;padding:12px 16px}
.contact-form{padding:24px 30px}
.contact-form input,.contact-form select,.contact-form textarea{margin-bottom:14px}
.contact-form textarea{min-height:80px}

@media(max-width:1050px){
 .concept-grid{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:20px 28px}
 .concept-visual{min-height:300px}
 .day-grid{grid-template-columns:1fr 1fr;gap:24px}
 .day-photo{height:330px}
 .day-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
 .day-list>div{display:block}
 .day-list time{display:block;margin-bottom:8px}
}
@media(max-width:760px){
 #concept,#ideas,#scenes,#message,#contact{scroll-margin-top:0}
 .concept,.day{padding-block:55px}
 .concept-grid{grid-template-columns:1fr;grid-template-rows:none;gap:12px}
 .concept-grid>.section-label,.concept-title,.concept-visual,.concept-body{grid-column:auto;grid-row:auto}
 .concept-title h2{font-size:clamp(28px,7.4vw,39px);margin-bottom:0}
 .concept-title .small-intro{margin-bottom:8px}
 .concept-visual{min-height:0;height:clamp(210px,55vw,320px);border-radius:65px 4px 35px 4px;margin-top:5px}
 .concept-body{font-size:13px;line-height:1.7}
 #ideas{padding-block:50px}
 #ideas .section-heading{margin-bottom:20px}
 #ideas .section-heading h2{font-size:clamp(27px,7vw,38px)}
 #ideas .section-heading>p{display:none}
 .idea-grid{gap:10px}
 .idea-card{display:grid;grid-template-columns:118px minmax(0,1fr);gap:0 14px;padding:10px 12px}
 .idea-no{grid-column:1/-1;margin-bottom:4px}
 .idea-visual{grid-column:1;grid-row:2/5;height:115px;align-self:start}
 .idea-card h3{grid-column:2;margin:0 0 4px;font-size:21px}
 .idea-main{grid-column:2;font-size:13px;margin-bottom:4px}
 .idea-detail{grid-column:2;font-size:11px;line-height:1.4}
 #scenes{padding-block:55px}
 #scenes .scenes-heading h2{font-size:clamp(27px,7vw,35px)}
 .scene-image{aspect-ratio:1.1/1}
 .day-grid{grid-template-columns:1fr;gap:20px}
 .day-intro h2{font-size:clamp(29px,7vw,39px)}
 .day-photo{height:260px}
 .day-list{grid-column:auto;display:block}
 .day-list>div{display:grid;grid-template-columns:70px 1fr;gap:10px;padding:15px 0}
 #message{padding-block:40px}
 .message-grid{grid-template-columns:1fr;gap:14px}
 .message-photo{width:min(60%,270px);margin:0 auto}
 .message-photo img{height:auto;aspect-ratio:4/4.5}
 .message-copy h2{font-size:clamp(29px,7.4vw,40px)}
 #contact{padding-block:55px}
 .contact-grid{grid-template-columns:1fr;gap:22px}
 .contact-copy{min-height:calc(100svh - var(--header) - 112px)}
 .contact-copy h2{font-size:clamp(29px,7.4vw,40px)}
 .contact-photo{height:250px;max-width:none}
 #contact-form{scroll-margin-top:0}
 .contact-form{padding:25px 23px}
}
@media(max-width:390px){
 .idea-card{grid-template-columns:100px minmax(0,1fr);gap:0 10px}
 .idea-visual{height:100px}
 .idea-detail{font-size:10px}
}

/* Quiet, round pictograms and viewport-sized section compositions. */
.idea-card{padding:22px 24px 24px}
.idea-no{position:absolute;right:25px;top:23px;margin:0}
.idea-visual{width:76px;height:76px;border-radius:50%;background:transparent}
.idea-visual img{width:100%;height:100%;object-fit:contain}
.idea-card h3{margin:13px 0 6px}
.idea-main{margin-bottom:8px}

@media(max-width:760px){
 html{scroll-padding-top:calc(var(--header) + 8px)}
 .section-pad{padding-block:clamp(18px,3svh,30px)}
 .section-pad .section-label{margin:0 0 8px}
 .hero-image{height:clamp(245px,40svh,360px);min-height:0;max-height:none}
 .hero-card{margin-top:-45px;padding:20px 21px 21px}
 .hero-card h1{font-size:clamp(27px,7.8vw,40px);margin:8px 0}
 .hero-lead{font-size:12px;margin-bottom:12px}
 .hero-card .pill-link{min-height:43px;padding:10px 17px;font-size:12px}
 .hero-bottom{padding-block:9px 12px}
 .concept,.day,#ideas,#scenes,#message,#contact{padding-block:clamp(18px,3svh,30px)}
 .concept-grid{gap:6px}
 .concept-title .small-intro{font-size:11px;margin:0 0 5px}
 .concept-title h2{font-size:clamp(24px,6.8vw,35px);line-height:1.3}
 .concept-visual{height:clamp(135px,36vw,190px);margin:4px 0;border-radius:48px 4px 30px 4px}
 .concept-visual img{object-position:center 42%}
 .concept-body{font-size:12px;line-height:1.55}
 #ideas .section-heading{margin-bottom:13px}
 #ideas .section-heading h2{font-size:clamp(24px,6.6vw,34px);line-height:1.25}
 .idea-grid{gap:8px}
 .idea-card{display:grid;grid-template-columns:66px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:10px;padding:11px 13px 12px;border-radius:4px 24px 4px 4px!important}
 .idea-no{right:12px;top:9px;font-size:10px}
 .idea-visual{grid-column:1;grid-row:1/3;width:62px;height:62px;align-self:center}
 .idea-card h3{grid-column:2;grid-row:1;margin:0 0 2px;font-size:19px}
 .idea-main{grid-column:2;grid-row:2;font-size:13px;line-height:1.35;margin:0}
 .idea-main br{display:none}
 .idea-detail{grid-column:1/-1;grid-row:3;font-size:12px;line-height:1.35;margin-top:5px}
 #scenes .scenes-heading{margin-bottom:10px}
 #scenes .scenes-heading h2{font-size:clamp(24px,6.6vw,32px);line-height:1.23}
 .scenes-head-right{margin:0;justify-content:flex-end}
 .scenes-head-right>p{display:none}
 .gallery-controls button{width:32px;height:32px;font-size:17px}
 .scene-card{flex-basis:min(76vw,315px)}
 .scene-image{aspect-ratio:1.55/1}
 .scene-caption{padding-block:8px 5px}
 .scene-caption h3{font-size:15px}
 .scene-card>p{font-size:11px;line-height:1.45;margin-top:6px}
 .scene-note{font-size:10px;line-height:1.4;margin-top:8px}
 .day-grid{gap:10px}
 .day-intro h2{font-size:clamp(25px,6.8vw,34px);line-height:1.3;margin-bottom:4px}
 .day-intro>p:last-child{font-size:11px;line-height:1.45;margin:0}
 .day-photo{height:clamp(125px,20svh,175px);border-radius:4px 58px 4px 4px}
 .day-list>div{grid-template-columns:60px 1fr;gap:8px;padding:7px 0}
 .day-list time{font-size:15px;margin:0}
 .day-list strong{font-size:12px;line-height:1.35;margin-bottom:2px}
 .day-list span{font-size:11px;line-height:1.35}
 #message .message-grid{gap:8px}
 .message-photo{width:min(47%,185px);margin:0 auto}
 .message-photo img{aspect-ratio:4/4.3}
 .message-photo::after{inset:8px -7px -8px 7px}
 .message-photo>span{font-size:7px;bottom:5px;left:5px;padding:3px 5px}
 .message-copy h2{font-size:clamp(25px,6.8vw,34px);line-height:1.25;margin-bottom:5px}
 .quote-mark{display:none}
 .message-strong{font-size:15px;line-height:1.4;margin-bottom:5px}
 .message-copy>p:not(.section-label):not(.message-strong){font-size:11px;line-height:1.45;margin-bottom:5px}
 .signature{margin-top:5px;padding-top:5px}
 .signature span{font-size:10px}
 .signature strong{font-size:17px}
 .contact-grid{gap:8px}
 .contact-copy{display:grid;grid-template-columns:minmax(0,1fr) 88px;grid-template-rows:auto auto auto auto;column-gap:10px;min-height:0}
 .contact-copy .section-label{grid-column:1;grid-row:1}
 .contact-copy h2{grid-column:1;grid-row:2;font-size:clamp(22px,5.8vw,29px);line-height:1.25;margin:0 0 5px}
 .contact-head-preface{display:none}
 .contact-copy>p:not(.section-label){grid-column:1;grid-row:3;font-size:12px;line-height:1.35;margin:0}
 .contact-photo{grid-column:2;grid-row:1/4;width:88px;height:100px;border-radius:50%;align-self:center}
 .contact-photo img{object-position:center}
 .contact-note{grid-column:1/-1;grid-row:4;margin-top:7px;padding:6px 9px;max-width:none}
 .contact-note strong{display:none}
 .contact-note span{font-size:11px;line-height:1.35}
 .contact-form{padding:15px 17px;border-radius:4px 30px 4px 4px}
 .contact-form label{font-size:12px;line-height:1.2;margin-bottom:3px}
 .contact-form label span{font-size:9px;padding:1px 6px}
 .contact-form input,.contact-form select,.contact-form textarea{font-size:13px;line-height:1.3;padding:7px 10px;margin-bottom:9px}
 .contact-form input,.contact-form select{height:42px}
 .contact-form textarea{height:60px;min-height:60px}
 .contact-form .form-button{min-height:44px;padding:8px 14px;font-size:12px}
 .form-foot{font-size:10px;line-height:1.2;margin-top:5px}
 #ideas,#contact{padding-block:14px}
}

@media(min-width:761px) and (max-height:700px){
 .hero{min-height:0;height:calc(100svh - 116px)}
 .hero-card{bottom:35px;padding:25px 32px}
 .hero-card h1{font-size:clamp(30px,3.2vw,46px);margin:10px 0}
 .hero-lead{margin-bottom:13px}
 .concept{padding-block:16px}
 .concept-visual{min-height:225px}
 #ideas,#scenes,#message,#contact{padding-block:14px}
 #ideas .section-heading{margin-bottom:13px}
 #scenes .scenes-heading{margin-bottom:2px}
 #scenes .scenes-heading h2{font-size:clamp(28px,2.8vw,37px)}
 .scene-image{aspect-ratio:2.16/1}
 .message-photo img{height:calc(100svh - var(--header) - 70px)}
 .message-copy h2,.contact-copy h2{font-size:clamp(29px,3vw,42px)}
 .contact-form{padding:16px 24px}
 .contact-form input,.contact-form select,.contact-form textarea{margin-bottom:8px}
 .contact-form textarea{min-height:60px}
}
