/* Flat editorial direction. Illustration contrast is about attention, not returns.
   Motion: short headline entrance, a gentle scene reveal, and directional CTA hover. */
body.v2-site { --paper:#fbfaf7; --red:#bd4b3e; --deep:#1d2c39; background:var(--paper); }
body.product-page { --paper:#fbfaf7; --red:#bd4b3e; --deep:#1d2c39; background:var(--paper); }
.product-page .site-header { background:var(--paper); }
.product-page .header-action,.product-page .tour-end .button { border-radius:5px; box-shadow:none; }
.product-page .intro-screen,.product-page .screen-open { border-radius:4px; box-shadow:none; }
.product-page .screen-open:hover { box-shadow:none; }
.product-page .tour-section:nth-of-type(even) { background:var(--paper); }
.product-page .tour-end { background:#a83c34; }
.v2-site [hidden] { display:none!important; }
.v2-site a:focus-visible,.v2-site button:focus-visible,.v2-site summary:focus-visible { outline:3px solid #3173ad; outline-offset:5px; }
.v2-site .site-header { background:var(--paper); border-bottom:0; }
.v2-site .header-action,.v2-site .btn,.v2-site .preview-route { border-radius:5px; box-shadow:none; }
.v2-site .section-pad { padding-block:100px; }
.v2-site .section-head h2,.v2-site .manifesto h2 { line-height:1.28; }
.v2-site .flat-hero { display:block; width:100%; min-height:0; padding:28px 0 30px; background:var(--paper); border-bottom:1px solid var(--line); }
.flat-hero-inner { display:flex; flex-direction:column; align-items:center; }
.flat-hero .hero-copy { text-align:center; width:100%; }
.flat-hero .overline { display:block; color:#7a7771; font-size:12px; letter-spacing:.04em; }
.v2-site .flat-hero h1.hero-headline { font-size:clamp(48px,4.5vw,64px); line-height:1.19; letter-spacing:-.075em; margin:16px 0; text-wrap:initial; }
.flat-hero .hero-desc { font-size:18px; font-weight:500; line-height:1.8; color:#52606a; word-break:keep-all; }
.flat-hero .hero-actions { order:3; margin-top:16px; }
.flat-hero .hero-actions .btn { min-width:244px; padding:16px 22px; }
.flat-hero .hero-actions .btn span { transition:translate .2s; }
.flat-hero .hero-actions .btn:hover { transform:none; }
.flat-hero .hero-actions .btn:hover span { translate:3px -2px; }
.hero-comparison { order:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:70px; width:100%; max-width:1000px; margin-top:20px; }
.trader-scene { min-width:0; display:flex; flex-direction:column; align-items:center; }
.trader-scene img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.scene-labels { display:flex; gap:9px; justify-content:center; flex-wrap:wrap; margin-bottom:-10px; position:relative; z-index:1; }
.scene-labels span { padding:6px 12px; font-size:12px; line-height:1.5; font-weight:700; color:#8c5147; background:#f0e6e1; border-radius:3px; }
.focused .scene-labels span { color:#435761; background:#e8edeb; }
.trader-scene figcaption { text-align:center; font-size:15px; font-weight:700; letter-spacing:-.03em; line-height:1.6; margin-top:-12px; }
.distracted figcaption { color:#7b6d65; }
.hero-compass { order:2; font-size:16px; font-weight:500; color:#4e5a63; margin-top:18px; text-align:center; word-break:keep-all; }
.hero-compass strong { color:var(--ink); font-weight:700; }
.flat-hero .hero-meta { order:4; font-size:11px; margin-top:12px; color:#77828a; }
.v2-site .manifesto { background:#eff2ef; }
.v2-site .manifesto-grid { gap:80px; align-items:center; }
.v2-site .manifesto-aside>p { font-size:18px; font-weight:500; line-height:1.95; word-break:keep-all; }
.v2-site .manifesto-aside>p+p { margin-top:18px; }
.v2-site .manifesto-rule { margin-top:30px; }
.v2-site .product-preview { background:#fff; }
.v2-site .preview-shot { border-radius:5px; background:#f4f6f5; box-shadow:none; }
.v2-site .preview-shot:hover { transform:none; box-shadow:none; border-color:#b1c0c0; }
.v2-site .preview-shot img { border-radius:0; }
.v2-site .preview-side { justify-content:center; }
.v2-site .preview-thought { padding:15px 0 15px 28px; border-left:2px solid #d3d8d5; background:transparent; border-radius:0; }
.v2-site .preview-thought strong { font-size:clamp(28px,2.8vw,40px); margin-top:14px; }
.v2-site .preview-thought p { line-height:1.8; }
.v2-site .method-section { background:var(--paper); }
.v2-site .method-gallery { border-top:0; border-bottom:0; }
.v2-site .method-item { padding:16px 30px 8px; }
.v2-site .method-item:first-child { padding-left:0; }
.v2-site .method-item:last-child { padding-right:0; }
.v2-site .method-item h3 { margin:10px 0 18px; font-size:32px; }
.method-diagram { display:block; width:100%; height:auto; aspect-ratio:360/220; overflow:visible; }
.method-diagram path { fill:none; }
.method-diagram text { font:500 11px "Noto Sans KR",sans-serif; fill:#7a848c; }
.chart-baseline { stroke:#d7dcd9; stroke-width:1; }
.resistance { stroke:#344653; stroke-width:1.5; }
.trend-line,.session-end { stroke:#a7b4b6; stroke-width:1; stroke-dasharray:4 5; }
.candle-up { stroke:#ca594a; stroke-width:1.5; }
.candle-down { stroke:#5685a5; stroke-width:1.5; }
.method-diagram .candle-body { stroke-width:10; }
.v2-site .method-item p { font-size:15px; line-height:1.9; margin-top:16px; word-break:keep-all; }
.v2-site .risk-line { margin-top:30px; line-height:1.8; }
.v2-site .swing-image img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:3px; }
.v2-site .swing-image figcaption { line-height:1.8; word-break:keep-all; }
/* Approved swing option 1: live text and flat marks, not a raster screenshot.
   Coral connects the same theme across days; sage/gray tracks are illustrative only. */
.v2-site .swing-continuity { padding-block:96px; }
.swing-continuity .swing-grid { grid-template-columns:.95fr 1.05fr; align-items:center; gap:70px; }
.swing-continuity .swing-copy .swing-follow { border:0; padding:0; margin-top:12px; font-weight:500; font-size:18px; color:#ced7dc; }
.swing-flow-visual { min-width:0; }
.flow-heading { margin:0 0 28px; color:#f0a095; font-size:18px; line-height:1.6; font-weight:600; letter-spacing:-.035em; }
.theme-continuity { --flow-label:82px; --flow-coral:#ed9488; --flow-gray:#a8b5bd; --flow-sage:#b4c49c; padding:12px 0; }
.flow-days { display:grid; grid-template-columns:var(--flow-label) repeat(5,minmax(0,1fr)); margin-bottom:18px; color:#bbc8cf; font:700 16px/1.5 "DM Sans",sans-serif; text-align:center; }
.flow-days>span { position:relative; }
.flow-days>span:not(:first-child):after { content:""; position:absolute; top:36px; left:50%; height:245px; border-left:1px dashed #bdc9ce33; }
.flow-row { display:grid; grid-template-columns:var(--flow-label) minmax(0,1fr); align-items:center; min-height:78px; }
.flow-row+.flow-row { margin-top:18px; }
.flow-theme { font-size:20px; letter-spacing:-.035em; color:#d1dae0; font-weight:700; }
.flow-track { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:relative; min-width:0; }
.flow-track:before { content:""; position:absolute; left:10%; right:10%; top:50%; border-top:1px dashed #b5c2c97d; }
.flow-step { display:flex; justify-content:center; align-items:center; position:relative; height:34px; }
.flow-dot { display:block; width:28px; height:28px; border-radius:50%; background:var(--flow-gray); border:1px solid var(--flow-gray); position:relative; z-index:1; }
.flow-dot-sage { background:var(--flow-sage); border-color:var(--flow-sage); }
.flow-dot-empty { background:var(--deep); border:1px dashed #b5c2c9; }
.flow-row-leading .flow-theme { color:var(--flow-coral); }
.flow-row-leading .flow-track:before { border-top:2px solid var(--flow-coral); }
.flow-row-leading .flow-dot { background:var(--flow-coral); border-color:var(--flow-coral); }
.v2-site .swing-flow-visual figcaption { margin-top:22px; text-align:right; font-size:11px; color:#aebdc5; }
@media(max-width:1080px) and (min-width:761px) {
  .swing-continuity .swing-grid { gap:38px; }
  .theme-continuity { --flow-label:62px; }
  .flow-theme { font-size:16px; }
  .flow-dot { width:22px; height:22px; }
}
@media(max-width:760px) {
  .v2-site .swing-continuity { padding-block:64px; }
  .swing-continuity .swing-grid { display:block; }
  .swing-continuity .swing-copy .swing-follow { font-size:16px; }
  .swing-flow-visual { margin-top:48px; }
  .flow-heading { font-size:15px; margin-bottom:24px; }
  .theme-continuity { --flow-label:56px; padding:0; }
  .flow-days { font-size:12px; margin-bottom:16px; }
  .flow-days>span:not(:first-child):after { top:29px; height:197px; }
  .flow-row { min-height:62px; }
  .flow-row+.flow-row { margin-top:14px; }
  .flow-theme { font-size:14px; }
  .flow-step { height:24px; }
  .flow-dot { width:18px; height:18px; }
  .v2-site .swing-flow-visual figcaption { font-size:10px; line-height:1.8; margin-top:20px; text-align:left; }
}
.v2-site .closing { background:#a83c34; }
.v2-site .pricing { padding-block:64px; }
.v2-site .ticket-action:hover { box-shadow:none; }
@media(min-width:761px) and (prefers-reduced-motion:no-preference) {
  .hero-comparison { animation:flat-scene-in .7s .1s both; }
}
@keyframes flat-scene-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
/* Short laptop screens still expose the primary action in the first viewport. */
@media(min-width:761px) and (max-height:800px) {
  .v2-site .flat-hero { padding:16px 0; }
  .flat-hero .overline { display:none; }
  .v2-site .flat-hero h1.hero-headline { font-size:48px; margin:10px 0; }
  .flat-hero .hero-desc { font-size:16px; }
  .hero-comparison { margin-top:12px; max-width:920px; }
  .trader-scene img { height:180px; aspect-ratio:auto; }
  .trader-scene figcaption { margin-top:0; font-size:13px; }
  .hero-compass { font-size:14px; margin-top:10px; }
  .flat-hero .hero-actions { margin-top:12px; }
  .flat-hero .hero-actions .btn { min-height:48px; padding-block:12px; }
  .flat-hero .hero-meta { margin-top:8px; font-size:10px; }
}
@media(max-width:1080px) {
  .hero-comparison { gap:40px; }
  .v2-site .manifesto-grid { gap:45px; }
}
@media(max-width:760px) {
  .v2-site .section-pad { padding-block:72px; }
  .v2-site .flat-hero { padding:40px 0 35px; }
  .flat-hero .hero-copy { text-align:left; }
  .v2-site .flat-hero h1.hero-headline { font-size:clamp(35px,9.5vw,58px); line-height:1.25; margin:16px 0; letter-spacing:-.065em; }
  .flat-hero .overline { font-size:11px; }
  .flat-hero .hero-desc { font-size:15px; max-width:320px; }
  .flat-hero .hero-actions { order:1; width:100%; margin-top:24px; }
  .flat-hero .hero-actions .btn { width:100%; min-width:0; min-height:52px; font-size:14px; }
  .hero-comparison { order:2; grid-template-columns:1fr; gap:27px; margin-top:35px; max-width:460px; }
  .scene-labels { margin-bottom:-2px; gap:7px; }
  .scene-labels span { font-size:11px; padding:5px 10px; }
  .trader-scene figcaption { font-size:13px; margin-top:-6px; }
  .hero-compass { order:3; max-width:290px; font-size:14px; line-height:1.8; margin-top:30px; }
  .flat-hero .hero-meta { font-size:10px; margin-top:14px; }
  .v2-site .manifesto-aside>p { font-size:16px; }
  .v2-site .preview-thought { padding:0 0 0 18px; }
  .v2-site .preview-side { gap:24px; }
  .v2-site .method-item,.v2-site .method-item:first-child,.v2-site .method-item:last-child { padding:26px 0; }
  .v2-site .method-item:last-child { padding-bottom:0; }
  .v2-site .method-item h3 { font-size:28px; margin-bottom:6px; }
  .method-diagram { max-width:430px; margin:auto; }
  .v2-site .method-item p { margin-top:4px; }
  .v2-site .method-item p br { display:none; }
  .v2-site .risk-line { font-size:11px; margin-top:25px; }
  .v2-site .pricing { padding-block:48px; }
}
@media(max-width:360px) {
  .v2-site .flat-hero h1.hero-headline { font-size:34px; }
  .v2-site .brand { gap:7px; font-size:18px; }
  .v2-site .header-action { font-size:10px; padding:9px 8px; }
  .v2-site .header-inner { gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-comparison { animation:none; }
  .flat-hero .hero-actions .btn:hover span { translate:none; }
}
