.intro-playing{overflow:hidden}
.site-intro{position:fixed;z-index:1000;inset:0;overflow:hidden;background:#0f1a16;color:#ead19a;opacity:1;visibility:visible;transition:opacity 1s ease,visibility 1s;cursor:default}
.site-intro-visual{position:absolute;inset:0;overflow:hidden;background:#13201b}.site-intro-visual::before{content:"";position:absolute;inset:-9%;background:url("../images/home-entry-emblem.webp") center/cover no-repeat;filter:blur(24px) brightness(.4) saturate(.8);transform:scale(1.08)}.site-intro-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,9,.1),transparent 38%,rgba(4,10,8,.28)),radial-gradient(circle at 50% 46%,transparent 18%,rgba(5,11,9,.12) 60%,rgba(3,8,6,.43) 100%)}
.site-intro-visual img{position:relative;z-index:1;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;filter:saturate(.88) brightness(.88) contrast(1.05) drop-shadow(0 18px 50px rgba(0,0,0,.4));transform:scale(.82);transition:transform 5.4s cubic-bezier(.17,.67,.32,1),filter 3s ease}.site-intro.is-playing .site-intro-visual img{transform:scale(.87);filter:saturate(.96) brightness(.98) contrast(1.04) drop-shadow(0 22px 58px rgba(0,0,0,.48))}
.site-intro-light{position:absolute;z-index:2;inset:-35%;background:linear-gradient(112deg,transparent 37%,rgba(255,226,166,.03) 43%,rgba(255,221,150,.2) 48%,rgba(255,239,200,.05) 53%,transparent 59%);transform:translateX(-32%);mix-blend-mode:screen;animation:intro-light 4.8s ease-in-out forwards}
.site-intro-glow{position:absolute;z-index:2;left:50%;top:47%;width:min(48vw,740px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(227,179,88,.17),rgba(215,156,63,.05) 32%,transparent 68%);filter:blur(12px);animation:intro-glow 2.8s ease-in-out infinite alternate}
.site-intro-shadow{position:absolute;z-index:3;display:block;width:36%;height:60%;opacity:.2;filter:blur(20px);background:radial-gradient(ellipse at center,rgba(2,8,5,.62),transparent 68%);transform-origin:top center;animation:intro-shadow 6s ease-in-out infinite alternate}.shadow-one{left:-7%;top:-17%;transform:rotate(18deg)}.shadow-two{right:-10%;bottom:-26%;transform:rotate(-20deg);animation-delay:-2.2s}
.site-intro-enter{position:absolute;z-index:5;left:50%;bottom:clamp(1.8rem,5vh,4rem);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.55rem;min-width:120px;padding:.7rem 1.2rem;border:0;background:transparent;color:rgba(238,211,155,.74);font:400 .67rem "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.32em;cursor:pointer;text-shadow:0 2px 10px #07100c;opacity:0;transition:opacity 1s 1.2s,color .35s}.site-intro.is-playing .site-intro-enter{opacity:1}.site-intro-enter i{display:block;width:42px;height:1px;background:linear-gradient(90deg,transparent,#dfb96d,transparent);transition:width .55s,filter .4s}.site-intro-enter:hover,.site-intro-enter:focus-visible{color:#f5d996;outline:none}.site-intro-enter:hover i,.site-intro-enter:focus-visible i{width:72px;filter:drop-shadow(0 0 5px #dcb268)}
.site-intro-progress{position:absolute;z-index:5;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.04)}.site-intro-progress i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#80622f,#e2bb70,#f3dda7);box-shadow:0 0 10px rgba(226,187,112,.5)}.site-intro.is-playing .site-intro-progress i{animation:intro-progress 3.6s linear forwards}
.site-intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.site-intro.is-leaving .site-intro-visual img{transform:scale(1.12);filter:brightness(1.12) blur(2px)}.site-intro.is-leaving .site-intro-enter{opacity:0;transition-delay:0s}
@keyframes intro-light{0%{transform:translateX(-34%);opacity:0}22%{opacity:.45}68%{opacity:.85}100%{transform:translateX(34%);opacity:0}}@keyframes intro-glow{to{opacity:.54;transform:translate(-50%,-50%) scale(1.08)}}@keyframes intro-shadow{to{transform:rotate(22deg) translate3d(3%,2%,0);opacity:.28}}@keyframes intro-progress{to{transform:scaleX(1)}}
.home-hero{--photo-x:0px;--photo-y:0px;--light-x:0px;--light-y:0px;position:relative;height:100svh;min-height:680px;overflow:hidden;isolation:isolate;background:#16231f;color:#f4f1ea;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}
.hh-photo{position:absolute;z-index:-5;inset:-10px;overflow:hidden;background:#1f2b28}
.hh-photo img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 51%;transform:translate(var(--photo-x),var(--photo-y)) scale(1.025);transition:transform 1.4s cubic-bezier(.22,.61,.36,1);filter:saturate(.88) contrast(1.03) brightness(.88)}
.home-hero::before{content:"";position:absolute;z-index:-3;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,16,14,.62) 0,rgba(11,20,17,.18) 24%,rgba(9,17,15,.06) 54%,rgba(7,13,12,.42) 100%),linear-gradient(90deg,rgba(7,14,12,.34),transparent 27%,transparent 73%,rgba(7,14,12,.3));box-shadow:inset 0 0 150px rgba(5,11,9,.3)}
.home-hero::after{content:"";position:absolute;z-index:9;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,222,155,.06),transparent 33% 70%,rgba(255,190,110,.08));mix-blend-mode:screen}
.hh-atmosphere{position:absolute;z-index:-1;inset:0;pointer-events:none;overflow:hidden}
.hh-sunwash{position:absolute;right:-8%;top:-17%;width:min(64vw,960px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,207,133,.22),rgba(234,166,86,.06) 38%,transparent 70%);transform:translate(var(--light-x),var(--light-y));filter:blur(7px);animation:hh-breathe 9s ease-in-out infinite alternate}
.hh-entry-aura{position:absolute;left:50%;top:39%;width:min(25vw,390px);height:43%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse at 50% 42%,rgba(255,212,139,.24),rgba(255,169,61,.08) 44%,transparent 72%);filter:blur(20px);opacity:.46;transition:opacity .85s,filter .85s,transform 1.1s}
.hh-entry-aura::after{content:"";position:absolute;left:30%;right:30%;top:13%;bottom:3%;background:linear-gradient(180deg,rgba(255,225,169,.2),rgba(236,168,69,.04) 72%,transparent);filter:blur(18px);opacity:0;transition:opacity .9s}
.home-hero.is-door-lit .hh-entry-aura{opacity:1;filter:blur(15px) brightness(1.25);transform:translateX(-50%) scale(1.08)}.home-hero.is-door-lit .hh-entry-aura::after{opacity:1}
.hh-water-shimmer{position:absolute;left:17%;right:17%;bottom:-7%;height:35%;opacity:.2;transform:perspective(400px) rotateX(64deg);transform-origin:bottom;background:repeating-linear-gradient(176deg,transparent 0 17px,rgba(255,218,150,.33) 18px 19px,transparent 20px 35px);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);animation:hh-water 10s linear infinite}
.hh-mist{position:absolute;display:block;width:54%;height:13%;border-radius:50%;background:rgba(231,231,218,.12);filter:blur(36px);opacity:.52}.mist-one{left:-11%;bottom:19%;animation:hh-mist 18s ease-in-out infinite alternate}.mist-two{right:-12%;bottom:12%;animation:hh-mist 22s ease-in-out infinite alternate-reverse}
.hh-content{position:absolute;z-index:4;inset:0;text-align:center;text-shadow:0 3px 20px rgba(4,10,8,.78);pointer-events:none;padding-top:12.5vh}
.hh-kicker{margin:0 0 .8rem;color:#e1bc70;font-size:clamp(.65rem,1vw,.82rem);font-weight:500;letter-spacing:.43em}
.hh-content h1{margin:0;font:500 clamp(3.8rem,7.1vw,7.25rem)/1.04 "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.17em;color:#f6f0e4;text-shadow:0 3px 30px rgba(3,9,7,.68),0 0 1px #f8e9cd}
.hh-tagline{margin:.62rem 0 0;font:400 clamp(.9rem,1.4vw,1.25rem) "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.42em;color:#f7f1e7}
.hh-ornament{display:flex;align-items:center;justify-content:center;gap:.85rem;width:min(46%,410px);margin:.72rem auto 0;color:#dbb366}.hh-ornament i{height:1px;flex:1;background:linear-gradient(90deg,transparent,#d1ae63)}.hh-ornament i:last-child{background:linear-gradient(90deg,#d1ae63,transparent)}
.hh-actions{position:absolute;left:50%;top:58.4%;width:min(790px,88vw);transform:translateX(-50%);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(1.8rem,4vw,4.5rem);pointer-events:auto}
.hh-entry-ritual{display:flex;flex-direction:column;align-items:center;gap:.65rem}.hh-entry-button{position:relative;width:226px;height:64px;display:flex;align-items:center;justify-content:center;gap:1.35rem;color:#1b241f;text-decoration:none;font:600 1rem "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.2em;background:linear-gradient(145deg,#f0d596 0%,#d5af60 45%,#b98b3d 100%);border:1px solid #f4dca5;box-shadow:0 3px 0 #765524,0 15px 32px rgba(5,10,8,.5),inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(90,55,18,.35);transition:background .5s,box-shadow .7s,color .4s}.hh-entry-button::before,.hh-entry-button::after{content:"";position:absolute;inset:5px;border:1px solid rgba(86,57,24,.27);pointer-events:none}.hh-entry-button::after{inset:-5px;border-color:rgba(230,195,126,.34)}.hh-entry-button i{font-family:sans-serif;font-size:1rem;font-style:normal;transition:transform .45s}.hh-entry-button:hover,.hh-entry-button:focus-visible{outline:none;background:linear-gradient(145deg,#f7dfa8,#dfbb70 48%,#c79a48);box-shadow:0 3px 0 #765524,0 0 34px rgba(228,178,84,.5),0 18px 38px rgba(4,10,8,.54),inset 0 1px 0 rgba(255,255,255,.72)}.hh-entry-button:hover i,.hh-entry-button:focus-visible i{transform:translateX(4px)}.hh-entry-ritual p{margin:0;color:rgba(245,231,203,.78);font-size:.62rem;line-height:1.8;letter-spacing:.22em;text-shadow:0 2px 10px rgba(0,0,0,.85)}.hh-entry-ritual small{font-size:.55rem;color:rgba(244,241,234,.62)}
.hh-secondary{position:relative;justify-self:end;padding:.75rem 0;color:#e2c17c;text-decoration:none;font:400 .78rem "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.16em;text-shadow:0 2px 12px rgba(0,0,0,.86);white-space:nowrap}.hh-secondary-right{justify-self:start}.hh-secondary::after{content:"";position:absolute;left:0;right:0;bottom:.43rem;height:1px;background:linear-gradient(90deg,transparent,#e1bb70);transform:scaleX(0);transform-origin:right;transition:transform .55s cubic-bezier(.22,.61,.36,1)}.hh-secondary-right::after{background:linear-gradient(90deg,#e1bb70,transparent);transform-origin:left}.hh-secondary:hover::after,.hh-secondary:focus-visible::after{transform:scaleX(1)}.hh-secondary:focus-visible{outline:1px solid rgba(225,187,112,.55);outline-offset:5px}
.hh-scroll{position:absolute;z-index:11;left:50%;bottom:1.1rem;transform:translateX(-50%);color:rgba(244,241,234,.68);font-size:.58rem;letter-spacing:.2em;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-shadow:0 2px 8px #0b1411}.hh-scroll span{width:1px;height:18px;background:linear-gradient(#d1ae63,transparent);animation:hh-scroll 2.8s ease-in-out infinite}
@keyframes hh-breathe{to{opacity:.7;filter:blur(10px) brightness(1.15)}}
@keyframes hh-water{to{background-position:0 36px}}
@keyframes hh-mist{to{transform:translateX(18%) scaleY(.76);opacity:.3}}
@keyframes hh-scroll{50%{transform:translateY(6px);opacity:.35}}
@media(max-width:1000px){.hh-content h1{font-size:clamp(3.5rem,9vw,6rem)}.hh-actions{width:min(760px,92vw);gap:clamp(1rem,3vw,2.5rem)}}
@media(max-width:700px){.home-hero{min-height:650px}.hh-photo{inset:-6px}.hh-photo img{object-position:center 50%;transform:translate(var(--photo-x),var(--photo-y)) scale(1.015);filter:saturate(.86) contrast(1.03) brightness(.78)}.home-hero::before{background:linear-gradient(180deg,rgba(7,14,12,.7) 0,rgba(10,18,16,.18) 32%,rgba(8,15,13,.06) 58%,rgba(6,12,10,.5) 100%)}.hh-entry-aura{top:40%;width:58vw;height:39%}.hh-sunwash{right:-42%;top:-8%;width:115vw}.hh-mist{width:80%;height:9%}.mist-one{left:-32%;bottom:16%}.mist-two{right:-34%;bottom:9%}.hh-content{padding-top:12vh}.hh-kicker{font-size:.58rem;letter-spacing:.21em;margin-bottom:.55rem}.hh-content h1{font-size:clamp(3rem,14vw,4.75rem);letter-spacing:.1em}.hh-tagline{font-size:.82rem;letter-spacing:.16em;margin-top:.46rem}.hh-ornament{width:66%;margin-top:.62rem}.hh-actions{top:58.4%;width:min(90vw,390px);transform:translateX(-50%);grid-template-columns:1fr 1fr;grid-template-areas:"main main" "left right";gap:1rem 2.4rem}.hh-entry-ritual{grid-area:main}.hh-entry-button{width:min(76vw,264px);height:62px}.hh-secondary{min-height:44px;display:flex;align-items:center;justify-self:end;font-size:.74rem}.hh-secondary-left{grid-area:left}.hh-secondary-right{grid-area:right;justify-self:start}.hh-scroll{display:none}}
@media(max-width:390px){.hh-content{padding-top:11.5vh}.hh-content h1{font-size:3rem}.hh-actions{top:58.4%;gap:.8rem 1.5rem}.hh-entry-button{height:60px}}
@media(max-height:750px) and (min-width:701px){.home-hero{min-height:620px}.hh-content{padding-top:12vh}.hh-content h1{font-size:clamp(3.5rem,7vw,5.6rem)}.hh-tagline{margin-top:.35rem}.hh-ornament{margin-top:.4rem}.hh-actions{top:57.8%}.hh-entry-button{height:58px}}
@media(max-width:700px){.site-intro-visual{inset:0}.site-intro-visual::before{content:"";position:absolute;inset:-9%;background:url("../images/home-entry-emblem.webp") center/cover no-repeat;filter:blur(20px) brightness(.38) saturate(.8);transform:scale(1.08)}.site-intro-visual img{position:relative;z-index:1;object-fit:contain;object-position:center;transform:scale(1.24);filter:saturate(.92) brightness(.98) contrast(1.04) drop-shadow(0 12px 38px rgba(0,0,0,.45))}.site-intro.is-playing .site-intro-visual img{transform:scale(1.3);filter:saturate(.96) brightness(1.03) contrast(1.04) drop-shadow(0 14px 42px rgba(0,0,0,.52))}.site-intro-glow{width:110vw;top:45%}.site-intro-enter{bottom:2rem}}

/* Pin the Hero typography to the image coordinate system, like lettering on the roofline. */
.home-hero .hh-image-wrap{position:absolute;z-index:2;inset:0;container-type:size;isolation:isolate}
.home-hero .hh-image-wrap .hh-photo{z-index:-5}
.home-hero .hh-image-wrap .hh-content{position:absolute;inset:auto;left:50%;top:11%;width:min(90%,900px);padding:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-align:center}
.home-hero .hh-image-wrap .hh-kicker{margin:0;font-size:clamp(12px,1cqw,16px)}
.home-hero .hh-image-wrap .hh-content h1{margin:.78rem 0 0;font-size:clamp(48px,5.8cqw,96px)}
.home-hero .hh-image-wrap .hh-tagline{margin:.72rem 0 0;font-size:clamp(16px,1.4cqw,22px)}
.home-hero .hh-image-wrap .hh-ornament{margin:.8rem auto 0}
@media(max-width:700px){
  .home-hero .hh-image-wrap .hh-content{top:10%;width:calc(100% - 32px)}
  .home-hero .hh-image-wrap .hh-kicker{font-size:clamp(10px,2.8cqw,13px);letter-spacing:.16em}
  .home-hero .hh-image-wrap .hh-content h1{margin-top:.62rem;font-size:clamp(42px,11cqw,60px)}
  .home-hero .hh-image-wrap .hh-tagline{margin-top:.5rem;font-size:clamp(14px,4cqw,18px);letter-spacing:.13em}
  .home-hero .hh-image-wrap .hh-ornament{margin-top:.65rem;width:66%}
}
@media(prefers-reduced-motion:reduce){.site-intro *,.site-intro *::before,.site-intro *::after{animation:none!important;transition-duration:.12s!important}.site-intro-visual img{transform:none!important}.site-intro-enter{opacity:1!important}.home-hero *,.home-hero *::before,.home-hero *::after{animation:none!important;transition:none!important}.hh-photo img{transform:none!important}.hh-sunwash{transform:none!important}}

/* The building entrance is the Hero CTA. It is intentionally an invisible architectural hotspot, not a button. */
.hh-building-link{position:absolute;z-index:8;left:34%;top:36%;width:32%;height:36%;display:grid;place-items:center;color:#f0d39a;text-decoration:none;cursor:pointer;outline:none}
.hh-door-label{font:400 clamp(.95rem,1.45vw,1.25rem) "Noto Serif TC","Source Han Serif TC","思源宋體","Songti TC",serif;letter-spacing:.28em;text-shadow:0 2px 15px rgba(0,0,0,.9);opacity:0;transform:translateY(10px);transition:opacity .8s ease,transform .95s cubic-bezier(.22,.61,.36,1),color .6s}
.hh-building-link:hover .hh-door-label,.hh-building-link:focus-visible .hh-door-label,.home-hero.is-entry-opening .hh-door-label{opacity:1;transform:translateY(0);color:#f7dda5}
.hh-building-link:focus-visible .hh-door-label{outline:1px solid rgba(237,205,143,.72);outline-offset:9px}
.home-hero.is-entry-opening .hh-photo img{transform:translate(var(--photo-x),var(--photo-y)) scale(1.16);filter:saturate(1.02) brightness(1.12) contrast(1.04)}
.home-hero.is-entry-opening .hh-atmosphere{opacity:.78;transition:opacity 1s ease}.home-hero.is-entry-opening .hh-building-link{pointer-events:none}
@media(max-width:700px){.hh-building-link{left:13%;top:36%;width:74%;height:37%}.hh-door-label{font-size:1rem;letter-spacing:.22em}.home-hero.is-door-awake .hh-door-label{opacity:1;transform:translateY(0)}.home-hero.is-entry-opening .hh-photo img{transform:translate(var(--photo-x),var(--photo-y)) scale(1.16)}}
@media(prefers-reduced-motion:reduce){.home-hero.is-entry-opening .hh-photo img{transform:none!important}}

/* Quiet, reduced homepage header branding. The full mark remains reserved for the intro and Hero. */
.home-header{height:70px;padding:0 clamp(1.5rem,6vw,6rem);background:linear-gradient(180deg,rgba(15,24,21,.58),rgba(15,24,21,.08));border-bottom-color:rgba(255,255,255,.12)}
.home-header .brand{gap:1.1rem;font-size:.92rem;letter-spacing:.13em}.home-header .brand-mark{width:40px;height:40px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.22))}.home-header nav{gap:1.55rem;font-size:.82rem}
@media(max-width:900px){.home-header{height:70px;padding:0 clamp(1.35rem,5vw,2.5rem)}.home-header .brand-mark{width:36px;height:36px}.home-header .brand{gap:.9rem;font-size:.86rem}.home-header nav{top:70px}}
.home-page main{height:100svh;overflow:hidden}.home-page{overflow:hidden}

/* Stable Hero typography layer: independent from the responsive background image. */
.home-hero .hh-content{inset:auto;top:clamp(90px,11vh,140px);left:50%;width:min(90%,900px);padding:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-align:center}
.home-hero .hh-kicker{margin:0;font-size:clamp(12px,1vw,16px)}
.home-hero .hh-content h1{margin:.78rem 0 0;font-size:clamp(56px,6vw,96px)}
.home-hero .hh-tagline{margin:.72rem 0 0;font-size:clamp(16px,1.4vw,22px)}
.home-hero .hh-ornament{margin:.8rem auto 0}
@media(max-width:700px){
  .home-hero .hh-content{top:clamp(90px,12vh,130px);width:calc(100% - 32px)}
  .home-hero .hh-kicker{font-size:clamp(10px,2.8vw,13px);letter-spacing:.16em;white-space:nowrap}
  .home-hero .hh-content h1{margin-top:.62rem;font-size:clamp(42px,11vw,60px)}
  .home-hero .hh-tagline{margin-top:.5rem;font-size:clamp(14px,4vw,18px);letter-spacing:.13em}
  .home-hero .hh-ornament{margin-top:.65rem;width:66%}
}
