
/* TEC AUTOMATION • Premium 2D architectural automation experience • no WebGL in hero */
.hero .shell.hero-grid{width:min(1540px,calc(100% - 76px));grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:20px;min-height:755px}
.hero .hero-copy{padding:80px 0 100px}
.hero .hero-intro{max-width:500px}
.hero-visual.tec2d-hero-visual{min-width:0;width:100%;display:flex;align-items:center;justify-content:center;min-height:670px;padding:25px 0;overflow:visible;filter:none!important}
.tec2d-shell{position:relative;width:min(100%,950px);background:linear-gradient(134deg,#edf5eef2,#b9d2c3f2);border:1px solid #fff;border-radius:25px;box-shadow:0 40px 90px #14362e46,0 6px 21px #09383324,inset 0 1px 0 white;padding:10px;overflow:hidden;isolation:isolate}
.tec2d-shell:before{content:"";position:absolute;inset:-4px;pointer-events:none;border:5px solid #ffffff61;border-radius:28px}
.tec2d-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;height:35px;padding:0 8px 8px;color:#275d50;font-size:9px;font-weight:870;letter-spacing:.12em}
.tec2d-topline span:first-child{display:flex;align-items:center;gap:8px}.tec2d-topline span:last-child{color:#547d71}
.tec2d-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(224px,.84fr);gap:8px}
.tec2d-view{position:relative;isolation:isolate;height:505px;background:#102b38;border:1px solid #c0dbcc52;border-radius:15px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff28,0 13px 24px #102e3325}
.tec2d-scene{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 48% 38%,#275a67,#102a38 78%);overflow:hidden}
.tec2d-house-svg{width:100%;height:100%;display:block;object-fit:contain;transform-origin:50% 50%;transition:transform 1.05s cubic-bezier(.19,.8,.23,1),filter .8s;filter:drop-shadow(0 8px 11px #04181a66);will-change:transform}
.tec2d-scene-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#fff3 0,transparent 27%,transparent 60%,#8acbbb12 88%);mix-blend-mode:screen;z-index:1}
.tec2d-room-label{font-family:Inter,Arial,sans-serif;letter-spacing:2px;font-size:10px;font-weight:800;fill:#3b6157}
.tec2d-cinema-screen{transition:fill .5s;}.tec2d-screen-art{transition:opacity .6s}
.tec2d-bedroom-glow,.tec2d-bed-glow,.tec2d-lounge-glow,.tec2d-cinema-glow{transition:opacity .7s}
.tec2d-door-leaf{transform-origin:195px 424px;transition:transform 1s cubic-bezier(.28,.77,.24,1);transform-box:view-box}
.tec2d-door-handle{transform-origin:301px 431px;transition:transform .42s ease;transform-box:view-box}
.tec2d-shell[data-door=open] .tec2d-door-leaf{transform:translateX(17px) scaleX(.32) skewY(-8deg)}
.tec2d-shell[data-handle=down] .tec2d-door-handle{transform:rotate(29deg)}
.tec2d-shell[data-bedroom=on] .tec2d-bed-glow,.tec2d-shell[data-bedroom=on] .tec2d-lounge-glow{opacity:.85}
.tec2d-shell[data-bedroom=off] .tec2d-bed-glow,.tec2d-shell[data-bedroom=off] .tec2d-lounge-glow{opacity:.10}
.tec2d-shell[data-bedroom=on] #tec2d-bedroom{filter:brightness(1.1)}
.tec2d-shell[data-cinema=on] .tec2d-cinema-screen{fill:#418bb7}
.tec2d-shell[data-cinema=on] .tec2d-screen-art{opacity:1}
.tec2d-shell[data-cinema=on] .tec2d-cinema-glow{opacity:.66}
.tec2d-shell[data-cinema=on] .tec2d-speaker{fill:#67baf6;filter:drop-shadow(0 0 10px #6cbdfd)}
.tec2d-status{position:absolute;z-index:3;pointer-events:none;min-width:100px;display:flex;flex-direction:column;gap:5px;padding:8px 10px;border:1px solid #b8e3d16e;border-radius:9px;color:#f1fff8;background:#102c35d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 11px 23px #071d2570}
.tec2d-status span{font-size:8px;letter-spacing:.1em;color:#bce6d5;font-weight:760}.tec2d-status strong{font-size:10px;letter-spacing:.02em}
.tec2d-status-light{top:15px;left:15px}.tec2d-status-entry{bottom:42px;left:15px}.tec2d-status-cinema{top:15px;right:15px}
.tec2d-shell[data-bedroom=on] .tec2d-status-light{border-color:#f3da8f;background:#76552fb5}
.tec2d-shell[data-cinema=on] .tec2d-status-cinema{border-color:#83c8f5;background:#21557ab3}
.tec2d-shell[data-door=open] .tec2d-status-entry{border-color:#95e4c3;background:#206b5aba}
.tec2d-stage-label{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);white-space:nowrap;pointer-events:none;color:#c3e5db;letter-spacing:.12em;font-size:8px;z-index:3;background:#09232dc7;padding:7px 12px;border-radius:20px}
.tec2d-actions{min-width:0;display:flex;flex-direction:column;gap:10px;background:linear-gradient(145deg,#193f43,#10262f 85%);padding:17px 13px;border-radius:15px;border:1px solid #d6f4e220;box-shadow:inset 0 1px 0 #ffffff28;color:#eafff2}
.tec2d-actions-head{display:flex;align-items:center;gap:9px;padding:4px 4px 11px;border-bottom:1px solid #8abda238}
.tec2d-sparkle{display:grid;place-items:center;flex:none;border-radius:11px;background:#a8eacd20;color:#a7efd0;width:41px;height:41px;font-size:21px;border:1px solid #a7efd04b}
.tec2d-actions-head div{display:flex;flex-direction:column;gap:2px}.tec2d-actions-head strong{font-size:11px;letter-spacing:.11em}.tec2d-actions-head small{font-size:10px;color:#a3c5b8}
.tec2d-command-list{display:flex;flex-direction:column;gap:7px}
.tec2d-command-list button{border:1px solid #a2c6b831;background:#ffffff0a;color:#f3fff8;display:flex;align-items:center;gap:10px;text-align:left;padding:9px 8px;border-radius:10px;min-height:58px;transition:background .25s,border-color .25s,transform .25s}
.tec2d-command-list button:hover{background:#e5fff318;border-color:#a4f2d78c;transform:translateX(-2px)}
.tec2d-command-list button[aria-pressed=true]{background:#38705d89;border-color:#9ef8cd}
.tec2d-command-list button:disabled{opacity:.55;cursor:wait}
.tec2d-command-list button>.tec2d-cmd-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;color:#c0ffdc;font-size:18px;border-radius:10px;background:#b1f1da13;border:1px solid #b1f1da29}
.tec2d-command-list button>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.tec2d-command-list button strong{font-size:11px;font-weight:750;line-height:1.23}
.tec2d-command-list button small{font-size:9px;color:#9ec6b8}.tec2d-command-list button i{font-size:13px;font-style:normal;color:#b2d8cd}
.tec2d-assistant{display:flex;gap:9px;align-items:center;background:#c1ead71a;border:1px solid #a0e6ce47;border-radius:12px;padding:11px 10px;min-height:65px;box-shadow:inset 0 1px #ffffff14}
.tec2d-assistant>div:last-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.tec2d-assistant small{font-size:8px;color:#afdfcb;letter-spacing:.08em;font-weight:850}
.tec2d-assistant strong{color:#f4fff9;font-size:10px;line-height:1.4;font-weight:650}
.tec2d-assistant-orb{flex:none;width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#c0f7e2,#35a58f 24%,#2f6392 59%,#15334e);box-shadow:0 0 0 4px #b7ecda12,0 0 15px #55c9c67b;display:grid;place-items:center}
.tec2d-assistant-orb span{width:12px;height:12px;border-radius:50%;border:2px solid #ecfff4b0}
.tec2d-shell.is-replying .tec2d-assistant-orb{animation:tec2d-reply-pulse .9s ease-in-out 2}
.tec2d-transcript{display:flex;flex-direction:column;gap:5px;padding:1px 4px 0;color:#c6e5d6}
.tec2d-transcript small{font-size:8px;letter-spacing:.13em;font-weight:850;color:#8acbab}
.tec2d-transcript span{font-size:10px;line-height:1.45}
.tec2d-disclaimer{font-size:8px;color:#99bdb0;line-height:1.55;margin-top:auto;padding:0 4px}
.tec2d-auth-options{background:linear-gradient(145deg,#d5ffe61f,#f1fef512);border:1px solid #a3edcf78;border-radius:11px;padding:10px}
.tec2d-auth-options[hidden]{display:none!important}
.tec2d-options-head{display:flex;justify-content:space-between;align-items:center;gap:6px;font-weight:850;font-size:9px;color:#bdf4d7;letter-spacing:.09em;margin-bottom:9px}
.tec2d-options-head button{border:1px solid #c6f6dc5c;border-radius:6px;color:#eafff3;background:#ffffff0d;width:25px;height:25px;font-size:17px}
.tec2d-method-list{display:grid;grid-template-columns:1fr;gap:5px}
.tec2d-method-list button{background:#ffffff10;color:#e9fff4;border:1px solid #b2e3d64d;padding:8px 9px;text-align:left;border-radius:7px;font-size:10px;font-weight:740}
.tec2d-method-list button:hover,.tec2d-method-list button[aria-pressed=true]{background:#a4f3cb27;border-color:#a3f3cf}
.tec2d-method-list button:disabled{opacity:.5;cursor:wait}
.tec2d-auth-options>small{font-size:9px;color:#b7d4c7;line-height:1.45;display:block;margin-top:8px}
.tec2d-zoom{position:absolute;z-index:5;inset:0;pointer-events:none;opacity:0;display:grid;place-items:center;background:radial-gradient(ellipse at 52% 38%,#253f50c5,#061a27ea 80%);backdrop-filter:blur(1px);transition:opacity .4s;overflow:hidden}
.tec2d-shell[data-focus=door] .tec2d-zoom,.tec2d-shell[data-focus=theatre] .tec2d-zoom,.tec2d-shell[data-focus=lights] .tec2d-zoom{opacity:1}
.tec2d-shell[data-focus=door] .tec2d-house-svg{transform:translate(30%,14%) scale(1.65);filter:blur(2px)}
.tec2d-shell[data-focus=theatre] .tec2d-house-svg{transform:translate(-26%,-8%) scale(1.65);filter:blur(2px)}
.tec2d-shell[data-focus=lights] .tec2d-house-svg{transform:translate(23%,-19%) scale(1.65);filter:blur(2px)}
.tec2d-detail,.tec2d-theatre-stage,.tec2d-light-stage{position:absolute;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}
.tec2d-shell[data-focus=door] .tec2d-detail{display:flex}
.tec2d-shell[data-focus=theatre] .tec2d-theatre-stage{display:flex}
.tec2d-shell[data-focus=lights] .tec2d-light-stage{display:flex}
.tec2d-focus-kicker{position:absolute;z-index:9;top:27px;left:0;right:0;text-align:center;color:#d0f8ea;letter-spacing:.18em;font-size:10px;font-weight:850}
.tec2d-lock-stage{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.tec2d-door-closeup{position:relative;margin-top:30px;height:330px;width:205px;overflow:visible;border:10px solid #5c6663;border-left:15px solid #aab6a3;background:linear-gradient(105deg,#b59068,#634c3c 40%,#96745c 80%,#3c3630);box-shadow:18px 23px 22px #020b10a1,inset -17px 0 23px #160d096e,inset 10px 0 15px #e4bd8057;transform:perspective(600px) rotateY(-8deg)}
.tec2d-door-grain{position:absolute;inset:0;opacity:.16;background:repeating-linear-gradient(90deg,#f2d2a3 0 1px,transparent 1px 9px);pointer-events:none}
.tec2d-lock-hardware{position:absolute;top:18px;right:16px;width:77px;height:227px;border-radius:17px 17px 11px 11px;background:linear-gradient(94deg,#a6b5b4,#2a404b 21%,#132831 67%,#829d9f);border:2px solid #c8d2c8;box-shadow:8px 13px 20px #0b1317ac,inset -3px 0 8px #0008;display:flex;flex-direction:column;align-items:center;gap:6px}
.tec2d-lock-cap{height:32px;width:100%;display:grid;place-items:center;border-radius:12px 12px 2px 2px;background:linear-gradient(#3a5760,#1b3640);border-bottom:1px solid #b0d9c73a}
.tec2d-lock-cap span{font-size:6px;color:#d2ebdd;letter-spacing:.08em;white-space:nowrap}
.tec2d-lock-reader{width:60px;height:39px;border:1px solid #5c8b8c;border-radius:8px;display:flex;justify-content:center;align-items:center;gap:5px;background:#071a29;box-shadow:inset 0 0 13px #245b6282}
.tec2d-rfid-icon{font-size:11px;color:#8ed9d2;transform:rotate(90deg);font-weight:900}
.tec2d-fingerprint-icon{font-size:20px;color:#91d1c7}
.tec2d-pin-screen{width:59px;height:17px;background:#0b1c2a;display:grid;place-items:center;color:#9fdeb6;font-size:8px;letter-spacing:3px}
.tec2d-keyboard{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:50px;margin-top:0}
.tec2d-keyboard span{width:15px;height:14px;border:1px solid #6f9294a0;border-radius:3px;display:grid;place-items:center;color:#d5eee8;font-size:7px;background:#44616d46}
.tec2d-shell[data-method=pin] .tec2d-keyboard span:nth-child(-n+3){background:#95f2bd67;color:#fff;box-shadow:0 0 10px #80edb3}
.tec2d-lock-plate{margin-top:auto;width:75px;height:61px;background:linear-gradient(130deg,#d4dad1,#52696d 40%,#122d35 78%,#9cb3ae);border-radius:7px;border:1px solid #cbddd1;position:relative;box-shadow:0 -7px 10px #07152166}
.tec2d-real-handle{position:absolute;width:83px;height:11px;left:-55px;top:23px;border-radius:5px 3px 3px 6px;background:linear-gradient(#e7e8d9,#879996 35%,#485c63 69%,#e5e9dc);border:1px solid #d8e4d2;box-shadow:0 7px 12px #07121ba1;transform-origin:74px 5px;transition:transform .42s cubic-bezier(.34,.8,.3,1)}
.tec2d-shell[data-handle=down] .tec2d-real-handle{transform:rotate(33deg)}
.tec2d-verified{position:absolute;left:-44px;right:-44px;bottom:-35px;opacity:0;padding:7px;border:1px solid #99ecc2;background:#1e694fc5;border-radius:7px;color:#c8ffdb;font-size:8px;text-align:center;letter-spacing:.16em;font-weight:850;transition:opacity .2s}
.tec2d-shell[data-verified=true] .tec2d-verified{opacity:1}
.tec2d-auth-prop{position:absolute;z-index:6;pointer-events:none}
.tec2d-rfid-card{opacity:0;display:flex;flex-direction:column;width:112px;height:72px;gap:6px;padding:9px;border:1px solid #c8ecdb9c;border-radius:9px;background:linear-gradient(125deg,#d4f2e7,#689e91 60%,#276459);box-shadow:9px 10px 18px #000b;color:#183e35;left:14%;top:51%;transform:translate(-80px,110px) rotate(-19deg);transition:transform .9s,opacity .3s}
.tec2d-rfid-card span{font-size:8px;font-weight:850;letter-spacing:.09em}.tec2d-rfid-card strong{font-size:17px}.tec2d-rfid-card small{font-size:6px}.tec2d-rfid-card i{position:absolute;right:13px;top:16px;font-size:22px;font-style:normal}
.tec2d-shell[data-method=rfid] .tec2d-rfid-card{opacity:1;transform:translate(120px,-33px) rotate(-11deg)}
.tec2d-thumb-hand{width:128px;height:130px;top:40%;left:8%;opacity:0;transform:translate(-110px,100px) rotate(-22deg);transition:transform .85s,opacity .25s;filter:drop-shadow(8px 11px 9px #060e1bb6)}
.tec2d-hand-palm{position:absolute;left:14px;top:53px;width:97px;height:76px;background:linear-gradient(125deg,#f3c6aa,#c78367);border-radius:40px 34px 15px 16px;transform:rotate(-15deg);border:2px solid #ad6b51}
.tec2d-hand-digit{position:absolute;left:52px;top:3px;width:37px;height:97px;background:linear-gradient(90deg,#e2a282,#ffd4b7 60%,#ba765b);border-radius:27px 28px 19px 19px;border:2px solid #c17e60;transform:rotate(13deg);z-index:1}
.tec2d-thumb-print{position:absolute;z-index:2;left:62px;top:19px;font-size:29px;color:#c77e61;opacity:.7}
.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{opacity:1;transform:translate(190px,-27px) rotate(-14deg)}
.tec2d-access-result{position:absolute;z-index:8;bottom:28px;left:6%;right:6%;text-align:center;font-size:11px;color:#ddf9ef;background:#12353cbf;border:1px solid #9bcfbd91;border-radius:9px;padding:11px 9px;letter-spacing:.04em;backdrop-filter:blur(10px)}
.tec2d-theatre-stage{background:radial-gradient(circle at 50% 50%,#366987aa,#092335 78%);perspective:600px}
.tec2d-theatre-screen{width:60%;height:51%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:10px solid #3e5964;border-radius:8px;background:radial-gradient(circle at 47% 39%,#86b7cd,#315779 47%,#132c45);box-shadow:0 0 30px #72b6e9bb,0 25px 45px #04101c;transform:perspective(600px) rotateX(5deg);color:#eefbfa}
.tec2d-theatre-screen span{font-size:11px;letter-spacing:.16em}.tec2d-theatre-screen strong{font-size:22px;letter-spacing:-.04em}.tec2d-theatre-screen i{font-size:32px;font-style:normal}
.tec2d-theatre-speaker{position:absolute;top:32%;height:43%;width:8%;max-width:55px;border-radius:9px;background:linear-gradient(95deg,#70899a,#172f42 35%,#030d18);border:2px solid #829fa7;display:flex;flex-direction:column;justify-content:space-around;align-items:center;box-shadow:0 0 22px #2c8adf88}
.tec2d-theatre-speaker.sp-left{left:5%}.tec2d-theatre-speaker.sp-right{right:5%}
.tec2d-theatre-speaker i{height:18px;width:18px;border-radius:50%;background:#1a445f;border:3px solid #6aafd1;box-shadow:0 0 18px #7acafd}
.tec2d-theatre-sub{position:absolute;bottom:11%;right:12%;height:44px;width:52px;background:#081825;border:3px solid #76949d;border-radius:7px;box-shadow:0 0 24px #429ee56e}
.tec2d-theatre-sub:after{content:"";position:absolute;left:12px;top:7px;border:4px solid #6cbce5;border-radius:50%;height:20px;width:20px}
.tec2d-theatre-caption{position:absolute;bottom:7%;left:0;right:0;text-align:center;font-size:10px;color:#c9e5ef;letter-spacing:.12em}
.tec2d-light-stage{background:radial-gradient(circle at 50% 40%,#b89b61bb,#3d4137 52%,#111f27 89%);color:#fcf5e8;gap:17px}
.tec2d-light-bulb{font-size:120px;color:#ffe0a6;filter:drop-shadow(0 0 38px #ffd29ca6);animation:tec2d-lamp 2s ease-in-out infinite alternate}
.tec2d-light-stage strong{font-size:18px;letter-spacing:.1em}.tec2d-light-stage small{font-size:11px;letter-spacing:.07em}
@keyframes tec2d-reply-pulse{50%{box-shadow:0 0 0 9px #97eed51d,0 0 25px #66ebdeb8;transform:scale(1.09)}}
@keyframes tec2d-lamp{to{filter:drop-shadow(0 0 65px #ffe1a4);transform:scale(1.08)}}
@media(max-width:1290px){.hero .shell.hero-grid{grid-template-columns:minmax(310px,.78fr) minmax(0,1.22fr);gap:15px}.tec2d-grid{grid-template-columns:minmax(0,1.45fr) minmax(200px,.9fr)}.tec2d-actions{padding:13px 10px}.tec2d-command-list button strong{font-size:10px}}
@media(max-width:1080px){.hero .shell.hero-grid{grid-template-columns:1fr;width:min(100% - 54px,1250px);gap:12px}.hero .hero-copy{padding:55px 0 0}.hero-visual.tec2d-hero-visual{min-height:0;max-width:900px;margin:0 auto;padding:6px 0 35px}.tec2d-grid{grid-template-columns:minmax(0,1.6fr) minmax(220px,.8fr)}}
@media(max-width:700px){.hero .shell.hero-grid{width:calc(100% - 26px)}.hero .hero-copy{padding:35px 4px 12px}.tec2d-shell{border-radius:18px;padding:7px}.tec2d-topline{font-size:8px;letter-spacing:.06em;padding:0 5px 5px}.tec2d-grid{grid-template-columns:1fr;gap:7px}.tec2d-view{height:310px;border-radius:11px}.tec2d-actions{border-radius:11px;padding:11px}.tec2d-command-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tec2d-command-list button{min-height:61px;padding:9px 7px;gap:7px}.tec2d-command-list button>.tec2d-cmd-icon{width:27px;height:27px;font-size:15px}.tec2d-command-list button strong{font-size:10px}.tec2d-assistant{min-height:55px}.tec2d-auth-options{padding:9px}.tec2d-method-list{grid-template-columns:repeat(3,minmax(0,1fr))}.tec2d-method-list button{text-align:center;font-size:9px;padding:8px 2px}.tec2d-status{padding:6px 7px;min-width:0}.tec2d-status span{font-size:7px}.tec2d-status strong{font-size:8px}.tec2d-stage-label{font-size:7px}.tec2d-lock-stage{transform:scale(.84)}.tec2d-lock-stage .tec2d-auth-prop{transform-origin:center}.tec2d-theatre-screen{width:62%;height:51%}.tec2d-theatre-screen strong{font-size:15px}.tec2d-theatre-screen span{font-size:8px}.tec2d-theatre-caption{font-size:8px}.tec2d-light-bulb{font-size:95px}.tec2d-actions-head{padding-bottom:6px}.tec2d-disclaimer{margin-top:0}.tec2d-shell:before{display:none}}
@media(max-width:390px){.tec2d-view{height:285px}.tec2d-status-light{top:7px;left:7px}.tec2d-status-cinema{top:7px;right:7px}.tec2d-status-entry{bottom:31px;left:7px}.tec2d-grid{gap:5px}.tec2d-command-list button strong{font-size:9px}.tec2d-topline span:last-child{font-size:7px}.tec2d-auth-options>small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.tec2d-house-svg,.tec2d-door-leaf,.tec2d-door-handle,.tec2d-real-handle,.tec2d-thumb-hand,.tec2d-rfid-card,.tec2d-zoom,.tec2d-light-bulb{animation:none!important;transition-duration:.01ms!important}}

/* Maintain contact with the optical reader at smaller widths. */@media(max-width:700px){.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{transform:translate(147px,-27px) rotate(-14deg)}.tec2d-shell[data-method=rfid] .tec2d-rfid-card{transform:translate(98px,-33px) rotate(-11deg)}}

/* Hero fidelity upgrade — zero-blur zoom and correct physical lever rotation. */
.tec2d-zoom{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:radial-gradient(circle at 50% 43%,#203b45a0,#071a28e3 88%)}
.tec2d-shell[data-focus=door] .tec2d-house-svg,
.tec2d-shell[data-focus=theatre] .tec2d-house-svg,
.tec2d-shell[data-focus=lights] .tec2d-house-svg{filter:none!important}
.tec2d-view,.tec2d-scene{image-rendering:auto}
.tec2d-house-svg{filter:none!important}
.tec2d-door-closeup{width:235px;height:355px;border:11px solid #596260;border-left:18px solid #bac7b8;transform:perspective(920px) rotateY(-4deg);background:radial-gradient(ellipse at 13% 38%,#e4b58558,transparent 45%),repeating-linear-gradient(88deg,#5e4637 0 3px,#987152 3px 5px,#b78b68 5px 7px,#694a39 7px 12px,#ad8061 12px 17px);box-shadow:18px 21px 2px #071a2166,26px 31px 45px #02080bbf,inset -24px 0 17px #271c187c,inset 15px 0 15px #ffd6a64a}
.tec2d-door-grain{opacity:.34;background:repeating-linear-gradient(180deg,#1e111025 0 1px,transparent 1px 17px),linear-gradient(101deg,transparent 30%,#fff4 45%,transparent 55%)}
.tec2d-lock-hardware{width:93px;height:256px;right:22px;top:22px;gap:7px;border-radius:18px 18px 11px 11px;border:2px solid #bacbc6;background:linear-gradient(100deg,#dce5dc 0,#557278 8%,#192e34 20%,#14272c 73%,#9eb3b0 95%,#e0e6df);box-shadow:8px 10px 21px #0b151abd,-5px 0 8px #281e18a0,inset 0 0 0 2px #09121d,inset 6px 0 12px #eef7dc26}
.tec2d-lock-cap{height:32px;flex:none;background:linear-gradient(140deg,#41585e,#11262c 67%);display:flex;align-items:center;justify-content:center;gap:4px}
.tec2d-lock-cap span{font-size:6px;font-weight:900;letter-spacing:.13em}
.tec2d-access-led{width:4px;height:4px;display:inline-block;background:#66e5b3;box-shadow:0 0 7px #48ffbc;border-radius:50%}
.tec2d-lock-reader{width:73px;height:48px;flex:none;gap:6px;border-radius:10px;background:linear-gradient(155deg,#142c3b,#020a10 69%);border:1px solid #759ca090;box-shadow:inset 1px 1px 2px #93c5c846,0 4px 8px #000b}
.tec2d-fingerprint-icon{display:grid;place-items:center;width:35px;height:36px;border:1px solid #8cbaac6b;border-radius:8px;color:#b2ece1;background:#84d5cc0b}
.tec2d-fingerprint-icon svg{width:27px;height:28px;display:block;filter:drop-shadow(0 0 2px #88f1d6)}
.tec2d-rfid-icon{display:grid;place-items:center;width:22px;height:34px;color:#b3eadf;transform:none}
.tec2d-rfid-icon svg{width:22px;height:24px}
.tec2d-pin-screen{width:70px;height:19px;flex:none;font-size:9px;letter-spacing:.16em;border:1px solid #77968b48;border-radius:3px;color:#a0f3b8;text-shadow:0 0 4px #67d987;background:linear-gradient(#061622,#0b2730)}
.tec2d-keyboard{width:65px;gap:3px}
.tec2d-keyboard span{width:19px;height:16px;font-size:8px;border-radius:3px;background:linear-gradient(130deg,#50666c9c,#101f2cb5);box-shadow:inset 0 1px #f4fff328}
.tec2d-shell[data-method=pin] .tec2d-keyboard span:nth-child(-n+3){background:linear-gradient(160deg,#e8f6e6,#69cba5);color:#153727}
.tec2d-lock-plate{width:89px;height:60px;border:1px solid #d9e4d8;background:linear-gradient(102deg,#dce5e0,#58767a 16%,#203a41 46%,#10262e 78%,#bbccc4);box-shadow:inset 2px 1px #f9ffec4b,0 7px 12px #0008}
.tec2d-spindle{position:absolute;left:8px;top:16px;width:33px;height:33px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#e8eee7,#768c8a 35%,#1a2f32 68%,#cedad1);border:2px solid #d1e0d1;box-shadow:0 2px 5px #020c108e}
.tec2d-real-handle{position:absolute;left:-55px;top:9px;width:81px;height:13px;border-radius:5px 4px 3px 6px;transform-origin:71px 6.5px;background:linear-gradient(180deg,#f6f4e8 0%,#b0c4b9 17%,#657d7c 47%,#2e454e 80%,#d2ddd1 100%);border:1px solid #ceddd2;box-shadow:0 8px 7px #010c11a6,inset 0 1px #fff9}
.tec2d-shell[data-handle=down] .tec2d-real-handle{transform:rotate(-33deg)!important}
.tec2d-thumb-hand{width:185px;height:155px;left:4%;top:34%;opacity:0;transform:translate(-180px,110px) rotate(5deg);filter:drop-shadow(10px 13px 9px #060f16a8);pointer-events:none}
.tec2d-hand-illustration{width:100%;height:100%;display:block;overflow:visible;image-rendering:auto}
.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{opacity:1;transform:translate(165px,-18px) rotate(-9deg)}
.tec2d-rfid-card{width:130px;height:83px;border-radius:11px;background:linear-gradient(145deg,#0b2738,#183e50 38%,#071922 78%);color:#f1fff8;border:1px solid #e1f6e78f;box-shadow:7px 11px 20px #0009,inset 0 1px #fff5}
.tec2d-rfid-card span{font-size:9px}.tec2d-rfid-card strong{font-size:19px;color:#baf2d3}.tec2d-rfid-card small{color:#b3cbd0}
.tec2d-shell[data-method=rfid] .tec2d-rfid-card{transform:translate(120px,-28px) rotate(-9deg)}
.tec2d-access-result{background:#0b2933e8;box-shadow:0 8px 25px #0317218c;border-color:#9bd6c078}
.tec2d-shell[data-verified=true] .tec2d-lock-reader{border-color:#9bffbd;box-shadow:0 0 15px #72e3ab63,inset 0 0 10px #59c99b26}
.tec2d-shell[data-focus=lights] .tec2d-light-stage{background:radial-gradient(circle at 50% 36%,#fff2c998,#7d75537d 47%,#182c39 100%)}
@media(max-width:700px){
.tec2d-lock-stage{transform:scale(.78)}
.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{transform:translate(164px,-18px) rotate(-9deg)}
.tec2d-shell[data-method=rfid] .tec2d-rfid-card{transform:translate(120px,-28px) rotate(-9deg)}
}

/* Precise mobile thumb-to-reader alignment; preserves desktop geometry. */
@media(max-width:700px){
.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{transform:translate(69px,-58px) rotate(-9deg)}
}

/* Geometry-responsive mobile thumb animation; calibrated against 390px and 600px viewports. */
@media(min-width:0px) and (max-width:700px){.tec2d-shell[data-method=fingerprint] .tec2d-thumb-hand{transform:translate(calc(46vw - 110.4px),-58px) rotate(-9deg)}}
