:root{color-scheme:light;--milk: #fbf8f3;--milk-strong: #fffdf9;--nude: #d8b8a5;--rose: #c98f96;--rose-soft: #f1dcdd;--charcoal: #232020;--muted: #766e69;--line: rgba(72, 53, 43, .14);--gold: #b5965c;--dark: #171313;--shadow: 0 24px 70px rgba(64, 47, 38, .12);--radius: 8px;--container: min(1180px, calc(100% - 40px) );font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;background:var(--milk);color:var(--charcoal)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 4%,rgba(216,184,165,.28),transparent 24rem),linear-gradient(180deg,#fbf8f3,#f5eee7 46%,#fbf8f3);color:var(--charcoal);line-height:1.75;text-rendering:optimizeLegibility}body::selection{background:var(--rose-soft)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:var(--container);margin-inline:auto}.serif{font-family:"Noto Serif TC",Songti TC,PingFang TC,Microsoft JhengHei,serif;font-weight:600;letter-spacing:0}.site-header{position:fixed;inset:0 0 auto;z-index:50;border-bottom:1px solid rgba(255,255,255,.28);background:#fbf8f3c7;backdrop-filter:blur(18px)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:24px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:max-content}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(181,150,92,.5);border-radius:50%;background:#fffdf9d1;color:var(--gold);font-family:Georgia,serif;font-size:1.15rem}.brand span:last-child{display:grid;gap:0}.brand strong{font-size:1rem;letter-spacing:.05em}.brand small{color:var(--muted);font-family:Georgia,serif;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.nav-links{display:flex;align-items:center;gap:clamp(12px,2vw,26px);color:#232020b8;font-size:.92rem;white-space:nowrap}.nav-links a{position:relative}.nav-links a:after{position:absolute;right:0;bottom:-6px;left:0;height:1px;background:var(--gold);content:"";transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.nav-links a:hover:after{transform:scaleX(1);transform-origin:left}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid var(--line);border-radius:999px;font-size:.95rem;font-weight:600;line-height:1;transition:transform .18s ease,border-color .18s ease,background .18s ease}.nav-cta{padding:0 18px;border-color:#23202033;background:#232020eb;color:#fffdf9}.btn{padding:0 22px}.btn:hover,.nav-cta:hover{transform:translateY(-2px)}.btn-primary{border-color:var(--charcoal);background:var(--charcoal);color:#fffdf9}.btn-ghost{border-color:#23202033;background:#fffdf9b8;color:var(--charcoal)}.hero{position:relative;display:grid;min-height:94vh;overflow:hidden;padding-top:76px}.hero-media{position:absolute;inset:0}.hero-media:after{position:absolute;inset:0;background:linear-gradient(90deg,#fbf8f3fa,#fbf8f3d6 33%,#fbf8f32e 68%,#fbf8f385),linear-gradient(180deg,#fbf8f326,#fbf8f3d1);content:""}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center right;transform:scale(1.02)}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(300px,.42fr);align-items:end;gap:48px;padding:clamp(60px,12vh,132px) 0 52px}.hero-copy{align-self:center;max-width:760px}.hero-brand{margin:0 0 18px;color:var(--gold);font-size:clamp(1.8rem,4vw,3.4rem)}h1,h2,h3,p{margin-top:0}h1{max-width:720px;margin-bottom:22px;font-family:"Noto Serif TC",Songti TC,PingFang TC,Microsoft JhengHei,serif;font-size:clamp(3rem,8vw,7.8rem);font-weight:600;letter-spacing:0;line-height:.98}h2{margin-bottom:18px;font-size:clamp(2.2rem,5vw,5.5rem);line-height:1.05}h3{margin-bottom:12px;font-size:1.12rem;line-height:1.35}.hero-lead{max-width:560px;margin-bottom:30px;color:#232020bd;font-size:clamp(1.05rem,2vw,1.35rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-panel{align-self:end;max-width:360px;padding:24px;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius);background:#fffdf9b3;box-shadow:var(--shadow);backdrop-filter:blur(20px)}.hero-panel span{display:block;margin-bottom:14px;color:var(--gold);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase}.hero-panel strong{display:block;margin-bottom:10px;font-family:"Noto Serif TC",Songti TC,PingFang TC,Microsoft JhengHei,serif;font-size:1.2rem;line-height:1.5}.hero-panel p,.section-heading p,.about-copy,.contact-lead{color:var(--muted)}.section{padding:clamp(74px,9vw,130px) 0;scroll-margin-top:96px}.section-index{margin-bottom:20px;color:var(--gold);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.split{display:grid;grid-template-columns:minmax(0,.75fr) minmax(320px,1fr);gap:clamp(32px,7vw,92px)}.about{border-top:1px solid var(--line)}.about-copy>p{margin-bottom:34px;font-size:1.08rem}.point-list{display:grid;gap:18px}.point-list article{display:grid;grid-template-columns:110px 1fr;gap:20px;padding-top:18px;border-top:1px solid var(--line)}.point-list span{color:var(--charcoal);font-family:Georgia,serif;letter-spacing:.08em}.point-list p{margin-bottom:0}.services{background:#fffdf9}.section-heading{display:grid;max-width:760px;margin-bottom:42px}.section-heading.wide{max-width:920px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--line)}.service-card{min-height:310px;padding:clamp(22px,3vw,34px);background:#fffdf9}.service-card:hover .service-number{color:var(--rose)}.service-number{margin-bottom:34px;color:var(--gold);font-family:Georgia,serif;font-size:.9rem;transition:color .18s ease}.service-card p{min-height:84px;color:var(--muted)}.service-card dl,.summary-box dl,.contact-list dl{display:grid;gap:10px;margin:0}.service-card dl div,.summary-box dl div,.contact-list dl div{display:flex;justify-content:space-between;gap:18px;padding-top:12px;border-top:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;text-align:right}.booking-section{background:linear-gradient(135deg,#171313fa,#362723f5),var(--dark);color:#fffdf9}.booking-shell{display:grid;grid-template-columns:minmax(0,.72fr) minmax(420px,1fr);gap:clamp(34px,7vw,88px);align-items:start}.booking-intro{position:sticky;top:120px}.booking-intro p:not(.section-index){color:#fffdf9ad}.booking-app{padding:clamp(22px,4vw,42px);border:1px solid rgba(255,253,249,.15);border-radius:var(--radius);background:#fffdf914;box-shadow:0 24px 90px #0000003d}.booking-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:30px}.booking-steps span{padding-bottom:10px;border-bottom:1px solid rgba(255,253,249,.18);color:#fffdf973;font-size:.82rem}.booking-steps span.is-active{border-color:var(--gold);color:#fffdf9}.booking-pane{display:none}.booking-pane.is-active{display:grid;gap:22px;animation:rise .24s ease both}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.choice-card,.time-grid label{position:relative;display:grid;gap:6px;min-height:84px;padding:16px;border:1px solid rgba(255,253,249,.16);border-radius:var(--radius);background:#fffdf90f;transition:border-color .16s ease,background .16s ease}.choice-card input,.time-grid input{position:absolute;opacity:0;pointer-events:none}.choice-card:has(input:checked),.time-grid label:has(input:checked){border-color:#b5965ce0;background:#b5965c24}.choice-card span,label>span,.time-grid span{color:#fffdf9;font-weight:600}.choice-card small{color:#fffdf994;font-size:.82rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}label{display:grid;gap:8px}input,select,textarea{width:100%;min-height:48px;border:1px solid rgba(255,253,249,.16);border-radius:var(--radius);background:#fffdf914;color:#fffdf9;outline:none;padding:11px 13px}select option{background:#251f1e;color:#fffdf9}textarea{min-height:120px;resize:vertical}input:focus,select:focus,textarea:focus,.choice-card:focus-within,.time-grid label:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #b5965c29}.time-field{margin:0;padding:0;border:0}.time-field legend{margin-bottom:10px;font-weight:600}.time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.time-grid label{min-height:52px;place-items:center}.summary-box{border:1px solid rgba(255,253,249,.16);border-radius:var(--radius);padding:18px;background:#fffdf90f}.summary-box dl div,.contact-list dl div{border-color:#fffdf929}.form-note,.form-error{color:#fffdf99e;font-size:.92rem}.form-error{min-height:24px;margin:18px 0 0;color:#f4b6b6}.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.booking-actions .btn-primary,.booking-success .btn-primary{border-color:var(--gold);background:var(--gold);color:#171313}.booking-actions button:disabled{cursor:not-allowed;opacity:.45}.booking-success{text-align:left}.booking-success span{color:var(--gold);font-weight:700}.portfolio-section{background:var(--milk)}.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}.filter-row button{min-height:38px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:#fffdf9b8;color:var(--muted)}.filter-row button.is-active{border-color:var(--charcoal);background:var(--charcoal);color:#fffdf9}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.portfolio-card{position:relative;min-height:clamp(280px,34vw,520px);overflow:hidden;border:0;border-radius:var(--radius);background:#e9d7cc;color:#fffdf9;text-align:left;box-shadow:var(--shadow)}.portfolio-card:nth-child(1),.portfolio-card:nth-child(6){grid-column:span 5}.portfolio-card:nth-child(2),.portfolio-card:nth-child(5){grid-column:span 4}.portfolio-card:nth-child(3),.portfolio-card:nth-child(4){grid-column:span 3}.portfolio-image,.lightbox-image{position:absolute;inset:0;background-image:url(/images/portfolio-collage.png);background-position:var(--position);background-size:300% 200%;transition:transform .5s ease}.portfolio-card:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(20,15,13,.68));content:""}.portfolio-card:hover .portfolio-image{transform:scale(1.06)}.portfolio-meta{position:absolute;right:20px;bottom:20px;left:20px;z-index:1;display:grid;gap:4px}.portfolio-meta strong{font-size:1.18rem}.portfolio-meta small{color:#fffdf9b8}.portfolio-meta em{color:#f2d99f;font-style:normal}.lightbox{width:min(940px,calc(100% - 32px));padding:0;overflow:hidden;border:0;border-radius:var(--radius);background:#fffdf9;color:var(--charcoal);box-shadow:0 34px 120px #00000059}.lightbox::backdrop{background:#120e0db8;backdrop-filter:blur(8px)}.lightbox-image{position:relative;aspect-ratio:16 / 10}.lightbox-content{padding:24px}.lightbox-content span{color:var(--gold);font-size:.9rem}.lightbox-close{position:absolute;top:14px;right:14px;z-index:3;display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:#1713138a;color:#fff;font-size:1.4rem}.reviews{background:#fffdf9}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.review-card{min-height:280px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fffdf9,#f9f2ec)}.stars{margin-bottom:26px;color:var(--gold);letter-spacing:.1em}.review-card p{color:var(--muted)}.review-card strong{display:block;margin-top:28px}.faq-list{display:grid;gap:12px}details{border-top:1px solid var(--line);padding:20px 0}summary{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--charcoal);cursor:pointer;font-weight:700;list-style:none}summary::-webkit-details-marker{display:none}summary:after{color:var(--gold);content:"+";font-size:1.4rem}details[open] summary:after{content:"−"}details p{max-width:760px;margin:14px 0 0;color:var(--muted)}.contact{background:var(--dark);color:#fffdf9}.contact-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(320px,.78fr);gap:32px}.contact-grid>:first-child{align-self:center}.contact-list{padding:28px;border:1px solid rgba(255,253,249,.14);border-radius:var(--radius);background:#fffdf90f}.contact-list dt,.contact-lead{color:#fffdf994}.contact-lead{max-width:520px;margin-bottom:28px}.map-placeholder{grid-column:1 / -1;display:grid;min-height:260px;place-items:center;border:1px solid rgba(255,253,249,.14);border-radius:var(--radius);background:linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(135deg,#b5965c3d,#c98f9614);background-size:48px 48px,48px 48px,cover;color:#fffdf9b3;text-align:center}.map-placeholder span{color:var(--gold);font-family:Georgia,serif;letter-spacing:.12em;text-transform:uppercase}.map-placeholder strong{font-size:clamp(1.4rem,4vw,3rem)}.footer{padding:34px 0;background:#0f0d0d;color:#fffdf9b3}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer p{margin:4px 0 0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:1020px){.nav-links{display:none}.hero-grid,.split,.booking-shell,.contact-grid{grid-template-columns:1fr}.hero-grid{align-items:center;min-height:calc(94vh - 76px)}.hero-panel,.booking-intro{position:static}.service-grid,.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-card:nth-child(n){grid-column:span 6}}@media(max-width:720px){:root{--container: min(100% - 28px, 1180px)}.nav{min-height:66px}.brand small,.nav-cta{display:none}.hero{min-height:auto;padding-top:66px}.hero-media:after{background:linear-gradient(180deg,#fbf8f3eb,#fbf8f3bd 54%,#fbf8f3f0),linear-gradient(90deg,#fbf8f3a3,#fbf8f31f)}.hero-media img{object-position:67% center}.hero-grid{min-height:82vh;gap:22px;padding:64px 0 28px}h1{font-size:clamp(3.1rem,18vw,5.2rem)}h2{font-size:clamp(2.2rem,12vw,3.6rem)}.section{padding:68px 0}.point-list article,.field-grid,.choice-grid{grid-template-columns:1fr}.service-grid,.review-grid{grid-template-columns:1fr}.service-card{min-height:auto}.service-card p{min-height:0}.booking-app{padding:18px}.booking-steps{gap:5px}.booking-steps span{font-size:.76rem}.time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-actions{position:sticky;bottom:0;z-index:2;margin:20px -18px -18px;padding:14px 18px;background:#171313db;backdrop-filter:blur(14px)}.booking-actions .btn{flex:1;padding-inline:12px}.portfolio-grid{display:grid;grid-template-columns:1fr}.portfolio-card:nth-child(n){grid-column:auto;min-height:360px}.contact-list{padding:20px}.contact-list dl div,.service-card dl div,.summary-box dl div{display:grid;gap:4px}dd{text-align:left}.footer-inner{align-items:flex-start;flex-direction:column}}
