:root{--purple:#6d22ad;--purple-dark:#4b0879;--lavender:#e9d3f7;--font:'Nunito',sans-serif;font-family:var(--font);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;min-height:100%;scroll-behavior:smooth}
body{background:#eef1f8;color:#1a0b28}
a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{text-decoration:none}button{font-family:inherit;cursor:pointer}
a:focus-visible,button:focus-visible{outline:3px solid #ffcf00;outline-offset:4px}
.site-header,.desktop-intro,.desktop-features,.desktop-footer{display:none}
.site-wrap,.home-layout{min-height:100svh}
.mobile-scene{isolation:isolate;position:relative;container-type:inline-size;width:100%;height:100svh;overflow:hidden}
.mobile-scene--home{background:#0ba9fa}
.scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;user-select:none;pointer-events:none}
.scene-logo{position:absolute;left:6.67%;top:19.23%;width:86.66%;height:35.58%;z-index:2;animation:logo-float 4s ease-in-out infinite;transform-origin:center 65%}
.scene-logo-img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.scene-buttons{position:absolute;inset:0;pointer-events:none;z-index:3}
.mobile-btn{border:0;position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;white-space:normal;pointer-events:auto;transition:transform .14s ease,filter .14s ease}
.mobile-btn:hover{filter:brightness(1.035)}.mobile-btn:active{transform:scale(.985)}
.mobile-btn--help{left:10.95%;top:67.5%;width:78%;height:11.54%;border-radius:9.12cqw;background:linear-gradient(180deg,#fff 0%,#fffdf4 35%,#ffd423 94%);box-shadow:0 1.5cqw 1.4cqw #59441c36;color:#000;font-size:4.75cqw;line-height:1.05;font-weight:900;gap:5.5cqw;padding-right:2.5cqw}
.play-badge{display:grid;place-items:center;flex:none;width:12cqw;height:12cqw;border-radius:50%;background:linear-gradient(145deg,#ffed00,#ffc400);box-shadow:inset .4cqw .6cqw .5cqw #fff7,0 .4cqw .4cqw #ad810033}
.play-triangle{width:0;height:0;border-top:2.3cqw solid transparent;border-bottom:2.3cqw solid transparent;border-left:3.6cqw solid #000;transform:translateX(.4cqw)}
.help-text{flex:1;max-width:50cqw}
.mobile-btn--purple{background:var(--purple);color:#fff;font-size:5.85cqw;font-weight:800;border-radius:9.13cqw;box-shadow:0 1.46cqw 1.46cqw #0003;gap:4cqw}
.scene-buttons>.mobile-btn--purple{left:11.31%;top:82.88%;width:77.74%;height:11.54%}
.arrow-icon{display:block;position:relative;width:4.65cqw;height:4.65cqw;flex:none}
.arrow-icon::before{content:'';position:absolute;left:0;top:44%;width:100%;height:.65cqw;border-radius:2px;background:currentColor}
.arrow-icon::after{content:'';position:absolute;right:.2cqw;top:19%;width:2.65cqw;height:2.65cqw;border-right:.65cqw solid currentColor;border-top:.65cqw solid currentColor;transform:rotate(45deg)}
.mobile-scene--guide{background:#fff}
.guide-progress{position:absolute;left:16.06%;top:5.19%;width:75%;height:1.73%;display:flex;align-items:center;gap:3%}
.progress-track{position:relative;display:block;flex:none;height:100%;width:77.8%;overflow:hidden;border-radius:4cqw;background:#d9d9d9}
.progress-fill{display:block;width:23.65%;height:100%;background:var(--purple);border-radius:4cqw}
.progress-counter{font-size:4.38cqw;font-weight:800;white-space:nowrap}
.guide-back{position:absolute;top:2%;left:2%;z-index:4;display:grid;place-items:center;width:10cqw;height:10cqw;color:var(--purple);font-size:7cqw;font-weight:900;opacity:0}
.guide-title{position:absolute;top:10.96%;left:6.57%;width:82.12%;margin:0;font-size:7.3cqw;font-weight:1000;line-height:1.25;text-align:center;letter-spacing:-.08cqw}
.guide-art{position:absolute;left:10.95%;top:21.15%;width:75.73%;height:26.6%}
.guide-art-bg{position:absolute;left:0;top:19.5%;width:100%;height:75%;background:var(--lavender);border-radius:8.5cqw}
.guide-art img{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.guide-instruction{position:absolute;left:10.75%;top:53.46%;width:86.3%}
.step-heading{height:9cqw;display:flex;align-items:center;gap:3.2cqw;white-space:nowrap}
.step-number{display:flex;align-items:center;justify-content:center;flex:none;width:12.05cqw;height:12.05cqw;border-radius:50%;background:var(--purple);color:#fff;font-size:7.3cqw;font-weight:1000}
.step-heading h2{margin:0;font-size:7.3cqw;line-height:1;font-weight:1000;letter-spacing:-.15cqw;white-space:nowrap}
.step-description{font-size:6.2cqw;line-height:1.15;font-weight:400;margin:5.2cqw 0 0 .8cqw}
.example-phrase{position:absolute;left:.3%;top:32.8cqw;width:90.7%;height:14.55cqw;border:3.4cqw solid var(--lavender);border-radius:10cqw;background:#fff;display:flex;align-items:center;justify-content:center;font-size:6.2cqw;font-weight:600;white-space:nowrap;line-height:1}
.guide-next{position:absolute;left:10.95%;top:82.69%;width:77.74%;height:11.54%;font-size:5.84cqw;gap:5cqw}
.notice{max-width:min(88vw,380px);border:0;padding:0;background:none;color:#171217}
.notice::backdrop{background:#20112cb5;backdrop-filter:blur(3px)}
.notice-card{background:#fff;padding:27px 24px 24px;border-radius:22px;box-shadow:0 20px 80px #0003}
.notice-card h2{font-size:23px;font-weight:1000;line-height:1.15;margin:0 0 12px}
.notice-card p{font-size:16px;line-height:1.45;margin:0 0 18px}
.notice-close{border:0;border-radius:18px;background:var(--purple);color:#fff;font-size:16px;font-weight:800;padding:13px 25px}
@keyframes logo-float{0%,100%{transform:translateY(0) rotate(-.5deg) scale(1)}50%{transform:translateY(-.8cqw) rotate(.6deg) scale(1.028)}}
@media(min-width:880px){
  body{min-height:100vh;background:radial-gradient(ellipse at 77% 7%,#d4edff 0%,transparent 41%),radial-gradient(ellipse at 16% 15%,#f8f3ff 0%,transparent 43%),#f7f8fb}
  .site-wrap{min-height:100vh;max-width:1440px;margin:auto;padding:22px clamp(24px,4.4vw,68px) 20px}
  .site-header{min-height:76px;display:flex;align-items:center;gap:32px;justify-content:space-between;border-radius:27px;padding:11px 24px;background:#fffe;box-shadow:0 10px 38px #350d5511}
  .header-brand{font-size:26px;font-weight:1000;color:var(--purple-dark);white-space:nowrap;letter-spacing:-1px}
  .brand-mark{color:#ffca00;font-size:25px;margin-right:3px}
  .header-nav{display:flex;align-items:center;gap:7px}
  .header-nav a{font-size:16px;font-weight:800;color:#4a2862;padding:11px 19px;border-radius:18px;transition:background .2s}
  .header-nav a:hover{background:#f4e9fc}.header-nav a.is-current{background:#f0e4ff;color:var(--purple)}
  .header-action{border:0;display:inline-flex;justify-content:center;align-items:center;gap:12px;background:var(--purple);color:white;border-radius:19px;padding:13px 21px;font-size:15px;font-weight:900;white-space:nowrap}
  .header-action:hover,.action-btn:hover{filter:brightness(1.08)}
  .home-layout{min-height:0;display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,0.94fr);gap:clamp(26px,4vw,68px);align-items:center;padding:32px 0 25px}
  .desktop-intro{display:flex;flex-direction:column;justify-content:center;padding:0 0 0 clamp(8px,1.7vw,23px)}
  .intro-badge{align-self:flex-start;background:#f0e4ff;color:var(--purple);border-radius:999px;padding:8px 17px;font-weight:1000;font-size:13px;letter-spacing:.07em}
  .desktop-intro h1{font-size:clamp(45px,4.5vw,70px);line-height:1.05;letter-spacing:-.048em;font-weight:1000;color:var(--purple-dark);margin:26px 0 24px;white-space:nowrap}
  .desktop-intro h1 span{color:var(--purple);display:inline-block;position:relative}
  .desktop-intro h1 span::after{content:'';position:absolute;left:0;bottom:-8px;width:104%;height:8px;background:#ffd22c;border-radius:999px;transform:rotate(-1.4deg)}
  .desktop-intro>p{max-width:485px;font-size:clamp(18px,1.7vw,23px);line-height:1.43;color:#5f5868;font-weight:700;margin:4px 0 30px}
  .intro-actions{display:flex;gap:13px;flex-wrap:wrap}
  .action-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 23px;font-size:16px;font-weight:900;border:0;border-radius:19px;white-space:nowrap;box-shadow:0 8px 17px #370d6010;transition:filter .12s,transform .12s}
  .action-btn:active{transform:translateY(2px)}
  .action-btn--purple{background:var(--purple);color:#fff}
  .action-btn--white{background:#fff;color:var(--purple);border:1px solid #f0e4fc}
  .intro-footer{display:flex;align-items:center;gap:11px;color:#716581;font-size:14px;font-weight:800;margin-top:27px}
  .intro-dot{display:inline-block;height:9px;width:9px;border-radius:50%;background:#ffd22c}
  .mobile-scene--home{width:100%;height:clamp(400px,42vw,545px);max-height:none;min-height:400px;border-radius:34px;box-shadow:0 24px 48px #1e2b7218}
  .mobile-scene--home .scene-bg{object-fit:cover;object-position:center 50%}
  .mobile-scene--home .scene-logo{left:7%;top:8%;width:86%;height:79%}
  .mobile-scene--home .scene-buttons{display:none}
  .desktop-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#fff;border-radius:31px;padding:25px 13px;box-shadow:0 10px 40px #2d0a4e0d}
  .desktop-features article{padding:4px 18px 7px;text-align:center;min-width:0}
  .desktop-features article+article{border-left:1px solid #e8e3eb}
  .feature-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 10px;border-radius:23px;font-size:32px;line-height:1;font-weight:1000}
  .feature-icon--violet{background:#efe1ff;color:#8d38d0}.feature-icon--yellow{background:#fff4d0;color:#f4b300}.feature-icon--blue{background:#e1edff;color:#5674e4}.feature-icon--pink{background:#ffe6ef;color:#a33ab3}
  .desktop-features h2{font-size:18px;line-height:1.15;color:var(--purple-dark);font-weight:1000;margin:0 0 7px}
  .desktop-features p{font-size:14px;line-height:1.3;color:#68616d;font-weight:700;margin:0}
  .desktop-footer{display:block;text-align:center;font-size:12px;font-weight:800;color:#aa9cb3;margin-top:19px}
  .guide-page .site-wrap{display:flex;flex-direction:column}
  .mobile-scene--guide{width:100%;height:min(710px,calc(100vh - 190px));min-height:590px;max-height:none;border-radius:34px;background:#fff;box-shadow:0 20px 60px #2d0a4e10;margin-top:30px;container-type:normal}
  .guide-back{left:2.2%;top:2.5%;height:45px;width:45px;opacity:1;font-size:30px;border-radius:50%;background:#f5eafb}
  .guide-progress{left:7%;top:7%;width:49%;height:15px;gap:18px}
  .progress-track{height:15px;width:78%;border-radius:12px}
  .progress-fill{border-radius:12px}
  .progress-counter{font-size:19px}
  .guide-title{left:7%;top:17%;width:48%;font-size:clamp(42px,4vw,60px);line-height:1.06;letter-spacing:-.035em;text-align:left}
  .guide-art{left:55%;top:25%;width:40%;height:51%}
  .guide-art-bg{top:20%;height:74%;border-radius:42px}
  .guide-instruction{left:7%;top:43%;width:47%}
  .step-heading{height:62px;gap:16px}
  .step-number{height:64px;width:64px;font-size:39px}
  .step-heading h2{font-size:clamp(28px,2.65vw,40px);letter-spacing:-.035em}
  .step-description{font-size:clamp(23px,2.1vw,29px);line-height:1.17;margin:16px 0 0 5px}
  .example-phrase{position:relative;left:0;top:0;width:min(100%,480px);height:72px;border:13px solid var(--lavender);border-radius:999px;margin:22px 0 0;font-size:clamp(23px,2vw,30px)}
  .guide-next{left:7%;top:auto;bottom:6%;width:40%;height:76px;border-radius:25px;font-size:29px;gap:28px}
  .guide-next .arrow-icon{width:25px;height:25px}
  .guide-next .arrow-icon::before{height:3px}.guide-next .arrow-icon::after{width:13px;height:13px;border-width:3px}
}
@media(min-width:880px) and (max-width:1120px){
  .site-header{gap:10px;padding:10px 16px}.header-brand{font-size:21px}.header-nav a{font-size:14px;padding:10px 12px}.header-action{font-size:13px;padding:12px 16px}
  .home-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
  .desktop-intro h1{font-size:clamp(38px,4.4vw,51px)}
  .desktop-intro>p{font-size:17px}.action-btn{padding:14px 18px;font-size:14px}
  .desktop-features article{padding:4px 12px}.desktop-features h2{font-size:16px}.desktop-features p{font-size:13px}
  .guide-title{font-size:45px}.step-heading h2{font-size:28px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
