:root{--bg:#070707;--panel:#0d0d0d;--text:#f2f0eb;--muted:#a4a19a;--line:#2b2b2b;--accent:#c2a27a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Noto Sans TC",sans-serif;letter-spacing:.02em}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button,input,textarea{font:inherit}.hidden{display:none!important}
.loader{position:fixed;inset:0;z-index:1000;background:#050505;display:grid;place-items:center;transition:opacity .7s,visibility .7s}.loader.hide{opacity:0;visibility:hidden}.loader-mark{font:600 clamp(2rem,8vw,6rem)/1 Arial;letter-spacing:.22em;animation:pulse 1.2s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.25;letter-spacing:.3em}}
.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid transparent;transition:.3s}.site-header.scrolled{background:rgba(7,7,7,.88);backdrop-filter:blur(12px);border-color:var(--line)}.brand{font-weight:700;letter-spacing:.2em}.nav{display:flex;gap:2rem;font-size:.72rem;letter-spacing:.18em}.nav a{opacity:.72;transition:.2s}.nav a:hover{opacity:1}.menu-toggle{display:none;background:none;border:0;color:#fff;width:42px;height:42px}.menu-toggle span{display:block;width:22px;height:1px;background:#fff;margin:6px auto;transition:.25s}
.hero{position:relative;min-height:100svh;background:url('images/hero.jpeg') center 45%/cover no-repeat;display:flex;align-items:flex-end;padding:12vh 6vw 10vh}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.15) 60%),linear-gradient(0deg,rgba(0,0,0,.82),transparent 52%)}.hero-content{position:relative;z-index:1}.eyebrow,.section-kicker{font-size:.68rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}.hero h1{font-size:clamp(4rem,13vw,10rem);line-height:.79;letter-spacing:-.055em;margin:.4em 0 .35em}.hero-cta,.submit-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d4d0c8;padding:1rem 1.4rem;font-size:.7rem;letter-spacing:.18em;transition:.25s}.hero-cta:hover,.submit-button:hover{background:#f1eee8;color:#111}.scroll-cue{position:absolute;z-index:2;right:4vw;bottom:5vh;font-size:.62rem;letter-spacing:.22em;writing-mode:vertical-rl;color:#bbb}
.section{padding:10rem 6vw}.about-section{border-top:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:7vw;align-items:center;margin-top:3rem}.about-image{margin:0;overflow:hidden}.about-image img{aspect-ratio:4/5;object-fit:cover}.about-copy h2,.section-heading h2,.booking-intro h2{font-size:clamp(2.8rem,7vw,7rem);line-height:.9;letter-spacing:-.045em;margin:.25em 0 .55em}.about-copy p{max-width:42rem;line-height:1.9;color:#d2d0cb}.about-copy .en{color:var(--muted)}
.gallery-section{padding-top:6rem}.section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:4rem}.section-heading h2{margin:0}.section-heading p{color:var(--muted);max-width:28rem}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.gallery-item{position:relative;border:0;padding:0;background:#0a0a0a;overflow:hidden;cursor:zoom-in}.gallery-item img{height:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s ease,filter .4s}.gallery-item:hover img{transform:scale(1.025);filter:brightness(.8)}.gallery-item span{position:absolute;z-index:2;left:1rem;top:1rem;font-size:.65rem;letter-spacing:.15em;background:rgba(0,0,0,.65);padding:.45rem .6rem}.works-gallery .gallery-item:nth-child(1),.works-gallery .gallery-item:nth-child(8){grid-column:span 2}.works-gallery .gallery-item:nth-child(1) img,.works-gallery .gallery-item:nth-child(8) img{aspect-ratio:8/5}.flash-section{background:#ece8df;color:#111}.flash-section .section-kicker,.flash-section .section-heading p{color:#615f5b}.flash-gallery{background:#c7c1b8}.flash-gallery .gallery-item{background:#ddd8cf}.flash-gallery .gallery-item img{aspect-ratio:2/3}
.booking-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}.booking-intro{position:sticky;top:130px}.booking-intro p{color:var(--muted);line-height:1.8;max-width:28rem}.booking-form{display:grid;gap:1.5rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.booking-form label{display:grid;gap:.6rem;color:#bdbab4;font-size:.72rem;letter-spacing:.08em}.booking-form input,.booking-form textarea{width:100%;border:0;border-bottom:1px solid #3a3a3a;background:transparent;color:#fff;padding:1rem 0;outline:none;border-radius:0}.booking-form input:focus,.booking-form textarea:focus{border-color:#fff}.booking-form input[type=file]{font-size:.75rem}.submit-button{background:transparent;color:#fff;cursor:pointer;width:100%;margin-top:1rem;justify-content:space-between}.submit-button span{font-size:1rem}
.footer{padding:5rem 6vw 7rem;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:3rem;position:relative}.footer strong{letter-spacing:.16em}.footer p,.footer small{color:var(--muted);line-height:1.7}.footer-links{display:flex;gap:2rem;font-size:.7rem;letter-spacing:.14em}.footer small{position:absolute;bottom:2rem;left:6vw}.floating-book{position:fixed;z-index:80;right:1.25rem;bottom:1.25rem;background:#eee9df;color:#111;padding:1rem 1.25rem;font-size:.68rem;letter-spacing:.15em;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:none}
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.96);display:grid;place-items:center;padding:4rem}.lightbox[hidden]{display:none}.lightbox img{max-width:min(1100px,86vw);max-height:86vh;width:auto;height:auto}.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}.lightbox-close{right:2rem;top:1.5rem}.lightbox-prev{left:2rem;top:50%}.lightbox-next{right:2rem;top:50%}.lightbox-count{position:absolute;bottom:1.5rem;font-size:.7rem;letter-spacing:.15em;color:#aaa}
.success-page{min-height:100svh;display:grid;place-items:center;text-align:center;padding:2rem}.success-card h1{font-size:clamp(3rem,10vw,8rem);margin:.2em}.success-card p{color:var(--muted);line-height:1.8}.success-card a{display:inline-block;margin-top:2rem;border:1px solid #aaa;padding:1rem 1.4rem;font-size:.72rem;letter-spacing:.15em}
@media(max-width:820px){.site-header{height:64px;padding:0 1.2rem}.menu-toggle{display:block}.nav{position:fixed;inset:64px 0 0;background:#080808;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2.4rem;font-size:1rem;transform:translateX(100%);transition:.35s}.menu-open .nav{transform:none}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{padding:0 1.25rem 8rem;background-position:58% center}.hero h1{font-size:clamp(4rem,24vw,7rem)}.section{padding:6.5rem 1.25rem}.about-grid,.booking-section{grid-template-columns:1fr;gap:3rem}.about-image img{aspect-ratio:3/4}.section-heading{grid-template-columns:1fr;gap:1.5rem}.gallery{grid-template-columns:repeat(2,1fr)}.works-gallery .gallery-item:nth-child(1),.works-gallery .gallery-item:nth-child(8){grid-column:span 2}.gallery-item img{aspect-ratio:3/4}.flash-gallery .gallery-item img{aspect-ratio:2/3}.booking-intro{position:static}.field-row{grid-template-columns:1fr}.footer{grid-template-columns:1fr}.footer-links{flex-direction:column;gap:1rem}.floating-book{right:1rem;bottom:1rem}.lightbox{padding:3rem 1rem}.lightbox-prev{left:.6rem}.lightbox-next{right:.6rem}.lightbox-close{right:1rem}.lightbox img{max-width:92vw;max-height:80vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.loader{display:none}.gallery-item img{transition:none}}
