:root{
  --navy:#2a3a45;
  --navy-deep:#1e2b34;
  --navy-lift:#33454f;
  --orange:#e9873d;
  --orange-hot:#f2984f;
  --paper:#f4f1ec;
  --line:rgba(244,241,236,.14);
  --ink:#f4f1ec;
  --ink-dim:rgba(244,241,236,.62);
  --radius:14px;
  --shell:1360px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1100px 700px at 82% -10%, rgba(233,135,61,.16), transparent 60%),
    radial-gradient(900px 600px at 5% 105%, rgba(233,135,61,.07), transparent 60%),
    var(--navy);
  color:var(--ink);
  font-family:'Archivo', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
}

/* film grain */
.grain{
  position:fixed; inset:-50%; pointer-events:none; z-index:99;
  opacity:.045; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- top bar ---------- */
.topbar{
  max-width:var(--shell); margin:0 auto; padding:26px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand-partners{display:flex; align-items:center; gap:18px; min-width:0}
.brand-lockup{height:40px; width:auto; display:block}
.brand-divider{width:1px; height:26px; flex:none; background:var(--line)}
.college-lockup{width:130px; height:auto; display:block}
.ghost-link{
  color:var(--ink-dim); text-decoration:none; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  border-bottom:1px solid transparent; padding-bottom:2px; transition:.25s;
}
.ghost-link:hover{color:var(--orange); border-color:var(--orange)}

/* ---------- intro ---------- */
.wrap{max-width:var(--shell); margin:0 auto; padding:0 32px 80px}

.intro{padding:48px 0 40px; max-width:820px}
.intro h1{
  margin:0; font-size:clamp(40px, 5.6vw, 76px); line-height:1;
  font-weight:800; letter-spacing:-.035em; text-transform:uppercase;
  animation:rise .8s .06s cubic-bezier(.2,.7,.2,1) both;
}
.intro h1 em{font-style:normal; color:var(--orange)}
.lede{
  margin:14px 0 0; font-size:17px; line-height:1.5; color:var(--ink-dim);
  animation:rise .8s .12s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rise{from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none}}

/* ---------- studio ---------- */
.studio{
  display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:40px; align-items:start;
  animation:rise .9s .18s cubic-bezier(.2,.7,.2,1) both;
}

.stage-inner{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:var(--navy-deep); box-shadow:0 0 0 1px var(--line);
}
.stage-inner{display:flex; justify-content:center; transition:box-shadow .2s}
.stage-inner.is-over{box-shadow:0 0 0 2px var(--orange)}
#preview{
  display:block; max-width:100%; max-height:78vh; width:auto; height:auto;
  cursor:default; touch-action:none;
}
.stage-inner:not(.has-photo) #preview{touch-action:pan-y}
#preview.over-frame{cursor:pointer}
.stage-inner.has-photo #preview.over-frame{cursor:grab}
#preview.dragging{cursor:grabbing}
.photo-hit{
  position:absolute; z-index:2; display:block; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.photo-hit[hidden]{display:none}
.photo-hit:focus-visible{outline:3px solid var(--orange); outline-offset:4px}
.stage-hint{
  position:absolute; right:14px; top:14px; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; font-weight:600; color:var(--ink);
  background:rgba(30,43,52,.72); border:1px solid var(--line);
  padding:7px 12px; border-radius:100px; backdrop-filter:blur(6px);
  opacity:0; transform:translateY(6px); transition:.3s; pointer-events:none;
}
.stage-inner.has-photo:hover .stage-hint{opacity:1; transform:none}

/* ---------- panel ---------- */
.panel{
  background:linear-gradient(180deg, rgba(51,69,79,.55), rgba(30,43,52,.55));
  border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 24px 24px; position:sticky; top:24px;
}
.field{margin-bottom:26px}
.field:last-of-type{margin-bottom:22px}
.field-label{
  display:block; font-size:10px; font-weight:800; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-dim); margin-bottom:12px;
}
.opt{color:rgba(244,241,236,.35); font-weight:600; letter-spacing:.14em}

.segmented{display:flex; gap:6px; background:rgba(0,0,0,.22); padding:5px; border-radius:10px}
.seg{
  flex:1; appearance:none; border:0; cursor:pointer; padding:10px 8px; border-radius:7px;
  background:transparent; color:var(--ink-dim); font-family:inherit; font-size:11px;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase; transition:.2s;
}
.seg:hover{color:var(--ink)}
.seg.is-active{background:var(--orange); color:#22303a}

.empty-note p{
  margin:0; padding:16px 18px; border-radius:12px;
  border:1px dashed rgba(244,241,236,.22); background:rgba(0,0,0,.14);
  font-size:13px; line-height:1.5; color:var(--ink-dim);
}
.btn-row{display:flex; gap:8px}

.slider-row{display:flex; align-items:center; gap:12px; margin-bottom:12px}
.slider-name{
  width:52px; font-size:10px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-dim);
}
input[type=range]{
  -webkit-appearance:none; appearance:none; flex:1; height:3px; border-radius:3px;
  background:rgba(244,241,236,.2); outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:16px; height:16px; border-radius:50%;
  background:var(--orange); cursor:pointer; border:3px solid var(--navy-deep);
  box-shadow:0 0 0 1px var(--orange);
}
input[type=range]::-moz-range-thumb{
  width:14px; height:14px; border-radius:50%; background:var(--orange);
  cursor:pointer; border:3px solid var(--navy-deep);
}

.mini-btn{
  margin-top:4px; appearance:none; border:1px solid var(--line); background:transparent;
  color:var(--ink-dim); font-family:inherit; font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; padding:9px 14px; border-radius:8px;
  cursor:pointer; transition:.2s; width:100%;
}
.photo-change{display:flex; align-items:center; justify-content:center; text-align:center}
.mini-btn:hover{border-color:var(--orange); color:var(--orange)}

.visually-hidden{
  position:fixed; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.text-input{
  width:100%; padding:12px 14px; margin-bottom:9px; border-radius:9px;
  border:1px solid var(--line); background:rgba(0,0,0,.2); color:var(--ink);
  font-family:inherit; font-size:14px; transition:.2s;
}
.text-input::placeholder{color:rgba(244,241,236,.32)}
.text-input:focus{outline:none; border-color:var(--orange); background:rgba(0,0,0,.32)}

.download{
  width:100%; display:flex; align-items:center; justify-content:center; gap:10px;
  appearance:none; border:0; cursor:pointer; border-radius:100px; padding:16px 20px;
  background:var(--orange); color:#22303a; font-family:inherit; font-size:13px;
  font-weight:800; letter-spacing:.14em; text-transform:uppercase; transition:.22s;
}
.download:hover{background:var(--orange-hot)}
.download svg{width:18px; height:18px}

/* ---------- share ---------- */
.share{margin-top:16px}
.share-label{
  display:block; text-align:center; font-size:10px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:rgba(244,241,236,.38);
  margin-bottom:10px;
}
.share-row{display:flex; gap:8px}
.share-btn{
  flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
  appearance:none; cursor:pointer; border:1px solid var(--line); border-radius:100px;
  background:transparent; color:var(--ink-dim); font-family:inherit; font-size:11px;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:12px 10px; transition:.2s;
}
.share-btn:hover{border-color:var(--orange); color:var(--orange)}
.share-btn svg{width:15px; height:15px; flex:none}
.share-note{
  margin:12px 0 0; font-size:11px; line-height:1.55; color:rgba(244,241,236,.42);
  transition:color .2s;
}
.share-note.is-live{color:var(--orange)}

.fineprint{margin:14px 0 0; font-size:11px; line-height:1.6; color:rgba(244,241,236,.42)}

/* ---------- footer ---------- */
.foot{
  max-width:var(--shell); margin:0 auto; padding:26px 32px 44px;
  border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; color:rgba(244,241,236,.4); flex-wrap:wrap;
}

@media (max-width:980px){
  .studio{grid-template-columns:1fr}
  .panel{position:static}
}
@media (max-width:560px){
  .wrap,.topbar,.foot{padding-left:20px; padding-right:20px}
  .intro{padding-top:32px}
  .topbar{align-items:center}
  .brand-partners{gap:11px}
  .brand-lockup{height:30px}
  .brand-divider{height:20px}
  .college-lockup{width:96px}
  .ghost-link{display:none}
}
