/* Signal composition, using the shared Midnight design tokens. */
.signal-site .wrap{max-width:1600px;padding:0 5%}.signal-site .site-header{min-height:100px}.signal-site .top-nav{gap:4px}.signal-site .top-nav a{padding:8px 10px}.signal-site .header-actions{gap:18px}.signal-site .signal-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:5%;min-height:650px;padding:60px 0}.signal-site h1{font-size:clamp(3.25rem,6vw,5.625rem);font-weight:550;line-height:1.02;letter-spacing:-.045em;margin:30px 0;text-wrap:initial}.signal-site h1 em{font-style:normal;font-weight:650;color:var(--gold)}.signal-site .lead{font-size:17px;line-height:1.7;color:var(--muted);margin:24px 0}.signal-site .signal-copy .button{padding:13px 18px;gap:36px}.signal-site .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.16em}.signal-label{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #313b6280;padding:22px 0;font-size:12px;letter-spacing:1.5px}.signal-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.signal-card{display:block;background:linear-gradient(140deg,var(--active),var(--surface));border:1px solid var(--border);border-radius:24px;padding:22px;transition:border-color .2s,transform .2s}.signal-card:hover{color:var(--text);border-color:#61709a;transform:translateY(-5px)}.signal-card .eyebrow{font-size:11px;letter-spacing:.12em;margin:10px 0 20px}.signal-card .eyebrow:before{display:none}.signal-card h2{font-size:21px;line-height:1.35;font-weight:550;letter-spacing:-.025em;display:flex;justify-content:space-between;gap:8px;margin:22px 0 10px}.signal-card h2 span{color:var(--gold)}.signal-card p{font-size:15px;line-height:1.6;color:var(--muted)}.signal-site .site-footer{margin-top:85px}
@media(max-width:1100px){.signal-site .site-header{flex-direction:column;align-items:flex-start;padding:24px 0;gap:18px}.signal-site .header-actions{width:100%;justify-content:space-between}.signal-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
@media(max-width:650px){.signal-site .wrap{padding:0 6%}.signal-site .signal-hero{grid-template-columns:minmax(0,1fr);gap:25px;padding:35px 0;min-height:0}.signal-site h1{font-size:clamp(2.55rem,12.5vw,3.25rem);letter-spacing:-.04em}.signal-site .lead{font-size:16px}.signal-site .signal-copy>.eyebrow{font-size:10px;letter-spacing:.12em}.signal-label{font-size:10px;letter-spacing:.5px}.signal-cards{gap:16px}.signal-card{padding:15px;border-radius:20px}.signal-card .eyebrow{font-size:9px;letter-spacing:.06em}.signal-card h2{font-size:18px}.signal-card p{font-size:14px}.signal-site .site-footer{margin-top:50px}}
@media(max-width:370px){.signal-cards{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.signal-card{transition:none}.signal-card:hover{transform:none}}

/* Honest image slots; actual app artwork is kept where available. */
.image-placeholder{min-height:450px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed #536080;border-radius:24px;background:var(--surface);text-align:center;padding:28px;color:var(--muted)}
.placeholder-label{font-size:18px;font-weight:500;color:var(--text)}.placeholder-note{font-size:13px;letter-spacing:.04em;color:var(--muted)}.image-placeholder.compact{min-height:140px;border-radius:12px;padding:16px;gap:4px}.compact .placeholder-label{font-size:14px}.compact .placeholder-note{font-size:12px}
.app-visual{min-height:450px;display:grid;grid-template-columns:repeat(2,76px);justify-content:center;align-content:center;gap:30px;border:1px solid var(--border);border-radius:24px;background:var(--surface)}.app-visual img{display:block;width:76px;height:76px;border-radius:18px;box-shadow:0 8px 24px #0003}.signal-card .app-visual{min-height:140px;grid-template-columns:repeat(2,44px);gap:12px;border-radius:12px}.signal-card .app-visual img{height:44px;width:44px;border-radius:10px}

/* Shared details, with a distinct composition for each content type. */
.signal-detail h1{font-size:clamp(2.6rem,4.8vw,4.5rem);line-height:1.08;margin:18px 0 22px;overflow-wrap:break-word}.signal-detail h2{font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:550;letter-spacing:-.035em;line-height:1.2}.signal-detail h3{font-size:21px;font-weight:500;line-height:1.4}.signal-detail .lead{max-width:650px;margin:0}.signal-detail .site-footer{margin-top:65px}.pending-label{display:inline-block;margin-top:20px;border:1px solid var(--border);border-radius:30px;padding:5px 13px;color:var(--muted);font-size:12px}
/* About: a modest portrait alongside a readable personal profile. */
.profile-layout{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);gap:8%;max-width:1100px;margin:65px auto 0;align-items:start}.profile-photo .image-placeholder{min-height:340px;aspect-ratio:4/5}.profile-photo>p{font-size:14px;color:var(--muted);margin-top:14px}.profile-text{color:var(--muted);font-size:16px;line-height:1.8;margin:24px 0 30px}.interest-list{border-top:1px solid var(--border)}.interest-row{display:flex;justify-content:space-between;gap:22px;padding:18px 0;border-bottom:1px solid #313b6280;align-items:center}.interest-row strong{display:block;font-size:16px;font-weight:550}.interest-row>span>span{display:block;color:var(--muted);font-size:14px;margin-top:4px;line-height:1.6}.interest-row>span:last-child{color:var(--gold);font-size:22px}
/* Sport: compact introduction, then profile and upcoming milestones. */
.sport-intro{padding:60px 0 38px}.sport-profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:50px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(140deg,var(--active),var(--surface));padding:36px}.sport-profile h2{margin:20px 0 12px}.sport-profile p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.8}.sport-upcoming{border-left:1px solid var(--border);padding-left:40px}.sport-upcoming h3{margin:0 0 12px}
/* Photography: the reserved gallery takes priority over a large hero. */
.gallery-intro,.apps-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;padding:45px 0 30px}.gallery-intro h1,.apps-intro h1{margin-bottom:0}.portfolio-slots{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}.portfolio-slots figure{margin:0}.portfolio-slots .image-placeholder{min-height:0;aspect-ratio:3/2;border-radius:16px}.portfolio-slots figure:nth-child(2){padding-top:48px}.portfolio-slots figure:nth-child(2) .image-placeholder{aspect-ratio:16/9}.portfolio-slots figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-top:14px;color:var(--muted);font-size:12px;letter-spacing:.05em}.portfolio-caption{color:var(--muted);font-size:14px;margin-top:30px}
/* Trading: a text-led introduction and one focused brand feature. */
.trading-intro{padding:55px 0 40px;max-width:900px}.trading-project{border-top:1px solid var(--border);padding-top:30px}.project-heading{display:flex;align-items:center;gap:35px;margin-bottom:25px}.project-heading h2{font-size:24px}.signal-detail .bto-panel{border-radius:24px;margin:0;border-color:var(--border);padding:35px 40px;gap:50px}.signal-detail .bto-panel img{max-width:420px}.signal-detail .bto-panel p{color:var(--muted);font-size:16px;margin-bottom:16px}.signal-detail .bto-panel p:first-child{color:var(--text);font-size:20px;line-height:1.5}
/* Apps: get straight to the existing publisher-owned cards. */
.signal-detail .app-grid{margin-top:0}.signal-detail .app-card{padding:30px}.apps-intro .lead{font-size:16px}
@media(max-width:850px){.profile-layout{gap:35px;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr)}.profile-photo .image-placeholder{min-height:240px}.gallery-intro,.apps-intro{gap:25px}.sport-profile{gap:25px;padding:28px}.sport-upcoming{padding-left:25px}.signal-detail .bto-panel{gap:30px;padding:30px}.project-heading{flex-wrap:wrap;gap:12px}}
@media(max-width:650px){.image-placeholder,.app-visual{min-height:300px;border-radius:20px}.image-placeholder.compact,.signal-card .app-visual{min-height:120px}.signal-detail h1{font-size:clamp(2.2rem,9.5vw,3rem)}.profile-layout{display:flex;flex-direction:column;margin-top:32px;gap:26px}.profile-photo{width:150px}.profile-photo .image-placeholder{min-height:180px;aspect-ratio:4/5;padding:16px;border-radius:16px}.profile-photo>p{display:none}.profile-copy{width:100%}.profile-copy h1{margin-top:14px}.sport-intro,.trading-intro{padding:35px 0 28px}.sport-profile{grid-template-columns:1fr;gap:25px;padding:25px;border-radius:20px}.sport-upcoming{border-left:0;border-top:1px solid var(--border);padding:25px 0 0}.gallery-intro,.apps-intro{grid-template-columns:1fr;gap:20px;padding:32px 0 28px}.portfolio-slots{grid-template-columns:1fr;gap:28px}.portfolio-slots figure:nth-child(2){padding-top:0}.portfolio-slots .image-placeholder{min-height:0}.signal-detail .bto-panel{grid-template-columns:1fr;padding:25px;gap:20px}.signal-detail .bto-panel img{width:100%;height:auto;max-width:320px}.signal-detail .app-card{padding:26px}.signal-detail .site-footer{margin-top:45px}}
