/* Live finish studies — original HAINAR mark is masked directly from the supplied brand asset. */
.craft-demo{--foil-low:#b78b32;--foil-high:#fff0ac;overflow:hidden;background:#e9eff5}.brand-symbol{display:block;width:1em;height:1em;background:currentColor;mask:url('assets/hainar-logo-horizontal.png') no-repeat 0 50%/318% 131%;-webkit-mask:url('assets/hainar-logo-horizontal.png') no-repeat 0 50%/318% 131%}.craft-demo button{font:inherit;cursor:pointer}.craft-demo button:focus-visible{outline:3px solid #b8792f;outline-offset:3px}.foil-stage,.sign-stage{position:relative;min-height:260px;display:grid;place-items:center;overflow:hidden}.foil-stage{background:radial-gradient(ellipse at 40% 5%,#c5d4e1,#e7edf4 60%);padding:35px 30px}.foil-card{position:relative;display:grid;place-items:center;width:min(100%,350px);aspect-ratio:1.75;background:#173c56;transform:perspective(900px) rotateX(10deg) rotateZ(-4deg);box-shadow:0 3px 0 #b9c3cb,0 22px 30px #183e6633;border:1px solid #56708530}.foil-print{text-align:center;display:grid;justify-items:center;gap:8px;color:var(--foil-low);padding:20px 10px 33px}.foil-print .brand-symbol{font-size:55px;background:linear-gradient(120deg,var(--foil-low),var(--foil-high) 32%,var(--foil-low) 47%,var(--foil-high) 58%,var(--foil-low));background-size:240% 100%;animation:foil-shimmer 7s ease-in-out infinite}.foil-print strong{font:25px Georgia,serif;letter-spacing:.25em;margin-left:.25em;background:linear-gradient(120deg,var(--foil-low),var(--foil-high),var(--foil-low));background-size:240% 100%;color:transparent;background-clip:text;-webkit-background-clip:text;animation:foil-shimmer 7s ease-in-out infinite}.foil-print small{font:8px Arial,sans-serif;letter-spacing:2px;color:var(--foil-high)}.foil-edge-note{position:absolute;bottom:15px;left:0;right:0;text-align:center;font:6px Arial;letter-spacing:2px;color:#b6c7d7}.is-matte .foil-print strong,.is-matte .foil-print .brand-symbol{animation:none;background-size:100%;filter:saturate(.75)}.demo-watermark{position:absolute;bottom:10px;right:13px;font-size:10px;color:#6a8399}.foil-controls{padding:18px 20px;background:#f7f9fc;border-top:1px solid #d4dfea}.demo-label{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#42617b}.demo-label output{color:#123e6a;font-weight:bold}.foil-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 5px;margin-top:14px}.foil-swatches button{display:grid;justify-items:center;gap:6px;padding:5px 1px;background:transparent;color:#385874;border:1px solid transparent;border-radius:4px;min-height:53px}.foil-swatches button[aria-pressed=true]{border-color:#315f86;background:#e9eff6}.foil-swatches button>span{display:block;width:24px;height:24px;border-radius:50%;background:linear-gradient(125deg,var(--chip-low),var(--chip-high) 45%,var(--chip-low) 70%);border:1px solid #6a78884d;box-shadow:inset 0 0 0 2px #ffffff30}.foil-swatches small{font-size:10px;line-height:1.3}.demo-caption{font-size:10px!important;line-height:1.7;color:#5c748a;margin:12px 0 0!important;min-height:0!important}.sign-stage{background:linear-gradient(130deg,#192d40,#071523);padding:42px 30px;isolation:isolate}.wall-lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 51px,#ffffff09 52px 53px),repeating-linear-gradient(90deg,transparent 0 130px,#ffffff04 131px 132px);z-index:-1}.sign-object{width:min(95%,320px);transform:perspective(800px) rotateY(-13deg) rotateX(5deg);transition:filter .7s,box-shadow .7s,background .7s}.sign-face{position:relative;display:grid;justify-items:center;gap:9px;padding:27px 20px;color:#1e3e57;transition:color .7s,text-shadow .7s,filter .7s;background:#d3d7d8;border:6px solid #46515c;box-shadow:7px 8px 0 #0b141f}.sign-face .brand-symbol{font-size:57px}.sign-face strong{font:26px Georgia,serif;letter-spacing:.17em;margin-left:.17em}.sign-face small{font:7px Arial;letter-spacing:2px}.is-on[data-demo=lightbox] .sign-face,.is-on[data-demo=roundbox] .sign-face{background:#f8fff9;box-shadow:7px 8px 0 #0b141f,0 0 25px #bfeeff66,0 0 65px #bfeeff22;filter:brightness(1.13)}[data-demo=roundbox] .sign-object{width:185px}[data-demo=roundbox] .sign-face{aspect-ratio:1;border-radius:50%;padding:28px 14px;gap:6px;align-content:center}[data-demo=roundbox] .sign-face strong{font-size:20px}[data-demo=roundbox] .sign-face:before{content:'';position:absolute;left:-44px;top:46%;width:40px;height:10px;background:#58616c;z-index:-1}[data-demo=halo] .sign-face,[data-demo=frontlit] .sign-face,[data-demo=raised] .sign-face,[data-demo=neon] .sign-face{background:transparent;border:0;box-shadow:none;color:#58616c}[data-demo=halo] .sign-face{color:#a6a9ac;text-shadow:2px 3px 0 #25303b}[data-demo=halo] .sign-face .brand-symbol{filter:drop-shadow(2px 3px 0 #25303b)}.is-on[data-demo=halo] .sign-face{filter:drop-shadow(0 0 5px #ffe8ba) drop-shadow(0 0 15px #ffc875);text-shadow:3px 3px 0 #343339}.is-on[data-demo=halo] .sign-face .brand-symbol{filter:drop-shadow(0 0 7px #ffe3a5)}.is-on[data-demo=frontlit] .sign-face{color:#dcf6ff;text-shadow:0 0 8px #65c9ff,0 0 23px #3784e6}.is-on[data-demo=frontlit] .brand-symbol{filter:drop-shadow(0 0 9px #6fcfff)}[data-demo=neon] .sign-face{color:#3e5865}.is-on[data-demo=neon] .sign-face{color:#bdfaff;filter:drop-shadow(0 0 4px #38ddff) drop-shadow(0 0 12px #158caa)}[data-demo=neon] .sign-face strong{color:transparent;-webkit-text-stroke:1px currentColor;--neon:#3e5865;-webkit-text-stroke-color:var(--neon)}.is-on[data-demo=neon] .sign-face strong{--neon:#a2f6ff}.is-on.is-flow[data-demo=neon] .sign-face{animation:neon-flow 4s linear infinite}.is-on.is-flow[data-demo=neon] .brand-symbol{animation:neon-trace 3.5s ease-in-out infinite}[data-demo=raised] .sign-face{color:#bcc2c8;text-shadow:2px 2px #4a5662,4px 4px #3b4650,9px 10px 4px #0008}[data-demo=raised] .brand-symbol{filter:drop-shadow(4px 4px 0 #4a5662) drop-shadow(8px 9px 2px #0008)}.is-on[data-demo=raised] .sign-face{filter:drop-shadow(7px 7px 3px #0009)}[data-demo=printboard] .sign-face{border:1px solid #f5eed7;background:#eae5d6;color:#244766;box-shadow:4px 4px #a49d8b,9px 9px 9px #0008}.is-on[data-demo=printboard] .sign-face{background:linear-gradient(110deg,#faf3e2,#cfc8b6)}[data-demo=aframe] .sign-object{width:170px;position:relative;transform:perspective(600px) rotateY(-15deg) rotateX(8deg)}[data-demo=aframe] .sign-face{background:#e4decf;border:8px solid #283b49;box-shadow:25px 6px 0 -4px #16232e;padding:23px 10px 40px}[data-demo=aframe] .sign-face strong{font-size:20px}[data-demo=aframe] .sign-object:after{content:'';position:absolute;left:2px;right:-18px;bottom:-17px;height:18px;border-left:7px solid #304454;border-right:7px solid #304454}.is-on[data-demo=aframe] .sign-object{filter:drop-shadow(20px 8px 8px #0009)}.sign-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:#f5f8fb;color:#365671;font-size:11px;border-top:1px solid #d4dfea}.sign-controls>div{display:flex;gap:7px;flex-wrap:wrap}.sign-controls button{border:1px solid #92a9bd;background:white;color:#164575;border-radius:20px;padding:7px 12px;font-size:11px}.sign-controls button[aria-pressed=true]{background:#164575;color:white}.sign-stage .demo-watermark{color:#b5c8d8}.material-library .paper-filter{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:28px}.paper-filter input{font:inherit;padding:12px 16px;border:1px solid #b8cbdb;background:white;color:#164575;min-width:250px;max-width:100%;border-radius:4px}.paper-count{font-size:12px;color:#56738d}.material-library [data-material-list=papers] .material-photo{height:auto;aspect-ratio:1;object-fit:contain!important}.material-library .dialog-art .foil-swatches{grid-template-columns:repeat(4,minmax(0,1fr))}.material-library .dialog-art{overflow:hidden}.material-library .dialog-art .craft-demo{height:100%}.material-library .dialog-art .sign-stage{min-height:340px}.sign-page .sign-intro{padding:80px 0 45px;display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end}.sign-page .sign-intro h1{font-size:clamp(38px,5vw,72px);font-weight:400;letter-spacing:-.04em;line-height:1.25}.sign-intro p{line-height:2;color:#526f89}.sign-page .sign-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-bottom:60px}.sign-guide article{border-top:1px solid #a5bcd0;padding-top:20px}.sign-guide h3{font-weight:500}.sign-guide p{font-size:13px;line-height:1.9;color:#526f89}.sign-page .material-library{max-width:none}.sign-page .grid{margin-bottom:55px}.sign-page .header{position:sticky;top:0}.sign-contact{padding:45px 0 65px}.sign-contact a{display:inline-block;margin-top:16px;padding:12px 24px;background:#164575;color:#fff;text-decoration:none;border-radius:3px}@keyframes foil-shimmer{0%,20%,100%{background-position:0 0}65%{background-position:100% 0}}@keyframes neon-flow{to{filter:hue-rotate(360deg) drop-shadow(0 0 5px #38ddff) drop-shadow(0 0 14px #158caa)}}@keyframes neon-trace{0%,100%{opacity:.7;clip-path:inset(0 0 0 0)}50%{opacity:1;clip-path:inset(0 0 0 0);filter:brightness(1.7)}}@media(max-width:650px){.foil-stage,.sign-stage{min-height:240px}.foil-swatches{grid-template-columns:repeat(5,1fr)}.sign-page .sign-intro{grid-template-columns:1fr;gap:12px;padding-top:45px}.sign-page .sign-guide{grid-template-columns:1fr;gap:18px}.sign-page .sign-intro h1{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){.craft-demo *{animation:none!important;transition:none!important}}

.neon-route{width:90%;height:30px;overflow:visible}.neon-route path{fill:none;stroke:#3e5865;stroke-width:3;stroke-linecap:round}.neon-route .pulse{opacity:0}.is-on .neon-route .tube{stroke:#8ce8f0;filter:drop-shadow(0 0 4px #51efff)}.is-on.is-flow .neon-route .pulse{opacity:1;stroke:#fff;stroke-width:4;stroke-dasharray:28 260;animation:tube-flow 3s linear infinite;filter:drop-shadow(0 0 5px #e0ffff)}.is-on.is-flow[data-demo=neon] .brand-symbol{background:linear-gradient(110deg,#62d2ed 15%,#fff 35%,#68deee 55%,#a7eff9 75%);background-size:250% 100%;animation:foil-shimmer 3s linear infinite}.material-library [data-material-list=papers] .itemcopy>p:not(.itemline){min-height:100px}@keyframes tube-flow{to{stroke-dashoffset:-288}}@media(prefers-reduced-motion:reduce){.is-on.is-flow .neon-route .pulse,.is-on.is-flow[data-demo=neon] .brand-symbol{animation:none!important}}
.sign-face{transition:background .7s,color .7s,text-shadow .7s,filter .7s,box-shadow .7s}.sign-page [data-copy]{white-space:pre-line}@media(min-width:801px) and (max-width:1200px){.header{gap:12px}.desktop-nav{gap:12px;font-size:12px}.nav-contact{font-size:12px}.brand-caption{display:none}}
/* Compact browse cards: all editorial copy lives in the detail dialog. */
.material-library .compact-item{overflow:hidden}.material-library .compact-action{padding:0 24px}.material-library .compact-action .detail{margin:0;padding:17px 0;width:100%;border:0;min-height:56px}.material-library .compact-item .sample{height:245px}.material-library [data-material-list=papers] .material-photo{aspect-ratio:1;width:100%;height:auto}.paper-expand-row{display:flex;justify-content:center;padding:25px 0 5px}.paper-expand-row button{padding:13px 25px;border:1px solid #91acc2;border-radius:30px;color:#164575;background:transparent;cursor:pointer;font:inherit;font-size:13px}.paper-expand-row button:hover{background:#e3edf6}.material-library .dialog-art{overflow:visible}.material-library .detail-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#102a40}.material-library .detail-demo-title{font-size:17px;font-weight:500;padding:20px 20px 0;margin:0;background:#edf2f7}.material-library .dialog-body{align-items:start}.material-library .dialog-art .material-photo{width:100%;height:auto;max-height:none;min-height:0}.material-library .dialog-art .craft-demo{height:auto}.foil-print .native-h{font:bold 70px Georgia,serif;line-height:1;letter-spacing:-.09em;padding-right:.09em;background:linear-gradient(120deg,var(--foil-low),var(--foil-high) 32%,var(--foil-low) 47%,var(--foil-high) 58%,var(--foil-low));background-clip:text;-webkit-background-clip:text;color:transparent;background-size:240% 100%;animation:foil-shimmer 7s ease-in-out infinite}.is-matte .foil-print .native-h{animation:none;filter:saturate(.75)}
.photo-sign{position:relative;aspect-ratio:1;overflow:hidden;isolation:isolate;background:#102a40;outline-offset:-4px;cursor:default}.photo-sign>img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(.72);transition:filter .9s ease,transform 1.2s ease;transform:scale(1.001)}.photo-sign:hover>img,.photo-sign:focus-visible>img{filter:brightness(1.06);transform:scale(1.015)}.photo-light-sheen{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 52% 40%,#fff1b51f,transparent 65%);opacity:0;transition:opacity .9s}.photo-sign:hover .photo-light-sheen,.photo-sign:focus-visible .photo-light-sheen{opacity:1}.photo-sign:focus-visible,.tilt-study:focus-visible{outline:3px solid #bc9456}.photo-sign--neon>img{filter:grayscale(1) brightness(.6)}.photo-sign--neon:hover>img,.photo-sign--neon:focus-visible>img{filter:grayscale(1) brightness(.75)}.photo-neon-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.7;transition:opacity .8s;clip-path:inset(0 0 22% 0);filter:drop-shadow(0 0 4px var(--neon-color));mix-blend-mode:screen}.photo-sign:hover .photo-neon-overlay,.photo-sign:focus-visible .photo-neon-overlay{opacity:1;filter:drop-shadow(0 0 7px var(--neon-color))}.photo-neon-beam{opacity:0}.photo-sign:hover .photo-neon-beam,.photo-sign:focus-visible .photo-neon-beam{opacity:.85;animation:photo-neon-flow 3.4s linear infinite}.neon-controls{padding:20px;background:#f3f7fb}.neon-swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px}.neon-swatches button{background:transparent;border:1px solid transparent;border-radius:4px;padding:8px 4px;display:grid;justify-items:center;gap:7px;color:#234b70;cursor:pointer}.neon-swatches button[aria-pressed=true]{border-color:#315f86;background:#e3ecf4}.neon-swatches button span{width:23px;height:23px;border-radius:50%;background:var(--neon-chip);box-shadow:0 0 8px var(--neon-chip);border:1px solid #71829166}.neon-swatches small{font-size:11px}.tilt-study .sign-object{transition:transform 1.1s ease;transform:perspective(800px) rotateY(-7deg) rotateX(3deg)}.tilt-study:hover .sign-object,.tilt-study:focus-visible .sign-object{transform:perspective(800px) rotateY(6deg) rotateX(-3deg)}.tilt-study .native-h{font:bold 65px Georgia,serif;line-height:1}.is-plain .sign-face{color:#244766;background:#eae5d6;text-shadow:none;filter:none;box-shadow:4px 4px #a49d8b,9px 9px 9px #0008}.is-plain .sign-face small{font-size:10px;letter-spacing:1px}.is-plain .sign-stage{min-height:245px}.material-library .dialog-art .sign-stage{min-height:290px}@keyframes photo-neon-flow{from{transform:translateX(0)}to{transform:translateX(1900px)}}@media(max-width:650px){.material-library .compact-action{padding:0 20px}.material-library .compact-item .sample{height:230px}.material-library .dialog-art .material-photo{height:auto}.neon-swatches{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.photo-sign>img,.tilt-study .sign-object,.photo-light-sheen,.photo-neon-overlay{transition:none!important}.photo-sign:hover>img,.photo-sign:focus-visible>img{transform:none}.photo-neon-beam,.foil-print .native-h{animation:none!important}.tilt-study:hover .sign-object,.tilt-study:focus-visible .sign-object{transform:none}}
.photo-foil-stage{position:relative;background:#0d2a42}.photo-foil-stage .foil-source-photo{display:block;width:100%;height:auto}.foil-photo-canvas{display:none;position:absolute;inset:0;width:100%;height:100%}.foil-photo-canvas.is-ready{display:block}.photo-foil-demo .foil-controls{border-top:0}.photo-foil-demo .foil-swatches{margin-top:16px}
.material-library .material-art-button{display:block;width:100%;padding:0;margin:0;border:0;border-radius:0;background:transparent;text-align:inherit;color:inherit;cursor:pointer;overflow:hidden}.material-art-button .photo-sign{cursor:pointer}.material-art-button:focus-visible{position:relative;z-index:1;outline:3px solid #b8792f;outline-offset:-4px}.material-art-button:focus-visible .photo-sign>img{filter:brightness(1.06);transform:scale(1.015)}.material-art-button:focus-visible .photo-sign--neon>img{filter:grayscale(1) brightness(.75)}.material-art-button:focus-visible .photo-neon-overlay{opacity:1}.material-art-button:focus-visible .photo-neon-beam{opacity:.85;animation:photo-neon-flow 3.4s linear infinite}.material-art-button:focus-visible .tilt-study .sign-object{transform:perspective(800px) rotateY(6deg) rotateX(-3deg)}@media(prefers-reduced-motion:reduce){.material-art-button:focus-visible .photo-sign>img,.material-art-button:focus-visible .tilt-study .sign-object{transform:none}.material-art-button:focus-visible .photo-neon-beam{animation:none}}

.material-library .sample .swatch-note{font-size:18px;font-weight:700;line-height:1.4;color:#244c70;right:16px;bottom:13px;letter-spacing:.02em}@media(max-width:650px){.material-library .sample .swatch-note{font-size:17px}}
/* Detail studies stay lit; the diagonal reflection travels independently of hover. */
.detail-study .photo-sign>img,.detail-study .photo-sign:hover>img{filter:brightness(1.06);transform:none;transition:none}.detail-study .photo-sign--neon>img,.detail-study .photo-sign--neon:hover>img{filter:grayscale(1) brightness(.75)}.detail-study .photo-light-sheen{display:none}.detail-study .photo-neon-overlay,.detail-study .photo-sign:hover .photo-neon-overlay{opacity:1;filter:drop-shadow(0 0 7px var(--neon-color));transition:none}.detail-study .photo-neon-beam,.detail-study .photo-sign:hover .photo-neon-beam{display:none;animation:none}.detail-study .tilt-study .sign-object,.detail-study .tilt-study:hover .sign-object{transform:perspective(800px) rotateY(-7deg) rotateX(3deg);transition:none}.sign-detail-sheen{position:absolute;inset:0 0 22%;overflow:hidden;pointer-events:none;z-index:3;mix-blend-mode:screen}.sign-stage>.sign-detail-sheen{inset:0}.sign-detail-sheen:before{content:'';position:absolute;inset:-35% -80%;background:linear-gradient(115deg,transparent 39%,rgba(255,248,225,.015) 43%,rgba(255,248,225,.065) 46%,rgba(255,253,240,.19) 50%,rgba(255,248,225,.065) 54%,rgba(255,248,225,.015) 57%,transparent 61%);filter:blur(7px);transform:translateX(-60%);animation:sign-soft-sweep 6.5s ease-in-out infinite;will-change:transform,opacity}@keyframes sign-soft-sweep{0%,12%{transform:translateX(-60%);opacity:0}25%{opacity:1}68%{opacity:1}84%,100%{transform:translateX(60%);opacity:0}}@media(prefers-reduced-motion:reduce){.sign-detail-sheen{display:none}.sign-detail-sheen:before{animation:none}}

/* Sweep is clipped to the source photograph's bright sign surfaces, like the neon tubes. */
.sign-masked-shine{inset:0;width:100%;height:100%;clip-path:inset(0 0 22% 0);overflow:hidden;mix-blend-mode:screen}
.sign-masked-shine:before{content:none;display:none}
.sign-masked-beam{animation:sign-masked-sweep 6.5s ease-in-out infinite;transform:translateX(-250px) skewX(-20deg);will-change:transform,opacity}
.detail-study .sign-face{overflow:hidden}
.sign-face>.sign-detail-sheen{inset:0}
@keyframes sign-masked-sweep{0%,12%{transform:translateX(-250px) skewX(-20deg);opacity:0}25%{opacity:1}68%{opacity:1}84%,100%{transform:translateX(2400px) skewX(-20deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.sign-masked-beam{animation:none}}

/* Non-lit printed products: gentle perspective only, no glow or light sweep. */
.photo-sign--plain{perspective:1100px;background:#102a40}
.photo-sign--plain>img,.photo-sign--plain:hover>img,.material-art-button:focus-visible .photo-sign--plain>img{filter:none;transform:none}
.hover-study .photo-sign--plain>img{transition:transform 1.1s ease;transform-origin:50% 45%}
.hover-study .photo-sign--plain:hover>img,.material-art-button:focus-visible .hover-study .photo-sign--plain>img{transform:rotateY(-3deg) rotateX(1deg) scale(.99)}
.detail-study .photo-sign--plain>img,.detail-study .photo-sign--plain:hover>img{filter:none;transform:none}
@media(prefers-reduced-motion:reduce){.hover-study .photo-sign--plain:hover>img,.material-art-button:focus-visible .hover-study .photo-sign--plain>img{transform:none;transition:none}}
