body{background:#f8f6f2;color:#302e3a}header.site-header{position:absolute;z-index:10;left:0;right:0;top:0;max-width:none;display:flex;align-items:center;justify-content:space-between;padding:28px 5vw}.brand-crop{display:block;position:relative;overflow:hidden;width:182px;height:42px}.brand-crop img{position:absolute;max-width:none;width:537.6px;height:358.4px;left:-63px;top:-56px}.contact-open{border:0;background:#fff8;border-radius:24px;padding:10px 18px;color:#454052;font:inherit;font-size:12px;cursor:pointer}main{max-width:none;padding:0}.scene{border-radius:0;box-shadow:none;aspect-ratio:1607/979}.scene>img,.outside-focus>img{width:100%;height:100%;left:0;top:0}.scene{isolation:isolate}.scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#fff9ee50,transparent 45%);z-index:2}.hero-copy{position:absolute;left:7%;top:28%;z-index:3;pointer-events:none}.hero-copy h1{font-size:clamp(28px,4.2vw,70px);font-weight:400;line-height:1.36;letter-spacing:-.065em;margin:22px 0}.hero-copy p{font-size:14px;line-height:1.9;color:#645d65}.hero-copy .hero-kicker{font:10px/1.5 Arial,sans-serif;letter-spacing:2px;color:#776c74}.scene .hotspot{left:82%;top:53%;width:13%;height:20%}.scene .hand{left:85.05%;top:58.5%;width:5.4%}.scene .hint{top:75%}.under{padding:16px 5vw;margin:0;background:#f8f6f2}.under button{font-size:12px}.window-note{padding:0 5vw 22px!important;margin:0!important}.site-footer{max-width:none;border-top:1px solid #e3ded6;display:flex;align-items:center;gap:30px;padding:30px 5vw;font-size:12px}.site-footer small{margin-left:auto}.play-crop{position:relative;overflow:hidden;width:150px;height:51px;flex-shrink:0}.play-crop img{position:absolute;max-width:none;width:460.8px;height:307.2px;left:-265px;top:-40px}.window-note{font-size:11px}.outside-focus{z-index:0}.scene .mini-world{z-index:1}#contact .status{font-size:14px}@media(max-width:650px){header.site-header{position:relative;background:#f8f6f2;padding:20px}.brand-crop{transform:scale(.72);transform-origin:left center;width:145px;margin-right:-30px}.contact-open{font-size:11px;padding:8px 12px}.hero-copy{top:6%;left:6%}.hero-copy h1{font-size:25px;line-height:1.35;margin:9px 0}.hero-copy .hero-kicker{display:none}.hero-copy p{font-size:9px;line-height:1.6}.under{display:block;padding:18px 20px}.under button{margin-top:12px}.window-note{padding:0 20px 20px!important}.site-footer{padding:22px 20px;gap:12px;flex-wrap:wrap}.site-footer>span:nth-child(2){display:none}.site-footer small{width:100%;margin:0}.scene .hint span{font-size:9px}}

.hero-copy h1{letter-spacing:-.045em;font-family:Georgia,serif;font-weight:400}.hero-kicker,.under,.window-note{display:none}.hero-copy{top:29%}.hero-copy p{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.02em}@media(max-width:650px){.hero-copy{top:12%}.hero-copy h1{font-size:26px}.hero-copy p{font-size:10px}}
/* Spacious white identity area and soft, irregular mist behind the headline. */
header.site-header{position:relative;background:#fff;padding:22px 5vw;min-height:114px}
.brand-crop{width:290px;height:82px;overflow:visible}
.brand-crop img{position:static;width:100%;height:100%;object-fit:contain}
.contact-open{background:#f6f4f9;padding:12px 24px;font-size:13px}
.scene{min-height:580px}
.hero-copy{left:7%;top:23%;isolation:isolate;max-width:42%}
.hero-copy:before,.hero-copy:after{content:"";position:absolute;z-index:-1;pointer-events:none;filter:blur(24px);border-radius:43% 57% 62% 38% / 55% 40% 60% 45%}
.hero-copy:before{inset:-75px -85px -65px -90px;background:radial-gradient(ellipse at 30% 30%,#fffaf3e8 0%,#fffaf3ae 32%,transparent 69%),radial-gradient(ellipse at 68% 68%,#fff9f2cc 0%,#fffaf388 34%,transparent 70%)}
.hero-copy:after{inset:-40px -50px -50px -65px;background:radial-gradient(ellipse at 45% 50%,#fffaf3b0,transparent 72%);filter:blur(18px)}
.hero-copy h1{font-size:clamp(42px,5.5vw,96px);line-height:1.05;color:#403562;margin:20px 0 30px}
.hero-copy p{font-size:14px;color:#564b73}
.scene:after{background:none}
.site-footer{background:#fff;padding:32px 5vw}
@media(min-width:1800px){.hero-copy{top:25%}}
@media(max-width:650px){header.site-header{min-height:85px;padding:12px 20px}.brand-crop{width:190px;height:62px;transform:none;margin:0}.contact-open{padding:10px 14px}.scene{min-height:0}.hero-copy{top:11%;left:6%;max-width:48%}.hero-copy h1{font-size:clamp(25px,6vw,39px);margin:10px 0}.hero-copy p{font-size:10px}.hero-copy:before{inset:-25px -30px -20px -30px;filter:blur(13px)}.hero-copy:after{inset:-15px -20px;filter:blur(10px)}}
/* Letter-by-letter arrival, dispersing mist, and camera proximity light. */
.hero-copy{pointer-events:auto;cursor:default}
.hero-copy:before,.hero-copy:after{transition:transform 1.5s cubic-bezier(.2,.65,.3,1),opacity 1.3s,filter 1.5s;will-change:transform,opacity}
.hero-copy.mist-away:before{transform:translate(-65px,-40px) scale(1.5) rotate(-8deg);opacity:0;filter:blur(45px)}
.hero-copy.mist-away:after{transform:translate(75px,40px) scale(1.6) rotate(12deg);opacity:0;filter:blur(45px)}
.reveal-letter{white-space:pre;display:inline;animation:letter-arrive 1.2s both;animation-delay:var(--delay)}
.copy-ready>p:not(.hero-kicker){animation:letter-arrive 1s both;animation-delay:var(--subtitle-delay)}
@keyframes letter-arrive{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
.camera-proximity{position:absolute;left:12.6%;top:80.5%;width:9.2%;height:12%;z-index:4;background:transparent;border:0;padding:0;cursor:default;border-radius:8px}
.camera-led{position:absolute;left:13.65%;top:85.1%;width:clamp(2px,.3vw,5px);aspect-ratio:1;border-radius:50%;z-index:5;background:#590b0b;pointer-events:none;opacity:.45}
.camera-awake .camera-led{animation:camera-blink 1.15s steps(1,end) infinite}
@keyframes camera-blink{0%,45%{opacity:1;background:#ff3131;box-shadow:0 0 5px 2px #ff3030b0,0 0 12px #ff202077}46%,100%{opacity:.35;background:#650e0e;box-shadow:none}}
@media(prefers-reduced-motion:reduce){.reveal-letter,.copy-ready>p:not(.hero-kicker){animation:none}.hero-copy:before,.hero-copy:after{transition:none}.camera-awake .camera-led{animation:none}}
@keyframes tape-drop{0%{transform:rotate(6deg)}12%{transform:rotate(105deg) rotateX(35deg)}28%{transform:rotate(153deg)}46%{transform:rotate(112deg)}64%{transform:rotate(139deg)}82%{transform:rotate(120deg)}100%{transform:rotate(130deg)}}
@media(prefers-reduced-motion:reduce){}
@keyframes tape-dangle{0%,100%{transform:rotate(126deg)}50%{transform:rotate(137deg)}}
@media(prefers-reduced-motion:reduce){}
.music-toggle{position:fixed;bottom:24px;right:28px;z-index:20;border:1px solid #dfd9e5;background:#fffef8ed;color:#51446a;border-radius:28px;padding:12px 19px;font:12px/1.5 Arial,sans-serif;box-shadow:0 4px 24px #30213c14;cursor:pointer}
.music-panel{position:fixed;bottom:84px;right:28px;width:364px;max-width:calc(100vw - 32px);padding:20px;background:#fffaf3f5;backdrop-filter:blur(16px);z-index:21;border:1px solid #e8ded5;border-radius:18px;box-shadow:0 16px 60px #30213c25;color:#51446a}
.music-panel .music-hour{font:9px/1.5 Arial,sans-serif;letter-spacing:1px;color:#8c7d87}.music-panel h2{font:24px/1.3 Georgia,serif;margin:12px 0 5px}.music-panel p{font-size:12px}.music-player iframe{width:100%;aspect-ratio:16/9;min-height:180px;border:0;border-radius:8px;display:block;margin:16px 0}.music-panel a{font-size:11px;color:#76638c}.music-stop{display:block;margin:18px 0 0 auto;border:0;background:transparent;font:12px Arial,sans-serif;color:#76638c;cursor:pointer}@media(max-width:650px){.music-panel{right:16px;bottom:78px}.music-toggle{bottom:18px;right:16px}}
/* Local mist opening: only the pointer's neighborhood clears. */
@property --mist-radius{syntax:'<length>';inherits:true;initial-value:0px}
.hero-copy{--mist-x:-1000px;--mist-y:-1000px;--mist-radius:0px;transition:--mist-radius .45s ease-out}
.hero-copy:before,.hero-copy:after{transform:none;opacity:1;will-change:auto;transition:none;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.hero-copy:before{-webkit-mask-image:radial-gradient(circle at calc(var(--mist-x) + 90px) calc(var(--mist-y) + 75px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius));mask-image:radial-gradient(circle at calc(var(--mist-x) + 90px) calc(var(--mist-y) + 75px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius))}
.hero-copy:after{-webkit-mask-image:radial-gradient(circle at calc(var(--mist-x) + 65px) calc(var(--mist-y) + 40px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius));mask-image:radial-gradient(circle at calc(var(--mist-x) + 65px) calc(var(--mist-y) + 40px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius))}
@media(max-width:650px){.hero-copy:before{-webkit-mask-image:radial-gradient(circle at calc(var(--mist-x) + 30px) calc(var(--mist-y) + 25px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius));mask-image:radial-gradient(circle at calc(var(--mist-x) + 30px) calc(var(--mist-y) + 25px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius))}.hero-copy:after{-webkit-mask-image:radial-gradient(circle at calc(var(--mist-x) + 20px) calc(var(--mist-y) + 15px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius));mask-image:radial-gradient(circle at calc(var(--mist-x) + 20px) calc(var(--mist-y) + 15px),transparent 0,transparent calc(var(--mist-radius)*.45),#000 var(--mist-radius))}}
@media(prefers-reduced-motion:reduce){.hero-copy{transition:none}}
@keyframes poster-release{0%{transform:rotate(0deg) rotateY(0deg)}18%{transform:rotate(13deg) rotateY(-10deg)}42%{transform:rotate(-9deg) rotateY(6deg)}68%{transform:rotate(7deg) rotateY(-5deg)}100%{transform:rotate(-4deg) rotateY(3deg)}}
@keyframes poster-sway{0%,100%{transform:rotate(-4deg) rotateY(3deg)}50%{transform:rotate(6deg) rotateY(-5deg)}}
@media(prefers-reduced-motion:reduce){}
/* Camera indicator: left side of the black housing directly above the lens. */
.camera-led{left:17.35%;top:84.65%}
/* Keep the original mist; slow drift and soft, fading pointer trails. */
.hero-copy:before,.hero-copy:after{display:none}
.flowing-mist{position:absolute;inset:-75px -85px -65px -90px;z-index:-1;pointer-events:none;border-radius:45%;background:radial-gradient(ellipse at 28% 34%,#fffaf3ed 0%,#fffaf3ad 30%,transparent 67%),radial-gradient(ellipse at 67% 62%,#fff9f2cf 0%,#fffaf390 30%,transparent 69%);background-size:110% 110%,120% 120%;filter:blur(20px);animation:mist-flow 26s ease-in-out infinite alternate;mask-size:100% 100%;-webkit-mask-size:100% 100%}
@keyframes mist-flow{from{background-position:-15px -8px,12px 8px}to{background-position:22px 12px,-18px -10px}}
.camera-led{left:18.25%;top:83.9%}
@media(max-width:650px){.flowing-mist{inset:-25px -30px -20px -30px;filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){.flowing-mist{animation:none}}

/* Restore a large, full-height desktop hero instead of a short banner. */
main{width:100%;max-width:none}
.scene{width:100%;max-width:none;max-height:none}
@media(min-width:651px){.hero-copy{top:23%}.hero-copy h1{font-size:clamp(54px,5.5vw,108px)}}
@media(max-width:650px){.scene{min-height:0;aspect-ratio:1607/979}}
/* Show the entire original image; intrinsic height defines the scene. */
.scene{height:auto;min-height:0;max-height:none;aspect-ratio:auto}
.scene>img{position:relative;display:block;left:auto;top:auto;width:100%;height:auto;max-width:100%;object-fit:contain;object-position:top center}
@media(max-width:650px){.scene{aspect-ratio:auto;min-height:0}}/* Feather the fog into the scene, never clip it to a round panel. */
.flowing-mist{border-radius:0;filter:blur(26px);background:radial-gradient(ellipse at 27% 38%,#fffaf3ba 0%,#fffaf37a 26%,transparent 66%),radial-gradient(ellipse at 65% 61%,#fff9f29c 0%,#fffaf36b 25%,transparent 68%);background-size:110% 110%,120% 120%}
@media(max-width:650px){.flowing-mist{filter:blur(16px)}}
.products-nav{margin-left:auto;margin-right:30px;color:#51446a;text-decoration:none;font:13px Arial,sans-serif}.product-rail{position:absolute;right:2%;top:16%;z-index:8;display:flex;flex-direction:column;gap:8px;background:#fffaf3e8;border:1px solid #fff8;border-radius:14px;padding:12px;box-shadow:0 5px 20px #34233912}.product-rail small{font:8px Arial,sans-serif;letter-spacing:1px;color:#8c7e87}.product-rail button{background:#fff;border:1px solid #e6dfe9;border-radius:10px;padding:10px;color:#51446a;font:11px Arial,sans-serif;cursor:pointer}.calculator-hotspot{position:absolute;left:30.5%;top:89%;width:10%;height:6%;z-index:4;background:transparent;border:0;cursor:pointer}.product-demo{max-width:520px}.demo-clock{display:block;font:64px/1.5 Georgia,serif;color:#51446a}.demo-actions{display:flex;gap:10px}.calc-inputs{display:flex;gap:8px}.calc-inputs input{width:38%;padding:12px;border:1px solid #dfd7e4;border-radius:8px}.calc-result{display:block;margin:20px 0;font:32px Georgia,serif}.qr-future{margin-top:24px;border-top:1px solid #ebe3e8;padding-top:14px;font-size:11px;color:#978a97}.camera-sample{width:100%;border:10px solid #fff;box-shadow:0 2px 12px #30213c20;margin:8px 0 18px}.demo-note{font-size:11px}@media(max-width:650px){.products-nav{margin-right:10px;font-size:11px}.product-rail{top:auto;bottom:3%;padding:7px;gap:4px;flex-direction:row;left:4%;right:auto}.product-rail small{display:none}.product-rail button{padding:7px;font-size:9px}}
/* Distant blue Korean Air-inspired airliner, behind the window mullion. */
.travel-sky{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;clip-path:polygon(23% 0,89.5% 0,89.5% 32%,23% 32%);mask-image:linear-gradient(to right,#000 0%,#000 51.6%,transparent 51.9%,transparent 53.8%,#000 54.1%,#000 100%)}
.travel-plane{position:absolute;left:0;top:13%;width:7.5%;min-width:42px;max-width:130px;aspect-ratio:180/65;border:0;padding:0;background:none;pointer-events:auto;cursor:pointer;opacity:.8;filter:blur(.2px);animation:quiet-flight 95s linear infinite;animation-delay:-10s;transform:translateX(1250%)}
.travel-plane svg{display:block;width:100%;height:100%}
@keyframes quiet-flight{0%{transform:translate(1250%,12px);opacity:0}3%{opacity:.8}47%{transform:translate(240%,-9px);opacity:.8}50%,100%{transform:translate(180%,-10px);opacity:0;pointer-events:none}}
.flight-paused .travel-plane{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.travel-plane{animation:none;transform:translateX(830%);opacity:.65}}
/* Flight stays above the tallest rooftops and behind opaque window frames. */
.travel-sky{clip-path:polygon(20% 0,90.1% 0,90.1% 9.5%,20% 9.5%);mask-image:linear-gradient(to right,transparent 0%,transparent 20%,#000 20.2%,#000 49.5%,transparent 49.7%,transparent 54.5%,#000 54.7%,#000 90%,transparent 90.1%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,transparent 20%,#000 20.2%,#000 49.5%,transparent 49.7%,transparent 54.5%,#000 54.7%,#000 90%,transparent 90.1%,transparent 100%)}
.travel-plane{top:4.2%;left:94%;width:4.2%;min-width:0;max-width:85px;aspect-ratio:3;opacity:.68;filter:blur(.3px) saturate(.7);transform:none;animation:realistic-flight 110s linear infinite;animation-delay:-12s}
.travel-plane img{display:block;width:100%;height:auto}
@keyframes realistic-flight{0%{left:94%;opacity:.68;transform:translateY(0)}48%{left:13%;opacity:.68;transform:translateY(-5px)}49%,100%{left:12%;opacity:0;transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.travel-plane{animation:none;left:70%;transform:none;opacity:.65}}
.travel-plane{filter:blur(.25px) saturate(.78);isolation:isolate}
.travel-plane img{filter:brightness(var(--aircraft-brightness,.8));transition:filter 30s linear}
.aircraft-reflection{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 46%,var(--belly-light,#6b7a99) 73%,var(--belly-light,#6b7a99) 100%);mask:url("GDAVO_신도장항공기_New_Livery.발행2026.10.31.png") center/100% 100% no-repeat;-webkit-mask:url("GDAVO_신도장항공기_New_Livery.발행2026.10.31.png") center/100% 100% no-repeat;mix-blend-mode:soft-light;opacity:var(--belly-strength,.35);transition:background 30s,opacity 30s}
.aircraft-beacon,.aircraft-strobe{position:absolute;pointer-events:none;width:1.1px;height:1.1px;border-radius:50%;z-index:2}
.aircraft-beacon{left:47%;top:44%;background:#ff4840;animation:aircraft-red 1.8s linear infinite}
.aircraft-strobe{left:78%;top:10%;background:#f3f7ff;animation:aircraft-white 2.4s linear infinite}
@keyframes aircraft-red{0%,9%,100%{opacity:.08;box-shadow:none}3%,5%{opacity:.9;box-shadow:0 0 2px #ff5544}}
@keyframes aircraft-white{0%,5%,10%,100%{opacity:0;box-shadow:none}2%,7%{opacity:.9;box-shadow:0 0 2px #eef5ff}}
.flight-paused .aircraft-beacon,.flight-paused .aircraft-strobe{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.aircraft-beacon,.aircraft-strobe{animation:none;opacity:.35}.aircraft-reflection,.travel-plane img{transition:none}}
/* Position lights stay steady; beacons and strobes flash independently. */
.aircraft-port-nav,.aircraft-tail-nav,.aircraft-beacon-bottom{position:absolute;pointer-events:none;border-radius:50%;width:1px;height:1px;z-index:2}
.aircraft-port-nav{left:75%;top:10%;background:#ff5546;opacity:.65;box-shadow:0 0 1.5px #ff514455}
.aircraft-tail-nav{left:94%;top:65%;background:#eef3ff;opacity:.4;box-shadow:0 0 1px #f5f8ff55}
.aircraft-beacon{left:43%;top:44%;animation:aircraft-beacon-pulse 1.5s linear infinite}
.aircraft-beacon-bottom{left:46%;top:76%;background:#ff4137;animation:aircraft-beacon-pulse 1.5s .12s linear infinite}
.aircraft-strobe{left:75%;top:10%;animation:aircraft-white 1.7s linear infinite}
@keyframes aircraft-beacon-pulse{0%,16%,100%{opacity:0;box-shadow:none}5%,9%{opacity:.9;box-shadow:0 0 2px #ff554488}}
.flight-paused .aircraft-beacon-bottom{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.aircraft-beacon,.aircraft-strobe,.aircraft-beacon-bottom{animation:none;opacity:.25}}
/* Legible distant lights: preserve the aircraft scale and brighten only lamps. */
.travel-plane{opacity:.86;filter:none}
.travel-plane img{filter:blur(.18px) saturate(.78) brightness(var(--aircraft-brightness,.8))}
.aircraft-beacon,.aircraft-beacon-bottom,.aircraft-strobe,.aircraft-port-nav,.aircraft-tail-nav{width:2px;height:2px;transform:translate(-50%,-50%)}
.aircraft-port-nav{opacity:.9;background:#ff5544;box-shadow:0 0 3px 1px #ff3f4666}
.aircraft-tail-nav{opacity:.7;background:#fff;box-shadow:0 0 3px #e8f1ff88}
.aircraft-beacon,.aircraft-beacon-bottom{animation-name:visible-beacon}
.aircraft-strobe{animation-name:visible-strobe}
@keyframes visible-beacon{0%,23%,100%{opacity:0;box-shadow:none}5%,15%{opacity:1;background:#ff463a;box-shadow:0 0 3px 1px #ff4939c0,0 0 7px #ff493960}}
@keyframes visible-strobe{0%,12%,25%,100%{opacity:0;box-shadow:none}3%,8%,16%,20%{opacity:1;background:#fff;box-shadow:0 0 3px 1px #fff,0 0 7px #e4edff90}}
@media(prefers-reduced-motion:reduce){.aircraft-beacon,.aircraft-beacon-bottom,.aircraft-strobe{animation:none;opacity:.5}}
/* Brighter lamps without enlarging the aircraft. */
.aircraft-beacon,.aircraft-beacon-bottom,.aircraft-strobe{width:2.8px;height:2.8px}
.aircraft-port-nav{box-shadow:0 0 4px 1px #ff4135bb,0 0 8px #ff413570}
.aircraft-tail-nav{opacity:.95;box-shadow:0 0 4px 1px #ffffffbb}
@keyframes visible-beacon{0%,23%,100%{opacity:0;box-shadow:none}5%,15%{opacity:1;background:#ff6c55;box-shadow:0 0 4px 2px #ff4939ee,0 0 10px 2px #ff493999}}
@keyframes visible-strobe{0%,12%,25%,100%{opacity:0;box-shadow:none}3%,8%,16%,20%{opacity:1;background:#fff;box-shadow:0 0 4px 2px #fff,0 0 12px 2px #e4edffcc}}

/* Footer uses an actual transparent logo asset instead of a cropped board. */
.play-crop{display:flex;align-items:center;width:170px;height:68px;overflow:visible;background:transparent}
.play-crop img{position:static;display:block;max-width:100%;width:100%;height:auto;left:auto;top:auto;object-fit:contain;background:transparent}
/* Warm coffee and gravity-driven water on the glass, separate from the room. */
.coffee-hover{position:absolute;left:63.7%;top:62.5%;width:5.3%;height:8%;z-index:6;border:0;background:transparent;border-radius:35%;padding:0;cursor:pointer}
.coffee-steam{position:absolute;left:63%;top:48.4%;width:6%;height:16%;z-index:5;pointer-events:none;opacity:0;transition:opacity 1.2s ease}
.coffee-steam svg{width:100%;height:100%;overflow:visible}
.coffee-warm .coffee-steam{opacity:1}
.steam-wisp{fill:none;stroke:#fff7e7;stroke-width:2.5;stroke-linecap:round;filter:blur(1.4px);stroke-dasharray:60 190;animation:steam-rise 5s linear infinite;animation-play-state:paused;opacity:0}
.wisp-two{animation-delay:-1.8s;stroke-width:2}.wisp-three{animation-delay:-3.4s;stroke-width:3;filter:blur(2px)}
.coffee-warm .steam-wisp{animation-play-state:running}
@keyframes steam-rise{0%{stroke-dashoffset:15;opacity:0;transform:translateY(6px)}20%{opacity:.6}75%{opacity:.3}100%{stroke-dashoffset:195;opacity:0;transform:translateY(-9px)}}
.window-rivulets{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;clip-path:polygon(20% 0,49.5% 0,49.5% 27%,42% 27%,39% 29%,35% 43%,33% 56%,20% 56%,20% 0,54.7% 0,90% 0,90% 49%,83% 49%,82% 54%,73% 54%,70% 61%,62% 61%,61% 54%,57% 48%,54.7% 44%,54.7% 0)}
.glass-droplet{position:absolute;top:-12%;width:var(--drop-width);height:9px;border-radius:55% 55% 45% 45%;background:linear-gradient(90deg,#192c3b35,#e7f6ffb0 52%,#24405b55);box-shadow:-.5px 0 1px #d9f2ff80,.5px 1px 1px #1c304044;animation:glass-run var(--drop-time) var(--drop-delay) cubic-bezier(.45,.08,.65,1) infinite;opacity:0}
.glass-droplet:before{content:"";position:absolute;bottom:5px;left:35%;width:1px;height:27px;background:linear-gradient(transparent,#edf7ff65);border-radius:50%;opacity:.5}
@keyframes glass-run{0%{transform:translate(0,0) scaleY(.8);opacity:0}7%{opacity:.7}35%{transform:translate(var(--drop-sway),calc(var(--rain-travel)*.19)) scaleY(1)}70%{opacity:.65}95%{opacity:0}100%{transform:translate(0,var(--rain-travel)) scaleY(1.15);opacity:0}}
.atmosphere-paused .glass-droplet,.atmosphere-paused .steam-wisp{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.glass-droplet{animation:none;display:none}.steam-wisp{animation:none;stroke-dasharray:none;opacity:.25}.coffee-steam{transition:none}}

/* Port-side projection: lights anchored to the visible wingtip and aft tail.
   Starboard wingtip is hidden by the aircraft, so no floating green lamp. */
.aircraft-port-nav,.aircraft-strobe{left:79.3%;top:10.7%}
.aircraft-tail-nav{left:94.6%;top:65.6%;opacity:.65}
.travel-plane{padding:0;line-height:0}/* User-identified upper wingtip: steady lime-green navigation lamp. */
.aircraft-starboard-nav{position:absolute;left:79.3%;top:10.7%;width:2.5px;height:2.5px;transform:translate(-50%,-50%);pointer-events:none;z-index:2;border-radius:50%;background:#c2ff69;opacity:1;box-shadow:0 0 3px 1px #adff53dd,0 0 7px #aaff5599}
/* Agreed aircraft convention: left/port red; opposite right/starboard lime. */
.aircraft-port-nav{left:79.3%;top:10.7%;background:#ff5544;opacity:1;box-shadow:0 0 3px 1px #ff4433dd,0 0 7px #ff443388}
.aircraft-starboard-nav{background:#c2ff69;box-shadow:0 0 3px 1px #adff53dd,0 0 7px #aaff5599}
.aircraft-starboard-nav[hidden]{display:none!important}
/* Products is a real in-site view; the room and music player remain mounted. */
.home-nav{margin-left:auto;color:#8a8090;text-decoration:none;font:13px Arial,sans-serif;margin-right:24px}.home-nav+.products-nav{margin-left:0}.home-nav[aria-current],.products-nav[aria-current]{color:#49347a;text-decoration:underline;text-underline-offset:7px}
.products-page .hero-copy h1{font-size:clamp(42px,5vw,88px)}
.product-collection{background:#faf9f6;padding:90px 6vw 60px;color:#3e3650;scroll-margin-top:40px}
.collection-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;max-width:1400px;margin:0 auto 60px}
.collection-kicker{font:10px Arial,sans-serif;letter-spacing:2px;color:#8b7d98;margin:0 0 22px}.collection-heading h2{font:400 clamp(32px,4vw,66px)/1.1 Georgia,serif;letter-spacing:-.035em;margin:0}.collection-heading>p{font:14px/1.8 Arial,sans-serif;color:#86798c;margin:0 0 4px}
.product-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:55px 36px}.collection-product{min-width:0;background:#fff;border-radius:2px;overflow:hidden}
.product-photo{height:285px;position:relative;background-image:url("GDAVO_카메라주기율표계산기_Camera_Science_Props.발행2026.10.30.png");background-size:370%;background-repeat:no-repeat}
.product-timer .product-photo{background-position:100% 75%}.product-calculator .product-photo{background-position:33% 100%}.product-camera .product-photo{background-position:12% 100%}.product-travel .product-photo{background-position:69% 14%;background-size:170%}
.product-index{position:absolute;left:20px;top:20px;font:10px Arial,sans-serif;letter-spacing:1.3px;background:#fffaf0e0;padding:9px 12px;border-radius:20px;color:#6b5874}
.product-editorial{padding:32px 34px 36px}.product-status{font:10px/1.5 Arial,sans-serif;letter-spacing:.4px;color:#8e7f97}.product-editorial h3{font:13px Arial,sans-serif;letter-spacing:1px;color:#5e5270;margin:15px 0}.product-line{font:400 36px/1.15 Georgia,serif;letter-spacing:-.025em;margin:18px 0}.product-description{font:13px/1.8 Arial,sans-serif;color:#8b7d91;max-width:330px;min-height:48px}.try-product{margin-top:15px;background:none;border:0;border-bottom:1px solid #b3a0c9;padding:8px 0;color:#614778;cursor:pointer;font:12px Arial,sans-serif;display:flex;gap:40px;align-items:center}
.collection-signoff{max-width:1400px;margin:65px auto 0;border-top:1px solid #e7e0e7;padding-top:24px;display:flex;justify-content:space-between;font:12px Arial,sans-serif;color:#99899c}.collection-signoff a{color:#6d587c;text-decoration:none}
@media(max-width:650px){.home-nav{font-size:11px;margin-right:12px}.product-collection{padding:55px 22px 40px}.collection-heading{display:block;margin-bottom:35px}.collection-heading>p{margin-top:24px;font-size:12px}.product-grid{grid-template-columns:1fr;gap:28px}.product-photo{height:235px}.product-editorial{padding:25px}.product-line{font-size:32px}.collection-signoff{gap:16px;font-size:10px}.products-page .hero-copy h1{font-size:clamp(23px,5.5vw,34px)}}
/* Separate Products window opens directly on products, without a second hero. */
.products-page #scene{display:none}
.products-page .product-collection{padding-top:52px;min-height:calc(100svh - 126px)}
.products-page .collection-heading{margin-bottom:40px}
@media(max-width:650px){.products-page .product-collection{padding-top:30px}}
/* Product experience: two real responsive screens, not a static gallery. */
.products-page .product-collection{padding:30px 6vw 26px;background:radial-gradient(ellipse at 45% 45%,#ede7f5 0%,#faf9f6 67%)}
.products-page .collection-heading{margin-bottom:24px;align-items:center}.products-page .collection-heading h2{font-size:clamp(30px,3.3vw,49px)}.products-page .collection-kicker{margin-bottom:12px}.products-page .collection-heading>p{font-size:12px}.products-page .collection-signoff{margin-top:22px;padding-top:17px}
.device-experience{max-width:1400px;margin:auto}.experience-tabs{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.experience-tabs button{border:1px solid transparent;background:transparent;padding:9px 17px;border-radius:24px;font:12px Arial,sans-serif;color:#93829b;cursor:pointer}.experience-tabs button[aria-pressed=true]{background:#fff;color:#5c4477;border-color:#e2d6ec;box-shadow:0 3px 12px #5e47700b}
.device-layout{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:35px;align-items:center}.device-stage{position:relative;height:425px;min-width:0}.demo-laptop{position:absolute;left:0;top:35px;width:78%;filter:drop-shadow(0 20px 22px #3a284f20)}.laptop-lid{background:#33313a;border-radius:17px 17px 5px 5px;padding:15px 10px 10px;position:relative;border:2px solid #9c99a2}.laptop-screen{display:block;width:100%;height:300px;border:0;border-radius:4px;background:#fbf7f0}.device-camera{position:absolute;width:4px;height:4px;background:#66616b;top:5px;left:50%;border-radius:50%}.laptop-base{height:13px;background:linear-gradient(#dddbe1,#a7a4ad);margin:0 -5%;border-radius:2px 2px 50% 50%;position:relative}.laptop-base:after{content:"";position:absolute;left:43%;right:43%;top:0;height:4px;background:#8b8994;border-radius:0 0 8px 8px}
.demo-phone{position:absolute;right:0;top:8px;width:190px;height:398px;padding:15px 7px 10px;border:3px solid #ada6ac;border-radius:31px;background:#28262d;box-shadow:0 20px 35px #32223d33;overflow:hidden}.phone-screen{display:block;border:0;width:100%;height:100%;border-radius:18px;background:#fbf7f0}.phone-camera{position:absolute;z-index:1;top:10px;left:39%;width:22%;height:8px;border-radius:20px;background:#28262d}
.download-space{font-family:Arial,sans-serif;color:#887b8f}.download-space h3{font:24px Georgia,serif;color:#574267;margin:10px 0}.download-space .collection-kicker{font-size:8px;letter-spacing:1.3px}.download-space p{font-size:10px;line-height:1.6}.future-qr{aspect-ratio:1;width:132px;border:1px dashed #c6b8ce;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#ffffff70;margin:18px 0;color:#b6a7be;gap:8px}.future-qr span{font-size:25px;letter-spacing:3px}.future-qr small{font-size:9px}.device-hint{font:10px Arial,sans-serif;color:#a394ab;margin:0 0 6px}
@media(min-width:1500px){.device-stage{height:490px}.laptop-screen{height:355px}.demo-phone{height:455px;width:215px}}
@media(max-width:900px){.device-layout{grid-template-columns:minmax(0,1fr) 125px;gap:20px}.demo-phone{width:160px;height:355px;top:30px}.laptop-screen{height:280px}.device-stage{height:400px}.future-qr{width:115px}.demo-laptop{top:55px;width:80%}}
@media(max-width:650px){.products-page .product-collection{padding:26px 18px}.products-page .collection-heading>p{margin-top:15px}.device-layout{display:block}.device-stage{height:370px}.demo-laptop{width:77%;top:65px}.laptop-screen{height:215px}.laptop-lid{padding:13px 6px 6px;border-radius:12px}.demo-phone{width:135px;height:310px;top:15px;border-radius:24px;padding:13px 5px 7px}.phone-screen{border-radius:14px}.download-space{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #e5dce8;padding-top:15px}.download-space .collection-kicker{width:100%;margin:0}.download-space h3{margin:0;font-size:20px}.download-space p{margin:0}.future-qr{width:65px;height:65px;aspect-ratio:auto;margin:0 0 0 auto;gap:4px}.future-qr span{font-size:17px}.future-qr small{font-size:7px}.experience-tabs{gap:1px}.experience-tabs button{font-size:10px;padding:8px 11px}}
/* Restore the original two brand icons; no QR placeholder before launch. */
.device-layout{grid-template-columns:minmax(0,1fr) 220px}
.product-brand-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.product-brand-pair figure{margin:0;min-width:0;text-align:center}
.product-brand-icon{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:1;border-radius:23%;box-shadow:0 5px 16px #46325112}
.product-brand-icon img{position:absolute;display:block;width:930.91%;height:auto;max-width:none;top:-272.73%;pointer-events:none}
.soft-brand img{left:-700%}.play-brand img{left:-813.33%}
.product-brand-pair figcaption{font:8px/1.5 Arial,sans-serif;letter-spacing:.9px;color:#8c7a99;margin-top:12px;white-space:nowrap}
@media(max-width:900px){.device-layout{grid-template-columns:minmax(0,1fr) 175px}.product-brand-pair{gap:10px}.product-brand-pair figcaption{font-size:6px}}
@media(max-width:650px){.device-layout{display:block}.download-space .product-brand-pair{width:175px;margin:8px 0 8px auto;flex-shrink:0}.product-brand-pair figcaption{font-size:7px}}
/* Final product-page micro-interactions: restrained and keyboard accessible. */
.home-nav[aria-current=false],.products-nav[aria-current=false]{text-decoration:none;color:#8a8090}.home-nav[aria-current=page],.products-nav[aria-current=page]{color:#49347a;text-decoration:underline;text-underline-offset:7px}
.experience-tabs button[aria-selected=true]{background:#fff;color:#5c4477;border-color:#e2d6ec;box-shadow:0 3px 12px #5e47700b}.experience-tabs button{transition:background .25s,color .25s,transform .2s}.experience-tabs button:active{transform:translateY(1px)}
.demo-laptop,.demo-phone{transition:filter .45s,box-shadow .45s}.demo-laptop:focus-within{filter:drop-shadow(0 20px 24px #60427c30)}.demo-phone:focus-within{box-shadow:0 22px 38px #53306840}
.product-brand-icon{transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s}.soft-brand:hover{transform:translateY(-4px);box-shadow:0 10px 26px #a997e650}.play-brand:hover{transform:translateY(-3px) rotate(-3deg);box-shadow:0 10px 24px #cc88c636}
.product-brand-pair figure{position:relative}.product-brand-pair figure:after{content:"";position:absolute;pointer-events:none;inset:-12px -8px 22px;background:radial-gradient(ellipse,#d8c7ff55,transparent 70%);z-index:-1;opacity:0;transition:opacity .5s}.product-brand-pair figure:hover:after{opacity:1}
.device-experience iframe[hidden]{display:none!important}.device-layout{padding-top:5px}.products-page .site-footer{padding-top:20px;padding-bottom:20px}
@media(prefers-reduced-motion:reduce){.product-brand-icon,.experience-tabs button,.demo-laptop,.demo-phone{transition:none}.soft-brand:hover,.play-brand:hover{transform:none}}
@media(max-width:650px){header.site-header{padding:12px 16px;gap:12px}.site-header .brand-crop{width:130px;flex:0 1 130px;height:50px}.home-nav{margin-left:auto;margin-right:0}.home-nav+.products-nav{margin-left:0;margin-right:0}.site-header .contact-open{white-space:nowrap;padding:10px 12px;font-size:10px}}
/* Approved original illustration, no app preview or demo controls. */
.approved-products-artwork{margin:0;padding:12px 3vw 18px;background:#fff;text-align:center}
.approved-products-artwork>img{display:block;width:100%;height:calc(100svh - 175px);min-height:300px;object-fit:contain;object-position:center top;margin:auto}
.approved-products-artwork>p{font:11px/1.5 Arial,sans-serif;color:#9c8ba4;letter-spacing:.05em;margin:12px 0 0}
.products-artwork-page #scene{display:none}
@media(max-width:650px){.approved-products-artwork{padding:10px 0 20px}.approved-products-artwork>img{height:auto;min-height:0;width:100%}}
