:root{--ink:#222;--muted:#717171;--line:#e8e8e8;--coral:#e73758;--coral-soft:#fff1f3;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:180px}body{margin:0;color:var(--ink);background:#fff;font-family:Helvetica,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button svg,a svg{flex-shrink:0}svg{width:24px;height:24px}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:4px}.container{width:calc(100% - 96px);max-width:1480px;margin-inline:auto}.skip,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip:focus{clip:auto;width:auto;height:auto;top:12px;left:20px;z-index:100;padding:15px;background:#fff}.header{height:88px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;background:#fffffff5;backdrop-filter:blur(16px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--coral);flex-shrink:0}.brand-icon{width:43px;height:43px}.brand>span{font-size:22px;font-weight:700;letter-spacing:-1px;line-height:1}.brand>span>span{display:block;font-size:14px;font-weight:500;letter-spacing:.2px;margin-top:5px}.desktop-nav{display:flex;align-items:center;gap:26px;font-size:14px;color:var(--muted)}.desktop-nav a{padding:15px 0}.desktop-nav .selected{color:var(--ink);font-weight:600}.desktop-nav a:hover{color:var(--coral)}.header-cta{display:flex;gap:12px;align-items:center;font-size:13px;font-weight:600;border:1px solid #ddd;border-radius:99px;padding:12px 17px}.header-cta:hover{background:#f7f7f7}.header-cta svg{width:18px;height:18px}.discovery{padding-top:40px;padding-bottom:26px}.intro{display:flex;align-items:center;justify-content:space-between;gap:30px}.eyebrow{display:block;font-size:10px;letter-spacing:1.6px;font-weight:600;color:var(--muted);margin-bottom:14px}h1{font-size:clamp(30px,3vw,46px);letter-spacing:-1.7px;line-height:1.16;font-weight:600}h1>span{color:var(--coral)}.intro p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:12px}.mobile-break{display:none}.intro-stamp{font-size:12px;line-height:1.6;padding:17px 23px;border-radius:18px;background:#fff2ed;transform:rotate(3deg);white-space:nowrap;color:#8e4535}.intro-stamp strong{font-size:16px;font-weight:600}.search{margin:26px auto 0;max-width:770px;display:flex;align-items:center;border:1px solid #ddd;border-radius:99px;padding:8px 9px 8px 22px;box-shadow:0 3px 12px #0000000b;gap:14px;background:#fff}.search label{display:flex;color:var(--muted)}.search label svg{width:21px;height:21px}.search input{min-width:0;flex:1;border:0;background:none;padding:10px 0;font-size:14px;color:var(--ink)}.search input:focus{outline:0}.search:focus-within{border-color:#b4b4b4;box-shadow:0 3px 15px #00000014}.search button{background:var(--coral);border-radius:99px;color:white;display:flex;align-items:center;gap:9px;padding:13px 19px;font-size:12px;font-weight:600}.search button svg{width:17px;height:17px}.category-bar{position:sticky;top:88px;z-index:25;background:#fffffff7;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.categories{display:flex;gap:34px;overflow-x:auto;scrollbar-width:none}.categories::-webkit-scrollbar{display:none}.category{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;flex-shrink:0;background:transparent;min-height:88px;border-bottom:2px solid transparent;color:#777;padding:13px 3px 15px;font-size:11px;font-weight:600;white-space:nowrap}.category svg{width:25px;height:25px}.category.active{color:var(--coral);border-bottom-color:var(--coral)}.category:hover{color:var(--ink)}.portfolio{padding-top:29px;padding-bottom:40px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}h2{font-size:25px;font-weight:600;letter-spacing:-.7px;line-height:1.25}.section-heading p{font-size:12px;color:var(--muted);margin-top:7px}.gallery-tip{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.gallery-tip svg{width:18px;height:18px}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 22px}.project-card{min-width:0}.project-card[hidden],.empty[hidden]{display:none}.card-media{position:relative;border-radius:var(--radius);overflow:hidden;background:#f2f1ee;isolation:isolate}.carousel{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.carousel::-webkit-scrollbar{display:none}.slide{flex:0 0 100%;min-width:0;width:100%;padding:0;aspect-ratio:1.06;background:#f2f1ee;scroll-snap-align:start;scroll-snap-stop:always;display:block}.slide img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.slide:hover img{transform:scale(1.025)}.badge{position:absolute;top:13px;left:13px;z-index:2;background:#ffffffed;padding:8px 11px;border-radius:99px;font-size:10px;font-weight:600;box-shadow:0 2px 7px #00000010;pointer-events:none}.badge-villa{background:#e8f3e5;color:#315d39}.badge-interior{background:#f0e6ff;color:#67408e}.badge-gedung{background:#e4edff;color:#345d9b}.badge-kost{background:#fff0da;color:#80511f}.carousel-arrow{position:absolute;top:calc(50% - 16px);z-index:3;width:32px;height:32px;border:1px solid #ddd;background:#ffffffed;border-radius:50%;display:grid;place-items:center;opacity:0;transition:opacity .2s;box-shadow:0 2px 4px #0001}.carousel-arrow svg{width:15px;height:15px}.carousel-arrow.prev{left:12px}.carousel-arrow.prev svg{transform:rotate(180deg)}.carousel-arrow.next{right:12px}.card-media:hover .carousel-arrow,.card-media:focus-within .carousel-arrow{opacity:1}.carousel-arrow:disabled{visibility:hidden}.dots{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;gap:4px;pointer-events:none}.dot{width:5px;height:5px;background:#ffffff80;border-radius:50%;box-shadow:0 1px 2px #0005}.dot.active{background:white;transform:scale(1.2)}.photo-count{position:absolute;right:12px;bottom:12px;background:#0006;color:white;padding:4px 7px;border-radius:5px;font-size:9px;pointer-events:none}.card-copy{padding-top:13px}.project-title{background:none;padding:0;text-align:left;font-size:14px;font-weight:600;line-height:1.45;display:block;overflow-wrap:anywhere}.project-title:hover{text-decoration:underline}.card-copy p{font-size:12px;line-height:1.5;color:var(--muted);margin-top:4px}.card-bottom{display:block;font-size:11px;margin-top:7px;color:#565656}.card-bottom>span{padding:0 3px;color:#aaa}.gallery-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:30px}.empty{text-align:center;padding:65px 20px;border-radius:20px;background:#fafafa}.empty>span{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff1f3;color:var(--coral);margin-bottom:18px}.empty h3{font-size:21px;margin-bottom:10px}.empty p{font-size:14px;color:var(--muted);line-height:1.7}.empty button{background:var(--ink);color:white;border-radius:10px;padding:13px 20px;margin-top:22px}.contact-banner{padding-block:10px 65px}.banner-inner{background:#fff0f2;border-radius:24px;padding:35px 38px;display:flex;justify-content:space-between;gap:30px;align-items:center}.banner-inner .eyebrow{color:#a24558;font-size:9px;margin-bottom:10px}.banner-inner h2{font-size:30px}.banner-inner p{font-size:13px;margin-top:10px;line-height:1.7;color:#825963}.primary-button{background:var(--coral);color:white;border-radius:12px;display:inline-flex;align-items:center;gap:24px;padding:17px 22px;flex-shrink:0;font-size:13px;font-weight:600}.primary-button svg{width:18px;height:18px}.services{padding-bottom:65px}.services .eyebrow{font-size:9px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service{padding:28px;border-radius:20px}.service-peach{background:#fff1e7}.service-lilac{background:#f2edfc}.service-mint{background:#edf5ee}.service>svg{margin-bottom:24px;width:32px;height:32px}.service h3{font-size:19px;font-weight:600;letter-spacing:-.4px}.service p{font-size:13px;line-height:1.8;margin-top:12px;color:#666}.process{padding-bottom:65px}.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-top:30px}.process article{border-top:1px solid var(--line);padding-top:20px}.process article>span{font-size:12px;color:var(--coral);font-weight:600}.process h3{font-size:16px;margin-top:15px}.process p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:10px}.film{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-bottom:65px}.film h2{font-size:34px;max-width:360px}.film p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:16px;max-width:340px}.film video{width:100%;height:400px;background:#f5f4f1;border-radius:20px;object-fit:contain}.faq{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-bottom:75px}.faq details{border-bottom:1px solid var(--line);padding:19px 0}.faq details:first-child{border-top:1px solid var(--line)}summary{font-size:14px;cursor:pointer;line-height:1.6}.faq details p{font-size:13px;line-height:1.8;color:var(--muted);padding-top:12px}footer{background:#f7f7f7;border-top:1px solid var(--line)}.footer-main{display:flex;justify-content:space-between;gap:30px;padding-block:40px}.footer-main p{margin-top:18px;font-size:12px;color:var(--muted)}.footer-main h3{font-size:14px;margin-bottom:18px}.footer-main>div>a:not(.brand){display:block;font-size:12px;margin-top:12px}.footer-main>div>a:hover{text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ddd;padding-block:22px;font-size:11px;color:#666}.mobile-nav{display:none}dialog{border:0;border-radius:22px;padding:0;max-width:1000px;width:calc(100% - 48px);max-height:94svh;background:white;color:var(--ink);box-shadow:0 20px 90px #0004}dialog::backdrop{background:#171717cf}.modal-header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 24px}.modal-header h2{font-size:17px;letter-spacing:-.3px}.modal-header p{font-size:11px;margin-top:6px;color:var(--muted)}.icon-button{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#f4f4f4;flex-shrink:0}.icon-button svg{width:20px;height:20px}.modal-image-wrap{position:relative;background:#f4f3ef;display:flex;align-items:center;justify-content:center;min-height:180px}.modal-image-wrap>img{display:block;max-width:100%;width:100%;height:65svh;object-fit:contain}.modal-image-wrap .icon-button{position:absolute;z-index:2;background:#ffffffed;box-shadow:0 2px 8px #0002}.modal-image-wrap .icon-button:disabled{visibility:hidden}#modal-prev{left:12px}#modal-prev svg{transform:rotate(180deg)}#modal-next{right:12px}.modal-footer{padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px}.modal-footer p{color:var(--muted)}.modal-footer a{display:flex;gap:10px;align-items:center;font-weight:600;color:var(--coral)}.modal-footer a svg{width:18px;height:18px}
@media(max-width:1199px){.container{width:calc(100% - 64px)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-nav{gap:18px}.categories{gap:28px}.intro-stamp{display:none}.gallery-tip{display:none}}@media(max-width:899px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-nav{display:none}.container{width:calc(100% - 48px)}.banner-inner{padding:28px}.banner-inner h2{font-size:26px}.service{padding:24px}.film,.faq{gap:28px}.film h2{font-size:29px}}
@media(max-width:599px){html{scroll-padding-top:145px}.container{width:calc(100% - 40px)}.header{height:69px}.brand-icon{width:33px;height:33px}.brand{gap:8px}.brand>span{font-size:19px;letter-spacing:-.8px}.brand>span>span{font-size:11px;margin-top:4px}.header-cta{font-size:11px;padding:10px 12px;gap:7px}.header-cta svg{width:15px;height:15px}.discovery{padding-top:27px;padding-bottom:17px}.eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:11px}h1{font-size:31px;letter-spacing:-1.15px;line-height:1.16}.mobile-break{display:block}.intro p{font-size:12px;line-height:1.7;margin-top:12px;max-width:350px}.search{margin-top:20px;padding:6px 7px 6px 16px;gap:11px}.search input{font-size:16px;padding:10px 0}.search input::placeholder{font-size:12px}.search label svg{width:18px;height:18px}.search button{width:40px;height:40px;padding:0;justify-content:center}.search button span{display:none}.category-bar{top:69px}.categories{gap:25px;margin-right:-20px;padding-right:20px}.category{min-height:76px;padding-block:11px 12px;gap:7px;font-size:10px}.category svg{width:23px;height:23px}.portfolio{padding-top:23px;padding-bottom:30px}.section-heading{margin-bottom:20px}h2{font-size:22px;letter-spacing:-.55px}.section-heading p{font-size:11px}.project-grid{grid-template-columns:minmax(0,1fr);gap:28px}.card-media{border-radius:17px}.slide{aspect-ratio:1.16}.carousel-arrow{opacity:1;width:30px;height:30px;top:calc(50% - 15px)}.badge{top:13px;left:13px;font-size:10px}.card-copy{padding-top:12px}.project-title{font-size:15px}.card-copy p{font-size:12px}.card-bottom{font-size:11px}.photo-count{font-size:10px}.gallery-note{font-size:10px;margin-top:24px}.contact-banner{padding-block:0 40px}.banner-inner{display:block;border-radius:20px;padding:25px}.banner-inner h2{font-size:25px;max-width:260px}.banner-inner p{font-size:12px}.primary-button{margin-top:21px;padding:15px 18px;font-size:12px;justify-content:space-between;width:100%}.services{padding-bottom:40px}.service-grid{grid-template-columns:1fr;gap:12px}.service{padding:23px;display:grid;grid-template-columns:36px 1fr;gap:0 17px;align-items:start;border-radius:17px}.service>svg{width:28px;height:28px;grid-row:span 2;margin:0}.service h3{font-size:17px}.service p{font-size:12px;line-height:1.7;margin-top:8px}.process{padding-bottom:40px}.process-grid{grid-template-columns:1fr;gap:22px;margin-top:23px}.process article{display:grid;grid-template-columns:28px 1fr;gap:0 13px;padding-top:18px}.process article>span{grid-row:span 2;padding-top:2px}.process h3{font-size:15px;margin-top:0}.process p{font-size:12px;margin-top:8px}.film{grid-template-columns:1fr;gap:22px;padding-bottom:40px}.film h2{font-size:26px;max-width:290px}.film p{font-size:12px;margin-top:11px}.film video{height:350px;border-radius:17px}.faq{grid-template-columns:1fr;gap:24px;padding-bottom:40px}.faq details{padding:17px 0}.faq details p{font-size:12px}.faq summary{font-size:13px}.footer-main{flex-direction:column;padding-block:30px;gap:27px}.footer-main p{margin-top:14px}.footer-main h3{font-size:13px}.footer-bottom{font-size:10px;padding-bottom:calc(95px + env(safe-area-inset-bottom));gap:15px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:#fffffffa;backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:35;display:flex;justify-content:space-evenly;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}.mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:70px;min-height:44px;color:#747474;font-size:10px}.mobile-nav a svg{width:23px;height:23px}.mobile-nav a.active,.mobile-nav a:last-child{color:var(--coral)}dialog{width:100%;max-width:100%;max-height:100svh;border-radius:0;margin:auto 0;padding-bottom:env(safe-area-inset-bottom)}.modal-header{padding:16px;align-items:flex-start;gap:12px}.modal-header h2{font-size:15px;line-height:1.5}.modal-header p{font-size:10px}.modal-image-wrap>img{height:60svh;max-height:650px}.modal-footer{padding:16px;align-items:flex-start;flex-direction:column;font-size:12px}.modal-footer a{padding-block:7px}.icon-button{width:36px;height:36px}.empty{padding:40px 20px}.empty h3{font-size:19px}.empty p{font-size:12px}}@media(max-width:359px){.container{width:calc(100% - 32px)}.header-cta{font-size:10px;padding:10px}.header-cta svg{display:none}h1{font-size:28px}.brand>span{font-size:17px}.brand-icon{width:30px;height:30px}.categories{margin-right:-16px;padding-right:16px}.slide{aspect-ratio:1.08}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;scroll-behavior:auto!important}}
