:root{--ink:#181411;--paper:#f3eee5;--rust:#a64c34;--gold:#c6a777;--muted:#6c6258}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.hidden{display:none!important}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid #d7cfc2}.brand{color:var(--ink);text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.16em;white-space:nowrap}.brand span:last-child{font-weight:400}.brand-mark{font-size:30px;color:var(--rust);vertical-align:middle;margin-right:12px}.text-button{border:0;background:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700}.text-button span{font-size:17px;margin-left:12px}.hero{min-height:680px;display:grid;grid-template-columns:1fr 48%;overflow:hidden}.hero-copy{padding:9vw 5vw 7vw;z-index:1}.eyebrow,.kicker{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--rust)}.eyebrow{display:flex;align-items:center;gap:12px}.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--rust)}.eyebrow .line{width:40px;height:1px;background:#bdb0a0}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500}h1{font-size:clamp(56px,6vw,106px);line-height:1.06;letter-spacing:-.055em;margin:36px 0 32px}h1 em,h2 em{color:var(--rust);font-weight:500}.hero-copy>p{max-width:570px;color:#62584f;font-size:17px;line-height:1.8}.actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.primary,.secondary{border:1px solid var(--ink);min-height:52px;padding:0 22px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:28px;justify-content:space-between}.primary{background:var(--ink);color:white}.primary:hover{background:var(--rust);border-color:var(--rust)}.secondary{background:transparent;color:var(--ink)}.secondary:hover{background:#e9dfd1}.micro{font-size:11px;color:#897d70;margin-top:27px}.micro span{padding:0 7px}.hero-art{background:#d6c1a7;position:relative;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-art:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 49px,#8e6f5433 50px 51px);opacity:.5}.hero-art:after{content:'';position:absolute;width:650px;height:650px;border-radius:50%;background:#e6d6c388;top:-28%;right:-18%}.art-stack{position:relative;z-index:2;width:min(66%,450px);background:#f7f2e9;padding:16px;box-shadow:30px 34px 0 #8c4838,0 35px 75px #57402955;transform:rotate(-3deg)}.art-stack img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#a88d76}.art-label{display:flex;justify-content:space-between;align-items:center;padding:18px 6px 3px;gap:12px}.art-label small{font-size:9px;letter-spacing:.13em;color:#8a7666}.art-label strong{font-family:Georgia,serif;font-size:17px;text-align:right}.orbit{position:absolute;border:1px solid #fff9;border-radius:50%;width:720px;height:720px;z-index:1}.orbit-one{transform:translate(20%,20%)}.orbit-two{width:520px;height:520px;transform:translate(-40%,-25%)}.vertical-caption{position:absolute;right:24px;bottom:35px;z-index:2;writing-mode:vertical-rl;font-size:10px;letter-spacing:.26em}.collection,.journey{padding:100px 5vw}.collection{background:#eee7dc}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px}.section-heading h2,.journey h2{font-size:clamp(40px,4.2vw,70px);line-height:1.1;letter-spacing:-.04em;margin:18px 0 0}.section-heading p{max-width:360px;line-height:1.7;color:var(--muted);font-size:14px}.collection-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:13px}.collection-card{position:relative;aspect-ratio:.78;overflow:hidden;background:#d7c9ba;border:0;padding:0;text-align:left}.collection-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.collection-card:hover img{transform:scale(1.08)}.collection-card:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#120c0bbd)}.collection-card span{position:absolute;left:14px;bottom:14px;right:10px;color:white;font-size:12px;font-weight:700;z-index:1}.journey{display:grid;grid-template-columns:42% 1fr;gap:8vw;background:#221b18;color:#f3eee5}.journey .kicker{color:#d8a987}.journey-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.journey article{border:1px solid #6b5850;padding:32px;min-height:270px}.journey .icon{font-size:35px;color:#c58b6d}.journey h3{font-family:Georgia,serif;font-size:26px;font-weight:400;margin:35px 0 12px}.journey p{font-size:13px;line-height:1.75;color:#c1b6ad}footer{display:flex;justify-content:space-between;align-items:center;padding:32px 5vw;font-size:11px;letter-spacing:.1em;gap:20px}footer .text-button{color:var(--rust)}.experience{position:fixed;inset:0;background:#17120f;z-index:10;overflow:hidden;touch-action:none}.experience #scene,.experience canvas{position:absolute;inset:0;width:100%;height:100%}.experience video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.experience.camera-mode video{display:block}.experience-ui{position:absolute;inset:0;pointer-events:none;color:#fff}.experience-ui button,.joystick{pointer-events:auto}.hud-top{display:flex;align-items:center;gap:15px;padding:calc(env(safe-area-inset-top) + 18px) 24px 0}.round-btn{border:1px solid #ffffff77;background:#17110dbb;color:#fff;width:42px;height:42px;border-radius:50%;font-size:19px}.hud-title{display:flex;flex-direction:column;gap:3px;text-shadow:0 2px 5px #0009}.hud-title span{font-size:9px;letter-spacing:.18em;color:#d2ac80}.hud-title strong{font-family:Georgia,serif;font-weight:400;font-size:19px}.hud-top .round-btn:last-child{margin-left:auto}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:25px;font-weight:200;color:#fff9;text-shadow:0 1px 5px #000}.hud-bottom{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 26px);display:flex;align-items:end;justify-content:space-between;padding:0 30px;gap:20px}.joystick{width:116px;height:116px;border-radius:50%;border:2px solid #ffffff8c;background:#17120e77;position:relative;touch-action:none;flex:none}.stick{position:absolute;width:48px;height:48px;left:32px;top:32px;border-radius:50%;background:#f7efe0c9;border:2px solid white;box-shadow:0 2px 14px #0005}.hud-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:end}.hud-button{border:1px solid #ffffff91;background:#17120ebc;color:white;border-radius:3px;padding:12px 14px;font-size:12px}.hud-button.accent{background:#a64c34;border-color:#a64c34}.hud-button.square{font-size:22px;padding:5px 17px}.status{position:absolute;left:50%;bottom:165px;transform:translateX(-50%);background:#1a130fdc;padding:9px 14px;border-radius:3px;font-size:12px;max-width:85vw;text-align:center;opacity:0;transition:opacity .3s}.status.visible{opacity:1}.modal{border:0;padding:0;background:#f3eee5;color:#1a1512;box-shadow:0 25px 100px #0008;max-width:min(92vw,760px)}.modal::backdrop{background:#080604b9}.close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#201915;color:white;font-size:22px;z-index:3}.modal h2{font-size:clamp(30px,4vw,48px);line-height:1.14;margin:15px 0}.modal p{color:#6c6258;line-height:1.7;font-size:14px}#detailDialog{width:760px;display:grid;grid-template-columns:1fr 1fr}#detailDialog:not([open]){display:none}#detailImage{width:100%;height:100%;min-height:390px;object-fit:cover}.detail-copy{padding:70px 40px 40px;display:flex;flex-direction:column;justify-content:center}.detail-copy small{font-size:11px;color:#a18e7c}.qr-modal,.help-modal{padding:48px;width:min(92vw,520px);text-align:center}.qr-modal #qrCode{width:220px;height:220px;margin:20px auto;display:grid;place-items:center;background:#fff;padding:10px}.qr-modal #qrCode img,.qr-modal #qrCode canvas{max-width:100%;height:auto}.qr-modal #qrUrl{word-break:break-all;font-size:12px}.qr-modal .primary{margin:auto}.help-modal{text-align:left}.help-modal h2{margin-top:20px}.help-modal p{margin-bottom:14px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-copy{padding:70px 6vw 55px}.hero-art{min-height:480px}.collection-grid{grid-template-columns:repeat(4,1fr)}.journey{grid-template-columns:1fr;gap:40px}.section-heading{align-items:start;flex-direction:column;gap:12px}}
@media(max-width:600px){.topbar{height:68px;padding:0 5vw}.brand{font-size:10px}.brand-mark{font-size:22px;margin-right:5px}.topbar .text-button{font-size:10px}.hero-copy{padding:62px 6vw 60px}.hero-copy>p{font-size:15px}h1{font-size:clamp(50px,13vw,72px);margin:28px 0}.hero-art{min-height:390px}.art-stack{width:62%}.art-label{flex-direction:column;align-items:start;gap:3px}.art-label strong{text-align:left}.collection,.journey{padding:70px 5vw}.collection-grid{grid-template-columns:repeat(3,1fr);gap:8px}.collection-card span{font-size:10px;left:8px;bottom:9px}.journey-cards{grid-template-columns:1fr}.journey article{min-height:220px}footer{flex-wrap:wrap}.hud-top{padding-left:14px;padding-right:14px}.hud-bottom{padding:0 14px;bottom:calc(env(safe-area-inset-bottom) + 18px)}.joystick{width:100px;height:100px}.stick{left:26px;top:26px}.hud-actions{max-width:62%}.hud-button{padding:9px;font-size:10px}.hud-button span{display:none}.hud-button.square{padding:3px 12px}#detailDialog{grid-template-columns:1fr;width:min(92vw,450px)}#detailImage{height:240px;min-height:0}.detail-copy{padding:32px}.qr-modal,.help-modal{padding:42px 26px 28px}}

/* AR controls stay legible over the live camera feed. */
.ar-guide{display:none;position:absolute;top:calc(env(safe-area-inset-top) + 86px);left:50%;transform:translateX(-50%);width:min(420px,calc(100vw - 32px));padding:13px 16px;background:#17110de8;border:1px solid #e8d3b060;border-radius:14px;box-shadow:0 12px 32px #0005;align-items:center;gap:12px;backdrop-filter:blur(14px)}
.ar-guide-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#ad583f;color:#fff;flex:none}.ar-guide strong{font-size:12px;letter-spacing:.08em}.ar-guide p{font-size:12px;line-height:1.4;color:#e4d8c9;margin:4px 0 0}
.xr-mode .ar-guide,.preview-mode .ar-guide{display:flex}.xr-mode .joystick,.xr-mode .gyro-button,.xr-mode .crosshair,.preview-mode .crosshair{display:none}
.xr-mode .hud-bottom{justify-content:center;bottom:calc(env(safe-area-inset-bottom) + 20px)}.xr-mode .hud-actions{max-width:none;flex-wrap:nowrap;justify-content:center;background:#17110dbd;border:1px solid #ffffff3b;border-radius:18px;padding:8px;backdrop-filter:blur(16px)}
.xr-mode .hud-button{border:1px solid #ffffff70;border-radius:12px;min-height:48px;font-size:14px}.xr-mode .hud-button.square{min-width:48px;font-size:28px;line-height:1}.xr-mode #inspectBatik{min-width:150px;background:#ac4e35;border-color:#de8b67;font-weight:700;box-shadow:0 5px 20px #0006}
.xr-mode #inspectBatik:disabled{background:#493d36;border-color:#7c6b60;color:#c1b8ae;box-shadow:none;cursor:default}.xr-mode .hud-top .round-btn{background:#17110de8;backdrop-filter:blur(14px)}
.preview-mode .ar-guide{background:#2a1a17e8}.preview-mode .ar-guide strong{display:none}.preview-mode .hud-bottom{justify-content:space-between}
.status{z-index:2}.xr-mode .status{bottom:calc(env(safe-area-inset-bottom) + 98px)}
@media(max-width:600px){.xr-mode .hud-bottom{padding:0 10px}.xr-mode .hud-actions{width:100%;max-width:430px;gap:6px}.xr-mode .hud-button.square{min-width:46px;padding:4px 12px}.xr-mode #inspectBatik{flex:1;min-width:0;font-size:13px}.ar-guide{top:calc(env(safe-area-inset-top) + 75px)}}

/* Complete motif browser. The thumbnails load in pages to keep 2,204 images responsive. */
#detailDialog{display:flex;flex-direction:column;width:min(96vw,1180px);height:min(94dvh,950px);max-width:none;max-height:none;overflow:hidden;border-radius:14px}
.motif-heading{padding:27px 32px 10px;flex:none}.motif-heading h2{font-size:clamp(30px,3vw,45px);margin:7px 0 3px}.motif-heading p{font-size:13px;margin:0;color:#796a5f}
.group-filters{display:flex;gap:8px;padding:12px 32px 18px;overflow-x:auto;flex:none;scrollbar-width:thin;border-bottom:1px solid #d9cbbd}
.filter-chip{flex:none;border:1px solid #bda995;background:transparent;color:#48372d;border-radius:30px;padding:9px 13px;font-size:12px;white-space:nowrap}.filter-chip.active{background:#a64c34;border-color:#a64c34;color:#fff}
.motif-body{display:grid;grid-template-columns:minmax(260px,38%) 1fr;gap:0;min-height:0;flex:1}.motif-feature{background:#e5d7c5;display:flex;flex-direction:column;min-height:0;overflow:auto}.motif-feature #detailImage{width:100%;height:min(55vh,550px);min-height:0;object-fit:contain;padding:20px;background:#d5c1a8}.motif-feature .detail-copy{padding:20px 28px 28px;display:block}.motif-feature .detail-copy h3{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0 0 7px}.motif-feature .detail-copy p{margin:0 0 5px}.motif-browser{min-height:0;overflow:auto;padding:18px;background:#f8f3eb}.motif-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.motif-thumb{background:#e7dbcc;border:2px solid transparent;padding:0;text-align:left;overflow:hidden;border-radius:7px}.motif-thumb.active{border-color:#a64c34}.motif-thumb img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#cdb8a0}.motif-thumb span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 7px;font-size:10px;color:#4e4038}
.load-more{display:block;width:100%;margin-top:15px;padding:14px;border:1px solid #aa7e67;background:#fffaf2;color:#813e2a;font-size:13px;font-weight:700}.load-more[hidden]{display:none}
.camera-mode .ar-guide{display:flex}.camera-mode .crosshair{display:none}.camera-mode #prevBatik,.camera-mode #nextBatik,.xr-mode #prevBatik,.xr-mode #nextBatik{display:none}.camera-mode .ar-guide strong{display:none}.camera-mode .hud-actions{max-width:none}.camera-mode .experience-ui{z-index:2}.camera-mode #scene{z-index:1}
.xr-mode #allMotifsButton{display:inline-flex;align-items:center}.xr-mode #inspectBatik{min-width:145px}
.experience.xr-mode,.experience.camera-mode,.experience.preview-mode{touch-action:auto}.group-filters{touch-action:pan-x}.motif-browser{touch-action:pan-y}
.ar-collection-strip{display:none;position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 104px);gap:8px;overflow-x:auto;padding:6px;scrollbar-width:thin;pointer-events:auto;touch-action:pan-x;background:#1c140fc2;border:1px solid #ffffff40;border-radius:14px;backdrop-filter:blur(12px)}
.xr-mode .ar-collection-strip,.camera-mode .ar-collection-strip,.preview-mode .ar-collection-strip{display:flex}
.ar-collection-strip button{flex:none;width:76px;border:0;background:#f7efe7;border-radius:8px;padding:4px;pointer-events:auto;text-align:left}.ar-collection-strip img{display:block;width:68px;height:55px;object-fit:cover;border-radius:5px}.ar-collection-strip span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#36271e;padding:4px 2px 1px}
.actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:700px){.camera-mode .ar-collection-strip,.preview-mode .ar-collection-strip{bottom:calc(env(safe-area-inset-bottom) + 118px)}.xr-mode .ar-collection-strip{bottom:calc(env(safe-area-inset-bottom) + 91px)}}
@media(max-width:700px){#detailDialog{width:100vw;height:100dvh;max-height:none;border-radius:0}.motif-heading{padding:20px 17px 6px}.group-filters{padding:9px 17px 12px}.motif-body{display:flex;flex-direction:column}.motif-feature{flex:none;display:grid;grid-template-columns:42% 1fr;height:160px;overflow:hidden}.motif-feature #detailImage{height:160px;padding:7px}.motif-feature .detail-copy{padding:18px 12px;overflow:auto}.motif-feature .detail-copy h3{font-size:18px}.motif-feature .detail-copy p,.motif-feature .detail-copy small{font-size:11px}.motif-browser{flex:1;padding:10px}.motif-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.motif-thumb span{font-size:9px}.camera-mode .joystick{width:82px;height:82px}.camera-mode .stick{width:38px;height:38px;left:20px;top:20px}.camera-mode .hud-actions{max-width:none}.xr-mode #allMotifsButton{font-size:11px;padding:8px}}
