
:root{--cream:#f8f3eb;--paper:#fffdf9;--ink:#302824;--brown:#49362f;--muted:#756861;--gold:#b89054;--gold-light:#d8bd86;--rose:#b98578;--line:rgba(73,54,47,.17);--serif:"Noto Serif TC",serif;--display:"Cormorant Garamond","Noto Serif TC",serif;--sans:"Noto Sans TC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{display:block;width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:999;padding:.65rem 1rem;background:#fff}.skip-link:focus{top:1rem}.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.25rem,4vw,4rem);position:absolute;top:0;left:0;right:0;z-index:20;color:#fff;border-bottom:1px solid rgba(255,255,255,.28)}.site-header.scrolled{position:fixed;background:rgba(248,243,235,.94);backdrop-filter:blur(14px);color:var(--ink);box-shadow:0 8px 30px rgba(54,37,27,.07);animation:slideDown .35s ease}@keyframes slideDown{from{transform:translateY(-100%)}to{transform:none}}.brand{display:flex;align-items:center;gap:.7rem}.brand-mark{font:600 2rem/1 var(--display);letter-spacing:-.15rem}.brand-mark span{color:#d4a087}.brand-copy{display:flex;flex-direction:column;line-height:1.15;border-left:1px solid currentColor;padding-left:.7rem}.brand-copy strong{font-family:var(--serif);font-size:.93rem;letter-spacing:.12em}.brand-copy small{font-size:.55rem;letter-spacing:.2em;margin-top:.18rem}.main-nav{display:flex;align-items:center;gap:clamp(1rem,2.3vw,2.2rem);font-size:.85rem;letter-spacing:.06em}.main-nav a:not(.nav-cta){position:relative}.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-.35rem;height:1px;background:currentColor;transition:.3s}.main-nav a:hover::after{right:0}.nav-cta{border:1px solid currentColor;padding:.55rem 1.1rem}.nav-toggle{display:none;background:none;border:0}.hero{height:max(700px,100svh);min-height:700px;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#4d321f}.hero-image{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,20,14,.66) 0%,rgba(34,20,14,.18) 57%,rgba(34,20,14,.12)),linear-gradient(0deg,rgba(24,16,12,.55) 0%,transparent 45%)}.hero-content{position:relative;z-index:2;color:#fff;width:min(760px,85vw);margin:0 0 clamp(6rem,12vh,9rem) clamp(1.5rem,8vw,8rem)}.eyebrow{margin:0 0 1.35rem;color:var(--gold);font-size:.73rem;font-weight:600;letter-spacing:.24em}.eyebrow.light{color:#e8d1a4}.hero h1{font:500 clamp(3.3rem,7vw,7.5rem)/.98 var(--serif);letter-spacing:.03em;margin:0;text-shadow:0 3px 30px rgba(0,0,0,.2)}.hero h1 em{font:italic 500 1em/1 var(--display);color:#efd8ad}.hero-content>p:not(.eyebrow){max-width:34rem;font-size:1.05rem;letter-spacing:.06em;margin:1.6rem 0 2rem}.hero-actions{display:flex;align-items:center;gap:2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.7rem 1.65rem;border:1px solid var(--brown);font-size:.9rem;letter-spacing:.08em;transition:.3s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(38,25,18,.14)}.button-light{background:#fff;color:var(--brown);border-color:#fff}.button-gold{background:var(--gold);border-color:var(--gold);color:#fff}.text-link{font-size:.86rem;border-bottom:1px solid currentColor;padding-bottom:.3rem}.text-link span{margin-left:.4rem}.hero-note{position:absolute;right:clamp(1.5rem,5vw,5rem);bottom:3rem;z-index:2;color:#fff;text-align:right;display:flex;flex-direction:column}.hero-note span{font-family:var(--serif);font-size:1rem;letter-spacing:.08em}.hero-note strong{font-size:.68rem;font-weight:400;letter-spacing:.16em;margin-top:.25rem}.scroll-cue{position:absolute;left:2rem;bottom:2.4rem;color:#fff;z-index:2;font-size:.57rem;letter-spacing:.2em;writing-mode:vertical-rl;display:flex;align-items:center;gap:.8rem}.scroll-cue span{width:1px;height:44px;background:rgba(255,255,255,.7)}.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,6vw,6.5rem)}.story{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,.82fr);gap:clamp(3rem,8vw,9rem);align-items:center;max-width:1500px;margin:auto}.portrait-frame{position:relative;padding:1rem;background:var(--paper);box-shadow:0 24px 60px rgba(66,43,31,.11)}.portrait-frame::before{content:"";position:absolute;inset:-17px 30px 30px -17px;border:1px solid var(--gold-light);z-index:-1}.portrait-frame img{aspect-ratio:4/3;object-fit:cover}.frame-caption{font:italic 1.2rem var(--display);letter-spacing:.06em;color:var(--gold);text-align:right;margin:1rem 0 0}.story-copy{max-width:580px}.story h2,.section-heading h2,.pricing-intro h2,.contact-card h2{font:500 clamp(2.3rem,4vw,4.3rem)/1.3 var(--serif);letter-spacing:.05em;margin:0 0 1.8rem}.story .lead{font:500 1.13rem/1.8 var(--serif);margin-bottom:1.2rem}.story-copy>p:not(.eyebrow):not(.lead){color:var(--muted)}.story-signature{margin-top:2.5rem;display:flex;flex-direction:column}.story-signature span{font:italic 2.2rem var(--display);color:var(--gold)}.story-signature small{font-size:.72rem;letter-spacing:.13em;color:var(--muted)}.services{background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;max-width:1400px;margin:0 auto 3.5rem}.section-heading h2{margin:0}.section-heading>p{max-width:27rem;color:var(--muted);margin:0 0 .65rem}.service-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:1.12fr .88fr .88fr;grid-template-rows:repeat(2,minmax(280px,34vw));gap:1rem}.service-card{position:relative;overflow:hidden;background:#ddd}.service-large{grid-row:span 2}.service-card img{height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.service-card:hover img{transform:scale(1.035)}.service-overlay{position:absolute;inset:auto 0 0;padding:3rem 1.4rem 1.3rem;color:#fff;background:linear-gradient(transparent,rgba(25,17,13,.74));display:flex;align-items:flex-end;gap:1rem}.service-overlay>span{font:italic 1.3rem var(--display);color:#ead3aa}.service-overlay>div{flex:1}.service-overlay h3{font:500 1.5rem var(--serif);margin:0}.service-overlay p{font-size:.75rem;letter-spacing:.08em;margin:.15rem 0 0}.service-overlay>a{width:38px;height:38px;border:1px solid rgba(255,255,255,.7);display:grid;place-items:center}.fairytale-feature{background:var(--brown);color:#fff;display:grid;grid-template-columns:1.2fr .8fr;min-height:760px}.fairytale-image{position:relative;min-height:600px}.fairytale-image img{position:absolute;inset:0;height:100%;object-fit:cover}.fairytale-copy{padding:clamp(4rem,8vw,8rem);display:flex;flex-direction:column;justify-content:center}.fairytale-copy h2{font:500 clamp(3rem,6vw,6rem)/1 var(--serif);margin:0}.fairytale-copy .script{font:italic 2rem var(--display);color:#e2c58c;margin:.7rem 0 1.8rem}.fairytale-copy>p:not(.eyebrow):not(.script){color:#e5ded9}.fairytale-copy ul{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 1rem;list-style:none;padding:0;margin:1.5rem 0}.fairytale-copy li::before{content:"✦";color:var(--gold-light);margin-right:.55rem}.feature-price{border-top:1px solid rgba(255,255,255,.25);margin-top:1rem;padding:1.5rem 0;display:flex;justify-content:space-between;align-items:end}.feature-price small{letter-spacing:.12em}.feature-price strong{font:500 2rem var(--display);color:#ead3aa}.fairytale-copy .button{align-self:flex-start}.portfolio{max-width:1600px;margin:auto}.filter-bar{display:flex;gap:.7rem;flex-wrap:wrap;margin:0 auto 2.5rem;max-width:1400px}.filter{border:0;background:transparent;padding:.55rem .9rem;color:var(--muted);cursor:pointer;border-bottom:1px solid transparent}.filter.active{color:var(--brown);border-color:var(--gold)}.gallery{max-width:1400px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:.8rem}.gallery-item{border:0;padding:0;position:relative;overflow:hidden;cursor:zoom-in;background:#ddd}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.gallery-item img{height:100%;object-fit:cover;transition:.6s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item span{position:absolute;left:1rem;bottom:1rem;color:#fff;font-size:.76rem;letter-spacing:.1em;text-shadow:0 2px 7px #000;background:rgba(0,0,0,.16);padding:.25rem .55rem}.gallery-item.hidden{display:none}.pricing{background:#ece2d6}.pricing-intro{text-align:center;max-width:650px;margin:0 auto 3rem}.pricing-intro h2{margin-bottom:1rem}.pricing-intro>p:last-child{color:var(--muted)}.pricing-tabs{display:flex;max-width:1100px;margin:0 auto 2rem;border-bottom:1px solid rgba(73,54,47,.2);justify-content:center}.pricing-tabs button{border:0;background:transparent;padding:1rem clamp(.75rem,2vw,2rem);cursor:pointer;color:var(--muted);position:relative;white-space:nowrap}.pricing-tabs button[aria-selected=true]{color:var(--brown);font-weight:500}.pricing-tabs button[aria-selected=true]::after{content:"";position:absolute;height:2px;background:var(--gold);left:.75rem;right:.75rem;bottom:-1px}.price-panel{max-width:1120px;margin:auto;background:var(--paper);display:grid;grid-template-columns:.82fr 1.18fr;min-height:590px;box-shadow:0 20px 60px rgba(69,46,35,.08)}.price-panel[hidden]{display:none}.price-visual{min-height:520px}.price-visual img{height:100%;object-fit:cover}.price-content{padding:clamp(2rem,5vw,4.5rem);align-self:stretch;display:flex;flex-direction:column;justify-content:center}.price-panel:not(#price-id) .check-list,.price-panel:not(#price-id) .split-details{min-height:150px;align-content:start;margin-top:0;margin-bottom:0}.price-panel:not(#price-id) .extras{margin-top:0}.price-kicker{color:var(--gold);letter-spacing:.15em;font-size:.8rem;margin:0}.price-number{display:flex;align-items:baseline;gap:.75rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin:0 0 1.4rem}.price-number span{font-size:.8rem;letter-spacing:.12em}.price-number strong{font:500 clamp(3rem,5vw,5rem) var(--display);color:var(--brown)}.check-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1.5rem}.check-list li::before{content:"✓";color:var(--gold);margin-right:.55rem}.extras{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1rem;display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1.5rem}.extras p{display:flex;justify-content:space-between;gap:1rem;margin:.2rem 0;font-size:.82rem}.extras strong{font-weight:500}.split-details{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.split-details h3{font:500 1.1rem var(--serif);margin:0}.split-details p{color:var(--muted);font-size:.85rem}.fine-print{display:block;margin-top:1rem;color:var(--muted)}.id-visual{display:grid;grid-template-columns:1fr 1fr;background:#d7cec2}.id-visual img{object-fit:cover;object-position:top}.id-prices{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.id-prices>div{border:1px solid var(--line);padding:1.2rem;display:flex;flex-direction:column}.id-prices strong{font:500 2.2rem var(--display);color:var(--gold)}.id-prices small{color:var(--muted);font-size:.75rem}.process{display:flex;gap:.6rem;list-style:none;padding:1.4rem 0 0;counter-reset:step;border-top:1px solid var(--line);margin-top:1.5rem}.process li{counter-increment:step;font-size:.69rem;text-align:center;flex:1;color:var(--muted)}.process li::before{content:counter(step);display:grid;place-items:center;width:26px;height:26px;margin:0 auto .5rem;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}.contact{min-height:680px;position:relative;display:grid;grid-template-columns:1.15fr .85fr;background:#3e302b}.contact-image{min-height:600px}.contact-image img{height:100%;object-fit:cover}.contact-card{background:var(--brown);color:#fff;padding:clamp(4rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center}.contact-card h2{margin-bottom:1.2rem}.contact-card>p:not(.eyebrow){color:#ded5d0}.contact-card .button{align-self:flex-start;margin:1rem 0 2rem}.contact-details{display:flex;flex-direction:column;font-size:.83rem;letter-spacing:.06em;border-top:1px solid rgba(255,255,255,.22);padding-top:1.4rem}.contact-details a:hover{text-decoration:underline}footer{background:#241c19;color:#d8d0cc;padding:3rem clamp(1.25rem,5vw,5rem);display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem}.footer-brand{display:flex;align-items:center;gap:1rem}.footer-brand p{line-height:1.4;margin:0}.footer-brand small{font-size:.72rem;letter-spacing:.1em;color:#9f938d}.footer-links{display:flex;gap:1.4rem;font-size:.75rem}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:1.2rem;margin:1rem 0 0;font-size:.62rem;letter-spacing:.14em;color:#827873}.mobile-book{display:none}.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1200px);max-height:92vh;overflow:visible}.lightbox::backdrop{background:rgba(22,16,13,.9);backdrop-filter:blur(5px)}.lightbox img{max-height:84vh;object-fit:contain}.lightbox p{color:#fff;text-align:center;margin:.65rem 0 0}.lightbox-close{position:absolute;right:-.25rem;top:-2.6rem;color:#fff;background:none;border:0;font-size:2rem;cursor:pointer}.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}@media (max-width:1000px){.site-header{height:72px}.nav-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;gap:5px;align-items:flex-end;color:inherit}.nav-toggle span{height:1px;background:currentColor;width:26px;transition:.3s}.nav-toggle span:nth-child(2){width:18px}.nav-toggle em{position:absolute;clip:rect(0 0 0 0)}.main-nav{position:fixed;inset:72px 0 0;background:var(--cream);color:var(--ink);flex-direction:column;justify-content:center;gap:2rem;font-size:1.1rem;transform:translateX(100%);transition:.35s}.main-nav.open{transform:none}.story{grid-template-columns:1fr 1fr;gap:3rem}.service-grid{grid-template-columns:1fr 1fr;grid-template-rows:500px 330px 330px}.service-large{grid-row:auto;grid-column:span 2}.fairytale-feature{grid-template-columns:1fr}.fairytale-image{min-height:70vw}.gallery{grid-template-columns:repeat(3,1fr)}.price-panel{grid-template-columns:1fr 1.25fr}.contact{grid-template-columns:1fr 1fr}}@media (max-width:720px){body{padding-bottom:58px}.hero{min-height:720px;height:100svh}.hero-image{object-position:60% center}.hero-shade{background:linear-gradient(0deg,rgba(34,20,14,.8),rgba(34,20,14,.08) 75%)}.hero-content{margin:0 1.25rem 7rem;width:auto}.hero h1{font-size:clamp(2.8rem,13vw,4.2rem)}.hero-content>p:not(.eyebrow){font-size:.93rem}.hero-note,.scroll-cue{display:none}.hero-actions{gap:1rem}.section{padding:5rem 1.25rem}.story{grid-template-columns:1fr}.story-copy{order:-1}.story h2,.section-heading h2,.pricing-intro h2,.contact-card h2{font-size:2.25rem}.section-heading{display:block;margin-bottom:2rem}.section-heading>p{margin-top:1rem}.service-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-1.25rem;padding-right:1.25rem;gap:.8rem}.service-card,.service-large{min-width:82vw;height:480px;scroll-snap-align:center}.fairytale-image{min-height:78vw}.fairytale-copy{padding:4rem 1.25rem}.fairytale-copy ul{grid-template-columns:1fr}.feature-price{align-items:flex-start;flex-direction:column}.filter-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem}.filter{white-space:nowrap}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.gallery-item.wide{grid-column:span 2}.pricing{padding-left:0;padding-right:0}.pricing-intro{padding:0 1.25rem}.pricing-tabs{justify-content:flex-start;overflow-x:auto;padding:0 .75rem}.price-panel{grid-template-columns:1fr;margin:0 1rem}.price-visual{min-height:320px;max-height:380px}.price-content{padding:2rem 1.25rem}.check-list,.extras,.split-details,.id-prices{grid-template-columns:1fr}.id-visual{min-height:300px}.process{overflow-x:auto}.process li{min-width:64px}.contact{grid-template-columns:1fr}.contact-image{min-height:360px}.contact-card{padding:4rem 1.25rem}footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.mobile-book{display:flex;position:fixed;z-index:25;left:0;right:0;bottom:0;height:58px;background:var(--gold);color:#fff;align-items:center;justify-content:center;font-size:.9rem;letter-spacing:.12em}.lightbox-close{right:.4rem}.story .lead{font-size:1.02rem}}

/* v15 portfolio series viewer */
.gallery-item.series-cover{cursor:pointer}
.gallery-item.series-cover::after{content:attr(data-count) " PHOTOS";position:absolute;right:.8rem;top:.8rem;z-index:2;color:#fff;font-size:.62rem;letter-spacing:.12em;background:rgba(24,18,15,.45);backdrop-filter:blur(5px);padding:.42rem .55rem;border:1px solid rgba(255,255,255,.38)}
.story-viewer{position:fixed;inset:0;z-index:1000;background:rgba(15,12,11,.97);display:none;color:#fff;touch-action:pan-y}
.story-viewer.open{display:flex;align-items:center;justify-content:center}
.story-frame{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.story-photo{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.story-progress{position:absolute;z-index:4;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));display:flex;gap:4px}
.story-progress i{height:3px;flex:1;background:rgba(255,255,255,.3);border-radius:3px;overflow:hidden}.story-progress i::after{content:"";display:block;height:100%;width:0;background:#fff}.story-progress i.done::after,.story-progress i.active::after{width:100%}
.story-title{position:absolute;z-index:4;left:max(18px,env(safe-area-inset-left));top:calc(max(14px,env(safe-area-inset-top)) + 18px);font-size:.82rem;letter-spacing:.1em;text-shadow:0 1px 5px #000}
.story-counter{opacity:.72;margin-left:.6rem;font-size:.72rem}
.story-close{position:absolute;z-index:6;right:max(14px,env(safe-area-inset-right));top:calc(max(14px,env(safe-area-inset-top)) + 16px);border:0;background:rgba(0,0,0,.2);color:#fff;width:42px;height:42px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}
.story-hit{position:absolute;z-index:3;top:0;bottom:0;width:38%;border:0;background:transparent;cursor:pointer}.story-prev{left:0}.story-next{right:0}
.story-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(0,0,0,.2);color:#fff;font-size:1.7rem;cursor:pointer}.story-arrow.prev{left:22px}.story-arrow.next{right:22px}
body.story-open{overflow:hidden}
@media(max-width:720px){.gallery-item.series-cover::after{font-size:.56rem;right:.55rem;top:.55rem}.story-arrow{display:none}.story-photo{object-fit:contain}.story-title{font-size:.76rem}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.service-card img,.gallery-item img{transition:none}}
.id-visual{display:block;grid-template-columns:none}.id-visual img{object-position:top center}
.brand-logo{display:block;width:270px;height:auto}.brand-logo svg{display:block;width:100%;height:auto;overflow:visible}.brand-logo text{fill:currentColor}.brand-logo line{stroke:currentColor;stroke-width:1}.logo-p,.logo-i,.logo-x{font-family:"Cormorant Garamond",serif;font-size:64px;font-weight:600}.logo-i{fill:#d4a087!important}.logo-zh{font-family:"Noto Serif TC",serif;font-size:25px;font-weight:600;letter-spacing:3px}.logo-en{font-family:"Noto Sans TC",sans-serif;font-size:13px;letter-spacing:4px}.hero-line{white-space:nowrap}.hero h1 em{font-size:.72em;letter-spacing:.02em}.gallery.filtered{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(320px,34vw);grid-auto-flow:row}.gallery.filtered .gallery-item{grid-column:auto;grid-row:auto}.gallery.filtered .gallery-item img{object-position:center}.gallery.filtered .gallery-item:nth-child(odd):last-child{grid-column:1/-1}.gallery.filtered .gallery-item:nth-child(odd):last-child img{aspect-ratio:16/7}@media (max-width:720px){.brand-logo{width:220px}.hero-line{font-size:.86em}.gallery.filtered{grid-template-columns:1fr;grid-auto-rows:340px}.gallery.filtered .gallery-item:nth-child(odd):last-child{grid-column:auto}.gallery.filtered .gallery-item:nth-child(odd):last-child img{aspect-ratio:auto}}

  .brand-logo{width:70px!important;height:70px;display:block;flex:0 0 70px}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}@media(max-width:720px){.brand-logo{width:58px!important;height:58px;flex-basis:58px}.site-header{height:74px}}

/* v2 requested refinements */
.site-header .brand{gap:.8rem}.site-header .brand-logo{width:58px!important;height:58px;flex:0 0 58px}.site-header .brand-copy{display:flex;color:inherit;border-left:0;padding-left:0}.site-header .brand-copy strong{font-family:var(--sans);font-size:.92rem;letter-spacing:.03em;font-weight:500}.site-header .brand-copy small{font-size:.58rem;letter-spacing:.12em;opacity:.82}
.hero h1{display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:.18em;row-gap:.12em}.hero-ending{display:inline-flex;flex-direction:column;align-items:flex-start;transform:translateY(.05em)}.hero-ending em{font:500 clamp(.72rem,1.05vw,1rem)/1 var(--sans)!important;letter-spacing:.22em;text-transform:uppercase;color:#efd8ad!important;margin:0 0 .55rem .15rem;text-shadow:none}.hero-ending strong{font:500 1em/1 var(--serif);letter-spacing:.03em;color:#fff}
.service-family img{object-fit:contain!important;object-position:center!important;background:#f5f0e8}.service-family .service-overlay{background:linear-gradient(transparent,rgba(25,17,13,.7))}
.gallery.filtered{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}.gallery.filtered .gallery-item{grid-column:span 1;grid-row:span 1}.gallery.filtered .gallery-item.wide{grid-column:span 2}.gallery.filtered .gallery-item.tall{grid-row:span 2}
.price-panel{grid-template-columns:42% 58%;height:590px;min-height:590px}.price-visual{height:590px;min-height:0;overflow:hidden}.price-visual img{width:100%;height:100%;object-fit:cover}.price-content{height:590px;overflow:auto;display:flex;flex-direction:column;justify-content:center}.id-visual img{object-fit:cover}
.footer-brand{display:flex;align-items:center;gap:1.1rem}.footer-logo{display:block;width:82px;height:82px;flex:0 0 82px}.footer-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%}.footer-brand p{margin:0}
@media(max-width:900px){.site-header .brand-copy{display:none}.hero h1{display:block}.hero-ending{display:flex;margin-top:.2em}.price-panel{height:auto;min-height:0;grid-template-columns:1fr}.price-visual,.price-content{height:auto}.price-visual{aspect-ratio:4/3}.price-content{min-height:0;overflow:visible}.gallery.filtered{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}}
@media(max-width:560px){.gallery.filtered{grid-template-columns:1fr;grid-auto-rows:260px}.gallery.filtered .gallery-item.wide,.gallery.filtered .gallery-item.tall{grid-column:span 1;grid-row:span 1}.footer-logo{width:64px;height:64px;flex-basis:64px}}

/* 2026-09-20 layout refinement */
.hero h1 em{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;letter-spacing:.015em}
.fairytale-copy .script,.frame-caption{font-family:"Cormorant Garamond",serif;font-style:italic}
/* Service cards: preserve people rather than aggressive portrait cropping */
/* Portfolio: one calm, consistent collage system */
.gallery.filtered{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:260px;grid-auto-flow:row}
.gallery.filtered .gallery-item,.gallery.filtered .gallery-item.wide,.gallery.filtered .gallery-item.tall{grid-column:span 1;grid-row:span 1}
.gallery.filtered .gallery-item img{object-position:center 38%}
/* Pricing: every tab uses exactly the same geometry and alignment */
.price-panel{grid-template-columns:42% 58%;height:590px;min-height:590px}
.price-visual{height:590px;min-height:0;background:#f7f2eb;overflow:hidden}
.price-visual img{width:100%;height:100%;object-fit:cover;object-position:center center}
.price-content{height:590px;min-height:0;padding:58px 64px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.price-kicker{margin:0 0 8px}
.price-number{min-height:92px;margin:0 0 20px;display:flex;align-items:center}
.check-list,.split-details,.id-prices{margin-top:0}
.extras{margin-top:22px}
.fine-print{margin-top:10px}
#price-family .price-visual img{object-position:center 38%}
#price-catch .price-visual img{object-position:center 42%}
#price-kids .price-visual img{object-position:center 44%}
#price-id .price-visual img{object-position:center 35%}
#price-id .price-content{justify-content:center}
@media(max-width:900px){
 .gallery.filtered{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
 .price-panel{height:auto;min-height:0;grid-template-columns:1fr}.price-visual{height:460px}.price-content{height:auto;min-height:520px;padding:42px 34px}
}
@media(max-width:620px){.gallery.filtered{grid-template-columns:1fr}.price-visual{height:390px}.price-content{min-height:0;padding:34px 24px}}

/* v5 refinements */
.hero-ending em{font-family:"Cormorant Garamond",serif!important;font-style:italic!important;font-weight:500!important;font-size:clamp(1rem,1.45vw,1.35rem)!important;letter-spacing:.12em!important;text-transform:uppercase}
.price-panel{grid-template-columns:42% 58%;min-height:590px}
.price-content{box-sizing:border-box;width:100%;min-height:590px;padding:64px 72px!important;align-self:stretch!important;display:flex;flex-direction:column;justify-content:center}
.price-kicker{font-size:.8rem!important;line-height:1.5;min-height:1.5em;margin:0 0 .55rem!important}
.price-number{min-height:92px;margin:0 0 1.35rem!important;padding-bottom:1rem!important}
.price-number strong{font-size:4.25rem!important;line-height:1!important}
.check-list{font-size:.96rem;line-height:1.8;margin:.2rem 0 0;min-height:110px;align-content:start}
.split-details{min-height:110px;align-content:start;margin:.2rem 0 0}.split-details h3{font-size:1.05rem}.split-details p{font-size:.82rem;line-height:1.8;margin:.5rem 0 0}
.extras{font-size:.82rem;min-height:76px;margin-top:1.35rem!important}
.fine-print{font-size:.75rem;min-height:1.5em}
.id-prices{min-height:170px;align-content:start}.id-prices>div{min-height:160px}.id-prices strong{font-size:2.2rem!important}.process{margin-top:1.35rem!important}
@media(max-width:720px){.price-panel{grid-template-columns:1fr}.price-content{min-height:auto;padding:2rem 1.25rem!important}.price-number strong{font-size:3.2rem!important}.check-list,.split-details,.extras,.id-prices{min-height:auto}}


/* ---- extracted block ---- */


#price-baby .grab-note{grid-column:1/-1;padding-top:.15rem;color:var(--muted);font-size:.75rem}#price-baby .grab-note strong{font-weight:400;color:var(--muted)}


/* ---- extracted block ---- */


/* v8: lock all standard pricing panels to the exact same vertical anchors */
@media (min-width:721px){
  .price-panel:not(#price-id) .price-content{
    height:590px!important; min-height:590px!important;
    padding:64px 72px!important;
    justify-content:flex-start!important;
    display:grid!important;
    grid-template-rows:24px 92px 150px 100px!important;
    align-content:start!important;
  }
  .price-panel:not(#price-id) .price-kicker{height:24px!important;min-height:24px!important;margin:0!important;align-self:start}
  .price-panel:not(#price-id) .price-number{height:92px!important;min-height:92px!important;margin:0!important;padding:0 0 16px!important;align-self:stretch}
  .price-panel:not(#price-id) .check-list,
  .price-panel:not(#price-id) .split-details{height:150px!important;min-height:150px!important;margin:0!important;padding-top:20px!important;align-content:start!important}
  .price-panel:not(#price-id) .extras{height:100px!important;min-height:100px!important;margin:0!important;padding-top:16px!important;align-self:start!important}
  #price-catch .check-list{grid-template-rows:repeat(3,auto)!important}
  #price-catch .extras{grid-template-rows:repeat(3,auto)!important}
  #price-catch .grab-note{margin-top:0!important;padding-top:0!important}
}


/* ---- extracted block ---- */


/* v13: 02 全家福填滿卡片，移除上下細邊 */
.service-family img{object-fit:cover!important;object-position:center center!important;background:transparent!important}


/* ---- extracted block ---- */


/* v14 iPhone/mobile fixes */
html,body{max-width:100%;overflow-x:hidden}
@media (max-width:900px){
  .site-header .brand-copy{display:flex!important;min-width:0;max-width:calc(100vw - 150px)}
  .site-header .brand-copy strong{font-size:.76rem!important;letter-spacing:.01em!important;white-space:nowrap}
  .site-header .brand-copy small{font-size:.48rem!important;letter-spacing:.06em!important;white-space:nowrap}
}
@media (max-width:720px){
  .site-header{padding-left:1rem!important;padding-right:1rem!important;z-index:110!important}
  .site-header .brand{min-width:0;gap:.55rem!important}
  .site-header .brand-logo{width:54px!important;height:54px!important;flex:0 0 54px!important}
  .site-header .brand-copy{max-width:calc(100vw - 132px)}
  .site-header .brand-copy strong{font-size:.72rem!important}
  .site-header .brand-copy small{font-size:.45rem!important}
  .nav-toggle{position:relative;z-index:112;flex:0 0 44px}
  .main-nav{
    position:fixed!important;
    top:74px!important;right:0!important;bottom:0!important;left:0!important;
    width:100%!important;height:calc(100dvh - 74px)!important;
    margin:0!important;padding:2rem 1.5rem 5rem!important;
    background:#f8f3eb!important;
    color:var(--ink)!important;
    z-index:111!important;
    display:flex!important;flex-direction:column!important;
    align-items:center!important;justify-content:center!important;
    gap:1.6rem!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    opacity:1!important;
    transform:translateX(100%)!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .main-nav.open{transform:translateX(0)!important;visibility:visible!important;pointer-events:auto!important}
  .main-nav a{font-size:1.05rem!important;line-height:1.5!important}
  .main-nav .nav-cta{margin-top:.4rem;padding:.7rem 1.4rem!important}
  .pricing,.pricing-intro,.pricing-tabs,.price-panel,.price-visual,.price-content{max-width:100%!important}
  .pricing-tabs{width:100%!important;box-sizing:border-box!important;overscroll-behavior-x:contain}
  .price-panel{width:calc(100% - 2rem)!important;min-width:0!important}
  .price-visual{width:100%!important;min-width:0!important;overflow:hidden!important}
  .price-visual img{width:100%!important;max-width:100%!important;height:100%!important;object-fit:cover!important}
  main,section{max-width:100%!important}
}


/* ---- extracted block ---- */


/* consistent package rules */
.price-panel hr,.pricing-panel hr,.package-panel hr,.pricing-content hr{width:100%!important;max-width:none!important}
/* social preview */
.social-preview{max-width:1400px;margin:auto;padding:7rem 1.25rem}
.social-preview-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}
.social-preview-kicker{font-size:.72rem;letter-spacing:.18em;color:var(--gold);text-transform:uppercase}
.social-preview h2{font-family:"Cormorant Garamond","Noto Serif TC",serif;font-size:clamp(2.2rem,4vw,4.2rem);font-weight:400;margin:.35rem 0}
.social-preview-sub{color:var(--muted);max-width:620px;line-height:1.8}
.social-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:1.2rem}
.ig-panel,.threads-panel{background:#fff;padding:1rem}
.social-label{display:flex;justify-content:space-between;align-items:center;padding:.35rem .25rem 1rem;font-size:.82rem;letter-spacing:.08em}
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}
.ig-card{aspect-ratio:1;overflow:hidden;background:#eee}.ig-card img{width:100%;height:100%;object-fit:cover;transition:.5s}.ig-card:hover img{transform:scale(1.035)}
.thread-card{border-top:1px solid rgba(70,55,45,.15);padding:1rem .25rem}.thread-card:first-child{border-top:0}
.thread-meta{font-size:.7rem;color:var(--gold);letter-spacing:.08em;margin-bottom:.55rem}.thread-card p{font-size:.92rem;line-height:1.75;margin:0;color:var(--brown)}
.social-mock-note{margin-top:1rem;font-size:.68rem;color:var(--muted)}
@media(max-width:820px){.social-preview{padding:5rem 1.25rem}.social-preview-head{display:block}.social-grid{grid-template-columns:1fr}}
@media(max-width:520px){.ig-grid{grid-template-columns:repeat(2,1fr)}}


/* ---- extracted block ---- */


#pricing .price-content{box-sizing:border-box}
#pricing .price-content>.check-list,
#pricing .price-content>.extras,
#pricing .price-content>.split-details{width:100%;max-width:none;box-sizing:border-box}
#pricing .price-content>.check-list,
#pricing .price-content>.extras{border-top:1px solid rgba(70,55,45,.16)}
#pricing .price-content>.check-list{padding-top:1.55rem}
#pricing .family-check-list li{display:block}
#pricing .family-check-list li strong{font-weight:500}


/* ---- extracted block ---- */


/* Exact divider geometry: same left/right edges in every pricing panel */
#pricing .price-content{
  --pricing-rule-width:100%;
}
#pricing .price-number{
  box-sizing:border-box !important;
  width:var(--pricing-rule-width) !important;
  max-width:none !important;
  align-self:stretch !important;
}
#pricing .check-list,
#pricing .family-check-list{
  box-sizing:border-box !important;
  width:var(--pricing-rule-width) !important;
  max-width:none !important;
  align-self:stretch !important;
}
#pricing .extras{
  box-sizing:border-box !important;
  width:var(--pricing-rule-width) !important;
  max-width:none !important;
  align-self:stretch !important;
}
/* Remove any child sizing that can visually shorten the rule */
#pricing .price-content > .price-number,
#pricing .price-content > .extras{
  margin-left:0 !important;
  margin-right:0 !important;
}


/* ---- extracted block ---- */


@media (min-width:901px){
  #pricing .price-panel{
    grid-template-columns:42% 58% !important;
  }
  #pricing .price-content{
    box-sizing:border-box !important;
    width:100% !important;
    padding-left:72px !important;
    padding-right:72px !important;
  }
  #pricing .price-number,
  #pricing .extras{
    box-sizing:border-box !important;
    width:450px !important;
    max-width:450px !important;
    min-width:450px !important;
    justify-self:start !important;
    align-self:start !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  #pricing .check-list,
  #pricing .split-details{
    box-sizing:border-box !important;
    width:450px !important;
    max-width:450px !important;
    min-width:450px !important;
    justify-self:start !important;
    align-self:start !important;
  }
  #price-id .price-content,
  #price-other .price-content{
    height:590px !important;
    min-height:590px !important;
    padding:64px 72px !important;
    justify-content:flex-start !important;
    display:grid !important;
    grid-template-rows:24px 92px 150px 100px !important;
    align-content:start !important;
  }
  #price-id .price-kicker,
  #price-other .price-kicker{
    height:24px !important;
    min-height:24px !important;
    margin:0 !important;
  }
  #price-id .price-number,
  #price-other .price-number{
    height:92px !important;
    min-height:92px !important;
    margin:0 !important;
    padding:0 0 16px !important;
  }
  #price-id .check-list,
  #price-other .check-list{
    height:150px !important;
    min-height:150px !important;
    margin:0 !important;
    padding-top:20px !important;
  }
  #price-id .extras,
  #price-other .extras{
    height:100px !important;
    min-height:100px !important;
    margin:0 !important;
    padding-top:16px !important;
  }
}
@media (max-width:900px){
  #pricing .price-number,
  #pricing .check-list,
  #pricing .split-details,
  #pricing .extras{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
}
#pricing .price-inquiry strong{
  font-size:clamp(2.2rem,4vw,3.6rem);
}


/* ---- extracted block ---- */


@media (min-width:901px){
  #price-family .family-check-list li{
    align-items:flex-start !important;
  }
  #price-family .family-main{
    display:block;
    font-size:1rem;
    line-height:1.45;
    font-weight:500;
    margin-bottom:.2rem;
  }
  #price-family .family-detail{
    display:block;
    font-size:.78rem;
    line-height:1.55;
    color:var(--muted);
    font-weight:400;
  }
  #price-catch .check-list{
    min-height:165px !important;
    height:auto !important;
    padding-bottom:14px !important;
    row-gap:.45rem !important;
  }
  #price-catch .check-list li{
    line-height:1.35 !important;
  }
  #price-catch .extras{
    margin-top:0 !important;
  }
}
@media (max-width:900px){
  #price-family .family-main{
    display:block;
    font-weight:500;
    margin-bottom:.2rem;
  }
  #price-family .family-detail{
    display:block;
    font-size:.86em;
    line-height:1.55;
    color:var(--muted);
  }
}


/* ---- extracted block ---- */


@media (min-width:901px){
  #price-family .family-check-list{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    column-gap:2rem !important;
  }
  #price-family .family-check-list li{
    display:block !important;
    position:relative !important;
    padding-left:1.15rem !important;
  }
  #price-family .family-check-list li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
  }
  #price-family .family-main{
    display:block !important;
    font-size:1rem !important;
    line-height:1.4 !important;
    font-weight:500 !important;
    margin-bottom:.22rem !important;
  }
  #price-family .family-detail{
    display:block !important;
    font-size:.78rem !important;
    line-height:1.55 !important;
    font-weight:400 !important;
    color:var(--muted) !important;
  }

  #price-catch .catch-check-list{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    grid-auto-flow:row !important;
    column-gap:2rem !important;
    row-gap:.45rem !important;
    min-height:165px !important;
    height:auto !important;
    padding-bottom:14px !important;
  }
  #price-catch .catch-check-list li{
    line-height:1.35 !important;
  }
  #price-catch .extras{
    margin-top:0 !important;
  }
}
