:root{--vision-ink:#432c40;--vision-plum:#8d345e;--vision-coral:#df6d67;--vision-paper:#fffaf8;--vision-line:#eedcde;--vision-muted:#705d6c}
*{box-sizing:border-box}
body{margin:0;background:var(--vision-paper);color:var(--vision-ink);font:16px/1.55 Inter,Arial,sans-serif}
button,input,textarea,select{font:inherit}
[hidden]{display:none!important}
.vision-screen{max-width:1120px;margin:0 auto;padding:30px 20px 74px}
.vision-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:32px;align-items:center;background:#fff;border:1px solid var(--vision-line);border-radius:28px;padding:clamp(25px,5vw,55px);overflow:hidden;box-shadow:0 20px 55px #8d345e0d}
.vision-eyebrow{margin:0;color:var(--vision-plum);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.vision-intro h1{margin:15px 0 20px;font:800 clamp(38px,5.6vw,66px)/1.05 Montserrat,Inter,sans-serif;letter-spacing:-.055em}
.vision-intro h1 span{color:var(--vision-plum)}
.vision-lead{font-size:19px;line-height:1.55;max-width:650px;margin:0 0 18px}
.vision-note{font-size:14px;color:var(--vision-muted);max-width:660px;margin:0}
#premium-gate{max-width:720px;margin:24px auto 0;padding:clamp(22px,4vw,34px);border:1px solid var(--vision-line);border-radius:24px;background:#fff;box-shadow:0 12px 25px #8d345e08}
#premium-gate .notice{color:var(--vision-muted);font-size:14px;line-height:1.6}
#premium-gate .premium-plans{display:grid;gap:10px;margin:18px 0}
#premium-gate .button,#premium-gate .ghost{display:block;width:100%;padding:13px 18px;border-radius:13px;font-weight:750;text-align:center;cursor:pointer}
#premium-gate .button{border:1px solid var(--vision-plum);background:var(--vision-plum);color:#fff;text-decoration:none}
#premium-gate .ghost{margin-top:16px;border:1px solid var(--vision-line);background:#fff;color:var(--vision-ink)}
#premium-gate button:disabled{opacity:.6;cursor:default}
#premium-gate>a{color:var(--vision-plum)}
.vision-intro__art{height:300px;position:relative;border-radius:32px 80px 28px 78px;background:#f9e7df;overflow:hidden}
.art-sun{position:absolute;width:220px;height:220px;border-radius:50%;background:#e8b4a4;right:-30px;top:-70px}
.art-sheet{position:absolute;display:block;width:60%;height:67%;background:#fff9f4;box-shadow:0 13px 30px #673f4a23;border:1px solid #e9d2cf;left:12%;top:17%;transform:rotate(-9deg);border-radius:8px}
.art-sheet--two{left:27%;top:25%;transform:rotate(8deg);background:#f7d4cd}
.art-sheet--two:after{content:"";display:block;position:absolute;inset:12%;border:2px solid #fff9f4;border-radius:45% 45% 10% 10%}
.art-tape{position:absolute;left:43%;top:8%;width:68px;height:22px;background:#f1bcb6a8;transform:rotate(8deg)}
.art-flower{position:absolute;left:29%;top:49%;font:800 50px Montserrat,Inter,sans-serif;letter-spacing:-.08em;color:var(--vision-plum);transform:rotate(8deg)}
.vision-stage{background:#fff;border:1px solid var(--vision-line);border-radius:24px;padding:clamp(22px,4vw,36px);margin-top:20px;box-shadow:0 12px 25px #8d345e08}
.vision-stage__head{display:flex;gap:16px;align-items:start;margin-bottom:24px}
.vision-stage__head>span{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fbe6e4;color:var(--vision-plum);font-weight:800;font-size:13px}
.vision-stage h2,.vision-preview-heading h2,.vision-finish h2{margin:0 0 5px;font:800 clamp(25px,3vw,32px)/1.2 Montserrat,Inter,sans-serif;letter-spacing:-.035em}
.vision-stage__head p{margin:0;color:var(--vision-muted);max-width:760px}
.vision-stage label{display:block;margin:16px 0 7px;font-size:14px;font-weight:750}
.vision-stage label small{font-weight:400;color:var(--vision-muted)}
.vision-stage input:not([type=file]):not([type=hidden]),.vision-stage textarea,.vision-stage select{display:block;width:100%;border:1px solid #dccbd1;border-radius:13px;background:#fff;color:var(--vision-ink);padding:11px 13px;outline:none}
.vision-stage input:focus,.vision-stage textarea:focus,.vision-stage select:focus{border-color:var(--vision-plum);box-shadow:0 0 0 3px #8d345e24}
.vision-stage textarea{min-height:90px;resize:vertical}
.scene-forms{display:grid;gap:15px}
.scene-form{min-width:0;margin:0;padding:20px;border:1px solid var(--vision-line);border-radius:18px;background:#fffaf8}
.scene-form legend{padding:0 6px;font-weight:700;color:var(--vision-ink)}
.scene-form legend span{display:inline-block;margin-right:10px;color:var(--vision-plum);font:800 12px Montserrat,Inter,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.scene-form label:first-of-type{margin-top:3px}
.scene-upload{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px}
.scene-upload label{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:9px 15px;border:1px solid var(--vision-plum);border-radius:12px;color:var(--vision-plum);background:#fff;cursor:pointer}
.scene-upload label:focus-within{outline:3px solid #8d345e66;outline-offset:2px}
.scene-upload input[type=file]{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.scene-upload button{border:0;background:transparent;color:var(--vision-plum);padding:8px;cursor:pointer;text-decoration:underline}
.vision-preview-section{margin-top:26px}
.vision-preview-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}
.vision-preview-heading h2{margin-top:8px}
.vision-preview-heading>span{color:var(--vision-muted);font-size:13px}
.vision-board{background:#fff;border:1px solid var(--vision-line);border-radius:26px;padding:26px;box-shadow:0 22px 44px #8d345e17;overflow:hidden}
.vision-board__top{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--vision-line);padding-bottom:14px;margin-bottom:18px;font-size:12px;color:var(--vision-plum);text-transform:uppercase;letter-spacing:.08em}
.vision-board__top strong{font:800 17px Montserrat,Inter,sans-serif;letter-spacing:-.03em;text-transform:none;color:var(--vision-ink)}
.vision-board__grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:195px 195px;gap:14px}
.vision-tile{min-width:0;min-height:0;position:relative;overflow:hidden;border-radius:20px;background:#f4dcd4}
.vision-tile--1{grid-row:span 2;background:#e8c3c2}
.vision-tile--2{background:#e9dde3}
.vision-tile--3{background:#dfd5c4}
.vision-tile__image{position:absolute;inset:0}
.vision-tile__image:before{content:"";position:absolute;width:170px;height:170px;border:16px solid #ffffff57;border-radius:50%;right:-22px;top:-45px;transform:rotate(25deg)}
.vision-tile__image:after{content:"";position:absolute;width:180px;height:220px;border:1px solid #ffffff9c;border-radius:75% 5% 75% 5%;left:8%;top:12%;transform:rotate(25deg)}
.vision-tile__image img{width:100%;height:100%;object-fit:cover;display:block}
.vision-tile__copy{position:absolute;left:0;right:0;bottom:0;padding:18px;background:#fffaf8ed;color:var(--vision-ink)}
.vision-tile__copy small{color:var(--vision-plum);font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:11px}
.vision-tile__copy h3{font:800 clamp(17px,2vw,23px)/1.25 Montserrat,Inter,sans-serif;letter-spacing:-.035em;margin:6px 0 0;overflow-wrap:anywhere}
.vision-board__feeling{margin:18px 0 0;text-align:center;font:700 clamp(17px,2vw,23px)/1.35 Montserrat,Inter,sans-serif;color:var(--vision-plum)}
.vision-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.vision-finish{margin-top:22px;padding:32px;background:#f8e6e2;border:1px solid #edcfca;border-radius:24px}
.vision-finish p{max-width:720px;margin:10px 0 0}
.vision-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:19px}
.vision-actions button{border-radius:13px;padding:12px 18px;font-weight:750;cursor:pointer}
.vision-primary{background:var(--vision-plum);color:#fff;border:1px solid var(--vision-plum)}
.vision-primary:hover{background:#6d2548}
.vision-primary:disabled{opacity:.55;cursor:wait}
.vision-secondary{background:#fff;color:var(--vision-ink);border:1px solid #d9c3c4}
.vision-actions span{font-size:13px;color:var(--vision-muted)}
.workbook-status{font-size:14px;color:var(--vision-plum);font-weight:650}
.print-book{display:none}
@media(max-width:760px){.vision-intro{grid-template-columns:1fr}.vision-intro__art{height:210px}.vision-screen{padding:20px 14px 55px}.vision-fields{grid-template-columns:1fr}}
@media(max-width:560px){.vision-intro,.vision-stage,.vision-finish{border-radius:18px;padding:21px}.vision-intro h1{font-size:39px}.vision-lead{font-size:17px}.vision-board{padding:14px;border-radius:17px}.vision-board__top{display:block}.vision-board__top strong{display:block;margin-top:4px}.vision-board__grid{grid-template-columns:1fr;grid-template-rows:210px 175px 175px}.vision-tile--1{grid-row:auto}.vision-tile__copy{padding:12px}.vision-tile__copy h3{font-size:17px}.vision-preview-heading>span{display:none}.scene-form{padding:16px}.art-flower{font-size:38px}}

@page{size:A4 portrait;margin:0}
@media print{
  html,body{margin:0;padding:0;background:#fff}
  .fm-header,.fm-header-spacer,.fm-footer,.screen{display:none!important}
  body.print-ready .print-book{display:block}
  .print-page{width:210mm;height:297mm;position:relative;padding:16mm 17mm 17mm;overflow:hidden;break-after:page;page-break-after:always;background:#fffdfb;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .print-page:last-child{break-after:auto;page-break-after:auto}
  .vision-print__brand{color:var(--vision-plum);font:800 9pt Montserrat,Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}
  .vision-print h2{margin:13mm 0 2mm;font:800 28pt/1.05 Montserrat,Inter,sans-serif;letter-spacing:-.045em;color:var(--vision-ink)}
  .vision-print h2 span{color:var(--vision-plum)}
  .vision-print__lead{font:11pt/1.4 Inter,Arial,sans-serif;color:var(--vision-muted);margin:0}
  .vision-print__grid{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:79mm 79mm;gap:4mm;margin-top:12mm}
  .vision-print__tile{position:relative;overflow:hidden;border-radius:5mm;background:#e8c3c2}
  .vision-print__tile--1{grid-row:span 2}
  .vision-print__tile--2{background:#e9dde3}
  .vision-print__tile--3{background:#dfd5c4}
  .vision-print__image{position:absolute;inset:0}
  .vision-print__image:before{content:"";position:absolute;width:30mm;height:30mm;right:-5mm;top:-5mm;border:3mm solid #ffffff66;border-radius:50%}
  .vision-print__image img{display:block;width:100%;height:100%;object-fit:cover}
  .vision-print__tile-copy{position:absolute;left:0;right:0;bottom:0;background:#fffaf8ed;padding:4mm}
  .vision-print__tile-copy small{color:var(--vision-plum);font:800 8pt Montserrat,Inter,sans-serif;text-transform:uppercase;letter-spacing:.08em}
  .vision-print__tile-copy h3{margin:1mm 0 0;font:800 12pt/1.2 Montserrat,Inter,sans-serif;overflow-wrap:anywhere}
  .vision-print__feeling{margin:9mm 0 0;text-align:center;color:var(--vision-plum);font:800 15pt/1.3 Montserrat,Inter,sans-serif;overflow-wrap:anywhere}
  .vision-print__footer{position:absolute;bottom:11mm;left:17mm;right:17mm;border-top:1px solid var(--vision-line);padding-top:3mm;display:flex;justify-content:space-between;color:var(--vision-muted);font:8pt Inter,Arial,sans-serif}
  .vision-print__chapter{display:inline-block;margin-top:16mm;padding:2mm 4mm;background:#f8e6e2;border-radius:12mm;color:var(--vision-plum);font:800 9pt Montserrat,Inter,sans-serif}
  .print-page--before h2{margin-top:7mm}
  .print-page--before .vision-print__lead{max-width:145mm}
  .vision-print__before-accent,.vision-print__before-grid>div,.vision-print__before-permit,.vision-print__meaning-grid>div,.vision-print__early,.vision-print__future{border:1px solid var(--vision-line);border-radius:4mm;background:#fff;padding:5mm;overflow:hidden}
  .vision-print__before-accent{height:41mm;margin-top:14mm;background:#f8e6e2;border-color:#f1d6d0}
  .vision-print__before-accent p{font:800 16pt/1.25 Montserrat,Inter,sans-serif;color:var(--vision-plum)}
  .vision-print__before-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm;margin-top:5mm}
  .vision-print__before-grid>div{height:63mm}
  .vision-print__before-permit{height:45mm;margin-top:5mm}
  .vision-print__aside{margin:10mm 0 0;color:var(--vision-muted);font:10pt/1.45 Inter,Arial,sans-serif;max-width:155mm}
  .vision-print__before-accent p,.vision-print__before-grid p,.vision-print__before-permit p,.vision-print__meaning-grid p,.vision-print__early p,.vision-print__future p{margin:4mm 0 0;overflow-wrap:anywhere;white-space:pre-wrap}
  .vision-print__before-grid p,.vision-print__before-permit p,.vision-print__meaning-grid p,.vision-print__early p,.vision-print__future p{font:10pt/1.35 Inter,Arial,sans-serif}
  .print-page--map .vision-print__grid{margin-top:12mm}
  .print-page--meaning h2{margin-top:10mm}
  .vision-print__reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm;margin-top:11mm}
  .vision-print__reasons>div,.vision-print__focus-grid>div{border:1px solid var(--vision-line);border-radius:4mm;background:#fff;padding:4mm;overflow:hidden}
  .vision-print__reasons>div{height:67mm}
  .vision-print small{display:block;color:var(--vision-plum);font:800 8pt/1.2 Montserrat,Inter,sans-serif}
  .vision-print p{overflow-wrap:anywhere;white-space:pre-wrap}
  .vision-print__reasons p,.vision-print__focus-grid p{margin:3mm 0 0;font:9pt/1.3 Inter,Arial,sans-serif}
  .vision-print__meaning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm;margin-top:6mm}
  .vision-print__meaning-grid>div{height:57mm}
  .vision-print__early{height:42mm;margin-top:6mm;background:#f8e6e2}
  .vision-print__focus{margin-top:11mm}
  .vision-print__focus h3{margin:3mm 0 5mm;font:800 16pt/1.2 Montserrat,Inter,sans-serif;overflow-wrap:anywhere}
  .vision-print__focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm}
  .print-page--action .vision-print__focus-grid>div{height:52mm}
  .vision-print__future{height:53mm;margin-top:9mm;background:#f8e6e2}
  .print-page--action .vision-print__aside{margin-top:8mm}
}
