/* 所有場景只用於開始合作頁，Header / Menu 結構與共用功能保持原樣。 */
.digital_project_body{background:#06151e}.digital_project_body>.digital_ambient{display:none}.digital_project_body>.digital_header .digital_brand img{filter:brightness(0) invert(1)}
.contact_page{--contact_mint:#2dd4bf;--contact_teal:#00a8a8;--contact_ice:#f4fafc;--contact_muted:#91afb8;overflow:clip;background:#06151e;color:#e9f7fa}
.digital_project_body.contact_form_visible .contact_skip_experience{display:none}
.contact_journey_selection{fill:none;stroke:#a5ffe9;stroke-width:2;stroke-dasharray:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px #2dd4bf70)}
/* 後台較長的流程說明可在面板內閱讀，不撐破固定鏡頭。 */
.contact_cinematic.is_cinematic .contact_stage_detail{max-height:52svh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#477d86 transparent}
@media(max-width:700px){.contact_cinematic.is_cinematic .contact_stage_detail{max-height:34svh}.contact_map_node:after{content:"";position:absolute;inset:-10px;min-width:44px;min-height:44px}}
.contact_cinematic{position:relative;background:#06151e;isolation:isolate}.contact_viewport{position:relative;overflow:hidden;perspective:1600px}.contact_kicker{font-size:10px;letter-spacing:.19em;line-height:1.7;color:#96babf;font-weight:500}.contact_kicker i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#2dd4bf;margin-right:12px;box-shadow:0 0 14px #2dd4bf}.contact_micro{font-size:10px;letter-spacing:.2em;line-height:1.9;color:#96babf}
.contact_environment{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 65% 48%,#10445065,transparent 55%),#06151e}.contact_halo{position:absolute;width:60vw;height:60vw;right:0;top:-20vw;border-radius:50%;box-shadow:0 0 140px 20px #00a8a813,inset 0 0 80px #2dd4bf0a;border:1px solid #79e7e21c;transform:rotate(-25deg)}.contact_beam{position:absolute;inset:-25% 8%;background:conic-gradient(from 145deg at 61% 20%,transparent 0deg,#2dd4bf0e 6deg,transparent 13deg,#82f8f212 19deg,transparent 26deg);filter:blur(9px)}.contact_grid{position:absolute;inset:45% -40% -55%;background-image:linear-gradient(#63e0dd13 1px,transparent 1px),linear-gradient(90deg,#63e0dd13 1px,transparent 1px);background-size:95px 95px;transform:perspective(700px) rotateX(65deg);mask-image:linear-gradient(transparent,#000 60%)}.contact_matrix{position:absolute;inset:18% 10%;display:flex;flex-direction:column;justify-content:space-around;align-items:flex-end;color:#67c8d0;font:10px/1.6 monospace;letter-spacing:2vw;opacity:.12;mask-image:linear-gradient(90deg,transparent,#000)}.contact_matrix span:nth-child(even){margin-right:15%}
@media(max-width:700px){.contact_matrix{inset:30% -20% 15% 0;letter-spacing:4vw;font-size:8px}.contact_matrix span:nth-child(even){display:none}.contact_halo{width:120vw;height:120vw;top:10%;right:-40%}.contact_grid{background-size:60px 60px}}
.contact_hero_scene{position:relative;min-height:100svh;isolation:isolate}.contact_webgl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.contact_core_fallback{position:absolute;inset:8% 13% 10% 39%;pointer-events:none;z-index:-1;filter:drop-shadow(0 0 25px #00a8a84a)}.contact_core_fallback svg{width:100%;height:100%}.contact_hero_scene.is_webgl .contact_core_fallback{opacity:0}.contact_intro{position:relative;padding:clamp(155px,19vh,240px) 5.5vw 140px;width:65%;pointer-events:none}.contact_intro h1{font-size:clamp(72px,9vw,172px);letter-spacing:-.065em;line-height:.95;margin:38px 0 34px;color:#f2fafb}.contact_intro h1>span{display:block;overflow:hidden;padding-bottom:.08em}.contact_intro h1 b{display:inline-block;font-weight:400}.contact_dot{color:#2dd4bf}.contact_intro_zh{font-size:clamp(20px,1.75vw,30px);line-height:1.7;letter-spacing:.14em;margin-bottom:30px}.contact_coordinates{position:absolute;right:5.5%;top:27%;display:grid;gap:13px;font-size:9px;letter-spacing:.22em;color:#90b9c1}.contact_coordinates i{width:35px;height:1px;background:#6eb7bc;margin:8px 0}.contact_coordinates small{line-height:1.9;font-size:8px}.contact_scroll_hint{position:absolute;left:5.5%;bottom:55px;display:flex;gap:18px;align-items:center;font-size:9px;letter-spacing:.14em}.contact_scroll_hint i{display:grid;place-items:center;width:45px;height:45px;border:1px solid #80b5bd70;border-radius:50%;font-size:18px;font-style:normal;color:#7bd9d6}.contact_scroll_hint small{letter-spacing:.1em;color:#a4b7bd;font-size:10px}.contact_skip_experience{position:fixed;left:5.5%;bottom:18px;z-index:100;padding:6px 12px;border:1px solid #729da54d;border-radius:20px;background:#071b24d9;color:#bfe5e8!important;font-size:10px;letter-spacing:.08em}.contact_skip_experience span{margin-left:15px}
@media(max-width:1000px){.contact_intro{width:80%;padding-top:22vh}.contact_intro h1{font-size:11vw}.contact_coordinates{right:4%;font-size:8px}.contact_intro_zh{font-size:22px}}
@media(max-width:700px){.contact_intro{width:100%;padding:145px 24px 40vh}.contact_intro h1{font-size:clamp(58px,15.5vw,104px);margin:24px 0 20px}.contact_intro_zh{font-size:19px}.contact_intro>.contact_kicker{font-size:8px;letter-spacing:.1em}.contact_intro .contact_micro{font-size:8px}.contact_coordinates{display:none}.contact_core_fallback{inset:38% 5% 2% 20%}.contact_scroll_hint{left:24px;bottom:58px}.contact_skip_experience{left:24px}.contact_intro:before{content:"";position:absolute;inset:0 0 25%;z-index:-1;background:linear-gradient(#06151e85,transparent)}}
/* 儀表板以單一操作空間呈現，不用重複卡片取代流程。 */
.contact_dashboard_scene{position:relative;padding:65px 5.5vw 75px;min-height:100svh;background:radial-gradient(ellipse at 50% 90%,#00a8a81c,transparent 70%)}.contact_dashboard_intro{display:grid;grid-template-columns:1fr auto;align-items:end;gap:5px 35px;margin-bottom:25px}.contact_dashboard_intro .contact_kicker{grid-column:1/-1;margin-bottom:8px}.contact_dashboard_intro h2{font-size:clamp(24px,2.4vw,42px);letter-spacing:.035em;margin:0;line-height:1.4}.contact_dashboard_intro>p:last-child{font-size:12px;color:#90afb8;margin-bottom:4px}.contact_dashboard_frame{background:linear-gradient(140deg,#16343eec,#07151ded 55%);border:1px solid #77c9d048;border-radius:12px;box-shadow:0 35px 100px #0009,0 0 60px #00a8a80a;transform-style:preserve-3d;overflow:hidden}.contact_dashboard_bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid #7da9b326;font-size:9px;letter-spacing:.13em}.contact_dashboard_brand{color:#e4f7fa;white-space:nowrap}.contact_dashboard_brand i{display:inline-block;width:9px;height:9px;border:1px solid #2dd4bf;transform:rotate(45deg);margin-right:13px}.contact_dashboard_caption{color:#839da5;font-size:8px}.contact_system_status{color:#70c7c6;font-size:8px}.contact_dashboard_body{display:grid;grid-template-columns:15% 49% 36%}.contact_stage_nav{padding:24px 14px;border-right:1px solid #7da9b326;display:flex;flex-direction:column;gap:6px}.contact_stage_nav>p{font-size:8px;letter-spacing:.18em;color:#80959e;padding:0 10px;margin-bottom:14px}.contact_stage_nav button{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 10px;background:transparent;border:1px solid transparent;border-radius:4px;font-size:11px;line-height:1.6;cursor:pointer;transition:background .25s,color .25s}.contact_stage_nav button span{color:#73959c;font-size:9px;width:16px}.contact_stage_nav button.is_active{background:#2dd4bf12;border-color:#2dd4bf36;color:#a5f1e5}.contact_stage_nav button:hover{background:#79eee00f}.contact_stage_nav small{margin-top:auto;padding:25px 10px 0;color:#678992;font-size:7px;letter-spacing:.15em;line-height:2}
@media(max-width:1100px){.contact_dashboard_scene{padding-inline:3.5vw}.contact_dashboard_body{grid-template-columns:17% 44% 39%}.contact_dashboard_bar{padding:14px 18px}.contact_dashboard_caption{display:none}.contact_stage_nav{padding:20px 8px}.contact_stage_nav button{font-size:10px;gap:7px}.contact_dashboard_intro h2{font-size:26px}}
@media(max-width:700px){.contact_dashboard_scene{padding:90px 16px 55px;min-height:100svh}.contact_dashboard_intro{display:block;margin-bottom:16px;padding-inline:8px}.contact_dashboard_intro h2{font-size:21px}.contact_dashboard_intro>p:last-child{font-size:10px;margin:8px 0 0}.contact_dashboard_intro .contact_kicker{font-size:8px}.contact_dashboard_body{display:flex;flex-direction:column}.contact_dashboard_bar{padding:13px 14px;font-size:8px}.contact_system_status{display:none}.contact_stage_nav{padding:10px 8px;border-right:0;border-bottom:1px solid #7da9b326;display:flex;flex-direction:row;gap:2px;overflow-x:auto;scrollbar-width:thin}.contact_stage_nav>p,.contact_stage_nav>small{display:none}.contact_stage_nav button{flex-shrink:0;padding:7px 9px;font-size:10px;gap:5px;min-height:35px}.contact_stage_nav button span{font-size:8px;width:auto}}
.contact_journey_visual{min-width:0;padding:28px 25px 22px}.contact_journey_label{display:flex;justify-content:space-between;align-items:center;gap:10px}.contact_journey_label h3{font-size:13px;margin:0}.contact_journey_label span{font-size:7px;letter-spacing:.12em;color:#82a0a8}.contact_journey_map{position:relative;height:225px;margin:30px 0 5px}.contact_map_grid{position:absolute;inset:0;background-image:linear-gradient(#49727c20 1px,transparent 1px),linear-gradient(90deg,#49727c20 1px,transparent 1px);background-size:16.67% 25%;mask-image:linear-gradient(transparent,#000 25%,#000 80%,transparent)}.contact_journey_map>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.contact_journey_path{fill:none;stroke:#376572;stroke-width:1.5;vector-effect:non-scaling-stroke}.contact_journey_energy{fill:none;stroke:#4be4d3;stroke-width:2;stroke-dasharray:.08 .92;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #2dd4bf);animation:contact_path_flow 6s linear infinite}.contact_map_node{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer}.contact_map_node>i{display:grid;place-items:center;width:31px;height:31px;border:1px solid #60b5bb80;border-radius:50%;font-size:9px;font-style:normal;background:#0b2933;color:#bddbdf;transition:box-shadow .3s,background .3s,transform .3s}.contact_map_node>span{position:absolute;top:42px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;letter-spacing:.05em;color:#8caab3}.contact_map_node:hover>i,.contact_map_node.is_active>i{background:#0f4c5c;border-color:#6bffe8;box-shadow:0 0 0 6px #2dd4bf0e,0 0 23px #2dd4bf35;transform:scale(1.13)}.contact_map_node.is_active>span{color:#c0fff2}.contact_code_window{border:1px solid #77b2bd25;border-radius:6px;font-family:monospace;font-size:10px;color:#759eac;line-height:1.7;max-width:380px;margin:12px auto 0;background:#03101960}.contact_code_window>div{display:flex;align-items:center;gap:4px;padding:8px 12px;border-bottom:1px solid #739ca61c}.contact_code_window i{width:4px;height:4px;border-radius:50%;background:#36747a}.contact_code_window>div span{margin-left:auto;font-size:8px;color:#66818b}.contact_code_window p{margin:12px 14px}.contact_code_window p span{color:#5fbcc0}.contact_code_window em{font-style:normal;color:#bbdcdf}.contact_code_window b{font-weight:400;color:#82bca8}.contact_code_window code{display:block;border-top:1px solid #739ca61c;padding:9px 14px;color:#5fc4b7;font-size:9px}
@keyframes contact_path_flow{to{stroke-dashoffset:-1}}
@media(max-width:1100px){.contact_journey_visual{padding:22px 18px}.contact_journey_label{display:block}.contact_journey_label span{display:block;margin-top:5px}.contact_journey_map{height:210px}.contact_map_node>span{font-size:8px}}
@media(max-width:700px){.contact_journey_visual{padding:15px 22px 4px}.contact_journey_label{display:flex}.contact_journey_label h3{font-size:11px}.contact_journey_label span{font-size:6px}.contact_journey_map{height:90px;margin:24px 0 25px}.contact_map_node>i{width:24px;height:24px;font-size:8px}.contact_map_node>span{top:30px;font-size:7px}.contact_code_window{display:none}}
.contact_stage_detail{border-left:1px solid #7da9b326;padding:32px 30px;min-height:395px;position:relative}.contact_stage_detail article{padding-bottom:16px}.contact_dashboard_scene.is_interactive .contact_stage_detail article[hidden]{display:none}.contact_stage_detail .contact_kicker{font-size:9px;color:#63c7c0;margin-bottom:18px}.contact_stage_detail h3{font-size:clamp(21px,2vw,32px);line-height:1.5;letter-spacing:.03em;margin-bottom:18px}.contact_stage_detail article>p:not(.contact_kicker){font-size:12px;line-height:2;color:#a0b8c0;margin-bottom:23px}.contact_stage_detail h4{font-size:8px;letter-spacing:.15em;color:#77a1ad;margin:0 0 15px}.contact_stage_detail ul{padding:0;margin:0 0 20px;list-style:none;font-size:11px;line-height:2.3;color:#c4dce1}.contact_stage_detail li:before{content:"+";color:#2dd4bf;margin-right:10px}.contact_stage_detail small{font-size:9px;color:#688d98;line-height:1.8;display:block}.contact_dashboard_bottom{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #7da9b326;background:#07172055}.contact_dashboard_bottom>span{padding:16px 20px;border-right:1px solid #7da9b326;color:#789ca7;font-size:7px;letter-spacing:.1em}.contact_dashboard_bottom i{font-style:normal;color:#4fa5ab;margin-right:10px}.contact_dashboard_bottom b{display:block;font-size:10px;font-weight:400;color:#bad0d7;letter-spacing:.03em;margin:5px 0 0 22px}.contact_dashboard_continue{display:flex;align-items:center;justify-content:center;gap:22px;margin:19px 3px 0;font-size:11px;color:#97bfc4!important;letter-spacing:.08em}.contact_dashboard_continue>span{display:grid;place-items:center;border:1px solid #5a8b9670;width:30px;height:30px;border-radius:50%;color:#8dded8}
@media(max-width:1100px){.contact_stage_detail{padding:27px 22px}.contact_stage_detail article>p:not(.contact_kicker){font-size:11px}.contact_stage_detail h3{font-size:24px}.contact_dashboard_bottom>span{padding:13px}}
@media(max-width:700px){.contact_stage_detail{border-left:0;border-top:1px solid #7da9b326;min-height:270px;padding:18px 22px 12px}.contact_stage_detail .contact_kicker{font-size:8px;margin-bottom:8px}.contact_stage_detail h3{font-size:21px;margin-bottom:10px}.contact_stage_detail h3 br{display:none}.contact_stage_detail article>p:not(.contact_kicker){font-size:11px;line-height:1.85;margin-bottom:14px}.contact_stage_detail h4{font-size:7px;margin-bottom:8px}.contact_stage_detail ul{font-size:10px;line-height:1.9;margin-bottom:10px}.contact_stage_detail small{font-size:8px}.contact_dashboard_bottom{display:none}.contact_dashboard_continue{font-size:10px;margin:14px 8px 0}}
/* 能量場以圓弧擴張，最後的底色與實際表單完全相同。 */
.contact_portal_scene{position:relative;min-height:85svh;background:#f4fafc;color:#0f4c5c;display:grid;place-items:center;text-align:center;overflow:hidden}.contact_portal_disk{position:absolute;width:260vmax;height:260vmax;border-radius:50%;background:#f4fafc;box-shadow:0 0 0 2px #93e7dd,0 0 0 18px #2dd4bf12,0 0 85px #2dd4bf69;left:50%;top:110%;transform:translate(-50%,-50%) scale(1);pointer-events:none}.contact_portal_copy{position:relative;padding:100px 24px}.contact_portal_copy>.contact_kicker{color:#488894;font-size:9px;margin-bottom:35px}.contact_portal_copy h2{font-size:clamp(40px,6.4vw,104px);line-height:1.08;letter-spacing:-.045em;margin-bottom:30px}.contact_portal_copy em{font-style:normal;color:#008f94}.contact_portal_copy>p:not(.contact_kicker){font-size:clamp(15px,1.5vw,24px);line-height:1.9;letter-spacing:.1em}.contact_portal_link{display:inline-flex;align-items:center;gap:30px;font-size:10px;letter-spacing:.18em;border-bottom:1px solid #7cb7c4;padding:15px 0;margin-top:20px}.contact_scene_rail{position:absolute;bottom:20px;right:calc(5.5% + 160px);display:flex;gap:18px;align-items:center;font-size:8px;letter-spacing:.15em;color:#7399a4;pointer-events:none}.contact_scene_rail>i{display:block;position:relative;width:110px;height:1px;background:#53959f3b}.contact_scene_rail b{position:absolute;left:0;top:0;width:100%;height:1px;background:#2dd4bf;transform-origin:left;transform:scaleX(0)}
@media(max-width:700px){.contact_portal_scene{min-height:75svh}.contact_portal_copy h2{font-size:11vw}.contact_scene_rail{right:24px;bottom:81px;font-size:6px;gap:12px}.contact_scene_rail>span:last-child{display:none}.contact_scene_rail>i{width:45px}}
/* JS 成功建置後才重疊場景；失敗或減少動態時仍是完整可閱讀的文件。 */
.contact_cinematic.is_cinematic .contact_viewport{height:100svh;min-height:620px}.contact_cinematic.is_cinematic .contact_hero_scene,.contact_cinematic.is_cinematic .contact_dashboard_scene,.contact_cinematic.is_cinematic .contact_portal_scene{position:absolute;inset:0;height:100%;min-height:0}.contact_cinematic.is_cinematic .contact_dashboard_scene{display:flex;flex-direction:column;justify-content:center;transform-style:preserve-3d;padding-block:55px 70px}.contact_cinematic.is_cinematic .contact_portal_scene{background:transparent}.contact_cinematic:not(.is_cinematic) .contact_scene_rail{display:none}.contact_cinematic[data-paused="true"] .contact_journey_energy{animation-play-state:paused}
@media(max-width:700px){.contact_cinematic.is_cinematic .contact_viewport{min-height:650px}.contact_cinematic.is_cinematic .contact_dashboard_scene{padding-block:35px 55px}.contact_cinematic.is_cinematic .contact_dashboard_intro>p:last-child{display:none}.contact_cinematic.is_cinematic .contact_stage_detail{min-height:265px}.contact_cinematic.is_cinematic .contact_stage_detail article{padding-bottom:0}}
@media(max-height:740px) and (min-width:701px){.contact_cinematic.is_cinematic .contact_dashboard_scene{padding-block:32px 46px}.contact_dashboard_intro{margin-bottom:13px}.contact_dashboard_intro h2{font-size:23px}.contact_dashboard_intro .contact_kicker{font-size:8px;margin:0}.contact_dashboard_body{min-height:0}.contact_stage_detail{min-height:325px;padding:22px}.contact_journey_map{height:130px;margin-top:22px}.contact_code_window p{font-size:9px;margin:7px 12px}.contact_stage_detail h3{font-size:22px}.contact_stage_detail article>p:not(.contact_kicker){margin-bottom:14px}.contact_dashboard_continue{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.contact_page *,.contact_page *:before,.contact_page *:after{animation:none!important;transition:none!important}.contact_webgl{display:none}}
