/* VideoFabriK: quiet surfaces, clear controls, a studio in your pocket. */
:root {
  --ink:#1d1d1f; --blue:#0066cc; --blue-dark:#0055ad; --muted:#626268;
  --paper:#f5f5f7; --line:#e5e5e9; --soft:#edf4fd; --coral:#79a8e4;
  --radius:28px; --spring:cubic-bezier(.22,1,.36,1);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
html { scroll-padding-top:120px; }
body { background:linear-gradient(#fff 0 940px,var(--paper) 1270px); }
h1,h2,h3,h4,.brand,.price,.phone-label strong,.example strong,.footer-brand,
.program-list summary,.req-item b,.summary-line.total,.payment-logo,.session-date,
.prompt-block pre,.brand b,.included-card .price span,.footer-brand span {
  font-family:inherit;
}
h1 { font-weight:650; letter-spacing:-3.8px; line-height:1.04; }
h2 { font-weight:650; letter-spacing:-1.8px; }
h3,h4 { font-weight:650; }
.preview-strip { background:#f5f5f7; color:#626268; font-size:10px; font-weight:400; min-height:30px; padding:8px max(24px,calc((100% - 1120px)/2)); letter-spacing:.1px; }
.preview-strip span { color:#626268; }
.site-header {
  position:sticky; top:12px; z-index:10; width:calc(100% - 64px); max-width:1120px;
  height:76px; margin:12px auto 0; padding:0 25px; border-radius:26px;
  background:rgba(255,255,255,.82); border:1px solid #ffffff;
  box-shadow:0 2px 5px #1d1d1f03,0 12px 40px #1d1d1f0a,inset 0 1px 0 #fff;
  backdrop-filter:blur(24px) saturate(1.5); -webkit-backdrop-filter:blur(24px) saturate(1.5);
}
.brand { font-size:23px; letter-spacing:-1.2px; font-weight:700; }
.brand b { font-size:7px; top:28px; letter-spacing:1.6px; }
.brand-mark i { border-radius:4px; }
.site-header nav { font-size:12px; font-weight:500; gap:30px; }
.site-header nav a { transition:color .2s; }
.button { border-radius:999px; font-weight:500; min-height:50px; padding:15px 24px; transition:background .2s,box-shadow .25s,transform .4s var(--spring); }
.button:hover { transform:translateY(-2px); box-shadow:0 5px 18px #0066cc18; }
.button:active { transform:scale(.96); box-shadow:none; }
.button.secondary { background:#ffffffd9; border-color:#dedee3; }
.button.secondary:hover { background:#fff; border-color:#a8bcd6; }
.button.ghost { color:var(--blue); box-shadow:none; }
.button.small { min-height:40px; padding:11px 18px; font-size:12px; }
.site-header>.button { background:#1d1d1f; border-color:#1d1d1f; color:white; }
.site-header>.button:hover { background:#343438; }
.hero { padding-top:66px; padding-bottom:72px; min-height:718px; gap:58px; grid-template-columns:1.12fr 1fr; }
.hero h1 { font-size:clamp(52px,5.1vw,72px); }
.hero h1 em { color:var(--blue); }
.eyebrow { font-size:10px; letter-spacing:1.7px; font-weight:600; color:var(--muted); margin-bottom:23px; }
.eyebrow:before { width:6px; height:6px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 4px #0066cc0a; }
.hero .intro { font-size:17px; line-height:1.6; max-width:425px; margin:24px 0 26px; }
.hero .actions { gap:12px 20px; }
.hero .button { font-size:13px; }
.hero-meta { font-size:10px; gap:20px; margin-top:26px; }
.hero-meta span:before { color:var(--muted); }
.hero-proof { min-height:570px; }
.proof-bg { inset:30px -15px 20px; background:radial-gradient(ellipse at 50% 55%,#dce9f7 0,#eef3f9 38%,#f8fafd00 70%); border-radius:50%; }
.phone {
  width:272px; border:7px solid #26262a; border-radius:45px; transform:rotate(0deg);
  box-shadow:0 0 0 1px #9d9da3,0 0 0 3px #dadade,0 30px 45px -12px #20202d38,0 65px 85px -45px #17254255;
}
.phone:before { content:''; position:absolute; width:76px; height:22px; background:#111113; border-radius:50px; top:10px; left:50%; transform:translateX(-50%); z-index:3; }
.phone:after { inset:55% 0 0; background:linear-gradient(transparent,#06090fcf); }
.phone img { display:block; }
.phone .play { width:62px; height:62px; color:white; background:#ffffff30; border:1px solid #ffffff90; backdrop-filter:blur(18px); box-shadow:0 2px 15px #0002; font-size:19px; transition:transform .4s var(--spring),background .2s; }
.phone .play:hover { transform:translate(-50%,-50%) scale(1.1); background:#ffffff50; }
.phone .play:active { transform:translate(-50%,-50%) scale(.94); }
.phone-label { left:21px; right:18px; bottom:30px; font-size:10px; color:#e4e4e9; }
.phone-label strong { font-size:20px; line-height:1.16; letter-spacing:-.6px; margin-bottom:8px; color:white; font-weight:600; }
.floating-note { background:#ffffffdb; border:1px solid #fff; border-radius:22px; backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); box-shadow:0 15px 45px #20203012,inset 0 0 0 1px #ffffff60; padding:17px 18px; max-width:200px; }
.floating-note.top { top:61px; right:-13px; transform:none; }
.floating-note.bottom { left:-24px; bottom:65px; transform:none; max-width:165px; }
.floating-note strong { font-size:13px; font-weight:600; letter-spacing:-.2px; margin:6px 0 3px; }
.tiny-label { font-size:9px; font-weight:600; letter-spacing:1.1px; }
.wave i { background:#528bd2; width:3px; }
.mini-timeline i { background:#a9c6ec; border-radius:5px; }
.mini-timeline i:nth-child(2) { background:#648fce; }
.mini-timeline i:nth-child(3) { background:#a0b3ce; }
.proof-caption { font-size:10px; bottom:1px; }
.format-ribbon { border:0; background:#f5f5f7; border-radius:20px; padding:23px 25px; font-size:11px; }
.format-ribbon strong { color:var(--muted); font-size:9px; font-weight:600; letter-spacing:1px; }
.section { padding-top:100px; padding-bottom:70px; }
.section-head { margin-bottom:36px; }
.section-head p { font-size:15px; line-height:1.6; max-width:340px; }
.workflow { background:transparent; border:0; gap:16px; overflow:visible; }
.workflow article { padding:32px; background:white; border:1px solid #ffffff; border-radius:28px; }
.workflow article:last-child { border:1px solid #fff; }
.step-no { width:36px; height:36px; border-radius:50%; font-weight:500; background:#f2f5fa; margin-bottom:29px; }
.workflow small { font-weight:500; }
.gallery { gap:20px; }
.example { border-radius:26px; aspect-ratio:3/4; transition:transform .5s var(--spring),box-shadow .4s; }
.example:hover { transform:translateY(-5px); box-shadow:0 18px 32px #1d1d1f1c; }
.example img { transition:transform .8s var(--spring); }
.example strong { font-size:24px; letter-spacing:-.8px; }
.example>div { left:22px; bottom:25px; }
.requirements { background:#1d1d1f; border-radius:32px; padding:48px; gap:60px; }
.requirements .eyebrow { color:#a5bedc; }
.requirements p { color:#c0c0c9; }
.req-item b { font-weight:500; color:#a5c7f1; }
.included-card { background:white; border:1px solid white; border-radius:30px; padding:35px; box-shadow:0 15px 45px #1d1d1f05; }
.included-card .price { font-size:68px; font-weight:650; }
.included-card .price span { font-size:14px; }
.program-list summary { font-weight:500; }
.program-list summary:after { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; background:#e9e9ed; color:var(--ink); font-size:19px; }
.faq-list details { padding:24px 0; }
.site-footer { padding-top:38px; padding-bottom:38px; }
.panel,.sidebar,.lesson-reader,.lesson-resources,.resource-card,.brief-form,.session-row,.download-row { border-color:#e8e8ec; border-radius:24px; }
.panel { padding:32px; }
.page-heading { padding-top:55px; }
.payment-option { border-radius:18px; padding:20px; transition:background .2s,border-color .2s,transform .3s var(--spring); }
.payment-option:active { transform:scale(.985); }
.payment-option:has(input:checked) { background:#f0f6ff; border-color:#71a3df; }
.notice { border:1px solid #dce8f7; background:#eff5fc; border-radius:18px; color:#40526c; padding:18px 20px; }
.access-panel { margin-top:65px; margin-bottom:100px; padding:45px; }
.access-panel .access-icon { border-radius:21px; }
.academy-shell { margin-top:35px; gap:30px; }
.sidebar { background:#ffffffbd; position:sticky; top:110px; padding:23px 14px; }
.sidebar button { border-radius:12px; transition:background .2s,transform .3s var(--spring); min-height:43px; }
.sidebar button.active { color:var(--blue); background:#eaf2fd; font-weight:600; }
.sidebar button:active { transform:scale(.98); }
.academy-title { font-size:40px; letter-spacing:-1.8px; }
.academy-intro { font-size:15px; }
.progress-track { background:#e3e4e8; height:5px; }
.progress-fill { transition:width .5s var(--spring); }
.welcome-stage { background:#1d1d1f; border-radius:28px; padding:35px; }
.welcome-stage h3 { font-size:36px; font-weight:600; letter-spacing:-1.3px; }
.welcome-stage p { color:#c0c0c9; }
.stage-visual img { transform:rotate(0); border:5px solid #424246; border-radius:26px; box-shadow:0 20px 35px #0004; }
.stage-label { border-radius:16px; background:#ffffffeb; backdrop-filter:blur(14px); padding:15px; }
.start-card { border-radius:22px; border-color:#e8e8ec; padding:24px; transition:transform .4s var(--spring),box-shadow .4s,border-color .2s; }
.start-card:hover { transform:translateY(-3px); box-shadow:0 12px 25px #1d1d1f08; border-color:#c6d4e6; }
.lesson-reader { padding:32px; }
.lesson-reader p,.lesson-reader ul,.lesson-reader ol { color:#54545d; line-height:1.8; }
.lesson-resources { padding:22px; }
.lesson-video-note { background:#f5f5f7; border-radius:20px; }
.resource-card { padding:28px; }
.resource-card .tag,.pill { border-radius:999px; padding:7px 12px; }
.prompt-block { background:#252529; border-radius:24px; padding:28px; }
.prompt-block pre { font-size:13px; }
.prompt-picker { padding:5px; background:#e9e9ee; border-radius:20px; gap:3px; }
.prompt-picker button { border:0; background:transparent; border-radius:15px; padding:12px 14px; color:#54545b; flex:1; }
.prompt-picker button.active { background:white; color:var(--ink); box-shadow:0 2px 6px #0000000d; }
.field input,.field textarea,.field select { min-height:48px; border-radius:13px; background:#fafafa; border-color:#dedee3; }
.file-icon { border-radius:12px; }
.empty-session { border-radius:24px; }
.mobile-course-menu { border-radius:16px; padding:15px 18px; }
dialog { border:1px solid #ffffffb0; border-radius:30px; padding:40px; box-shadow:0 35px 120px #0003; background:#fffffff5; }
dialog::backdrop { background:#17171f70; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
dialog[open] { animation:sheet-in .45s var(--spring) both; }
dialog[open]::backdrop { animation:veil-in .3s ease both; }
.close-button { right:14px; top:14px; height:34px; width:34px; background:#e9e9ed; color:#64646b; transition:transform .3s var(--spring); }
.close-button:hover { transform:scale(1.08); }
.video-dialog { padding:32px 14px 14px; border-radius:30px; background:#f8f8fa; }
.video-dialog h2 { font-size:13px; margin:0 40px 20px 10px; font-weight:500; }
.modal-video { border-radius:20px; }
#toast { border-radius:999px; background:#252529e8; backdrop-filter:blur(18px); padding:15px 24px; transition:opacity .25s,transform .5s var(--spring); }
@keyframes sheet-in { from { opacity:0; transform:translateY(26px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes veil-in { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion:no-preference) {
  .hero-copy { animation:rise .8s var(--spring) both; }
  .hero-proof { animation:rise 1s .1s var(--spring) both; }
  .floating-note.top { animation:rise .8s .35s var(--spring) both; }
  .floating-note.bottom { animation:rise .8s .48s var(--spring) both; }
}
@media(min-width:801px) and (max-width:1100px) {
  .hero { gap:25px; }.hero h1 { font-size:60px; }.phone { width:245px; }
  .floating-note { max-width:175px; padding:14px; }.floating-note.top { right:-10px; }.floating-note.bottom { left:-8px; }
}
@media(max-width:800px) {
  .site-header { width:calc(100% - 32px); height:70px; top:8px; padding:0 20px; border-radius:23px; }
  .hero { padding-top:48px; padding-bottom:45px; grid-template-columns:1fr; gap:28px; min-height:0; }
  .hero h1 { font-size:clamp(50px,9vw,68px); letter-spacing:-3px; }
  .hero-proof { min-height:565px; max-width:470px; }.phone { width:266px; }
  .floating-note.top { top:55px; right:0; }.floating-note.bottom { bottom:65px; left:0; }
  .format-ribbon { gap:16px; padding:22px 20px; }.section { padding-top:70px; padding-bottom:45px; }
  .requirements { padding:35px; gap:30px; }.section-head p { max-width:500px; }
  .academy-shell { margin-top:25px; }.sidebar { position:static; }
  .academy-title { font-size:35px; }.welcome-stage { padding:28px; }
  .workflow article { padding:25px; }.example strong { font-size:23px; }
}
@media(max-width:480px) {
  .preview-strip { padding:8px 24px; font-size:9px; }
  .site-header { height:64px; padding:0 16px; gap:8px; }
  .brand { font-size:20px; }.brand-mark { margin-right:8px; width:27px; gap:2px; }.brand-mark i { width:7px; }.brand b { font-size:6px; top:25px; left:35px; letter-spacing:1.3px; }
  .site-header>.button { font-size:11px; padding:10px 14px; min-height:36px; }
  .hero { padding-top:38px; }.hero h1 { font-size:clamp(43px,12.4vw,58px); letter-spacing:-2.5px; }
  .hero .intro { font-size:16px; }.hero .eyebrow { font-size:9px; letter-spacing:1.5px; }
  .hero .button { font-size:12px; padding:14px 19px; }.hero .actions { gap:8px 15px; }
  .hero-meta { gap:12px; font-size:9px; margin-top:22px; }
  .hero-proof { min-height:510px; }.phone { width:238px; border-radius:39px; }
  .floating-note { max-width:160px; padding:13px; border-radius:18px; font-size:9px; }
  .floating-note strong { font-size:11px; }.floating-note .tiny-label { font-size:8px; }
  .floating-note.top { top:45px; right:-1px; }.floating-note.bottom { bottom:53px; left:-2px; }
  .phone-label { display:none; }
  .phone-label strong { font-size:18px; }.phone-label { font-size:9px; bottom:24px; }
  .proof-caption { bottom:2px; font-size:9px; }.format-ribbon { border-radius:20px; font-size:10px; }
  h2 { font-size:32px; letter-spacing:-1.3px; }.section-head p { font-size:14px; }
  .workflow { gap:12px; }.workflow article { border:1px solid #fff; border-radius:24px; }
  .gallery { gap:12px; }.example { border-radius:22px; }.example strong { font-size:19px; letter-spacing:-.5px; }.example>div { left:15px; bottom:18px; }.example .tiny-label { font-size:8px; }
  .requirements { padding:27px; border-radius:28px; }.requirements h2 { font-size:30px; }
  .included-card { padding:30px; }.panel { padding:25px; }.access-panel { margin-top:40px; padding:30px 25px; }
  .page-heading h1 { font-size:37px; }.academy-title { font-size:33px; letter-spacing:-1.3px; }
  .lesson-reader { padding:24px; }.start-card { padding:23px; }.welcome-stage h3 { font-size:34px; }
  .session-row,.download-row { padding:22px; }.lesson-actions .button { min-width:140px; }
  .prompt-block { padding:22px; }.prompt-picker { border-radius:20px; }.prompt-picker button { flex:auto; font-size:10px; padding:11px; }
  dialog { padding:30px 24px; border-radius:27px; }.video-dialog { padding:31px 12px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
