@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');

:root { --yellow:#fee500; --ink:#171713; --cream:#f3f1e9; --line:rgba(23,23,19,.16); --muted:#6f6d64; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'Noto Sans KR',sans-serif; }
button, select, textarea, input { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
.noise { position:fixed; inset:0; opacity:.03; pointer-events:none; z-index:10; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.site-header { height:78px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; position:absolute; top:0; width:100%; z-index:3; border-bottom:1px solid rgba(0,0,0,.1); }
.brand { display:flex; align-items:center; gap:10px; font-weight:900; font-size:20px; letter-spacing:-.06em; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; background:var(--ink); color:var(--yellow); border-radius:9px 9px 9px 2px; font-family:'DM Mono'; letter-spacing:0; }
nav { display:flex; align-items:center; gap:32px; font-size:14px; font-weight:600; }
.nav-cta { background:var(--ink); color:white; border-radius:999px; padding:11px 18px; }
.hero { min-height:730px; position:relative; overflow:hidden; padding:175px 8vw 100px; background:var(--yellow); }
.hero:before { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(0,0,0,.12); border-radius:50%; right:6vw; top:130px; }
.eyebrow, .section-heading>div>p, .contact-kicker { font:500 11px/1 'DM Mono',monospace; letter-spacing:.16em; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:28px; }
.eyebrow span { width:7px; height:7px; border-radius:50%; background:var(--ink); }
h1 { font-size:clamp(52px,7.4vw,104px); line-height:.98; letter-spacing:-.075em; margin:0; max-width:920px; font-weight:900; position:relative; z-index:1; }
h1 em { font-style:normal; -webkit-text-stroke:2px var(--ink); color:transparent; }
.hero-copy { width:min(540px,90%); font-size:17px; line-height:1.8; margin:32px 0; word-break:keep-all; position:relative; z-index:2; }
.hero-actions { display:flex; align-items:center; gap:28px; position:relative; z-index:2; }
.button { border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:17px 22px; border-radius:4px; font-weight:700; }
.primary { background:var(--ink); color:white; min-width:210px; }
.text-link { font-weight:700; border-bottom:1px solid var(--ink); padding:8px 0; }
.sound-orbit { position:absolute; width:430px; height:430px; right:9vw; top:170px; display:grid; place-items:center; }
.orbit-ring { position:absolute; border-radius:50%; border:1px solid var(--ink); opacity:.18; }
.ring-one { inset:0; animation:spin 18s linear infinite; border-style:dashed; }
.ring-two { inset:48px; }
.message-bubble { position:relative; width:235px; height:190px; background:var(--ink); color:white; display:grid; place-content:center; text-align:center; border-radius:50%; transform:rotate(-7deg); font-size:18px; line-height:1.7; box-shadow:18px 22px 0 rgba(23,23,19,.12); }
.message-bubble strong { font-size:27px; color:var(--yellow); }
.message-bubble i { position:absolute; bottom:2px; right:23px; width:52px; height:58px; background:var(--ink); clip-path:polygon(0 0,100% 0,100% 100%); }
.wave-mini { position:absolute; top:36px; right:8px; display:flex; gap:4px; align-items:center; transform:rotate(25deg); }
.wave-mini b { width:4px; height:22px; background:var(--ink); border-radius:9px; }
.wave-mini b:nth-child(2n) { height:38px; }.wave-mini b:nth-child(3n) { height:54px; }
.scroll-cue { position:absolute; bottom:28px; left:5vw; font:500 10px 'DM Mono'; letter-spacing:.14em; display:flex; gap:12px; align-items:center; }
.samples { background:var(--ink); color:white; padding:35px 0 38px; overflow:hidden; }
.sample-heading { display:flex; justify-content:center; align-items:center; gap:28px; margin:0 20px 28px; }.sample-heading>p { color:#9c9b94; font-size:13px; margin:0; }.sample-heading>p strong { color:white; }.sample-play { display:flex; align-items:center; gap:12px; min-width:285px; padding:10px 14px; color:white; border:1px solid #484842; background:#252520; cursor:pointer; text-align:left; }.sample-play:hover { border-color:var(--yellow); }.sample-play-icon { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--yellow); color:var(--ink); font-size:10px; }.sample-play span:nth-child(2) { font-size:12px; font-weight:700; }.sample-play small { display:block; color:#8e8e88; font:500 8px 'DM Mono'; letter-spacing:.12em; margin-bottom:2px; }.sample-play time { margin-left:auto; color:#8e8e88; font:500 10px 'DM Mono'; }.sample-play.playing .sample-play-icon { animation:pulse 1s ease-in-out infinite alternate; }
.ticker { display:flex; width:max-content; gap:30px; align-items:center; animation:ticker 22s linear infinite; font-size:clamp(22px,3vw,38px); font-weight:800; white-space:nowrap; }
.ticker i { font-style:normal; color:var(--yellow); }
.studio-section, .process { padding:110px 8vw; }
.section-heading { display:grid; grid-template-columns:60px minmax(350px,1fr) minmax(240px,380px); gap:28px; align-items:start; margin-bottom:64px; }
.section-number { font:500 11px 'DM Mono'; border:1px solid var(--ink); border-radius:50%; width:42px; height:42px; display:grid; place-items:center; }
.section-heading h2 { font-size:clamp(36px,4.8vw,65px); line-height:1.12; letter-spacing:-.06em; margin:14px 0 0; }
.section-note { color:var(--muted); line-height:1.7; font-size:14px; align-self:end; }
.studio-grid { display:grid; grid-template-columns:1.15fr .85fr; border:1px solid var(--ink); background:#faf9f4; }
.control-panel { padding:42px; border-right:1px solid var(--ink); }
.field-group { margin-bottom:32px; }
.field-group>label, .slider-grid label { display:flex; justify-content:space-between; font-size:13px; font-weight:700; margin-bottom:12px; }
.field-group label span { font-family:'DM Mono'; color:var(--muted); font-weight:400; }
.textarea-wrap { position:relative; }
textarea { width:100%; resize:none; border:1px solid var(--line); background:white; padding:22px 48px 22px 20px; font-size:20px; font-weight:700; outline:none; border-radius:2px; }
textarea:focus, select:focus { border-color:var(--ink); }
.clear-button { position:absolute; right:13px; top:12px; border:0; background:transparent; cursor:pointer; font-size:24px; color:#999; }
.suggestions { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.suggestions button { border:1px solid var(--line); background:transparent; padding:8px 11px; border-radius:999px; font-size:11px; cursor:pointer; color:#666; }.suggestions button:hover { border-color:var(--ink); color:var(--ink); }
.field-row { display:grid; grid-template-columns:1fr 1.5fr; gap:18px; }
.select-wrap { position:relative; }.select-wrap:after { content:"⌄"; position:absolute; right:14px; top:11px; pointer-events:none; }
select { appearance:none; width:100%; height:48px; padding:0 35px 0 14px; border:1px solid var(--line); background:white; outline:none; font-size:13px; }
.mood-buttons { display:flex; }.mood-buttons button { flex:1; height:48px; border:1px solid var(--line); border-right:0; background:white; font-size:12px; cursor:pointer; }.mood-buttons button:last-child { border-right:1px solid var(--line); }.mood-buttons button.active { background:var(--yellow); border-color:var(--ink); font-weight:700; }
.slider-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; border-top:1px solid var(--line); padding-top:28px; }.slider-grid output { font-family:'DM Mono'; font-weight:400; }.slider-grid input { width:100%; accent-color:var(--ink); }
.player-panel { background:var(--yellow); min-height:520px; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; padding:30px; }
.player-top { position:absolute; top:24px; left:26px; right:26px; display:flex; justify-content:space-between; font:500 10px 'DM Mono'; letter-spacing:.12em; }.status i { display:inline-block; width:6px; height:6px; background:#1ca655; border-radius:50%; margin-right:5px; }
.disc { width:220px; height:220px; background:repeating-radial-gradient(circle at center,#23231e 0,#23231e 4px,#171713 5px,#171713 8px); border-radius:50%; display:grid; place-items:center; color:var(--yellow); text-align:center; font:500 13px/1.2 'DM Mono'; box-shadow:10px 18px 30px rgba(0,0,0,.18); transition:transform .2s; }.disc:after { content:""; position:absolute; width:60px; height:60px; border-radius:50%; background:var(--yellow); border:18px solid #f8f6ec; }.disc span { z-index:1; color:var(--ink); font-size:7px; }.disc.playing { animation:spin 2.2s linear infinite; }
.visualizer { height:50px; display:flex; align-items:center; gap:4px; margin:24px 0 16px; }.visualizer i { display:block; width:3px; height:8px; background:var(--ink); border-radius:4px; }.visualizer.active i { animation:wave .55s ease-in-out infinite alternate; }.visualizer i:nth-child(3n) { animation-delay:-.2s }.visualizer i:nth-child(4n) { animation-delay:-.35s }
.play-button { min-width:184px; border:1px solid var(--ink); background:transparent; padding:12px 18px; display:flex; gap:14px; align-items:center; justify-content:center; cursor:pointer; font-weight:800; }.play-icon { font-size:12px; }.play-button small { display:block; font:500 8px 'DM Mono'; letter-spacing:.15em; margin-bottom:2px; }.play-button:hover { background:var(--ink); color:white; }
.support-message { position:absolute; bottom:10px; font-size:11px; color:#615b25; }
.process { background:#dfddd4; }.section-heading.compact { grid-template-columns:60px 1fr; }.process ol { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }.process li { padding:28px 28px 12px 0; border-right:1px solid rgba(0,0,0,.18); position:relative; }.process li+li { padding-left:28px; }.process li>span { font:500 10px 'DM Mono'; }.step-icon { font:500 25px 'DM Mono'; margin:50px 0 38px; width:64px; height:64px; border-radius:50%; border:1px solid var(--ink); display:grid; place-items:center; }.process h3 { font-size:21px; margin:0 0 10px; }.process li p { color:var(--muted); font-size:14px; line-height:1.7; max-width:260px; }
.android-guide { padding:110px 8vw; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); gap:8vw; align-items:center; background:#f8f7f1; overflow:hidden; }.android-kicker { margin:28px 0 12px; font:500 11px 'DM Mono'; letter-spacing:.16em; }.android-copy h2 { margin:0; font-size:clamp(38px,4.7vw,66px); line-height:1.1; letter-spacing:-.06em; }.android-intro { color:var(--muted); margin:22px 0 32px; line-height:1.75; }.android-steps { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }.android-steps li { display:grid; grid-template-columns:38px 1fr; gap:12px; padding:17px 12px; border-bottom:1px solid var(--line); cursor:pointer; transition:.2s; }.android-steps li:hover,.android-steps li.active { background:var(--yellow); padding-left:18px; }.android-steps li>span { width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; font:500 10px 'DM Mono'; }.android-steps strong { font-size:14px; }.android-steps p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }.android-note { margin-top:22px; padding:15px 17px; border-left:3px solid var(--ink); background:#e9e7df; display:flex; flex-direction:column; gap:4px; }.android-note strong { font-size:12px; }.android-note span { color:var(--muted); font-size:11px; line-height:1.6; }.phone-demo { display:flex; flex-direction:column; align-items:center; }.phone-shell { position:relative; width:310px; height:620px; padding:18px 12px 24px; border:7px solid var(--ink); border-radius:45px; background:#ecebe5; box-shadow:22px 28px 0 var(--yellow), 30px 38px 50px rgba(0,0,0,.16); overflow:hidden; }.phone-speaker { position:absolute; z-index:3; top:8px; left:50%; width:82px; height:22px; transform:translateX(-50%); border-radius:0 0 15px 15px; background:var(--ink); }.phone-status { height:30px; padding:0 8px; display:flex; justify-content:space-between; align-items:center; font:700 9px 'DM Mono'; }.phone-screen { position:absolute; inset:48px 12px 24px; padding:5px 14px; background:#fff; opacity:0; transform:translateX(30px); pointer-events:none; transition:.3s ease; }.phone-screen.active { opacity:1; transform:none; pointer-events:auto; }.phone-nav { height:50px; display:grid; grid-template-columns:30px 1fr 30px; align-items:center; text-align:center; border-bottom:1px solid #eee; }.phone-nav>span:first-child { font-size:25px; text-align:left; }.phone-nav>span:last-child { text-align:right; }.phone-nav strong { font-size:14px; }.phone-label { margin:22px 0 10px; color:#888; font-size:10px; }.file-card { display:grid; grid-template-columns:42px 1fr 20px; gap:10px; align-items:center; padding:12px 0; }.file-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; background:var(--yellow); font-size:20px; }.file-card strong,.file-card small { display:block; }.file-card strong { font-size:12px; }.file-card small { color:#999; font-size:9px; margin-top:3px; }.phone-action { position:absolute; left:20px; right:20px; bottom:25px; padding:12px; border-radius:8px; background:var(--ink); color:white; text-align:center; font-size:11px; font-weight:700; }.phone-action.success { background:#28a565; }.folder-list { display:flex; flex-direction:column; gap:5px; }.folder-list>span { padding:15px 10px; border-bottom:1px solid #eee; font-size:12px; }.folder-list>span.selected { display:flex; align-items:center; gap:5px; background:#fff8bd; border:1px solid #e7d54b; border-radius:8px; }.folder-list i { margin-left:auto; color:#6b620c; font-size:9px; font-style:normal; }.sound-option { display:flex; align-items:center; justify-content:space-between; padding:16px 5px; border-bottom:1px solid #eee; font-size:12px; }.sound-option i { width:22px; height:22px; display:grid; place-items:center; border:1px solid #bbb; border-radius:50%; font-style:normal; }.sound-option.selected i { border-color:var(--ink); background:var(--yellow); }.phone-home { position:absolute; z-index:3; bottom:8px; left:50%; width:90px; height:4px; transform:translateX(-50%); background:var(--ink); border-radius:5px; }.phone-pager { display:flex; gap:6px; margin-top:55px; }.phone-pager i { width:6px; height:6px; border-radius:50%; background:#bbb; }.phone-pager i.active { width:20px; border-radius:8px; background:var(--ink); }
.contact { background:var(--ink); color:white; padding:110px 8vw; display:grid; grid-template-columns:1.25fr .75fr; gap:70px; align-items:center; }.section-number.light { border-color:white; margin-bottom:35px; }.contact h2 { font-size:clamp(38px,5.5vw,74px); line-height:1.1; letter-spacing:-.065em; margin:17px 0 0; }.contact-card { border:1px solid #4a4a44; padding:30px; }.price-box { margin-bottom:26px; padding:20px; background:var(--yellow); color:var(--ink); display:flex; align-items:center; justify-content:space-between; }.price-box>span { font-size:12px; font-weight:800; }.price-box div { display:flex; align-items:baseline; gap:7px; }.price-box strong { font-size:29px; letter-spacing:-.05em; }.price-box small { color:#665d16; font:500 11px 'DM Mono'; }.contact-card>p { margin:0 0 14px; font-size:12px; color:#aaa; }.discord-id { width:100%; border:0; background:white; display:flex; align-items:center; gap:12px; padding:17px; cursor:pointer; }.discord-logo { width:32px; height:32px; display:grid; place-items:center; color:white; background:#5865f2; border-radius:10px; }.discord-id strong { font-family:'DM Mono'; font-size:14px; }.copy-label { margin-left:auto; font:500 9px 'DM Mono'; color:#777; }.discord-button { width:100%; margin-top:12px; background:var(--yellow); }.contact-card>small { display:block; color:#878780; line-height:1.6; margin-top:14px; }.request-notice { margin-top:22px; padding:18px; border:1px solid #665f25; background:rgba(254,229,0,.07); }.request-notice h3 { display:flex; align-items:center; gap:9px; margin:0 0 11px; color:var(--yellow); font-size:13px; }.request-notice h3 span { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:var(--yellow); color:var(--ink); font:700 11px 'DM Mono'; }.iphone-warning { margin:0 0 14px; padding:12px 14px; border:1px solid #ff4d4d; background:rgba(255,41,41,.13); color:#ff5b5b; font-size:15px; font-weight:900; text-align:center; }.request-notice ul { margin:0; padding-left:18px; color:#c7c7c0; font-size:12px; line-height:1.65; }.request-notice li+li { margin-top:6px; }.request-notice strong { color:white; }
footer { padding:26px 5vw; display:flex; justify-content:space-between; align-items:center; font-size:11px; color:#777; }footer .brand { color:var(--ink); font-size:17px; }footer .brand-mark { width:26px; height:26px; }footer p { margin:0; }
.toast { position:fixed; z-index:20; left:50%; bottom:25px; transform:translate(-50%,100px); opacity:0; background:var(--ink); color:white; padding:12px 20px; border-radius:999px; font-size:13px; transition:.25s; }.toast.show { transform:translate(-50%,0); opacity:1; }
@keyframes spin { to { transform:rotate(360deg); } } @keyframes wave { to { height:42px; } } @keyframes ticker { to { transform:translateX(-50%); } } @keyframes pulse { to { transform:scale(1.12); box-shadow:0 0 0 5px rgba(254,229,0,.14); } }
@media (max-width:900px) { nav a:not(.nav-cta) { display:none; }.hero { padding-left:6vw; min-height:750px; }.sound-orbit { opacity:.42; transform:scale(.72); right:-110px; top:335px; }.hero-copy { max-width:500px; }.section-heading { grid-template-columns:50px 1fr; }.section-note { grid-column:2; }.studio-grid { grid-template-columns:1fr; }.control-panel { border-right:0; border-bottom:1px solid var(--ink); }.android-guide { grid-template-columns:1fr; }.phone-demo { margin-top:30px; }.contact { grid-template-columns:1fr; }.contact-card { max-width:540px; width:100%; }.process ol { grid-template-columns:1fr; }.process li,.process li+li { border-right:0; border-bottom:1px solid var(--line); padding:24px 0; display:grid; grid-template-columns:60px 1fr; gap:0 20px; }.step-icon { grid-row:1/4; margin:0; }.process li>span { display:none; }.process h3 { align-self:end; }.process li p { margin-bottom:0; } }
@media (max-width:600px) { .site-header { padding:0 20px; }.hero { padding:145px 20px 90px; }.hero-copy { font-size:15px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:12px; }.sound-orbit { transform:scale(.55); right:-155px; top:380px; }.sample-heading { flex-direction:column; gap:12px; }.sample-play { width:100%; min-width:0; max-width:340px; }.studio-section,.process,.android-guide,.contact { padding:80px 20px; }.android-guide { gap:35px; }.phone-shell { width:280px; height:565px; box-shadow:12px 18px 0 var(--yellow); }.phone-pager { margin-top:35px; }.section-heading { grid-template-columns:1fr; gap:14px; }.section-heading .section-number { margin-bottom:12px; }.section-note { grid-column:1; }.section-heading.compact { grid-template-columns:1fr; }.control-panel { padding:25px 18px; }.field-row,.slider-grid { grid-template-columns:1fr; }.mood-buttons { flex-wrap:wrap; }.mood-buttons button { min-width:33%; }.player-panel { min-height:440px; }.disc { width:180px; height:180px; }.contact { gap:40px; }.contact-card { padding:20px 16px; }footer { flex-direction:column; gap:14px; text-align:center; }footer p { display:none; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }
