/* Shared visual surface: auth -> photon -> welcome -> live workspace. */
#portal-ocean-wash{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 65% 58%,#d9eeeeaa,transparent 59%),radial-gradient(ellipse at 75% 25%,#e7edfa85,transparent 55%),linear-gradient(135deg,#fafbf9,#eef5f7);transition:opacity .7s ease}
#portal-ocean{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#app{position:relative;z-index:2;animation:none;transform:none;translate:none}
body[data-entry-phase=workspace] #portal-ocean-wash{opacity:.22}
.clarity .home-hero{background:linear-gradient(110deg,#e9f2edcc,#edf4f244,#e0eff344)}
.hero-tide,#auth-tide{visibility:hidden!important}
body.tide-auth{overflow-x:hidden;overflow-y:auto}
.tide-auth .auth-wrap{display:block;position:relative;min-height:100svh;width:100%;background:none;padding:0}
.tide-auth .auth-art{display:block;background:none;position:absolute;padding:0;overflow:visible}
.tide-auth .auth-art canvas{display:none}
.tide-auth .auth-card,#entrance-auth-host .auth-card{position:absolute;right:9%;top:50%;transform:translateY(-47%);width:370px;max-width:none;padding:32px 33px 26px;margin:0;border:1px solid #c5d8d2;border-radius:18px;background:linear-gradient(145deg,#ffffffed,#f9fcfadb);box-shadow:0 24px 75px #2c5b5810;backdrop-filter:blur(12px);transform-origin:50% 50%;transition:border-color .2s,box-shadow .2s}
.tide-auth .auth-card h2,#entrance-auth-host .auth-card h2{font-size:28px;font-weight:500;letter-spacing:-.7px;margin-bottom:9px}
.tide-auth .auth-card>p.muted,#entrance-auth-host .auth-card>p.muted{font-size:12px;line-height:1.7;color:#637f77}
.tide-auth .auth-card form,#entrance-auth-host .auth-card form{margin-top:26px;gap:16px}
.tide-auth .auth-card .form-stack>label,#entrance-auth-host .auth-card .form-stack>label{font-size:12px;font-weight:500;gap:7px}
.tide-auth .auth-card input,#entrance-auth-host .auth-card input{font-size:13px;border-color:#a8bfbc}
.tide-auth .auth-card .dialog-actions,#entrance-auth-host .auth-card .dialog-actions{display:block;margin-top:0;padding:0}
.tide-auth .auth-card button[type=submit],#entrance-auth-host .auth-card button[type=submit]{width:100%;position:relative;overflow:hidden;min-height:44px}
.tide-auth .auth-card form[data-busy] button[type=submit]:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#bae4d8,transparent);animation:entry-current 1.3s linear infinite}
.tide-auth .auth-card .form-note,#entrance-auth-host .auth-card .form-note{font-size:11px;margin-top:16px;text-align:center}
.tide-auth .form-error:empty,#entrance-auth-host .form-error:empty{display:none}
.tide-auth .check-label,#entrance-auth-host .check-label{font-size:11px!important;line-height:1.8}
.tide-auth .check-label input,#entrance-auth-host .check-label input{width:14px;height:14px}

.entrance,.entrance:not([hidden]){background:none;animation:none;transition:none;opacity:1}
.entrance:not([hidden]) .entrance-copy,.tide-auth .entrance-copy{animation:none;translate:none;transform:none}
.entrance-copy,.tide-auth .entrance-copy{left:8.7%;top:25%;transition:opacity .5s,translate .6s;z-index:1}
.entrance-copy h1,.tide-auth .entrance-copy h1{font-size:clamp(54px,4.25vw,78px);line-height:1.3;letter-spacing:-3.5px;font-weight:450;color:#244e4e;margin:0}
.entrance-copy h1 span{color:#799d94}.entrance-copy p,.tide-auth .entrance-copy p{font-size:13px;color:#607e78;margin-top:24px}
.entrance-copy .eyebrow,.tide-auth .entrance-copy .eyebrow{font-size:10px;letter-spacing:3px;margin-bottom:24px}
.entrance-brand{top:40px;z-index:2}.entrance-brand small{font-size:8px;letter-spacing:2.3px}
.entrance-bottom{z-index:2;font-size:11px}.entrance-bottom>span:nth-child(2){font-size:8px;letter-spacing:2.5px;margin-right:35%}
#entrance-action{margin-top:35px;opacity:0;visibility:hidden;transition:opacity .45s}
#entrance-action .btn{margin:0;min-width:180px;justify-content:space-between;font-size:13px;padding:12px 20px}
.welcome-note{display:block;color:#607f74;font-size:11px;margin-top:14px;letter-spacing:.5px}
body[data-entry-phase=welcome] #entrance-action{opacity:1;visibility:visible}
.photon-arrival #enter-button{animation:photon-button .65s cubic-bezier(.18,.65,.25,1) both}.photon-arrival #enter-button>span{animation:photon-label .7s ease both}.photon-arrival .welcome-note{animation:photon-label 1s ease both}
@keyframes photon-button{0%{clip-path:inset(0 47% round 30px);box-shadow:0 0 30px #b2d7b8}60%{box-shadow:0 0 25px #a2cbb670}100%{clip-path:inset(0 round 8px);box-shadow:0 0 0 transparent}}
@keyframes photon-label{0%,35%{opacity:0}100%{opacity:1}}
#login-photon{position:fixed;left:0;top:0;width:13px;height:13px;margin:-6.5px;border-radius:50%;z-index:90;pointer-events:none;background:radial-gradient(circle,#fff 5%,#f5f0c6 22%,#b9e2cc 42%,#5ca69788 60%,transparent 75%);box-shadow:0 0 14px 5px #a1d6c470,0 0 42px 12px #c8e8d13b;opacity:0;will-change:transform;transition:opacity .18s;transform:translate3d(-100px,-100px,0)}
body[data-entry-phase=login-success] #entrance-auth-host .auth-card{border-color:#8abaaa;box-shadow:0 0 0 1px #addbc655,0 0 45px #90ccbb30}
body[data-entry-phase=login-success] #entrance-auth-host button[type=submit]{background:#32695c;border-color:#73a995}
body[data-entry-phase=login-merge] #entrance-auth-host .auth-card{opacity:0;scale:.025;border-radius:50%;pointer-events:none;box-shadow:0 0 70px 30px #e6f6d9;transition:scale .65s cubic-bezier(.5,.05,.75,.5),opacity .18s .49s,border-radius .55s,box-shadow .5s}
body[data-entry-phase=login-merge] #entrance-auth-host .auth-card>*{opacity:0;transition:opacity .16s}
.entrance-open #app{visibility:hidden;clip-path:circle(0% at 57% 48%)}
body[data-entry-phase=revealing] #app{visibility:visible;animation:entry-aperture .95s cubic-bezier(.45,.02,.18,1) both}
@keyframes entry-aperture{from{clip-path:circle(0% at 57% 48%)}to{clip-path:circle(150% at 57% 48%)}}
body[data-entry-phase=voyage] .entrance-copy,body[data-entry-phase=entry-error] .entrance-copy,body[data-entry-phase=revealing] .entrance-copy{opacity:0;translate:0 -22px;pointer-events:none}
body[data-entry-phase=revealing] .entrance-brand,body[data-entry-phase=revealing] .entrance-bottom,body[data-entry-phase=revealing] .skip-intro{opacity:0;transition:opacity .45s}
body[data-entry-phase=revealing] #portal-ocean-wash{opacity:.22}
body.entry-instant #app{animation:none;clip-path:none}
.skip-intro{color:#52766e;z-index:5}.skip-intro:disabled{opacity:.6;cursor:default}
#entry-passage{position:absolute;top:37%;left:50%;width:min(530px,85vw);transform:translateX(-50%);text-align:center;opacity:0;visibility:hidden;transition:opacity .45s,translate .5s;pointer-events:none}
body[data-entry-phase=voyage] #entry-passage,body[data-entry-phase=entry-error] #entry-passage{opacity:1;visibility:visible;pointer-events:auto;transition-delay:.15s}
body[data-entry-phase=revealing] #entry-passage{opacity:0;visibility:visible;translate:0 -14px}
.passage-overline{font-size:9px;letter-spacing:3.5px;color:#719488}#entry-title{font-size:36px;letter-spacing:1px;font-weight:400;color:#35645e;margin:21px 0 0}#entry-message{font-size:12px;color:#608273;min-height:24px;margin-top:14px}
.passage-actions{height:55px;margin-top:22px;display:flex;gap:12px;justify-content:center}.passage-actions .btn{font-size:12px;align-self:start}
.route-load-current{display:block;margin:25px auto 0;width:100px;height:2px;overflow:hidden;background:#c5d9cd70;position:relative;border-radius:2px}.route-load-current:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#6b9f84,transparent);animation:entry-current 1.8s ease-in-out infinite}
@keyframes entry-current{0%{transform:translateX(-110%)}100%{transform:translateX(170%)}}

/* Module loaders live inside the persistent shell and never simulate progress. */
.workspace-loader{position:relative;min-height:480px;border:1px solid #cfdfdc;border-radius:14px;background:radial-gradient(ellipse at 50% 37%,#e8f4eea3,transparent 45%),linear-gradient(145deg,#fcfefd,#f5f9f7);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:28px;text-align:center;overflow:hidden}
.route-tide-art{display:block;position:relative;width:min(370px,100%);height:210px;margin-top:-32px;flex-shrink:0}.route-tide-art canvas{position:absolute;inset:0;width:100%;height:100%}
.route-tide-emblem{position:absolute;left:50%;top:49%;translate:-50% -50%;width:49px;height:49px;border:1px solid #c9ded280;background:radial-gradient(ellipse,#ffffffe8,#e8f2eb77);border-radius:14px;box-shadow:0 0 40px #cde6d36b;display:grid;place-items:center;color:#54896f;animation:route-emblem-float 3.8s ease-in-out infinite}.route-tide-emblem .icon{width:22px;height:22px;stroke-width:1.4}
@keyframes route-emblem-float{50%{transform:translateY(-5px)}}
.route-loader-overline{font-size:8px;letter-spacing:2.8px;color:#74917e;line-height:1.6}
.workspace-loader .tide-loading-copy{margin-top:18px;gap:11px;display:flex;flex-direction:column;text-align:center}.workspace-loader .tide-loading-copy strong{font-size:19px;font-weight:450;letter-spacing:.5px;color:#345e51}.workspace-loader .tide-loading-copy small{font-size:12px;color:#608070;letter-spacing:0}
.route-load-patience{display:block;min-height:38px;margin-top:20px;font-size:11px;color:#718d7a}
.workspace-loader-startup{min-height:100svh;border:0;border-radius:0;background:none}
.workspace-loader-startup .route-tide-art{height:95px}.workspace-loader-startup .route-tide-emblem{width:43px;height:43px}.workspace-loader-startup .route-loader-overline{margin-top:18px}
.image-config-status .workspace-loader{display:flex;flex-direction:row;justify-content:flex-start;gap:12px;border:0;border-radius:0;background:none;min-height:64px;padding:0;overflow:hidden}
.image-config-status .route-tide-art{width:95px;height:64px;margin:0}.image-config-status .route-tide-emblem{width:27px;height:27px;border-radius:8px}.image-config-status .route-tide-emblem .icon{width:14px;height:14px}
.image-config-status .workspace-loader .tide-loading-copy{margin:0;text-align:left;gap:4px}.image-config-status .workspace-loader .tide-loading-copy strong{font-size:12px;letter-spacing:0}.image-config-status .workspace-loader .tide-loading-copy small{font-size:11px}
.image-config-status .route-loader-overline,.image-config-status .route-load-current,.image-config-status .route-load-patience{display:none}
#route-content{position:relative}#route-content[aria-busy=true]{opacity:1}
.route-refresh-indicator{position:absolute;right:0;top:-18px;font-size:11px;color:#557a6b;z-index:1;padding:3px 9px;border-radius:5px;background:#f1f7f2;pointer-events:none}
@media(min-width:1700px){.tide-auth .auth-card{right:12%;width:385px}}
@media(max-width:1200px) and (min-width:701px){.tide-auth .auth-card{right:6%;width:345px}.entrance-copy,.tide-auth .entrance-copy{left:7%;top:29%}.entrance-copy h1,.tide-auth .entrance-copy h1{font-size:60px}.entrance-copy p,.tide-auth .entrance-copy p{max-width:270px}.entrance-bottom>span:nth-child(2){margin-right:25%}}
@media(max-width:900px) and (min-width:701px){.tide-auth .auth-card{right:5%;width:320px;padding:27px}.entrance-copy,.tide-auth .entrance-copy{left:6%;top:31%}.entrance-copy h1,.tide-auth .entrance-copy h1{font-size:51px}.entrance-copy p,.tide-auth .entrance-copy p{font-size:11px;max-width:230px}.entrance-copy .eyebrow,.tide-auth .entrance-copy .eyebrow{font-size:8px}}
@media(max-width:700px){
 .entrance-brand{top:26px;left:23px;gap:10px}.entrance-brand img{width:29px;height:29px}.entrance-brand span{font-size:13px}.entrance-brand small{display:none}
 .entrance-copy,.tide-auth .entrance-copy{left:8%;right:8%;top:126px}.entrance-copy h1,.tide-auth .entrance-copy h1{font-size:46px;line-height:1.2;letter-spacing:-2px}.entrance-copy .eyebrow,.tide-auth .entrance-copy .eyebrow{font-size:7px;margin-bottom:16px;letter-spacing:2px}.entrance-copy p,.tide-auth .entrance-copy p{font-size:11px;margin-top:16px;max-width:100%}
 .tide-auth .auth-wrap{padding:345px 0 82px}.tide-auth .auth-card{position:relative;left:auto;right:auto;top:auto;transform:none;width:auto;margin:0 7%;padding:24px 25px 20px}
 .tide-auth .auth-card h2,#entrance-auth-host .auth-card h2{font-size:23px}.tide-auth .auth-card>p.muted{display:none}.tide-auth .auth-card form{margin-top:20px;gap:13px}.tide-auth .auth-card input,#entrance-auth-host .auth-card input{font-size:16px}
 .entrance-bottom{bottom:25px;left:8%;right:8%;font-size:10px}.entrance-bottom>span:nth-child(2){display:none}.skip-intro{top:27px;right:24px;font-size:10px;max-width:140px}
 #entrance-action{margin-top:26px}#entrance-action .btn{font-size:12px;min-width:183px}.welcome-note{font-size:10px}
 #entry-passage{top:39%}#entry-title{font-size:30px}.passage-overline{font-size:7px;letter-spacing:2px}#entry-message{font-size:11px}
 .workspace-loader{min-height:440px;padding:24px 18px}.workspace-loader-startup{min-height:100svh}.route-tide-art{width:280px;height:205px}.workspace-loader .tide-loading-copy strong{font-size:17px}.route-loader-overline{font-size:7px}.route-load-patience{font-size:10px}
}
@media(max-width:700px) and (max-height:740px){.entrance-copy,.tide-auth .entrance-copy{top:103px}.entrance-copy h1,.tide-auth .entrance-copy h1{font-size:38px}.tide-auth .auth-wrap{padding-top:293px}}
@media(prefers-reduced-motion:reduce){#app,.entrance-copy,#entrance-action,.route-tide-emblem,.route-load-current:after,#login-photon{animation:none!important;transition:none!important}body[data-entry-phase=revealing] #app{clip-path:none}}
