.imagination-page{--paper:#f7f5f1;--ink:#2f5d50;--hand:"DFKai-SB","BiauKai","KaiTi",serif;background:var(--paper);color:var(--ink)}
.imagination-page .site-header{position:absolute;height:100px;padding:0 3%;color:var(--ink)}
.imagination-page .brand img{filter:none}.imagination-page .menu-toggle,.imagination-page .menu-close{width:44px;height:44px;right:3%;top:20px;color:var(--ink)}
.imagination-page .menu-toggle{background:#f7f5f1b8}.imagination-page .brand:focus-visible,.imagination-page button:focus-visible,.imagination-page input:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.imagine-kicker{font-size:11px;letter-spacing:.2em;line-height:2;text-transform:uppercase;font-weight:400}.imagine-kicker span{margin:0 14px;opacity:.35}

.imagine-collection{height:calc(660svh + var(--answer-overflow,0px));position:relative}
.imagine-gallery-stage{--photo-width:54vw;--photo-height:72svh;--row-top:17svh;--word-reveal:0;--opening-gap:3vw;position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden}
.imagine-intro{position:absolute;inset:0;z-index:2;pointer-events:none}
.imagine-intro__copy{position:absolute;left:3%;top:50%;width:20%;transform:translateY(-50%)}
.imagine-intro .imagine-kicker{font-size:11px;letter-spacing:.12em;margin-bottom:38px}.imagine-intro .imagine-kicker span{display:block;margin:7px 0 0;font-size:9px;opacity:.6}
.imagine-title{display:block;padding:0;margin:0;font-size:clamp(40px,4.4vw,78px);font-weight:400;line-height:1.4;letter-spacing:.03em}
.imagine-title>span{display:block}.imagine-title .imagine-word{white-space:nowrap;font:400 .83em/1.7 "Noto Sans TC",sans-serif;letter-spacing:0;clip-path:inset(0 100% 0 0);transition:clip-path .65s cubic-bezier(.3,.7,.3,1)}.imagine-title .imagine-word.is-written{clip-path:inset(0 0 0 0)}.imagine-title .imagine-ellipsis{font-size:.55em;letter-spacing:.13em;line-height:1.3}
.imagine-intro__bottom{position:absolute;bottom:3%;left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:auto}
.imagine-scroll{font-size:10px;letter-spacing:.16em;display:flex;gap:24px;align-items:center}.imagine-scroll span{font-size:27px;font-weight:200}
.imagine-motion{border:0;background:none;color:inherit;font:inherit;font-size:11px;letter-spacing:.08em;cursor:pointer;padding:10px 0;text-decoration:underline;text-underline-offset:5px}
.imagine-collection__heading{position:absolute;top:8%;left:5%;right:5%;display:flex;justify-content:space-between;align-items:baseline;opacity:0}.imagine-collection__heading h2{font-size:15px;font-weight:400;letter-spacing:.18em;margin:0}.imagine-collection__heading p{font-size:10px;letter-spacing:.1em;opacity:.65}
.imagine-strip{position:absolute;top:var(--row-top);left:0;display:flex;align-items:center;gap:0;width:max-content;will-change:transform,opacity;transform-origin:center center;transform:translateX(24.5vw)}
.imagine-strip figure{flex:none;width:var(--photo-width)}.imagine-strip img{width:100%;height:var(--photo-height);object-fit:cover;border-radius:8px}.imagine-strip figcaption{font-size:9px;letter-spacing:.14em;margin-top:12px;opacity:calc(var(--word-reveal) * .65)}
.imagine-adjective{flex:none;width:calc(var(--word-reveal) * 6.8em);margin:0 var(--opening-gap);overflow:hidden;opacity:var(--word-reveal);white-space:nowrap;text-align:center;font:400 clamp(28px,3.1vw,48px)/1.6 "Noto Sans TC",sans-serif;letter-spacing:.04em}.imagine-adjective em{font-style:normal;background:linear-gradient(transparent 52%,var(--highlight,#d9dfce) 52%,var(--highlight,#d9dfce) 92%,transparent 92%);padding:0 .15em}
.imagine-strip--second{top:59%;opacity:0}.imagine-strip--second figure{width:clamp(235px,24vw,390px)}.imagine-strip--second img{height:clamp(160px,22vh,270px)}
.imagine-memory-window,.imagine-memories{position:absolute;inset:0;pointer-events:none}
.imagine-memory-window{overflow:hidden;clip-path:inset(0);z-index:1}
.imagine-memories{overflow:hidden;transform-origin:0 0;will-change:transform}
.imagine-gather{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:3}
.imagine-gather__sentence{position:absolute;left:50%;top:var(--answer-center,50%);display:flex;align-items:flex-end;white-space:nowrap;font-size:clamp(34px,5.2vw,84px);font-weight:300;line-height:1.15;letter-spacing:.04em;transform:translate(-50%,-50%) scale(var(--sentence-zoom,1));transform-origin:center;will-change:transform}
.imagine-gather__sentence>span{display:block;flex:none}
.imagine-gather__blank{position:relative;width:4em;height:1.15em;border-bottom:1px solid var(--ink)}
.imagine-gather__note{position:absolute;left:5%;right:5%;top:calc(var(--answer-center,50%) - 110px);text-align:center;font-size:12px;letter-spacing:.2em;opacity:var(--sentence-note,0)}
.imagine-form{position:absolute;inset:0;margin:0;text-align:center}
.imagine-gather.is-ready{pointer-events:auto;overflow:clip;scrollbar-width:thin;scrollbar-color:#748b7c var(--paper)}
.imagine-gather__blank input{position:absolute;inset:0;width:100%;min-width:0;height:100%;padding:0 4px;border:0;border-radius:0;background:transparent;color:var(--ink);caret-color:var(--ink);font:400 .42em/1.4 "Noto Sans TC",sans-serif;text-align:center;letter-spacing:.03em;opacity:0;transition:opacity .25s}
.imagine-gather__blank input::placeholder{color:#63776a;font-size:.8em}
.imagine-gather__blank input::selection{background:#d5dfd2;color:#214a3c}
.imagine-gather.is-ready input{opacity:1}
.imagine-form__controls{position:absolute;left:50%;top:calc(var(--answer-center,50%) + clamp(34px,5.2vw,84px) * .575 + 18px);width:min(640px,86%);padding-bottom:clamp(100px,16svh,180px);transform:translateX(-50%);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.imagine-gather.is-ready .imagine-form__controls{opacity:1;visibility:visible}
.imagine-form__meta{display:flex;justify-content:space-between;gap:16px;margin:0 auto 28px;font-size:11px;letter-spacing:.04em;color:#526959;line-height:1.8}.imagine-form__meta p{text-align:left}.imagine-form__meta [role=alert]{color:#974337}.imagine-form__meta>span{white-space:nowrap;font-variant-numeric:tabular-nums}
.imagine-submit{padding:15px 30px;min-width:190px;border:1px solid #748b7c;background:transparent;color:var(--ink);font:400 13px/1.5 "Noto Sans TC",sans-serif;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s}.imagine-submit:hover{background:var(--ink);color:var(--paper)}.imagine-submit span{margin-left:24px}
.imagine-result{margin-top:20px;font-size:14px;letter-spacing:.07em;line-height:1.8;min-height:3.6em}.imagine-result strong{font-weight:400;display:block;overflow-wrap:anywhere}.imagine-result small{font-size:11px;color:#526959}.imagine-form__privacy{font-size:10px;line-height:1.8;letter-spacing:.03em;color:#526959;margin-top:10px}
.imagine-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.imagination-page .site-footer{margin:0}

@media(max-width:760px){
.imagination-page .site-header{height:84px;padding:0 5%}.imagination-page .menu-toggle,.imagination-page .menu-close{right:5%;top:17px}
.imagine-collection{height:calc(620svh + var(--answer-overflow,0px))}.imagine-gallery-stage{--photo-width:84vw;--photo-height:43svh;--row-top:34svh;min-height:620px}
.imagine-intro__copy{left:8%;top:15%;width:84%;transform:none}.imagine-intro .imagine-kicker{font-size:10px;margin-bottom:12px}.imagine-intro .imagine-kicker span{display:inline;margin-left:10px;font-size:8px}
.imagine-title{font-size:clamp(30px,8vw,48px);display:flex;align-items:baseline;gap:.1em}.imagine-title .imagine-word{font-size:1em}.imagine-title .imagine-ellipsis{font-size:.5em}
.imagine-intro__bottom{bottom:9%;left:8%;right:8%;gap:10px}.imagine-motion{font-size:9px}.imagine-scroll{font-size:9px;gap:10px}
.imagine-collection__heading{top:9%;display:block}.imagine-collection__heading h2{font-size:13px}.imagine-collection__heading p{margin-top:10px}
.imagine-strip{transform:translateX(8vw)}.imagine-strip img{border-radius:4px}.imagine-strip--second figure{width:215px}.imagine-strip--second img{height:155px}.imagine-adjective{font-size:29px}.imagine-gather__sentence{font-size:clamp(28px,8vw,42px)}.imagine-gather__note{font-size:10px;top:calc(var(--answer-center,50%) - 80px)}
.imagine-gather__blank input{font-size:18px}.imagine-gather__blank input::placeholder{font-size:14px}
.imagine-form__controls{top:calc(var(--answer-center,50%) + clamp(28px,8vw,42px) * .575 + 18px);width:86%}.imagine-form__meta{font-size:11px;margin-bottom:22px}.imagine-result{font-size:12px;margin-top:18px}.imagine-form__privacy{font-size:11px}

}

.imagine-preferences{text-align:left;margin:6px 0 28px}
.imagine-preference-row{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;padding:20px 0;border-top:1px solid #748b7c80;border-bottom:1px solid #748b7c80}
.imagine-preference-row>label,.imagine-equipment legend{font-size:16px;font-weight:400;letter-spacing:.06em;line-height:1.6}
.imagine-preference-row small,.imagine-equipment legend small{display:block;margin-top:5px;font-size:11px;font-weight:400;letter-spacing:.06em;color:#526959}
.imagine-preference-row select{width:100%;min-width:0;min-height:44px;border:0;border-radius:0;padding:8px 24px 8px 0;background:transparent;color:var(--ink);font:400 15px/1.6 "Noto Sans TC",sans-serif;cursor:pointer}
.imagine-preference-row select option{background:var(--paper);color:var(--ink)}
.imagine-preference-row select:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.imagine-equipment{border:0;border-bottom:1px solid #748b7c80;padding:0 0 18px;margin:20px 0 0;min-width:0}
.imagine-equipment legend{padding:0;margin-bottom:10px}
.imagine-equipment__options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 16px}
.imagine-equipment__options label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:14px;line-height:1.5;letter-spacing:.02em}
.imagine-equipment__options input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--ink);cursor:pointer}
.imagine-equipment__options input:checked+span{font-weight:500}
.imagine-result:empty{display:none}
.imagine-result p{font-size:13px;line-height:1.9;margin:6px 0;overflow-wrap:anywhere}
.imagine-form__privacy{font-size:11px;margin-top:20px}
@media(max-width:760px){
 .imagine-preference-row{grid-template-columns:1fr;gap:12px;padding:18px 0}
 .imagine-equipment__options{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}
 .imagine-equipment__options label{font-size:13px;gap:8px}
 .imagine-preference-row select{font-size:16px}
}

@media(prefers-reduced-motion:reduce){
.imagine-title .imagine-word{clip-path:none!important}.imagine-collection{height:auto}.imagine-gallery-stage{position:relative;height:auto;min-height:0;padding:130px 6% 70px;overflow:hidden;display:flex;flex-direction:column;gap:50px}
.imagine-intro{position:relative;inset:auto;pointer-events:auto;opacity:1!important}.imagine-intro__copy{position:static;width:100%;transform:none}.imagine-title{display:flex;align-items:baseline;gap:.2em;font-size:clamp(32px,6vw,70px)}.imagine-intro__bottom{display:none}.imagine-collection__heading{position:static;display:block;opacity:1!important}
.imagine-memory-window,.imagine-memories{position:static;inset:auto;overflow:visible;clip-path:none!important;transform:none!important}.imagine-memories{display:flex;flex-direction:column;gap:50px}.imagine-strip{position:static;top:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;transform:none!important;opacity:1!important;margin:0}.imagine-strip figure{width:100%}.imagine-strip img{height:clamp(140px,22vw,270px)}.imagine-strip figcaption{opacity:.65}.imagine-adjective{font-size:clamp(20px,3vw,40px);width:auto;opacity:1;margin:0;letter-spacing:0}.imagine-gather{position:relative;inset:auto;display:block;opacity:1!important;min-height:0;overflow:visible!important;pointer-events:auto}.imagine-gather__sentence{top:150px;transform:translate(-50%,-50%)}.imagine-gather__note{top:45px;opacity:1}.imagine-form__controls{top:calc(150px + clamp(34px,5.2vw,84px) * .575 + 18px);opacity:1;visibility:visible}.imagine-gather__blank input{opacity:1}.imagine-motion{display:none}
}

@media(prefers-reduced-motion:reduce){
 .imagine-form{position:relative;inset:auto;padding-top:calc(150px + clamp(34px,5.2vw,84px) * .575 + 18px)}
 .imagine-form__controls{position:relative;left:auto;top:auto;transform:none;margin:0 auto}
}

.imagine-followup[hidden]{display:none}
.imagine-followup:not([hidden]){animation:imagine-followup-reveal .4s cubic-bezier(.16,1,.3,1) both}
@keyframes imagine-followup-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.imagine-followup:not([hidden]){animation:none}}

/* Keep the empty sentence centered; lift it only when preferences open. */
.imagine-gather.is-ready.has-answer{--answer-center:min(22svh,190px)}
.imagine-gather.is-ready .imagine-gather__sentence,.imagine-gather.is-ready .imagine-gather__note{transition:top .6s cubic-bezier(.16,1,.3,1)}
.imagine-gather.is-ready .imagine-form__controls{transition:top .6s cubic-bezier(.16,1,.3,1),opacity .25s,visibility .25s}
@media(prefers-reduced-motion:reduce){
 .imagine-gather.is-ready .imagine-gather__sentence,.imagine-gather.is-ready .imagine-gather__note,.imagine-gather.is-ready .imagine-form__controls{transition:none}
}

.imagine-answer-content{position:absolute;inset:0;transform:translateY(calc(-1 * var(--answer-scroll,0px)))}
.imagine-gather.is-complete{overflow:hidden}
.imagine-thanks{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;outline:none}
.imagine-thanks[hidden]{display:none}
.imagine-thanks h2{margin:0;color:var(--ink);font-size:clamp(22px,2.4vw,38px);font-weight:300;line-height:1.9;letter-spacing:.12em;text-wrap:balance}
@media(prefers-reduced-motion:reduce){.imagine-answer-content{position:relative;inset:auto}}

.imagine-title__prefix{font-size:clamp(28px,3.9vw,72px);line-height:1.4}
@media(max-width:760px){
 .imagine-intro .imagine-title{flex-wrap:wrap;column-gap:.1em;row-gap:0}
 .imagine-title__prefix{flex-basis:100%;font-size:clamp(18px,5.2vw,26px);line-height:1.8}
 .imagine-title__prefix br{display:none}
}

/* Contact details and optional visit preferences follow the existing ruled form. */
.imagine-contact-fields .imagine-preference-row{border-top:0}
.imagine-field{min-width:0}
.imagine-field input{display:block;width:100%;min-width:0;min-height:44px;padding:8px 0;border:0;border-radius:0;background:transparent;color:var(--ink);caret-color:var(--ink);font:400 16px/1.6 "Noto Sans TC",sans-serif}
.imagine-field input::placeholder{color:#63776a}
.imagine-field input::selection{background:#d5dfd2;color:#214a3c}
.imagine-field-error{margin:6px 0 0;font-size:12px;line-height:1.7;color:#974337}
.imagine-field-help{margin:6px 0 0;font-size:11px;line-height:1.8;color:#526959}
.imagine-visit{border:0;border-bottom:1px solid #748b7c80;padding:0 0 18px;margin:24px 0 0;min-width:0}
.imagine-visit legend{padding:0;margin-bottom:10px;font-size:16px;line-height:1.8;letter-spacing:.06em}
.imagine-visit legend small{display:block;font-size:11px;color:#526959;margin-top:5px}
.imagine-visit__options{display:flex;flex-wrap:wrap;gap:8px 28px}
.imagine-visit__options label{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;cursor:pointer}
.imagine-visit__options input{width:16px;height:16px;margin:0;accent-color:var(--ink);cursor:pointer}
.imagine-appointment{border-top:0}
.imagine-appointment[hidden],.imagine-field-error[hidden],.imagine-thanks__appointment[hidden]{display:none}
.imagine-thanks{flex-direction:column;gap:20px}
.imagine-thanks__appointment{max-width:560px;font-size:14px;line-height:2;letter-spacing:.04em;color:#526959}
@media(max-width:760px){.imagine-visit__options{flex-direction:column;gap:4px}.imagine-visit legend{font-size:15px}.imagine-thanks__appointment{font-size:12px}}

/* Reserve brand green for form labels; keep choices and guidance neutral. */
.imagine-form__controls{--form-muted:#707070}
.imagine-preference-row>label,.imagine-equipment legend,.imagine-visit legend{color:var(--ink)}
.imagine-form__meta,.imagine-preference-row small,.imagine-equipment legend small,.imagine-visit legend small,.imagine-field-help,.imagine-preference-row select,.imagine-preference-row select option,.imagine-equipment__options label,.imagine-visit__options label,.imagine-field input{color:var(--form-muted)}
.imagine-field input::placeholder{color:var(--form-muted);opacity:1}
.imagine-field input{caret-color:var(--form-muted)}
.imagine-equipment__options input,.imagine-visit__options input{accent-color:var(--form-muted)}

/* Quiet placeholders and the short thank-you interlude. */
.imagine-field input::placeholder{color:#9b9b9b;font-size:13px}
.imagine-preference-row select.is-placeholder{color:#9b9b9b;font-size:13px}
.imagine-preference-row select option{font-size:15px;color:var(--form-muted)}
.imagine-form:focus{outline:none}
.imagine-thanks h2{max-width:920px;font-size:clamp(16px,1.45vw,24px);line-height:2.1;letter-spacing:.08em}
.imagine-thanks h2 span{display:block}
@media(max-width:760px){.imagine-thanks{padding:28px}.imagine-thanks h2{font-size:16px;line-height:2;letter-spacing:.04em}}

.imagine-form__meta:has(#meaning-help[hidden]){display:none}
.imagine-gather.is-complete .imagine-form__controls{visibility:hidden}

/* A quiet, selectable field of words around the empty home sentence. */
.imagine-wordscape{position:absolute;inset:0;overflow:hidden;z-index:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,visibility .7s}
.imagine-gather.is-ready:not(.has-answer):not(.is-complete) .imagine-wordscape{opacity:1;visibility:visible;pointer-events:auto}
.imagine-wordscape__row{position:absolute;left:0;right:0;top:var(--word-top);overflow:hidden}
.imagine-wordscape__track{display:flex;width:max-content;animation:imagine-words-drift var(--word-speed) var(--word-delay) linear infinite;animation-play-state:paused}
.imagine-wordscape__row:nth-child(even) .imagine-wordscape__track{animation-direction:reverse}
.imagine-wordscape__group{display:flex;flex:none;align-items:flex-start;height:27svh;min-height:160px}
.imagine-wordscape button{flex:none;min-height:44px;padding:4px 6px;border:0;background:none;color:rgba(80,80,80,.1);margin-right:var(--word-gap);transform:translateY(calc(var(--word-offset) * 19svh));font:300 calc(clamp(24px,2.1vw,36px) * var(--word-size))/1.5 "Noto Sans TC",sans-serif;letter-spacing:.12em;white-space:nowrap;cursor:pointer;transition:color .25s}
.imagine-wordscape button:hover,.imagine-wordscape button:focus-visible{color:rgba(47,93,80,.7)}
.imagine-gather.is-ready:not(.has-answer):not(.is-complete) .imagine-wordscape.is-on-screen:not(.is-page-hidden) .imagine-wordscape__track{animation-play-state:running}
.imagine-gather .imagine-wordscape__row:hover .imagine-wordscape__track{animation-play-state:paused!important}
.imagine-wordscape__row:has(button:focus-visible){overflow-x:auto;scrollbar-width:none}
.imagine-wordscape__row:has(button:focus-visible) .imagine-wordscape__track{animation:none;transform:none}
.imagine-answer-content .imagine-form{z-index:1;pointer-events:none}
.imagine-form .imagine-gather__sentence,.imagine-form .imagine-form__controls{pointer-events:auto}
.imagine-gather__note{z-index:1;pointer-events:none}
@keyframes imagine-words-drift{to{transform:translateX(-50%)}}
@media(max-width:760px){.imagine-wordscape button{font-size:calc(23px * var(--word-size));margin-right:calc(var(--word-gap) * .5);letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){.imagine-wordscape{transition:none}.imagine-wordscape__track{animation:none!important}.imagine-wordscape__row{overflow-x:auto;scrollbar-width:none}.imagine-wordscape__group[aria-hidden=true]{display:none}.imagine-wordscape button{transition:none;transform:none}.imagine-answer-content{min-height:560px}.imagine-wordscape__row:nth-child(n){top:calc(44% + var(--word-row) * 25%)}}
