/* Batch 12/09/2026 — six distinct visual systems on one accessible core. */
:root{--ease:cubic-bezier(.22,1,.36,1);--pad:clamp(22px,5vw,82px)}
html{overflow-x:hidden}
body{--paper:#f5f1e8;--ink:#14202a;--accent:#7497a9;--soft:#e8ede9;--line:color-mix(in srgb,var(--ink) 18%,transparent);--display:'Instrument Serif',Georgia,serif;background:var(--paper);color:var(--ink);overflow-x:hidden}
body::selection{background:var(--accent);color:#fff}
.reading-progress{position:fixed;left:0;top:0;z-index:900;width:100%;height:3px;background:var(--accent);transform:scaleX(var(--read,0));transform-origin:left;pointer-events:none}
.button{min-height:55px;padding:15px 22px;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.035em;transition:transform .35s var(--ease),background .25s,color .25s;position:relative;overflow:hidden}
.button:hover{transform:translateY(-3px)}
.button-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.button-primary::before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(104%);transition:transform .42s var(--ease)}
.button-primary:hover::before{transform:none}
.button span,.button-primary:not(span){position:relative;z-index:1}
.button-primary{isolation:isolate}
.button-primary>*{position:relative;z-index:1}
.demo-banner{position:relative;z-index:21}
.site-header{position:relative;z-index:20;height:96px;padding-inline:var(--pad);background:color-mix(in srgb,var(--paper) 93%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{font-family:var(--display);font-size:clamp(22px,2.2vw,34px);font-weight:500;align-items:flex-start}
.brand span{display:block}
.brand small{max-width:180px;line-height:1.25}
.nav-cta{transition:background .25s,color .25s,transform .25s}
.nav-cta:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.hero{position:relative;min-height:calc(100svh - 127px);padding:clamp(48px,6vw,95px) var(--pad);isolation:isolate;display:grid;align-items:center;overflow:hidden}
.hero-copy{position:relative;z-index:5;max-width:720px}
.hero-copy h1{font-size:clamp(64px,9vw,148px);line-height:.86;margin:23px 0 30px;text-wrap:balance}
.hero-copy h1 em,.section-title h2 em{font-weight:400;color:var(--accent)}
.hero-copy>p{max-width:440px;font-size:clamp(14px,1.2vw,17px);line-height:1.7}
.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:34px}
.rating-pill{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.15;padding:8px 0}
.rating-pill strong{font:500 36px/1 var(--display)}
.rating-pill span{font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.rating-pill small{display:block;margin-top:4px;opacity:.58;font-size:8px}
.concept-label{position:absolute;z-index:3;bottom:14px;right:14px;background:#0b1119bd;color:#fff;padding:8px 10px;font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.section{padding:clamp(72px,9vw,150px) var(--pad);position:relative}
.section-title{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);gap:40px;align-items:end;margin-bottom:58px}
.section-title .eyebrow{grid-column:1/-1}
.section-title h2{font-size:clamp(54px,7vw,112px);max-width:920px;text-wrap:balance}
.section-title>p{max-width:430px;align-self:end;font-size:14px}
.signature{border-top:1px solid var(--line)}
.services{background:var(--soft)}
.service-stack{border-top:1px solid var(--line)}
.service-choice{width:100%;display:grid;grid-template-columns:60px 1fr 60px;align-items:center;text-align:left;padding:30px 0;border-bottom:1px solid var(--line);transition:padding .45s var(--ease),background .3s}
.service-choice span{font-size:10px;opacity:.55}
.service-choice strong{font:500 clamp(28px,4vw,64px)/1 var(--display);letter-spacing:-.03em}
.service-choice i{font-style:normal;font-size:30px;text-align:right;transition:transform .35s var(--ease)}
.service-choice:hover{padding-inline:24px;background:color-mix(in srgb,var(--paper) 52%,transparent)}
.service-choice:hover i{transform:translate(5px,-5px)}
.process{border-top:1px solid var(--line)}
.process>.eyebrow{display:block;margin-bottom:45px}
.process>div{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.process article{background:var(--paper);min-height:260px;padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.process b{font-size:10px;font-weight:500}
.process p{font:400 clamp(25px,2.4vw,42px)/1.05 var(--display);max-width:320px}
.gallery{overflow:hidden}
.gallery-controls{display:flex;gap:8px;justify-content:flex-end}
.gallery-controls button{border:1px solid var(--line);width:50px;height:50px;border-radius:50%;font-size:18px;transition:background .25s,color .25s}
.gallery-controls button:hover{background:var(--ink);color:var(--paper)}
.photo-track{margin-inline:calc(var(--pad)*-1);padding-inline:var(--pad);gap:18px;scroll-padding-inline:var(--pad)}
.photo-card{flex-basis:min(31vw,430px);min-width:280px;position:relative}
.photo-card>img{height:min(52vw,600px);min-height:370px;filter:saturate(.9);transition:transform .75s var(--ease),filter .5s}
.photo-card:hover>img{transform:scale(.985);filter:saturate(1.05)}
.photo-card>span{display:grid;grid-template-columns:32px 1fr 25px}
.photo-card>span i{font-style:normal;text-align:right}
.source-note{margin-top:22px;font-size:10px;opacity:.82;max-width:720px}
.reviews{background:var(--ink);color:var(--paper)}
.reviews .section-title{align-items:start}
.reviews .section-title .rating-pill{justify-self:end}
.review-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:color-mix(in srgb,var(--paper) 22%,transparent)}
.review-row article{min-height:340px;background:var(--ink);padding:clamp(25px,4vw,58px);display:flex;flex-direction:column}
.review-row article>span{color:var(--accent);letter-spacing:.22em}
.review-row blockquote{font:400 clamp(25px,2.6vw,43px)/1.08 var(--display);letter-spacing:-.025em;margin:45px 0;flex:1}
.review-row a{font-size:12px;text-decoration:none}
.review-row small{display:block;font-size:8px;margin-top:8px;opacity:.8}
.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(45px,9vw,150px);border-top:1px solid var(--line)}
.faq .section-title{display:block;margin:0}
.faq .section-title .eyebrow{display:block;margin-bottom:28px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{font-size:15px;padding:28px 0}
.faq details p{max-width:670px}
.contact{background:var(--accent);color:#fff;display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(50px,10vw,160px);overflow:hidden}
.contact::before{content:"";position:absolute;width:52vw;height:52vw;border:1px solid #ffffff38;border-radius:50%;left:-24vw;bottom:-38vw}
.contact h2{font-size:clamp(58px,8vw,126px);margin-top:25px;position:relative}
.contact>div:last-child{position:relative;z-index:1;align-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.contact .phone{font:400 clamp(30px,3.4vw,55px)/1 var(--display);margin:10px 0}
.contact a{font-size:12px;text-decoration:none;border-bottom:1px solid #ffffff5c;padding-bottom:6px}
.contact .button{margin-top:19px;border-color:var(--ink)}
.site-footer{padding-inline:var(--pad)}
.site-footer button{font-size:11px;text-decoration:underline;text-underline-offset:5px}

/* Loaders: related to each business and intentionally distinct. */
.loader{gap:18px;transition:opacity .65s var(--ease),visibility .65s;background:var(--paper)}
.loader p{font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.loader-mark{border-radius:0;width:128px;height:128px;font:500 57px/1 var(--display);overflow:visible}
.loader-progress{width:180px;height:1px;background:var(--line);position:relative;overflow:hidden}
.loader-progress::after{content:"";position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:loadLine 1.8s var(--ease) both}
@keyframes loadLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.loader-noelia .loader-mark{border-radius:50%;box-shadow:inset 0 0 0 17px var(--paper),inset 0 0 0 18px var(--accent);animation:softBreath 1.6s ease-in-out infinite alternate}
@keyframes softBreath{to{transform:scale(1.06)}}
.loader-tabita .loader-mark{border:0;font-size:76px;font-style:italic;transform:rotate(-8deg)}
.loader-tabita .loader-mark::after{content:"";position:absolute;width:1px;height:170px;background:var(--accent);transform:rotate(34deg);animation:hairSweep 1.4s var(--ease) both}
@keyframes hairSweep{from{transform:translateX(-110px) rotate(34deg)}to{transform:translateX(110px) rotate(34deg)}}
.loader-princeland .loader-mark{border-radius:45% 55% 58% 42%;background:var(--accent);color:#fff;animation:partyBlob 1.3s ease-in-out infinite alternate}
@keyframes partyBlob{to{border-radius:60% 40% 35% 65%;transform:rotate(12deg)}}
.loader-parys .loader-mark{border:1px solid var(--accent)}
.loader-parys .loader-mark::before,.loader-parys .loader-mark::after{content:"";position:absolute;background:var(--accent)}
.loader-parys .loader-mark::before{width:160px;height:1px;animation:drawH 1.3s var(--ease) both}.loader-parys .loader-mark::after{width:1px;height:160px;animation:drawV 1.3s var(--ease) both}
@keyframes drawH{from{transform:scaleX(0)}}@keyframes drawV{from{transform:scaleY(0)}}
.loader-hanazono .loader-mark{border-radius:50%;background:var(--accent);color:#fff;border:0;box-shadow:0 0 0 18px var(--paper),0 0 0 19px var(--ink);animation:inkReveal 1.5s var(--ease) both}
@keyframes inkReveal{from{clip-path:circle(0)}to{clip-path:circle(75%)}}
.loader-terracota .loader-mark{border:2px solid var(--accent);border-bottom:0;border-radius:68px 68px 0 0;transform-origin:bottom;animation:openDoor 1.4s var(--ease) both}
@keyframes openDoor{from{transform:perspective(600px) rotateY(-78deg)}to{transform:none}}

/* 01 Noelia — mineral calm, clinical precision without stock-clinic clichés. */
.noelia{--paper:#f5f1e8;--ink:#18303b;--accent:#709db1;--soft:#e4eceb;--line:#9fb0b050;--display:'Instrument Serif',Georgia,serif}
.noelia .site-header{border-bottom:0}
.noelia-hero{grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr);gap:7vw;padding-top:45px}
.noelia-hero::before{content:"";position:absolute;left:6%;top:7%;width:26vw;height:26vw;border-radius:50%;background:#c7d9df55;filter:blur(1px);z-index:-1}
.noelia-hero .hero-copy h1{font-size:clamp(75px,10.2vw,166px)}
.noelia-visual{height:min(72vh,760px);position:relative;border-radius:48% 48% 5px 5px;overflow:hidden;background:var(--soft)}
.noelia-visual .hero-photo{width:100%;height:100%;object-fit:cover}
.smile-orbit{position:absolute;inset:7%;z-index:2;border:1px solid #fff9;border-radius:50%;animation:orbitFloat 8s ease-in-out infinite alternate}
.smile-orbit i{position:absolute;width:9px;height:9px;border-radius:50%;background:white;box-shadow:0 0 25px #fff}.smile-orbit i:nth-child(1){left:8%;top:50%}.smile-orbit i:nth-child(2){right:18%;top:6%}.smile-orbit i:nth-child(3){right:0;bottom:26%}
@keyframes orbitFloat{to{transform:rotate(9deg) scale(.96)}}
.calm-line{position:absolute;left:var(--pad);right:var(--pad);bottom:25px;display:flex;align-items:center;gap:15px;font-size:9px;letter-spacing:.16em;text-transform:uppercase}.calm-line i{height:1px;background:var(--line);flex:1}
.noelia-signature{display:grid;grid-template-columns:.8fr 1.15fr .55fr;gap:5vw;align-items:start}
.sticky-copy{position:sticky;top:35px}.sticky-copy h2{font-size:clamp(54px,6vw,94px);margin:25px 0}.sticky-copy p{max-width:390px;margin-bottom:30px}
.tooth-portrait{margin:0;position:relative}.tooth-portrait img{width:100%;height:720px;object-fit:cover;border-radius:50% 50% 0 0}.tooth-portrait figcaption{font-size:9px;margin-top:12px;letter-spacing:.08em}
.care-numbers{padding-top:150px}.care-numbers span{display:flex;gap:15px;padding:20px 0;border-bottom:1px solid var(--line);font-size:12px}.care-numbers b{font-weight:500;color:var(--accent)}

/* 02 Tabita — expressive editorial hair deck. */
.tabita{--paper:#f4e9e8;--ink:#341322;--accent:#bd416d;--soft:#e6cdd4;--line:#5d2b3d34;--display:'Instrument Serif',Georgia,serif}
.tabita-hero{grid-template-columns:.7fr 1.3fr;align-items:center;background:linear-gradient(110deg,#f4e9e8 0 51%,#4b182d 51%);min-height:calc(100svh - 127px)}
.tabita-hero .hero-copy{padding-left:3vw}.tabita-hero .hero-copy h1{font-size:clamp(75px,10vw,162px)}
.vertical-word{position:absolute;left:-.02em;bottom:-.09em;font:400 clamp(170px,25vw,410px)/.7 var(--display);color:#5f1d3840;letter-spacing:-.08em;writing-mode:vertical-rl;transform:rotate(180deg);z-index:-1}
.hair-deck{position:relative;height:min(75vh,760px);margin-left:5vw;perspective:1000px}
.hair-deck figure{position:absolute;margin:0;width:47%;height:77%;left:calc(17% + var(--i)*13%);top:calc(12% + var(--i)*3%);transform:rotate(calc((var(--i) - 1)*8deg)) translateY(calc(var(--i)*9px));transform-origin:bottom center;transition:transform .8s var(--ease);box-shadow:0 25px 70px #17061055;background:#d7b7c1}
.hair-deck figure:hover{z-index:6;transform:rotate(0) translateY(-15px)}
.hair-deck img{width:100%;height:100%;object-fit:cover}.hair-deck figcaption{position:absolute;right:10px;top:10px;color:#fff;font-size:10px}
.style-ticker{position:absolute;left:0;right:0;bottom:0;background:var(--accent);color:#fff;padding:13px 0;overflow:hidden;white-space:nowrap;font:400 18px/1 var(--display);letter-spacing:.08em}.style-ticker span{display:inline-block;min-width:200%;animation:ticker 18s linear infinite}
@keyframes ticker{to{transform:translateX(-50%)}}
.tabita-signature{background:#4b182d;color:#f6e7e7}.tabita-signature .section-title{grid-template-columns:1fr}.tabita-signature .section-title h2{max-width:850px}
.look-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}.look-card{padding:0;text-align:left;color:inherit}.look-card:nth-child(odd){transform:translateY(35px)}.look-card img{width:100%;height:480px;object-fit:cover;filter:saturate(.7);transition:filter .45s,transform .7s var(--ease)}.look-card:hover img{filter:saturate(1);transform:translateY(-8px)}.look-card>span{display:grid;grid-template-columns:30px 1fr 20px;padding:17px 0;border-bottom:1px solid #fff4;font-size:11px}.look-card b{font-size:8px}.look-card i{font-style:normal;text-align:right}

/* 03 Princeland — kinetic storybook, with real empty-room material. */
.princeland{--paper:#fff5e9;--ink:#273152;--accent:#e93669;--soft:#dcefdc;--line:#2631512c;--display:'DM Sans',sans-serif}
.princeland h1,.princeland h2{letter-spacing:-.075em;font-weight:700;line-height:.92}.princeland em{font-family:'Instrument Serif',Georgia,serif;font-weight:400}.princeland .button,.princeland .nav-cta{border-radius:999px}
.princeland-hero{grid-template-columns:.82fr 1.18fr;gap:5vw;background:radial-gradient(circle at 15% 15%,#f8c9da 0 2px,transparent 3px),var(--paper);background-size:28px 28px}
.princeland-hero .hero-copy h1{font-size:clamp(65px,8.5vw,132px)}
.party-stage{height:min(69vh,680px);position:relative}.party-main{position:absolute;inset:0 9% 6% 13%;margin:0;border-radius:46% 54% 30px 30px;overflow:hidden;transform:rotate(2deg)}.party-main img{width:100%;height:100%;object-fit:cover}.party-card{position:absolute;width:36%;height:42%;right:-2%;bottom:0;margin:0;background:#fff;padding:8px;transform:rotate(8deg);box-shadow:0 15px 45px #29314e33}.party-card img{width:100%;height:78%;object-fit:cover}.party-card figcaption{font:400 13px/1.1 'Instrument Serif',serif;padding:12px 4px}.party-badge{position:absolute;left:0;bottom:10%;width:120px;height:120px;border-radius:50%;background:var(--accent);color:white;display:grid;place-content:center;text-align:center;font-size:11px;line-height:1.4;transform:rotate(-12deg);animation:partyBadge 5s ease-in-out infinite alternate}@keyframes partyBadge{to{transform:rotate(4deg) translateY(-10px)}}
.confetti i{position:absolute;width:10px;height:20px;background:var(--accent);left:calc((var(--i)*47)%);top:calc((var(--i)*71)%);border-radius:10px;transform:rotate(calc(var(--i)*29deg));opacity:.3;animation:confettiFloat calc(4s + var(--i)*.13s) ease-in-out infinite alternate}.confetti i:nth-child(3n){background:#ffc23e}.confetti i:nth-child(3n+1){background:#57ab9d}@keyframes confettiFloat{to{translate:0 24px;rotate:55deg}}
.party-path{position:absolute;left:0;bottom:6px;width:100%;height:120px;fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:7 12;opacity:.7}.party-path circle{fill:var(--accent);stroke:0}
.princeland-signature{background:#dcefdc}.party-plan{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:25px;align-items:center}.party-plan article{padding:28px;border:1px solid var(--line);border-radius:30px;background:#fff9;transform:rotate(-2deg)}.party-plan article:last-child{transform:rotate(2deg)}.party-plan article span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff}.party-plan h3{font:700 25px/1.05 'DM Sans';margin:50px 0 15px;letter-spacing:-.04em}.party-plan p{font-size:13px}.party-plan figure{margin:0;transform:rotate(2deg)}.party-plan figure img{height:530px;width:100%;object-fit:cover;border-radius:220px 220px 28px 28px}.party-plan figcaption{text-align:center;font:400 17px/1 'Instrument Serif',serif;margin-top:14px}

/* 04 PARYS — architectural grid, high contrast, material-led. */
.parys{--paper:#e9e4da;--ink:#171a19;--accent:#c69b34;--soft:#d8d3c9;--line:#1d211f35;--display:'Manrope','DM Sans',sans-serif}
.parys h1,.parys h2{font-weight:300;letter-spacing:-.065em}.parys em{font-style:normal;color:var(--accent)}.parys .site-header{background:#171a19;color:#f0ece3;border-color:#ffffff24}.parys .demo-banner{background:var(--accent);color:#111}.parys .nav-cta{border-color:#fff}
.parys-hero{min-height:calc(100svh - 127px);display:block;padding-top:50px;background:#171a19;color:#f0ece3}.parys-hero .hero-copy{position:absolute;left:var(--pad);bottom:8%;max-width:68%;z-index:5}.parys-hero .hero-copy h1{font-size:clamp(76px,11vw,177px);line-height:.82}.parys-hero .hero-copy>p{color:#d0cabf}.parys-hero .button-primary{background:var(--accent);border-color:var(--accent);color:#111}.parys-hero .rating-pill{color:#fff}.parys-frame{position:absolute;inset:6% 5% 9% 38%;overflow:hidden}.parys-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#171a19 0,transparent 55%)}.parys-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.04)}.parys-frame>span{position:absolute;right:12px;bottom:12px;z-index:2;font-size:8px;letter-spacing:.18em;writing-mode:vertical-rl}.blueprint-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px);background-size:72px 72px;transform:translate(var(--grid-x,0),var(--grid-y,0))}.project-index{position:absolute;left:var(--pad);right:var(--pad);top:25px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.18em}.project-arrow{position:absolute;right:var(--pad);bottom:8%;width:75px;height:75px;border:1px solid #fff7;color:#fff;font-size:32px;border-radius:50%;z-index:6;transition:transform .4s var(--ease),background .3s}.project-arrow:hover{transform:rotate(-45deg);background:var(--accent);color:#111}
.parys-signature{display:grid;grid-template-columns:.75fr 1.25fr;gap:6vw}.project-copy{position:sticky;top:30px;height:fit-content}.project-copy h2{font-size:clamp(60px,7.5vw,115px);margin:25px 0}.project-copy p{max-width:410px;margin-bottom:28px}.material-scroll{display:grid;grid-template-columns:1fr 1fr;gap:45px 16px}.material-scroll figure{margin:0}.material-scroll figure:nth-child(even){margin-top:110px}.material-scroll figure>div{height:480px;overflow:hidden}.material-scroll img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.material-scroll figure:hover img{transform:scale(1.05)}.material-scroll figcaption{display:grid;grid-template-columns:32px 1fr;padding:15px 0;border-bottom:1px solid var(--line)}.material-scroll figcaption span{font-size:8px}.material-scroll strong{font-size:12px;font-weight:500}

/* 05 Hanazono — ink, vermilion and circular dining choreography. */
.hanazono{--paper:#f2ecdf;--ink:#111111;--accent:#d94832;--soft:#d9d1c2;--line:#1a17142e;--display:'Instrument Serif',Georgia,serif}
.hanazono .site-header{background:#111;color:#f2ecdf;border-color:#ffffff26}.hanazono .demo-banner{background:var(--accent)}.hanazono .nav-cta{border-color:#fff}.hanazono-hero{background:#111;color:#f2ecdf;grid-template-columns:1fr 1fr;gap:5vw;min-height:calc(100svh - 127px)}.hanazono-hero .hero-copy h1{font-size:clamp(74px,9.5vw,155px)}.hanazono-hero .button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.hanazono-hero .rating-pill{color:#fff}.ink-sun{position:absolute;width:min(44vw,660px);height:min(44vw,660px);border-radius:50%;background:var(--accent);right:-5vw;top:50%;transform:translateY(-50%);opacity:.9}.jp-word{position:absolute;right:2vw;top:5%;font:400 clamp(120px,20vw,310px)/1 var(--display);color:#ffffff12;writing-mode:vertical-rl}.sushi-orbit{width:min(42vw,620px);height:min(42vw,620px);justify-self:center;position:relative;z-index:2}.sushi-orbit figure{position:absolute;inset:10%;margin:0;border-radius:50%;overflow:hidden;box-shadow:0 25px 80px #0005}.sushi-orbit img{width:100%;height:100%;object-fit:cover}.orbit-copy{position:absolute;inset:0;border:1px solid #fff7;border-radius:50%;display:grid;place-items:start center;padding-top:1%;font-size:8px;letter-spacing:.2em;animation:slowSpin 24s linear infinite;transform:rotate(var(--orbit-offset,0deg))}@keyframes slowSpin{to{rotate:360deg}}.table-note{position:absolute;bottom:25px;right:var(--pad);display:flex;gap:14px;font-size:10px;line-height:1.4;z-index:3}.table-note span{color:var(--accent)}.table-note p{font-size:10px}
.hanazono-signature{background:var(--paper)}.menu-cinema{display:grid;grid-template-columns:.8fr 1.4fr .8fr;gap:15px;align-items:center}.menu-cinema figure{margin:0;position:relative}.menu-cinema figure>img{width:100%;height:430px;object-fit:cover}.menu-cinema .food-card>img{height:680px;border-radius:50% 50% 0 0}.food-card figcaption{position:absolute;bottom:0;left:0;right:0;background:#111d;color:#fff;padding:24px;font:400 20px/1 var(--display)}.food-card figcaption span{display:block;color:var(--accent);font-size:48px;margin-bottom:5px}

/* 06 Terracota — Mediterranean property journey, not a fake listing grid. */
.terracota{--paper:#f2eadd;--ink:#35241d;--accent:#af5d42;--soft:#dfd2c3;--line:#5e3c2f34;--display:'Instrument Serif',Georgia,serif}
.terracota-hero{display:flex;align-items:flex-end;min-height:calc(100svh - 127px);padding-bottom:55px;color:#fff}.terracota-backdrop{position:absolute;inset:0;z-index:-2}.terracota-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#291b18d9 0,#291b187a 45%,transparent 83%),linear-gradient(0deg,#291b1870,transparent 50%)}.terracota-backdrop img{width:100%;height:100%;object-fit:cover}.terracota-hero .hero-copy{width:min(780px,70%)}.terracota-hero .hero-copy h1{font-size:clamp(80px,10.5vw,168px)}.terracota-hero .button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.terracota-hero .rating-pill{color:#fff}.door-line{position:absolute;right:var(--pad);top:13%;width:25vw;height:48vh;border:1px solid #ffffff70;border-bottom:0;border-radius:50% 50% 0 0}.door-line i{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;right:12%;top:50%}.door-line span{position:absolute;right:-8px;top:50%;font-size:9px;letter-spacing:.2em;writing-mode:vertical-rl}.intent-rail{position:absolute;right:var(--pad);bottom:55px;display:flex;flex-direction:column;width:min(32vw,440px);z-index:6}.intent-rail button{display:grid;grid-template-columns:35px 1fr 25px;color:#fff;text-align:left;border-bottom:1px solid #ffffff55;padding:13px 0;font-size:12px}.intent-rail button span{font-size:8px}.intent-rail b{text-align:right}
.terracota-signature{background:var(--soft)}.territory{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}.territory figure{margin:0}.territory figure img{width:100%;height:680px;object-fit:cover;border-radius:50% 50% 0 0}.territory figcaption{font-size:9px;margin-top:12px}.territory-map{position:relative;min-height:520px;border:1px solid var(--line);padding:28px}.territory-map>span{font-size:10px;letter-spacing:.2em}.territory-map svg{width:100%;height:350px;fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:4 8}.territory-map circle{fill:var(--accent);stroke:0}.territory-map p{font:400 clamp(25px,3vw,43px)/1.05 var(--display)}

@media (min-width:1600px){.hero,.section,.site-header,.site-footer{padding-left:max(var(--pad),calc((100vw - 1700px)/2));padding-right:max(var(--pad),calc((100vw - 1700px)/2))}}
@media (max-width:1000px){
  .hero{min-height:auto;padding-block:70px}.hero-copy h1{font-size:clamp(62px,10vw,110px)}.section-title{grid-template-columns:1fr}.section-title>p{max-width:620px}.noelia-hero,.tabita-hero,.princeland-hero,.hanazono-hero{grid-template-columns:1fr 1fr;gap:35px}.noelia-signature{grid-template-columns:1fr 1fr}.care-numbers{grid-column:1/-1;padding-top:0;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.care-numbers span{border:1px solid var(--line);padding:20px}.look-selector{grid-template-columns:repeat(2,1fr)}.look-card:nth-child(odd){transform:none}.parys-signature{grid-template-columns:1fr}.project-copy{position:relative;top:0}.material-scroll figure:nth-child(even){margin-top:60px}.terracota-hero .hero-copy{width:65%}.intent-rail{width:36%}.review-row article{min-height:300px}
}
@media (max-width:760px){
  :root{--pad:20px}.site-header{height:78px}.hero{padding-block:48px;min-height:auto}.hero-copy{max-width:none}.hero-copy h1{font-size:clamp(56px,15.5vw,88px);margin:20px 0 24px}.hero-actions{align-items:stretch;gap:12px}.hero-actions .button{width:100%}.rating-pill{width:100%}.section{padding-block:72px}.section-title{gap:22px;margin-bottom:35px}.section-title h2{font-size:clamp(47px,13vw,72px)}.service-choice{grid-template-columns:38px 1fr 35px;padding:24px 0}.service-choice strong{font-size:clamp(27px,8vw,42px)}.service-choice:hover{padding-inline:8px}.process>div{grid-template-columns:1fr}.process article{min-height:180px}.photo-card{flex-basis:82vw;min-width:250px}.photo-card>img{height:112vw;max-height:530px}.review-row{grid-template-columns:1fr}.review-row article{min-height:285px}.faq{grid-template-columns:1fr;gap:35px}.contact{grid-template-columns:1fr}.contact::before{width:120vw;height:120vw;left:-70vw;bottom:-85vw}.site-footer{padding-bottom:110px}.mobile-dock{display:block;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;height:54px;border-radius:999px;background:var(--ink);color:var(--paper);box-shadow:0 12px 40px #0004;position:fixed;z-index:30;padding:0 20px;text-align:center;font-weight:700}.mobile-dock.over-hero{visibility:hidden}.button{min-height:52px}.concept-label{font-size:7px}
  .noelia-hero,.tabita-hero,.princeland-hero,.hanazono-hero{display:block;padding-top:40px}.noelia-visual{height:108vw;max-height:560px;margin-top:35px}.calm-line{position:relative;left:auto;right:auto;bottom:auto;margin-top:22px;gap:8px}.noelia-signature{display:block}.sticky-copy{position:relative;top:auto}.tooth-portrait{margin-top:45px}.tooth-portrait img{height:125vw;max-height:650px}.care-numbers{display:block;margin-top:20px}.care-numbers span{margin-top:8px}.tabita-hero{background:var(--paper);padding-bottom:80px}.tabita-hero .hero-copy{padding:0}.hair-deck{height:112vw;max-height:560px;margin:34px 0 0}.hair-deck figure{width:58%;height:78%;left:calc(4% + var(--i)*16%)}.vertical-word{font-size:220px;opacity:.45}.style-ticker{font-size:15px}.look-selector{grid-template-columns:1fr 1fr;gap:8px}.look-card img{height:76vw;max-height:400px}.princeland-hero{background-size:22px 22px}.party-stage{height:105vw;max-height:560px;margin-top:38px}.party-main{inset:0 4% 9% 5%}.party-card{width:42%;height:43%;right:0}.party-badge{width:95px;height:95px}.party-path{display:none}.party-plan{grid-template-columns:1fr}.party-plan figure{grid-row:2}.party-plan figure img{height:110vw;max-height:550px}.parys-hero{min-height:750px}.parys-hero .hero-copy{left:var(--pad);right:var(--pad);bottom:55px;max-width:none}.parys-hero .hero-copy h1{font-size:clamp(64px,17vw,92px)}.parys-frame{inset:7% 0 30% 18%}.parys-frame::after{background:linear-gradient(0deg,#171a19 0,transparent 75%)}.project-arrow{display:none}.project-index{left:var(--pad);right:var(--pad)}.material-scroll{gap:30px 8px}.material-scroll figure:nth-child(even){margin-top:55px}.material-scroll figure>div{height:68vw;min-height:260px}.hanazono-hero{padding-bottom:78px}.ink-sun{width:115vw;height:115vw;right:-55vw;top:63%}.sushi-orbit{width:96vw;height:96vw;margin:38px 0 0 -18vw}.jp-word{font-size:170px}.table-note{bottom:20px}.menu-cinema{grid-template-columns:.65fr 1.3fr}.menu-cinema figure:last-child{display:none}.menu-cinema figure>img{height:62vw}.menu-cinema .food-card>img{height:110vw}.terracota-hero{min-height:790px;padding-bottom:45px}.terracota-hero .hero-copy{width:100%;align-self:flex-start;margin-top:50px}.terracota-hero .hero-copy h1{font-size:clamp(65px,17vw,96px)}.door-line{right:20px;top:47%;width:58vw;height:27vh}.intent-rail{left:20px;right:20px;bottom:28px;width:auto}.territory{grid-template-columns:1fr}.territory figure img{height:120vw;max-height:620px}.territory-map{min-height:440px}.territory-map svg{height:280px}
}
@media (max-width:390px){.hero-copy h1{font-size:clamp(51px,15vw,70px)}.hero-copy>p{font-size:13px}.demo-banner>span{max-width:180px;text-align:right}.service-choice strong{font-size:28px}.review-row blockquote{font-size:26px}.look-card img{height:80vw}.parys-hero .hero-copy h1,.terracota-hero .hero-copy h1{font-size:60px}.hanazono-hero .hero-copy h1{font-size:60px}.princeland-hero .hero-copy h1{font-size:56px}.noelia-hero .hero-copy h1{font-size:65px}}
/* Readability pass for small labels and accent text. */
.rating-pill small{opacity:.78}
.service-choice span{opacity:.82}
.photo-card small{opacity:.82}
.care-numbers b{font-weight:600;color:color-mix(in srgb,var(--accent) 42%,var(--ink))}
.noelia .services h2 em{color:#426f83}
.tabita-signature .section-title h2 em{color:#f184ac}
.princeland .party-badge{background:#bd1848;font-weight:700}
.parys em{color:#806015}.parys .parys-hero em{color:var(--accent)}
.hanazono .demo-banner{background:#a72d20}.hanazono .table-note span{color:#ff806b}.hanazono .services h2 em{color:#a62f21}
.noelia .gallery h2 em{color:#426f83}.tabita .gallery h2 em{color:#92244d}.princeland .gallery h2 em{color:#aa1744}.parys .services h2 em,.parys .gallery h2 em{color:#5d460f}.hanazono .gallery h2 em{color:#8f261b}.terracota .gallery h2 em{color:#7f402e}
.noelia .contact{background:#426f83}.princeland .contact{background:#a81743}.parys .contact{background:#755817}.hanazono .contact{background:#94271b}.terracota .contact{background:#84412d}
.noelia .faq h2 em{color:#426f83}.parys .faq h2 em{color:#5d460f}.parys .contact h2 em{color:#fff}

@media (prefers-reduced-motion:reduce){.style-ticker span,.smile-orbit,.party-badge,.confetti i,.orbit-copy,.loader-mark,.loader-progress::after{animation:none!important}.hair-deck figure,.photo-card>img,.button{transition:none!important}.blueprint-grid{transform:none!important}}
