.entry-welcome{opacity:1;transition:opacity .7s cubic-bezier(.22,1,.36,1)}
.entry-page.is-collection{overflow:hidden}
.entry-page.is-collection .entry-welcome{opacity:0;pointer-events:none}
.entry-page.is-collection .entry-material-fx{visibility:hidden}
.entry-collection{position:fixed;inset:0;z-index:2;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,visibility 0s .7s;color:#edf4f6}
.is-collection .entry-collection{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .8s .4s ease,visibility 0s}
.ec-stage{position:absolute;inset:0;touch-action:pan-y;outline:none;z-index:1}
.ec-stage:focus-visible{outline:2px solid #9edbff;outline-offset:-3px}
.ec-project-heading{position:absolute;z-index:2;pointer-events:none;top:104px;left:clamp(24px,5vw,72px);right:24px;text-shadow:0 1px 6px #10233380}
.ec-project-heading p{margin:0 0 10px;font-size:11px;letter-spacing:.12em;font-weight:500}
.ec-project-heading h2{margin:0;font-size:clamp(16px,1.8vw,23px);font-weight:500;line-height:1.7;letter-spacing:.06em}
.entry-page[data-entry-theme=sand] .ec-project-heading{color:#203b59;text-shadow:0 1px 5px #eef8ff99}
.ec-header{position:absolute;z-index:3;inset:0 0 auto;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px clamp(24px,4vw,64px);background:linear-gradient(135deg,#f6fbff9c,#e6eef366);border-bottom:1px solid #ffffff70;backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);opacity:0;transform:translateY(-8px);transition:opacity .4s,transform .6s}
.is-collection .ec-header{opacity:1;transform:none;transition:opacity .65s .65s,transform .8s .55s}
.ec-home{display:flex;align-items:center;gap:12px;padding:0;min-height:44px;appearance:none;border:0;background:transparent;cursor:pointer}
.ec-mark{display:block;width:36px;height:36px}
.ec-wordmark{display:block;width:156px;height:auto}
.ec-header-actions{display:flex;align-items:center;gap:10px}
.ec-header-actions button,.ec-header-actions a{display:flex;align-items:center;justify-content:center;min-height:40px;min-width:76px;padding:8px 19px;border:1px solid #ffffff94;border-radius:30px;background:linear-gradient(145deg,#ffffff59,#ffffff1f);box-shadow:inset 0 1px 0 #ffffff9c,0 2px 10px #18364a0d;color:#203e50;font:500 13px/1.5 -apple-system,BlinkMacSystemFont,'PingFang TC','Noto Sans TC',sans-serif;text-decoration:none;cursor:pointer;transition:background .3s}
.ec-header-actions button:hover,.ec-header-actions a:hover{background:#ffffff80}
.ec-home:focus-visible,.ec-header-actions button:focus-visible,.ec-header-actions a:focus-visible{outline:2px solid #277eb5;outline-offset:4px;border-radius:5px}
.entry-project-world{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ec-nanshan{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .8s ease;overflow:hidden}
.ec-nanshan picture,.ec-nanshan img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ec-nanshan [data-ec-scene=dusk]{opacity:var(--ec-dusk,0)}.ec-nanshan [data-ec-scene=night]{opacity:var(--ec-night,0)}
.ec-nanshan::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#10233326,transparent 30%,transparent 65%,#0a1c3266)}
.entry-page[data-entry-project="3"] .ec-nanshan{opacity:1}
.entry-page[data-entry-project="3"] .ec-stage,.entry-page[data-entry-project="3"] .entry-main{touch-action:none}
.entry-page[data-entry-project="3"] .ec-project-heading{color:#f2f6fa;text-shadow:0 1px 6px #10233399}
.ec-project-caption{position:absolute;z-index:2;left:clamp(24px,5vw,72px);right:clamp(24px,5vw,72px);bottom:calc(var(--entry-footer-base,110px) + 84px);display:flex;align-items:flex-end;justify-content:space-between;gap:24px;text-shadow:0 1px 5px #0b1d32cc;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s .5s}
.entry-page[data-entry-project="3"] .ec-project-caption{opacity:1;visibility:visible;transition:opacity .6s .25s,visibility 0s}
.ec-scene-progress{width:164px;flex-shrink:0;color:#fff}.ec-scene-progress>div{display:flex;justify-content:space-between;font-size:11px;line-height:2.5;color:#ffffffa1}.ec-scene-progress [aria-current=step]{color:#fff;font-weight:600}
.ec-scene-progress i{display:block;height:2px;background:linear-gradient(to right,#fff calc(var(--ec-progress,0)*100%),#ffffff40 0);border-radius:2px}
.ec-caption-links{display:flex;align-items:center;gap:24px}.ec-caption-links a{display:flex;align-items:center;gap:7px;min-height:44px;color:#9ed6ff;font-size:14px;text-decoration:none}.ec-caption-links svg{width:23px;height:23px;flex-shrink:0}.ec-caption-links small{font-size:10px;color:#f1f5f8d9;line-height:1.5}
.ec-project-picker{position:absolute;z-index:2;bottom:calc(var(--entry-footer-base,110px) + 16px);left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:1px 8px;border:1px solid #ffffff61;border-radius:50px;background:linear-gradient(140deg,#f5f8ff30,#dce5f21a);box-shadow:inset 0 1px 0 #ffffff59,0 3px 20px #0b1d3212;backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);transition:opacity .4s}
.ec-project-picker button{position:relative;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:28px;border:0;background:transparent;color:var(--entry-ink);cursor:pointer}.ec-project-picker span{width:6px;height:6px;border-radius:20px;background:currentColor;opacity:.4;transition:width .35s ease,opacity .3s}.ec-project-picker [aria-current=true] span{width:22px;opacity:1}
.entry-page[data-entry-theme=mist] .ec-project-picker button,.entry-page[data-entry-project="3"] .ec-project-picker button{color:#edf4f6}
.entry-page.is-footer-open .ec-project-picker,.entry-page.is-footer-open .ec-project-caption{opacity:0;pointer-events:none}
.entry-page[data-entry-project="3"] .sf-footer{--entry-panel:#203542;--entry-muted:#d5e4ed;--entry-footer-open-surface:linear-gradient(145deg,#142c3bd9,#172c38de);color:#e4edf3;background:linear-gradient(145deg,#203b4e38,#102b3e26)}
.entry-page[data-entry-project="3"] .sf-footer a,.entry-page[data-entry-project="3"] .sf-footer summary,.entry-page[data-entry-project="3"] .sf-legal{color:#d5e4ed}
.entry-page[data-entry-project="3"] .entry-wordmark{filter:brightness(0) invert(.94) drop-shadow(0 1px 2px #061723) drop-shadow(0 0 8px #06172370)}
.entry-page[data-entry-project="3"] .entry-action{color:#edf4f6;text-shadow:0 1px 4px #0008;background:linear-gradient(145deg,#263d4a38,#1429322b)}
.ec-load-status{position:absolute;bottom:calc(var(--entry-footer-base,110px) + 72px);left:24px;right:24px;text-align:center;color:#fff;font-size:12px;text-shadow:0 1px 5px #102333}.ec-load-status:empty{display:none}
@media(max-width:640px){
 .ec-header{min-height:62px;padding:9px 16px;gap:8px}.ec-mark{width:28px;height:28px}.ec-wordmark{width:119px}.ec-home{gap:8px}
 .ec-header-actions{gap:6px}.ec-header-actions button,.ec-header-actions a{min-width:62px;min-height:36px;padding:6px 8px;font-size:11.5px}
 .ec-project-heading{top:90px;left:24px}.ec-project-heading h2{font-size:16px}.ec-project-heading p{font-size:10px;margin-bottom:6px}
 .ec-nanshan img{transform:translateY(-10svh) scale(1.24);transform-origin:50% 65%}
 .ec-project-caption{left:24px;right:24px;bottom:calc(var(--entry-footer-base,120px) + 76px);gap:12px;align-items:center}.ec-scene-progress{width:108px}.ec-scene-progress>div{font-size:10px}.ec-caption-links{display:block}.ec-caption-links a{font-size:12px;justify-content:flex-end;min-height:38px}.ec-caption-links small{font-size:8px;display:block;text-align:right}.ec-caption-links svg{width:20px;height:20px}.ec-project-picker{bottom:calc(var(--entry-footer-base,120px) + 14px)}
 .ec-project-picker{padding:0 6px}.ec-project-picker button{min-width:32px;min-height:26px}.ec-project-picker span{width:6px;height:6px}.ec-project-picker [aria-current=true] span{width:22px}
}
@media(max-width:320px){.ec-wordmark{width:88px}.ec-mark{width:23px;height:23px}.ec-home{gap:6px}.ec-header{padding-inline:12px}.ec-header-actions button,.ec-header-actions a{min-width:56px;padding-inline:6px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.entry-welcome,.entry-collection,.ec-header{transition:none!important;transform:none}}
@media(prefers-reduced-transparency:reduce){.ec-header{background:#eef3f8;backdrop-filter:none;-webkit-backdrop-filter:none}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ec-header{background:#eef3f8}}
@media print{.entry-collection{display:none}}


.entry-page .entry-carousel-controls.entry-theme-picker{--ec-control-surface:linear-gradient(145deg,#ffffff29,#e8f0f31a);position:fixed;left:50%;bottom:calc(var(--entry-footer-base,80px) + 16px);transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:10px;width:max-content;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;-webkit-tap-highlight-color:transparent}
.entry-page[data-entry-theme=mist] .entry-carousel-controls{--ec-control-surface:linear-gradient(145deg,#25384452,#152b3433);color:#edf4f6}
.entry-page[data-entry-project="3"] .entry-carousel-controls{color:#edf4f6}
.entry-carousel-controls>.ec-project-picker{position:relative;left:auto;bottom:auto;transform:none;z-index:0;isolation:isolate;overflow:hidden;contain:paint;clip-path:inset(0 round 999px);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.entry-carousel-controls>.ec-project-picker::before,.ec-autoplay-toggle::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;clip-path:inset(0 round 999px);background:var(--ec-control-surface);backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);pointer-events:none}
.entry-carousel-controls .ec-project-picker button{appearance:none;-webkit-appearance:none;border-radius:999px;box-shadow:none;-webkit-tap-highlight-color:transparent;outline:none}
.entry-page .ec-project-picker button:focus-visible{outline:1.5px solid currentColor;outline-offset:-3px}
.ec-autoplay-toggle{appearance:none;-webkit-appearance:none;position:relative;isolation:isolate;overflow:hidden;contain:paint;clip-path:inset(0 round 50%);display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:1px solid #ffffff61;border-radius:50%;background:transparent;color:inherit;box-shadow:inset 0 1px 0 #ffffff59;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ec-autoplay-toggle svg{grid-area:1/1;width:15px;height:15px}.ec-autoplay-toggle .ec-play-icon{display:none}.ec-autoplay-toggle.is-paused .ec-pause-icon{display:none}.ec-autoplay-toggle.is-paused .ec-play-icon{display:block}
.ec-interval-toggle{appearance:none;-webkit-appearance:none;position:relative;display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;margin:0 -4px 0 0;padding:0;border:0;border-radius:50%;color:inherit;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ec-interval-ring{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;opacity:.78;animation:ec-interval-turn var(--ec-cycle-duration,15s) linear infinite}
.ec-interval-value{font:500 10px/1 -apple-system,BlinkMacSystemFont,'PingFang TC',sans-serif;letter-spacing:0}
.entry-carousel-controls.is-autoplay-paused .ec-interval-ring{animation-play-state:paused}
.entry-page .ec-interval-toggle:focus-visible{outline:1.5px solid currentColor;outline-offset:1px}
@keyframes ec-interval-turn{to{transform:rotate(360deg)}}
.entry-page .ec-autoplay-toggle:focus-visible{outline:1.5px solid currentColor;outline-offset:-3px}
.ec-scroll-hint{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);display:flex;align-items:center;gap:5px;margin:0;color:#edf4f6;font-size:10px;line-height:1.5;letter-spacing:.03em;white-space:nowrap;text-shadow:0 1px 5px #102333cc;opacity:0;visibility:hidden;transition:opacity .4s;pointer-events:none}
.entry-page[data-entry-project="3"] .ec-scroll-hint{opacity:1;visibility:visible}.ec-scroll-hint svg{width:12px;height:17px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.entry-page.is-footer-open .entry-carousel-controls{opacity:0;pointer-events:none}
@media(max-width:640px){.entry-page .entry-carousel-controls.entry-theme-picker{bottom:calc(var(--entry-footer-base,90px) + 14px);gap:8px}.ec-autoplay-toggle{width:28px;height:28px;flex-basis:28px}.ec-autoplay-toggle svg{width:13px;height:13px}.ec-scroll-hint{font-size:9px}}
@media(max-width:640px){.ec-interval-toggle{width:30px;height:30px;flex-basis:30px}.ec-interval-value{font-size:9px}}
@media(prefers-reduced-transparency:reduce){.entry-carousel-controls>.ec-project-picker::before,.ec-autoplay-toggle::before{background:var(--entry-panel);backdrop-filter:none;-webkit-backdrop-filter:none}}
/* Published text uses the existing caption area; brand backgrounds remain independent. */
.entry-page.is-collection .ec-project-caption{opacity:1;visibility:visible;transition:opacity .6s .25s}
#portfolio-text{width:min(760px,100%);max-height:min(34dvh,340px);overflow-y:auto;overscroll-behavior:contain;overflow-wrap:anywhere;white-space:pre-wrap;padding:16px 20px;border:1px solid #ffffff48;border-radius:12px;background:#162b3b7d;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#f4f7fa;text-shadow:none;line-height:1.7;font-size:14px;pointer-events:auto}
#portfolio-text h3{font-size:18px;line-height:1.5;margin:0 0 8px}#portfolio-text p{margin:0 0 10px}#portfolio-text article+article{border-top:1px solid #ffffff40;padding-top:16px;margin-top:16px}
.entry-page.is-footer-open .ec-project-caption{opacity:0;pointer-events:none}
@media(max-width:640px){#portfolio-text{font-size:12px;padding:12px 14px;max-height:27dvh}#portfolio-text h3{font-size:15px}}
