:root{--orange: #f37021;--orange-soft: #ff9a5c;--ink: #8fd3ff;--paper: #fffaf3;--panel: rgba(255, 255, 255, .94);--line: rgba(31, 42, 68, .12);--text: #1f2a44;--body: #3d4a63;--muted: #5b6b85;--halo: 0 1px 0 #fff, 0 0 12px rgba(255, 255, 255, .9), 0 0 3px #fff;--radius: 14px;--font: "Noto Sans TC", system-ui, sans-serif;--display: "Space Grotesk", "Noto Sans TC", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ink);color:var(--text);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}#app{position:fixed;top:0;right:0;bottom:0;left:0}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#scene.dragging{cursor:grabbing}.eyebrow{margin:0 0 6px;font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.18em;color:#d9530a;text-transform:uppercase}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:16px;padding:14px 20px;background:linear-gradient(to bottom,#ffffffd9,#fff0);z-index:20}.brand{display:flex;align-items:baseline;gap:10px;background:none;border:0;padding:0}.brand-mark{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:.06em}.brand-mark b{color:var(--orange)}.brand-sub{font-size:13px;color:var(--muted)}.home-link{font-size:12px;color:var(--muted);text-decoration:none;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#ffffffb3}.home-link:hover{color:var(--orange);border-color:var(--orange)}.island-nav{display:flex;gap:4px;margin:0 auto;padding:4px;border:1px solid var(--line);border-radius:999px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 16px #1f2a4414}.island-nav button{border:0;background:none;padding:6px 16px;border-radius:999px;font-size:14px;color:var(--muted);transition:background .2s,color .2s}.island-nav button:hover{color:var(--text)}.island-nav button.is-active{background:var(--orange);color:#fff}.tools{display:flex;gap:8px}.time-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#ffffffd9}.time-switch button{width:32px;height:30px;border:0;border-radius:999px;background:none;display:grid;place-items:center;color:var(--body);opacity:.6;transition:background .2s,opacity .2s}.time-switch button:hover{opacity:1}.time-switch button[aria-pressed=true]{background:#fff4ec;color:var(--orange);opacity:1;box-shadow:inset 0 0 0 1px var(--orange)}.tools button{border:1px solid var(--line);background:#ffffffd9;border-radius:999px;padding:6px 14px;font-size:13px}.tools button:hover{border-color:var(--orange)}.tools button[aria-pressed=true]{border-color:var(--orange);color:var(--orange)}.tools .cta{background:var(--orange);border-color:var(--orange);color:#fff}.hero{position:absolute;left:28px;bottom:56px;max-width:440px;pointer-events:none;z-index:5}.hero h1{margin:0 0 12px;font-size:clamp(28px,4vw,44px);line-height:1.2;font-weight:900;text-shadow:var(--halo)}.hero .lead{margin:0;color:var(--body);font-size:15px;text-shadow:var(--halo)}.island-bar{position:absolute;top:72px;left:20px;display:flex;gap:14px;align-items:flex-start;z-index:10}.island-bar h2{margin:0;font-size:26px;font-weight:900}.island-bar>div{text-shadow:var(--halo)}.island-bar p:not(.eyebrow){margin:4px 0 0;color:var(--body);font-size:14px}.back{margin-top:4px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 12px;font-size:13px}#labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;overflow:hidden}.label{position:absolute;left:0;top:0;opacity:0;transition:opacity .2s;white-space:nowrap;will-change:transform}.label.is-visible{opacity:1}.label-island{font-weight:900;font-size:18px;text-align:center;text-shadow:var(--halo);padding-bottom:6px}.label-island small{display:block;font-family:var(--display);font-size:10px;letter-spacing:.2em;color:#d9530a;font-weight:700}.label-item{padding:4px 10px;margin-top:-8px;border-radius:6px;background:#fff;border:2px solid var(--orange);font-size:12px;font-weight:500;box-shadow:0 4px 12px #1f2a4426}.card{position:absolute;top:76px;right:20px;bottom:20px;width:360px;max-height:calc(100% - 96px);height:fit-content;overflow-y:auto;padding:20px;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px #1f2a442e;z-index:15;animation:card-in .3s ease-out}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.card{touch-action:pan-y}.card.slide-next{animation:slide-next .28s ease-out}.card.slide-prev{animation:slide-prev .28s ease-out}@keyframes slide-next{0%{opacity:.2;transform:translate(48px)}}@keyframes slide-prev{0%{opacity:.2;transform:translate(-48px)}}.card.hint-swipe{animation:hint-swipe 1.1s ease-in-out .4s}@keyframes hint-swipe{0%,to{transform:translate(0)}35%{transform:translate(-28px)}60%{transform:translate(6px)}}.card-nav{display:flex;align-items:center;gap:6px;margin:-6px 0 10px;font-family:var(--display);font-size:13px;color:var(--muted)}.card-nav button{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:18px;line-height:1}.card-nav button:hover{border-color:var(--orange);color:var(--orange)}.card-nav span{min-width:44px;text-align:center}.card .close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:0;border-radius:50%;background:#1f2a440f}.media-link{position:relative;display:block;border-radius:10px}.media-link img{transition:transform .25s,box-shadow .25s;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.media-link:hover img{transform:translateY(-2px);box-shadow:0 8px 20px #1f2a442e}.media-cta{position:absolute;right:10px;bottom:26px;padding:4px 10px;border-radius:999px;background:#1f2a44c7;color:#fff;font-size:12px;pointer-events:none}.card-media img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top;border-radius:10px;margin-bottom:16px;border:1px solid var(--line)}.card h3{margin:0 0 8px;font-size:22px;padding-right:30px}.card p{line-height:1.7;color:var(--body);font-size:14px;margin:0 0 12px}.contact-form{display:grid;gap:10px;margin-top:4px}.contact-form label{display:grid;gap:4px;font-size:13px;color:var(--text);font-weight:500}.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:14px;color:var(--text)}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid rgba(243,112,33,.35);border-color:var(--orange)}.contact-form textarea{resize:vertical}.contact-form .req{color:var(--orange);margin-left:2px}.contact-form .agree{display:flex;align-items:center;gap:6px;font-weight:400}.contact-form .agree input{width:auto}.contact-form .agree a{color:var(--orange)}.contact-form .btn{justify-self:start}.contact-form .btn:disabled{opacity:.6;cursor:wait}.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-msg{margin:0;padding:8px 10px;border-radius:8px;font-size:13px}.form-msg.is-ok{background:#e9f9ef;color:#1d7a3f}.form-msg.is-err{background:#fff0ec;color:#b4361a}.form-alt{margin:0;font-size:12px;color:var(--muted)}.form-alt a{color:var(--orange)}@media(max-width:420px){.contact-form .row{grid-template-columns:1fr}}.card .note,.list-view .note{color:var(--orange);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.chips .eyebrow{width:100%}.chip{border:1px solid var(--line);background:#fff4ec;border-radius:999px;padding:4px 10px;font-size:12px}.chip:hover{border-color:var(--orange)}.duties{margin:0 0 14px;padding-left:18px;color:var(--body);font-size:14px;line-height:1.7}.duties li{margin-bottom:4px}.duties li::marker{color:var(--orange)}.chip.is-skill{background:#eef6ff;border-color:#cfe3ff;color:#1f4a8a}.chip.is-tag{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:500}.chip.is-tag:hover{border-color:var(--orange)}.btn{display:inline-block;border:0;background:var(--orange);color:#fff;padding:9px 18px;border-radius:999px;font-size:14px;text-decoration:none;font-weight:500}.ghost{border:1px solid var(--line);background:none;padding:8px 16px;border-radius:999px;font-size:13px}.timeline{position:absolute;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--panel);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #1f2a4426;z-index:12}.tl-controls{display:flex;gap:6px}.tl-controls button{width:34px;height:34px;border-radius:50%;border:0;background:var(--orange);color:#fff;font-size:13px}.tl-controls button+button{background:#1f2a4414;color:var(--text)}.tl-track{display:flex;gap:4px;align-items:center}.tl-dot{position:relative;width:34px;height:22px;border:0;background:none;padding:0}.tl-dot:before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%) rotate(45deg);background:#d8d2c8;transition:background .3s,box-shadow .3s}.tl-dot.is-on:before{background:var(--orange);box-shadow:0 0 12px var(--orange)}.tl-dot span{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:9px;color:var(--muted);font-family:var(--display)}.tl-caption{margin:0;font-size:13px;min-width:200px;color:var(--body)}.tour{position:absolute;left:20px;bottom:24px;width:340px;padding:18px 20px;background:var(--panel);border:2px solid var(--orange);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 40px #1f2a442e;z-index:18;animation:card-in .3s ease-out}.tour h3{margin:0 0 6px;font-size:18px}.tour p:not(.eyebrow){margin:0 0 14px;color:var(--body);font-size:14px;line-height:1.7}.tour-actions{display:flex;justify-content:flex-end;gap:8px}.list-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:80px max(20px,calc((100% - 1080px)/2)) 60px;background:var(--paper);z-index:30}.list-head{display:flex;justify-content:space-between;align-items:center}.list-head h2{margin:0;font-size:24px}.list-island{margin-top:40px}.list-island h2{margin:0 0 16px;font-size:22px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.list-island h2 a{color:inherit;text-decoration:none}.list-island h2 small{font-size:13px;color:var(--muted);font-weight:400}.list-island article{height:100%}.list-island h3{margin:0;font-size:15px}.list-island ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.list-island li :is(a,button){box-sizing:border-box;color:inherit;text-decoration:none;font:inherit;width:100%;height:100%;text-align:left;display:flex;flex-direction:column;gap:6px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px}.list-island li :is(a,button):hover{border-color:var(--orange)}.list-island img{width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top;border-radius:8px}.list-island li span:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.6}.hint{position:absolute;right:20px;bottom:14px;margin:0;font-size:12px;color:var(--body);text-shadow:var(--halo);pointer-events:none;z-index:3}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--paper);z-index:50;font-size:14px;color:var(--muted);transition:opacity .6s}.loading span{width:18px;height:18px;background:var(--orange);transform:rotate(45deg);animation:spin 1.2s ease-in-out infinite}.loading.is-done{opacity:0;pointer-events:none}@keyframes spin{to{transform:rotate(405deg)}}[hidden]{display:none!important}.hint .legal-links a{color:inherit;pointer-events:auto}.hint .legal-links a:hover{color:var(--orange)}.notfound{display:inline-block;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:#fff;color:var(--orange);font-size:13px;font-weight:700}.list-legal{margin:32px 0 0;font-size:12px;color:var(--muted);text-align:center}.list-legal a{color:inherit}.list-legal a:hover{color:var(--orange)}@media(max-width:767px){.topbar{flex-wrap:wrap;gap:10px;padding:12px 16px}.brand-sub{display:none}.island-nav{order:3;margin:0;width:100%;justify-content:space-between}.island-nav button{flex:1;padding:6px 0}.tools{margin-left:auto}.tools button{padding:5px 10px;font-size:12px}#btn-tags{display:none}.time-switch{order:2;margin-left:auto}.time-switch button{width:28px;height:26px}.time-switch svg{width:16px;height:16px}.hero{left:16px;right:16px;bottom:44px}.hero .br-wide{display:none}.island-bar{top:150px;left:16px}.island-bar h2{font-size:20px}.card-open .island-bar{display:none}.card{top:auto;left:0;right:0;bottom:0;width:auto;max-height:52%;border-radius:var(--radius) var(--radius) 0 0}.card-media img{aspect-ratio:16 / 7}.tour{left:12px;right:12px;width:auto;bottom:12px}.timeline{left:12px;right:12px;transform:none;bottom:12px;border-radius:var(--radius);flex-wrap:wrap;gap:10px}.tl-caption{min-width:0;width:100%}.tl-dot{width:28px}.hint{right:16px;bottom:12px;font-size:11px}.hint .ops{display:none}.hero[hidden]~.hint,.card-open .hint{display:none}.list-view{padding:160px 16px 40px}}
