:root{--bg:#14181a;--s1:#1f2326;--s2:#292e32;--lime:#84f520;--lime2:#4e9a0a;--tx:#f2f6ec;--mut:#aab3a4;--r:16px;--e:cubic-bezier(.2,.7,.2,1);--sa:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:76px}
body{background:var(--bg);color:var(--tx);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%}a{color:inherit}h1,h2,h3{line-height:1.12;font-family:Georgia,"Times New Roman",serif;font-weight:700}
h1{font-size:clamp(2.3rem,6vw,4.4rem)}h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}em{color:var(--lime);font-style:italic}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.w{width:min(1180px,100% - 2.4rem);margin-inline:auto}section{padding:clamp(3rem,7vw,5.5rem) 0}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:99px;border:2px solid var(--lime);font-weight:700;text-decoration:none;background:none;color:var(--tx);cursor:pointer;font-size:1rem;transition:transform .25s var(--e),background .25s}
.btn.p{background:var(--lime);color:#10150a}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}
.eyebrow{color:var(--lime);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:700;margin-bottom:.6rem}
header{position:sticky;top:0;z-index:20;background:rgba(20,24,26,.92);backdrop-filter:blur(8px);border-bottom:1px solid #ffffff14;padding-top:var(--sa)}
.nb{display:flex;align-items:center;gap:1rem;height:66px}.nb img{width:46px;height:46px;border-radius:8px}
nav{margin-left:auto;display:flex;gap:.3rem}nav a{padding:.5rem .8rem;text-decoration:none;color:var(--mut);border-radius:8px;position:relative;font-weight:600}
nav a[aria-current=true]{color:var(--tx)}nav a[aria-current=true]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:2px;height:3px;border-radius:3px;background:var(--lime)}
.ib{background:var(--s1);border:1px solid #ffffff22;color:var(--tx);border-radius:12px;width:44px;height:44px;cursor:pointer;font-size:1.1rem}.mb{display:none}
.hero{padding:clamp(2rem,5vw,4rem) 0 3rem;background:radial-gradient(60% 70% at 75% 40%,#84f52024,transparent 70%)}
.hg{display:grid;grid-template-columns:1.05fr 1fr;gap:2.5rem;align-items:center}.hero p.l{color:var(--mut);font-size:1.12rem;max-width:34rem;margin:1.1rem 0 1.8rem}.ctas{display:flex;gap:.8rem;flex-wrap:wrap}
.scene{perspective:1100px}.unit{--rx:3deg;--ry:-12deg;transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .25s var(--e);background:#0c0f10;border:6px solid var(--lime2);border-radius:10px;padding:10px 10px 0;box-shadow:-30px 30px 50px #000a}
.row{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:8px;padding:8px 8px 0;position:relative}
.row::after{content:"";grid-column:1/-1;height:14px;margin:0 -8px;background:linear-gradient(#b8ff6a,#4e9a0a 70%,#2f5e06);box-shadow:0 12px 14px -6px #000}
.t{aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:var(--s1);border:0;padding:0;cursor:pointer;position:relative;transition:transform .3s var(--e),box-shadow .3s;display:block;width:100%}
.t img{width:100%;height:100%}.t:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 14px 20px #000a;z-index:2}.unit .t{transform:translateZ(18px)}.unit .t:hover{transform:translateZ(34px) scale(1.04)}
.dept{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:2rem}
.dc{position:relative;aspect-ratio:1/1;border-radius:var(--r);overflow:hidden;border:1px solid #ffffff1a;padding:0;cursor:pointer;color:var(--tx);text-align:left;background:var(--s1);transition:transform .3s var(--e),border-color .3s}
.dc:hover{transform:translateY(-5px);border-color:var(--lime)}.dc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--e)}.dc:hover img{transform:scale(1.07)}
.dc span{position:absolute;inset:auto 0 0;padding:2.2rem .9rem .8rem;background:linear-gradient(transparent,#000d);font-weight:700}.dc small{display:block;color:var(--lime);font-weight:600}
.chips{display:flex;gap:.5rem;overflow-x:auto;padding:.3rem 0 .8rem;scrollbar-width:thin}.chip{flex:none;padding:.5rem 1rem;border-radius:99px;background:var(--s1);border:1px solid #ffffff22;color:var(--tx);cursor:pointer;font:600 .9rem inherit}
.chip[aria-pressed=true]{background:var(--lime);color:#10150a;border-color:var(--lime)}
.shelf{background:#0c0f10;border:1px solid #ffffff14;border-radius:var(--r);padding:1rem .6rem .4rem;margin-top:1rem;--n:4}.shelf .row{margin-bottom:1.2rem}.shelf .t{aspect-ratio:4/3}.shelf.sw{animation:sw .45s var(--e)}
@keyframes sw{from{opacity:0;transform:translateY(12px)}}
.tools{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:1.4rem 0 .6rem}
input[type=search]{flex:1;min-width:220px;padding:.8rem 1.1rem;border-radius:99px;border:1px solid #ffffff33;background:var(--s1);color:var(--tx);font-size:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:1rem}
.card{background:var(--s1);border:1px solid #ffffff14;border-radius:var(--r);overflow:hidden;cursor:pointer;text-align:left;color:var(--tx);padding:0;transition:transform .3s var(--e),border-color .3s}.card:hover{transform:translateY(-4px);border-color:var(--lime)}
.card .t{border-radius:0;aspect-ratio:4/3;pointer-events:none}.card div.m{padding:.8rem 1rem 1rem}.card b{display:block}.card small{color:var(--mut)}
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--e),transform .6s var(--e)}.rv.in{opacity:1;transform:none}
.ab{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}.ab p{color:var(--mut);margin-top:1rem}.col{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.col img{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;width:100%}.col img:first-child{grid-column:1/-1}
.gal{columns:3 260px;gap:.8rem;margin-top:1.6rem}.gal button{display:block;width:100%;margin-bottom:.8rem;border:0;padding:0;border-radius:var(--r);overflow:hidden;cursor:zoom-in;background:var(--s1)}.gal img{width:100%;height:auto;transition:transform .5s var(--e)}.gal button:hover img{transform:scale(1.04)}
.vis{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2rem}.box{background:var(--s1);border:1px solid #ffffff1a;border-radius:var(--r);padding:1.6rem}.box h3{font-size:1.2rem;margin-bottom:.6rem}.box p{color:var(--mut)}.box .ctas{margin-top:1rem}
footer{border-top:1px solid #ffffff14;padding:2.2rem 0 3rem;color:var(--mut)}.fg{display:flex;gap:2rem;flex-wrap:wrap;align-items:center}.fg img{width:56px;border-radius:8px}.fg nav{margin:0 auto 0 0}
dialog{border:1px solid #ffffff33;border-radius:var(--r);background:var(--s1);color:var(--tx);padding:0;width:min(960px,94vw);max-height:92vh;overflow:auto}dialog::backdrop{background:#000c}dialog[open]{animation:sw .35s var(--e)}
dialog img{width:100%;max-height:68vh;object-fit:contain;background:#000}.dm{padding:1.1rem 1.4rem 1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center}.dm h3{flex:1 1 100%}.dm p{color:var(--mut)}.dn{display:flex;gap:.5rem;margin-left:auto}
.xb{position:absolute;right:.7rem;top:.7rem;z-index:2}.note{font-size:.85rem;color:var(--mut);margin-top:.8rem}
@media(max-width:860px){.hg,.ab,.vis{grid-template-columns:1fr}.mb{display:block}#sb{margin-left:auto}nav{display:none;position:absolute;top:calc(66px + var(--sa));left:0;right:0;flex-direction:column;background:var(--bg);padding:.8rem 1.2rem 1.2rem;border-bottom:1px solid #ffffff22}nav.o{display:flex}nav a{padding:.9rem .6rem;font-size:1.1rem}.unit{--ry:-6deg;--rx:2deg}.shelf{--n:2}}

#intro{position:fixed;inset:0;z-index:100;display:grid;place-content:center;background:radial-gradient(circle at 50% 45%,#17240d,#0b0e0f 72%);overflow:hidden;cursor:pointer;animation:out .35s ease 2s forwards}
.ni #intro{display:none}#skip{position:absolute;right:1.2rem;top:calc(1rem + var(--sa));z-index:2;background:none;border:1px solid #ffffff44;color:var(--mut);border-radius:99px;padding:.45rem 1rem;cursor:pointer;font:600 .85rem inherit}
#intro::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#84f52030 50%,transparent 70%);transform:translateX(-100%);animation:sweep .7s ease .05s forwards}
#hw{width:min(64vmin,420px);height:auto;overflow:visible}#intro::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(132,245,32,.22),transparent 55%);opacity:0;animation:halo .5s ease 1.85s}
#hw .m{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;visibility:hidden;animation:draw var(--t) cubic-bezier(.45,.05,.35,1) var(--d) forwards}
#hw .n{fill:none;stroke:#f4ffd9;stroke-width:9;stroke-linecap:round;stroke-dasharray:.006 3;opacity:0;animation:nib var(--t) cubic-bezier(.45,.05,.35,1) var(--d) forwards}
@keyframes draw{from{stroke-dashoffset:1;visibility:visible}to{stroke-dashoffset:0;visibility:visible}}@keyframes nib{0%{opacity:1;stroke-dashoffset:0}98%{opacity:1}100%{opacity:0;stroke-dashoffset:-1}}@keyframes halo{50%{opacity:1}}@keyframes sweep{to{transform:translateX(100%)}}@keyframes out{to{opacity:0;visibility:hidden}}
@keyframes up{from{opacity:0;transform:translateY(22px)}}
.hero .hg>div:first-child>*{animation:up .8s var(--e) both;animation-delay:calc(var(--d,0s) + var(--i,0)*.12s)}html:not(.ni){--d:2s}.hero .scene{animation:up 1s var(--e) both;animation-delay:calc(var(--d,0s) + .3s)}
.big{font-size:1.05rem;letter-spacing:.14em;padding:1rem 1.8rem;box-shadow:0 0 0 0 #84f52000;transition:transform .25s var(--e),box-shadow .3s}.big:hover{box-shadow:0 0 28px #84f52077}
#store{position:fixed;inset:0;z-index:50;background:#0e2a20;display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:opacity .5s var(--e),visibility .5s}#store.on{visibility:visible;opacity:1}
.sb{display:flex;align-items:center;gap:.8rem;padding:calc(.7rem + var(--sa)) 1rem .7rem;z-index:3;background:#0b1f17}.sb img{width:40px;border-radius:7px}.sb b{font:700 1.05rem Georgia,serif}.sb .btn{margin-left:auto;padding:.55rem 1.1rem}
.stage{flex:1;position:relative;min-height:0;background:linear-gradient(#123a2b,#0e2a20)}#cv{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#cv:active{cursor:grabbing}
.hint{position:absolute;left:1rem;top:.8rem;background:#0b1f17cc;border:1px dashed #ffffff33;border-radius:99px;padding:.45rem .9rem;font:600 .7rem ui-monospace,monospace;letter-spacing:.12em;color:#cfe3d4;pointer-events:none}
.ctl{position:absolute;left:1rem;bottom:1rem;display:flex;gap:.5rem;z-index:2}.ld{position:absolute;inset:0;display:grid;place-content:center;color:var(--mut)}.ld[hidden]{display:none}
#sc{display:flex;gap:.5rem;overflow-x:auto;padding:.7rem 1rem calc(.8rem + env(safe-area-inset-bottom,0px));z-index:3;background:#0b1f17}.chip i{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.5rem;vertical-align:-1px}
#sp{position:absolute;right:1rem;top:4.2rem;bottom:5rem;width:min(400px,92vw);background:#0b1f17f2;border:1px solid #84f52066;border-radius:var(--r);display:none;flex-direction:column;z-index:4;overflow:hidden}#sp.on{display:flex}#sp h3{padding:1rem 1.1rem .2rem}#sp p{padding:0 1.1rem;color:var(--mut);font-size:.9rem}
.pg{flex:1;min-height:0;align-content:start;grid-auto-rows:max-content;overflow:auto;padding:.8rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.pi{display:block;width:100%;background:var(--s1);border:1px solid #ffffff1a;border-radius:10px;color:var(--tx);padding:0;cursor:pointer;text-align:left;overflow:hidden;transition:transform .25s var(--e),border-color .25s}.pi img{display:block;width:100%;height:auto;aspect-ratio:4/3}.pi:hover{transform:translateY(-3px);border-color:var(--lime)}.pi span{display:block;padding:.4rem .6rem .55rem;font-size:.82rem;font-weight:600;line-height:1.25}
@media(max-width:860px){#sp{left:.6rem;right:.6rem;top:auto;bottom:4.3rem;width:auto;max-height:32%}#sp h3{font-size:1rem;padding:.6rem .9rem 0}#sp p{display:none}.pg{display:flex;overflow-x:auto;overflow-y:hidden;padding:.5rem .7rem}.pi{flex:0 0 140px;width:140px}.pi span{font-size:.72rem;padding:.3rem .45rem}.hint{font-size:.6rem}}
#store.flat .stage{display:none}#store.flat #sp{position:static;display:flex;flex:1;width:auto;max-height:none;border-radius:0;border:0;background:none}#store.flat .pg{display:grid;grid-template-columns:repeat(2,1fr);overflow:auto}#store.flat .pi{width:100%;flex:none}
.mapc{position:relative;margin-top:2rem;min-height:410px;border-radius:24px;overflow:hidden;border:1px solid #84f52033;background:radial-gradient(80% 90% at 50% 40%,#1b2a12,#101417 75%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:5.5rem 1.2rem 2rem;text-align:center}
.topo{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#84f52026;stroke-width:1.5}.route{position:absolute;left:0;bottom:0;width:58%;height:68%;fill:none;stroke:#84f520aa;stroke-width:3;stroke-linecap:round;stroke-dasharray:1 12}.rd{position:absolute;left:5%;bottom:30%;background:#0b0e0fcc;border-radius:99px;padding:.35rem .8rem;font:.75rem ui-monospace,Menlo,monospace;color:var(--mut)}
.tag{position:absolute;left:5%;top:1.5rem;max-width:90%;transform:rotate(-2deg);background:var(--tx);color:#10150a;border:2px dashed #10150a55;border-radius:10px;padding:.55rem 1rem;font:600 .8rem ui-monospace,Menlo,monospace;display:flex;gap:.6rem;align-items:center;box-shadow:0 8px 20px #0008;text-align:left}.tag i{width:.7rem;height:.7rem;border-radius:50%;background:var(--lime2);flex:none}
.pin{position:relative;isolation:isolate;display:grid;place-items:start center;width:70px;height:84px}.pin svg{width:58px;filter:drop-shadow(0 6px 10px #0009);transition:transform .3s var(--e)}.pin:hover svg{transform:translateY(-4px)}.pin::after{content:"";position:absolute;bottom:4px;left:50%;width:46px;height:46px;margin-left:-23px;border-radius:50%;background:#84f52033;z-index:-1;animation:pulse 2.4s ease-out infinite}
@media(max-width:520px){.rd{left:4%;bottom:9%}.loc{letter-spacing:.12em;font-size:.7rem}}@keyframes pulse{from{transform:scale(.5);opacity:1}to{transform:scale(1.9);opacity:0}}.mapc h3{font-size:clamp(1.5rem,4vw,2.1rem);position:relative}.loc{position:relative;font:600 .78rem ui-monospace,Menlo,monospace;letter-spacing:.2em;color:var(--mut)}.mapc .btn{position:relative;margin-top:1.1rem}
/* v5: readable theme-coloured type + departmental-store backdrops */
:root{--mut:#cdd6c5}body{font-size:17px}@media(min-width:861px){body{font-size:18px}}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:url(images/store-background.webp) center/cover no-repeat}body::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(rgba(12,16,17,.5),rgba(12,16,17,.68));pointer-events:none}
.hero{background:radial-gradient(60% 70% at 75% 40%,#84f52022,transparent 70%),linear-gradient(90deg,rgba(11,14,15,.85),rgba(11,14,15,.55) 60%,rgba(11,14,15,.3)),url(assets/banner.jpg) center/cover no-repeat}
@media(max-width:860px){.hero{background:radial-gradient(60% 50% at 70% 70%,#84f52022,transparent 70%),linear-gradient(rgba(11,14,15,.8),rgba(11,14,15,.62)),url(assets/banner.jpg) center/cover no-repeat}}
.hero p.l{font-size:1.2rem;color:#e0e8d8}nav a{font-size:1rem;color:#d4dccd}nav a[aria-current=true]{color:var(--lime)}@media(min-width:861px) and (max-width:1100px){nav a{padding:.5rem .55rem;font-size:.95rem}}
.eyebrow{font-size:.9rem}.note{font-size:.95rem;color:#c6d1be}
.chip{font-family:inherit;font-weight:600;font-size:1rem;line-height:1.2;padding:.6rem 1.1rem}
.card .m{padding:1rem 1.1rem 1.25rem}.card b{display:block;color:var(--lime);font-size:1.2rem;line-height:1.3;margin-bottom:.25rem}.card small{display:block;color:#e3ecd9;font-size:1rem}
.dc span{font-size:1.15rem}.dc small{font-size:.95rem}
.box h3{font-size:1.4rem;color:var(--lime)}.box p{font-size:1.05rem;color:#d8e1d0}.ab p{font-size:1.1rem;color:#d8e1d0}.loc{font-size:.85rem;color:#d8e1d0}.tag{font-size:.9rem}
.pi span{font-size:1rem;color:var(--lime);line-height:1.3}#sp h3{font-size:1.3rem;color:var(--lime)}#sp p{font-size:1rem}.dm h3{font-size:1.5rem;color:var(--lime)}.dm p{font-size:1.05rem;color:#d8e1d0}
input[type=search]{font-size:1.05rem}footer{background:rgba(12,16,17,.9);font-size:1rem;color:#d4dccd}
/* v7: motion (theme-neutral) */
.btn{overflow:hidden;transition:transform .25s var(--e),box-shadow .25s,background .25s}.btn:not(.xb){position:relative}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-130%);transition:transform .7s var(--e);pointer-events:none}.btn:hover::before{transform:translateX(130%)}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.35)}.btn:active{transform:translateY(0) scale(.95);box-shadow:none}
.chip{transition:transform .2s var(--e),background .25s,color .25s}.chip:hover{transform:translateY(-2px)}.chip:active{transform:scale(.94)}.chip[aria-pressed=true]{animation:pop .35s var(--e)}
nav a:hover{color:var(--lime)}.card .t img{transition:transform .7s var(--e)}.card:hover .t img{transform:scale(1.07)}.t:hover{box-shadow:0 14px 24px rgba(0,0,0,.45),0 0 0 2px var(--lime)}
@keyframes menu{from{opacity:0;transform:translateY(-8px)}}nav.o{animation:menu .28s var(--e)}@keyframes pop{50%{transform:scale(1.08)}}@keyframes tileIn{from{opacity:0;transform:translateZ(18px) translateY(22px) scale(.94)}}@keyframes tileUp{from{opacity:0;transform:translateY(22px) scale(.94)}}@keyframes board{from{transform:scaleX(0)}}
.unit .t{animation:tileIn .6s var(--e) both;animation-delay:calc(var(--d,0s) + .5s + var(--k,0)*70ms)}.unit .row::after{transform-origin:left;animation:board .7s var(--e) both;animation-delay:calc(var(--d,0s) + .4s)}
.shelf.sw .t{animation:tileUp .5s var(--e) both;animation-delay:calc(var(--k,0)*45ms)}.shelf.sw .row::after{transform-origin:left;animation:board .6s var(--e) both}.shelf.sw .row:nth-child(2)::after{animation-delay:.12s}.shelf.sw .row:nth-child(3)::after{animation-delay:.24s}
@media(prefers-reduced-motion:reduce){#intro{display:none}*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.unit{transform:none}}