/* Exclusive entrance — same editorial black-on-white styling as the main site. */
#launchScreen.launch {
  position:fixed; inset:0; z-index:1000; display:block; overflow-y:auto;
  background:#f8f8f6; color:#161616; isolation:isolate;
  padding:clamp(14px,2.7vw,38px); opacity:1;
  transition:opacity .68s ease,visibility .68s ease;
}
#launchScreen.launch::before {
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(20,20,20,.027) 1px,transparent 1px),linear-gradient(rgba(20,20,20,.027) 1px,transparent 1px);
  background-size:38px 38px;
}
#launchScreen.launch.is-leaving { opacity:0; visibility:hidden; pointer-events:none; }
#launchScreen .launch-shell {
  width:min(1190px,100%); margin:auto; min-height:calc(100dvh - 2*clamp(14px,2.7vw,38px));
  display:flex; flex-direction:column; justify-content:space-between; gap:15px;
}
#launchScreen .launch-topline { display:flex;justify-content:space-between;align-items:center;gap:15px; font-size:11px;letter-spacing:.19em;color:#5d5e60;padding:9px 0; }
#launchScreen .launch-brand{display:flex;align-items:center;gap:11px;font-weight:700;color:#252525;white-space:nowrap;}
#launchScreen .launch-brand .brand-dot{width:12px;height:12px;display:inline-block;background:#111;border-radius:50%;}
#launchScreen .launch-brand-sep{color:#a9a9a9;font-weight:400;}
#launchScreen .launch-version{color:#88878b;font-weight:600;white-space:nowrap;}
#launchScreen .launch-version span{font-size:1.2em;color:#8b7074;}
#launchScreen .launch-main{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:center;gap:clamp(24px,4.2vw,70px);flex:1;padding:15px 0 8px;}
#launchScreen .launch-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;}
#launchScreen .launch-kicker{display:flex;gap:10px;align-items:center;color:#67676b;font-size:.68rem;letter-spacing:.21em;font-weight:750;text-transform:uppercase;}
#launchScreen .signal-dot{position:relative;flex:none;width:8px;height:8px;border-radius:50%;background:#101010;box-shadow:0 0 0 4px #10101015;animation:tinyPulse 2.4s infinite;}
@keyframes tinyPulse{50%{box-shadow:0 0 0 8px #10101008}}
#launchScreen h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(3.1rem,5.3vw,5.8rem);line-height:1.04;letter-spacing:-.082em;color:#141414;margin:22px 0 23px;max-width:680px;}
#launchScreen h2 em{color:#77767a;font-style:italic;font-weight:400;}
#launchScreen .launch-copy>p{color:#67676b;font-size:clamp(.95rem,1.2vw,1.09rem);line-height:1.82;max-width:485px;margin:0 0 24px;}
#launchScreen .intro-terminal{background:#111214;border:1px solid #18191a;border-radius:21px;max-width:480px;width:100%;box-shadow:0 18px 46px #00000010;overflow:hidden;}
#launchScreen .intro-terminal-top{height:36px;display:flex;justify-content:space-between;align-items:center;padding:0 15px;border-bottom:1px solid #ffffff18;background:#1c1d1f;color:#b4b4b7;font:11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.05em;}
#launchScreen .term-dots{display:flex;gap:6px;}.term-dots b{display:block;width:7px;height:7px;border-radius:50%;background:#9b9b9c}.term-dots b:first-child{background:#ededed}.term-dots b:last-child{background:#626366}
#launchScreen .term-live{display:flex;align-items:center;gap:7px;color:#a9a9a9}.term-live i{display:inline-block;width:6px;height:6px;background:#b9d4bf;border-radius:50%}
#introCode{font:clamp(10px,.94vw,12px)/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e5e5e5;white-space:pre-wrap;overflow-wrap:anywhere;min-height:128px;margin:0;padding:13px 16px;letter-spacing:0;}
#introCode::after{content:"▌";color:#f4eeee;animation:blinkCode .75s steps(1) infinite;}
@keyframes blinkCode{50%{opacity:0}}
#launchScreen .intro-hint{margin-top:15px;color:#818185;font-size:.78rem;display:flex;align-items:center;gap:9px;}
#launchScreen .intro-sparkle{font-size:1.12rem;color:#8d8585;}
#launchScreen .launch-visual{min-width:0;display:flex;align-items:center;justify-content:center;width:100%;}
.portrait-card{width:min(500px,100%);border:1px solid #dadad6;border-radius:31px;padding:13px 13px 16px;background:#fff;box-shadow:0 26px 80px rgba(0,0,0,.09);position:relative;}
.portrait-toolbar{display:flex;justify-content:space-between;align-items:center;gap:13px;padding:5px 9px 14px;font:700 10px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.095em;color:#6f6f73;}
.portrait-toolbar>div:first-child{display:flex;align-items:center;gap:9px;}
.portrait-on{width:7px;height:7px;background:#151515;border-radius:50%;display:inline-block;animation:tinyPulse 2.4s infinite;}
.portrait-count{white-space:nowrap;color:#222;font-size:12px;}
.portrait-stage{position:relative;height:clamp(330px,49vh,550px);border-radius:20px;overflow:hidden;background:linear-gradient(135deg,#131618,#090b0c 64%,#17191a);isolation:isolate;}
.portrait-stage::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.075;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#fff 4px);}
#portraitCanvas{width:100%;height:100%;display:block;position:relative;z-index:2;}
.portrait-scan{position:absolute;z-index:4;inset:0;pointer-events:none;opacity:.34;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.13) 45%,transparent 75%);transform:translateY(-120%);animation:portraitScan 7s linear infinite;}
@keyframes portraitScan{to{transform:translateY(130%)}}
.portrait-corner{position:absolute;width:23px;height:23px;z-index:5;pointer-events:none;opacity:.6;}
.corner-tl{left:13px;top:13px;border-top:1px solid white;border-left:1px solid white}
.corner-tr{right:13px;top:13px;border-top:1px solid white;border-right:1px solid white}
.corner-bl{left:13px;bottom:13px;border-bottom:1px solid white;border-left:1px solid white}
.corner-br{right:13px;bottom:13px;border-bottom:1px solid white;border-right:1px solid white}
.portrait-overlay-top,.portrait-overlay-bottom{position:absolute;z-index:5;pointer-events:none;font:10px/1.35 ui-monospace,Consolas,monospace;color:#e9e9e9;letter-spacing:.08em;text-shadow:0 1px 6px #000;}
.portrait-overlay-top{left:29px;top:28px;opacity:.9;}
.portrait-overlay-bottom{right:28px;bottom:30px;color:#fff;}
.portrait-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 9px 12px;}
.portrait-caption{display:flex;flex-direction:column;gap:4px;min-width:0;}
.portrait-caption strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.18rem,1.6vw,1.48rem);font-weight:400;letter-spacing:-.025em;line-height:1.2;color:#171718;}
.portrait-caption span{color:#8a8a8d;font-size:.73rem;}
.portrait-nav{display:flex;align-items:center;gap:6px;}
.portrait-arrow{border:1px solid #cfcfcf;border-radius:50%;width:35px;height:35px;background:#fff;color:#161616;display:grid;place-items:center;transition:background .2s,transform .2s;}
.portrait-arrow:hover{background:#ededeb;transform:translateY(-2px);}
.portrait-arrow:focus-visible{outline:2px solid #222;outline-offset:3px;}
.portrait-ticks{display:flex;gap:5px;padding:1px 9px 2px;}
.portrait-ticks i{display:block;background:#e4e4e1;height:3px;flex:1;border-radius:6px;transition:background .35s;}
.portrait-ticks i.current{background:#242424;}
#launchScreen .launch-bottom{display:flex;align-items:end;justify-content:space-between;gap:25px;padding:22px 0 6px;min-height:98px;border-top:1px solid #dededb;}
#launchScreen .loading-detail{width:min(435px,100%);}
#launchScreen .loading-row{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#69696c;font-size:.8rem;}
#launchScreen .loading-row strong{color:#242425;font:700 .9rem ui-monospace,Consolas,monospace;}
#launchScreen .loading-track{height:4px;border-radius:8px;overflow:hidden;margin:12px 0 9px;background:#e8e8e6;}
#introFill{display:block;width:0;height:100%;background:#1b1b1b;transition:width .09s linear;box-shadow:none;}
#launchScreen .loading-caption{color:#8a8a8c;font-size:.75rem;letter-spacing:0;}
#launchScreen .launch-enter{display:inline-flex;align-items:center;justify-content:space-between;min-width:247px;min-height:52px;padding:13px 20px;gap:25px;border:1px solid #111;background:#111;color:#fff;border-radius:999px;font-weight:650;box-shadow:0 13px 30px #00000025;animation:enterUp .7s both;transition:transform .22s,background .22s;}
#launchScreen .launch-enter:not(:disabled):hover{background:#333;transform:translateY(-2px);}
#launchScreen .launch-enter-arrow{font-size:1.4em;line-height:1;}
@keyframes enterUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:940px){
 #launchScreen .launch-main{gap:24px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 #launchScreen h2{font-size:clamp(2.8rem,5vw,4.2rem)}
 #launchScreen .launch-copy>p{font-size:.9rem}
 .portrait-stage{height:clamp(330px,50vh,500px)}
}
@media(max-width:760px){
 #launchScreen.launch{padding:16px 16px 23px;}
 #launchScreen .launch-shell{min-height:calc(100dvh - 39px);gap:9px;}
 #launchScreen .launch-version{display:none;}
 #launchScreen .launch-main{grid-template-columns:1fr;gap:14px;padding:6px 0 13px;}
 #launchScreen .launch-copy{align-items:center;text-align:center;}
 #launchScreen .launch-kicker{justify-content:center;font-size:9px;letter-spacing:.13em;}
 #launchScreen h2{font-size:clamp(2.5rem,8.5vw,3.5rem);margin:7px 0 5px;}
 #launchScreen h2 br:first-of-type{display:none;}
 #launchScreen .launch-copy>p{display:none;}
 #launchScreen .intro-terminal{max-width:500px;}
 #introCode{min-height:59px;max-height:83px;font-size:9px;line-height:1.45;padding:7px 12px;}
 #launchScreen .intro-terminal-top{height:26px;}
 #launchScreen .intro-hint{display:none;}
 #launchScreen .launch-visual{order:1;}
 #launchScreen .intro-terminal{order:2;}
 .portrait-card{max-width:420px;padding:9px 9px 12px;border-radius:22px;}
 .portrait-stage{height:clamp(245px,40vh,380px);border-radius:15px;}
 .portrait-toolbar{padding:2px 6px 7px;font-size:8px;}
 .portrait-bottom{padding:9px 6px 8px;}
 .portrait-caption span{display:none;}
 .portrait-caption strong{font-size:1.12rem;}
 .portrait-arrow{height:30px;width:30px;}
 #launchScreen .launch-bottom{gap:12px;padding:12px 0 0;min-height:auto;align-items:stretch;flex-direction:column;}
 #launchScreen .loading-detail{width:100%;}
 #launchScreen .launch-enter{min-height:49px;width:100%;justify-content:center;}
}
@media(max-width:760px) and (max-height:760px){
 #launchScreen .launch-main{gap:8px;}
 #launchScreen h2{font-size:clamp(2.25rem,7vw,2.8rem);margin:5px 0 0;}
 .portrait-stage{height:clamp(225px,36vh,305px);}
 #launchScreen .portrait-overlay-top{font-size:8px;}
 #introCode{min-height:52px;max-height:66px;}
 .portrait-bottom{padding:6px 6px;}
 #launchScreen .launch-bottom{padding-top:8px;}
}
@media(prefers-reduced-motion:reduce){
 #launchScreen .portrait-scan,#launchScreen .signal-dot,#introCode::after{animation:none!important;}
 #launchScreen.launch,#launchScreen .launch-enter{transition:none;}
}

/* Keep the entrance and its CTA visible without scrolling on typical phones. */
@media(max-width:760px){
  #launchScreen h2{font-size:clamp(2.2rem,7.4vw,2.9rem);line-height:.97;margin:6px 0 3px;}
  #launchScreen .intro-terminal{display:none;}
  #launchScreen .launch-main{gap:9px;}
  .portrait-stage{height:clamp(250px,37vh,325px);}
  .portrait-card{max-width:380px;}
  #launchScreen .launch-bottom{padding:9px 0 0;gap:10px;}
}
@media(max-width:760px) and (max-height:720px){
  #launchScreen .launch-topline{padding:0;}
  #launchScreen h2{font-size:2rem;line-height:.92;}
  .portrait-stage{height:240px;}
  .portrait-toolbar{padding:1px 6px 5px;}
  .portrait-bottom{padding:5px 6px 6px;}
  #launchScreen .loading-caption{display:none;}
}

/* v8: avoid title collision on small screens — preserve the editorial line breaks. */
@media (max-width: 760px) {
  #launchScreen h2 {
    font-size: clamp(1.85rem, 7.3vw, 2.6rem);
    letter-spacing: -.06em;
    line-height: 1.035;
    margin: 6px 0 5px;
  }
  #launchScreen h2 br:first-of-type { display: initial; }
}
@media (max-width: 760px) and (max-height: 720px) {
  #launchScreen h2 { font-size: clamp(1.7rem, 7vw, 2rem); line-height: 1; }
  .portrait-stage { height: 216px; }
}

/* v9: subtle motion while digital fragments assemble into a living portrait */
.portrait-stage{background:#0a0c0e;}
.portrait-stage::before{opacity:.04;}
#portraitCanvas {image-rendering:auto;}
.portrait-stage::after{
 content:"";inset:0;position:absolute;z-index:4;pointer-events:none;
 background:linear-gradient(110deg, transparent 0%,rgba(255,255,255,.045) 48%,transparent 58%);
 background-size:230% 100%;animation:lightSweep 9s ease-in-out infinite;
}
@keyframes lightSweep{0%,40%{background-position:120% 0}80%,100%{background-position:-120% 0}}
.portrait-scan{opacity:.17;}
@media(prefers-reduced-motion:reduce){.portrait-stage::after{animation:none;}}
