:root{--ink:#202739;--muted:#72798b;--paper:#f7f8fc;--white:#fff;--green:#178365;--green-soft:#e5f4ee;--lime:#cde96a;--blue:#6678e8;--blue-soft:#edf0ff;--orange:#ff8c57;--red:#e24f5e;--line:#e4e7ef;--shadow:0 16px 44px rgba(45,55,86,.09);--radius:24px}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Gowun Dodum",sans-serif;font-weight:700}.app-shell{max-width:1440px;margin:auto;min-height:100vh;background:linear-gradient(180deg,#fff 0,#f7f8fc 22%)}button,input{font:inherit}.topbar{height:78px;padding:0 5.5%;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:"Do Hyeon";font-size:22px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:13px;background:var(--green);color:white;font-family:serif}.main-nav{display:flex;margin:auto;gap:35px}.nav-item{height:78px;border:0;background:none;color:var(--muted);cursor:pointer;position:relative}.nav-item.active{color:var(--green)}.nav-item.active:after{content:"";height:3px;border-radius:3px;background:var(--green);position:absolute;bottom:0;left:0;right:0}.profile{display:flex;align-items:center;gap:12px}.profile-copy{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.level{font-size:13px;color:var(--muted)}.account-sync{font-size:10px;color:#8a90a0}.account-link{border:1px solid var(--line);border-radius:10px;color:var(--green);font-size:11px;padding:7px 10px;text-decoration:none;white-space:nowrap}.account-link:hover{background:#eef8f3}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ffd66b;color:#6a4b00}main{padding:58px 6% 90px}.welcome-row{display:flex;justify-content:space-between;align-items:flex-end}.eyebrow{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.12em;color:var(--green);margin:0 0 10px}.welcome-row h1{font-family:"Do Hyeon";font-weight:400;font-size:46px;line-height:1.15;margin:0}.welcome-row em{font-style:normal;color:var(--green);position:relative}.welcome-row em:after{content:"";position:absolute;height:7px;background:var(--lime);left:-2px;right:-2px;bottom:2px;z-index:-1}.market-clock{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:18px;padding:13px 15px;box-shadow:0 6px 20px rgba(40,48,70,.05)}.market-clock div{display:flex;flex-direction:column}.market-clock strong{font-size:13px}.market-clock small{color:var(--muted);font-size:11px;margin-top:2px}.market-clock button{border:0;background:#f0f3f7;border-radius:10px;width:34px;height:34px;cursor:pointer}.live-dot{width:9px;height:9px;border-radius:50%;background:#35b77e;box-shadow:0 0 0 5px #dff5ea;animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px transparent}}.money-board{margin-top:32px;min-height:180px;border-radius:28px;background:#263140;color:white;display:grid;grid-template-columns:1.4fr 1fr 1fr .75fr;align-items:center;overflow:hidden;padding:28px 32px;position:relative;box-shadow:var(--shadow)}.money-board:before{content:"";position:absolute;width:250px;height:250px;border-radius:50%;background:#344154;right:-80px;top:-100px}.money-main,.money-stat{border-right:1px solid rgba(255,255,255,.12);padding:10px 30px 10px 0;z-index:1}.money-stat{padding-left:30px}.board-label,.money-stat span{display:block;font-size:13px;color:#b8c0cc;margin-bottom:9px}.money-value strong{font-family:"IBM Plex Mono";font-size:34px}.money-value span{font-size:17px;margin-left:4px}.edit-budget{margin-top:12px;color:#a9dbbd;border:0;background:none;padding:0;cursor:pointer;font-size:12px}.money-stat strong{font-family:"IBM Plex Mono";font-size:22px;display:block}.money-stat small{display:block;color:#93a0b2;margin-top:10px}.mini-forest{display:flex;gap:4px;align-items:end;justify-content:center;font-size:35px;z-index:1}.mini-forest span:nth-child(1){font-size:20px}.mini-forest span:nth-child(2){font-size:28px}.explore-header{margin-top:64px;display:flex;align-items:end;justify-content:space-between}.explore-header h2,.section-title h2{font-family:"Do Hyeon";font-size:30px;font-weight:400;margin:0}.explore-header p{color:var(--muted);font-size:14px;margin:7px 0 0}.search-box{width:310px;height:47px;border:1px solid var(--line);background:white;border-radius:14px;display:flex;align-items:center;padding:0 16px;gap:9px}.search-box span{font-size:23px;color:var(--muted)}.search-box input{border:0;outline:0;width:100%;font-size:13px;background:transparent}.filters{display:flex;gap:9px;margin:25px 0 20px}.filter{border:1px solid var(--line);background:white;color:var(--muted);padding:10px 17px;border-radius:30px;font-size:12px;cursor:pointer}.filter.active{background:var(--green);border-color:var(--green);color:white}.company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.company-card{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:22px;box-shadow:0 7px 24px rgba(36,47,75,.04);transition:.25s ease;position:relative;overflow:hidden}.company-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-top{display:flex;align-items:center;gap:13px}.company-logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-family:"Do Hyeon";font-size:21px}.company-name{flex:1}.company-name h3{margin:0 0 3px;font-size:17px}.company-name small{color:var(--muted);font-size:11px}.favorite{border:0;background:none;font-size:19px;color:#c8ccd4;cursor:pointer}.favorite.on{color:#f5b92c}.price-row{margin-top:20px;display:flex;align-items:end;justify-content:space-between}.price-row strong{font-family:"IBM Plex Mono";font-size:22px}.change{font-family:"IBM Plex Mono";font-size:12px;padding:5px 8px;border-radius:8px}.up{color:var(--red);background:#fff0f1}.down{color:var(--blue);background:var(--blue-soft)}.sparkline{height:46px;margin:10px 0}.sparkline svg{width:100%;height:100%;overflow:visible}.company-story{border-top:1px dashed var(--line);padding-top:15px;display:flex;gap:10px;min-height:65px}.story-icon{font-size:18px}.company-story p{font-size:12px;line-height:1.55;color:#5f6677;margin:0}.good-news{margin-top:10px;padding:9px 11px;border-radius:10px;background:#f5f8f4;color:#52705f;font-size:11px}.buy-button{width:100%;border:0;border-radius:13px;padding:12px;margin-top:16px;background:var(--ink);color:white;cursor:pointer;transition:.2s}.buy-button:hover{background:var(--green)}.index-tags{display:flex;gap:5px;margin-top:12px}.index-tag{font-size:9px;border:1px solid var(--line);padding:3px 6px;border-radius:6px;color:#8a90a0}.portfolio{margin-top:75px}.section-title{display:flex;align-items:end;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:16px}.holding-count{font-size:12px;color:var(--muted)}.portfolio-empty{display:flex;align-items:center;justify-content:center;gap:18px;padding:50px;border-bottom:1px solid var(--line)}.portfolio-empty>span{font-size:45px}.portfolio-empty strong{font-size:16px}.portfolio-empty p{font-size:13px;color:var(--muted);margin:5px 0}.holdings{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.holding{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:17px;background:white;border:1px solid var(--line);border-radius:17px}.holding .company-logo{width:42px;height:42px}.holding h3{font-size:14px;margin:0}.holding small{color:var(--muted)}.holding-numbers{text-align:right}.holding-numbers strong{font-family:"IBM Plex Mono";display:block;font-size:14px}.empty-state{text-align:center;color:var(--muted);padding:50px}dialog{border:0;border-radius:26px;padding:0;box-shadow:0 30px 90px rgba(28,35,52,.25);width:min(430px,calc(100% - 32px))}dialog::backdrop{background:rgba(29,36,51,.55);backdrop-filter:blur(3px)}dialog form{padding:32px;position:relative}.dialog-close{position:absolute;right:18px;top:15px;border:0;background:#f1f2f5;border-radius:50%;width:30px;height:30px;cursor:pointer}.dialog-icon{font-size:35px}dialog h2{font-family:"Do Hyeon";font-weight:400;font-size:27px;margin:10px 0 5px}dialog p{font-size:13px;color:var(--muted);line-height:1.5}#budgetForm label{display:grid;grid-template-columns:1fr auto;align-items:center;margin:24px 0;background:#f5f6f9;border-radius:14px;padding:14px}#budgetForm label{font-size:12px;color:var(--muted)}#budgetForm input{grid-column:1;border:0;background:transparent;font-family:"IBM Plex Mono";font-size:22px;outline:0;min-width:0}#budgetForm label span{grid-column:2;grid-row:1/3}.primary-action{width:100%;border:0;border-radius:14px;padding:14px;background:var(--green);color:white;cursor:pointer}.buy-company{display:flex;gap:13px;align-items:center}.buy-company>span{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-family:"Do Hyeon";font-size:20px}.buy-company h2{margin:0}.buy-company small{color:var(--muted)}.quote-box,.buy-total{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding:15px;background:#f5f6f9;border-radius:13px}.quote-box span,.buy-total span{font-size:13px;color:var(--muted)}.quote-box strong,.buy-total strong{font-family:"IBM Plex Mono"}.quantity-label{display:flex;align-items:center;justify-content:space-between;margin:20px 0;font-size:14px}.quantity-label div{display:flex}.quantity-label button,.quantity-label input{width:42px;height:38px;text-align:center;border:1px solid var(--line);background:white}.quantity-label button:first-child{border-radius:10px 0 0 10px}.quantity-label button:last-child{border-radius:0 10px 10px 0}.quantity-label input{border-left:0;border-right:0;outline:0}.buy-error{color:var(--red);min-height:20px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:#202739;color:#fff;padding:13px 22px;border-radius:14px;opacity:0;pointer-events:none;transition:.3s;z-index:20;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}button:focus-visible,input:focus-visible{outline:3px solid #8ccab5;outline-offset:2px}
@media(max-width:900px){.main-nav{display:none}.profile{margin-left:auto}.welcome-row{align-items:flex-start}.company-grid{grid-template-columns:repeat(2,1fr)}.money-board{grid-template-columns:1fr 1fr}.mini-forest{display:none}.money-stat:nth-child(3){border-right:0}.money-main,.money-stat{padding:15px;border-bottom:1px solid rgba(255,255,255,.1)}.holdings{grid-template-columns:1fr}}
@media(max-width:620px){main{padding:35px 18px 60px}.topbar{padding:0 18px}.level{display:none}.welcome-row{display:block}.welcome-row h1{font-size:36px}.market-clock{margin-top:25px;width:100%}.money-board{display:block;padding:20px;margin-top:24px}.money-main,.money-stat{border-right:0;padding:15px 5px}.money-value strong{font-size:29px}.explore-header{display:block;margin-top:45px}.search-box{margin-top:18px;width:100%}.filters{overflow:auto;padding-bottom:5px}.filter{white-space:nowrap}.company-grid{grid-template-columns:1fr}.section-title{align-items:flex-start;gap:10px;flex-direction:column}.portfolio-empty{padding:38px 10px}.company-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.load-more{display:block;margin:28px auto 0;border:1px solid var(--green);background:white;color:var(--green);padding:13px 28px;border-radius:14px;cursor:pointer}.load-more:hover{background:var(--green-soft)}.buy-button:disabled,.primary-action:disabled{background:#c7ccd5;cursor:not-allowed}.news-link{display:block;color:inherit;text-decoration:none}.company-count{color:var(--green);font-family:"IBM Plex Mono";font-size:12px;margin-left:8px}
.learning-section{margin-top:82px;padding:38px;border-radius:30px;background:#eef5ef;border:1px solid #dbe9de;position:relative;overflow:hidden}.learning-section:before{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:#dcecd9;right:-65px;top:-80px}.learning-head{display:flex;justify-content:space-between;align-items:end;position:relative;z-index:1}.learning-head h2{font-family:"Do Hyeon";font-size:34px;font-weight:400;margin:0}.learning-head p{color:var(--muted);font-size:13px;margin:6px 0 0}.xp-card{width:290px;background:#fff;border:1px solid #dce5df;border-radius:17px;padding:15px 17px;box-shadow:0 8px 25px rgba(56,92,68,.06)}.xp-card>div:first-child{display:flex;justify-content:space-between;font-size:11px}.xp-card strong{font-family:"IBM Plex Mono";color:var(--green)}.xp-track{height:8px;border-radius:8px;background:#e8ece8;margin-top:11px;overflow:hidden}.xp-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--green),#86bc52);border-radius:inherit;transition:width .45s ease}.lesson-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:27px}.lesson-card{background:white;border:1px solid #dfe8e1;border-radius:19px;padding:18px;position:relative;min-height:195px;display:flex;flex-direction:column}.lesson-card.completed{background:#fbfdfb}.lesson-number{font-family:"IBM Plex Mono";font-size:10px;color:#89968d}.lesson-icon{font-size:28px;margin:10px 0}.lesson-card h3{margin:0;font-size:16px}.lesson-card p{font-size:12px;line-height:1.55;color:var(--muted);margin:6px 0 15px}.lesson-card button{margin-top:auto;border:0;border-radius:11px;padding:10px;background:#eff4f0;color:var(--green);cursor:pointer;font-size:11px}.lesson-card.completed button{background:var(--green);color:white}.lesson-check{position:absolute;right:15px;top:14px;color:var(--green);font-size:12px}.quiz-zone{display:grid;grid-template-columns:240px 1fr;gap:24px;margin-top:28px;padding-top:27px;border-top:1px dashed #cbdacc}.quiz-intro{display:flex;gap:12px}.quiz-intro>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#ffdd71;font-size:21px;flex:none}.quiz-intro h3,.badge-shelf h3{margin:0;font-family:"Do Hyeon";font-weight:400;font-size:22px}.quiz-intro p{font-size:11px;color:var(--muted);margin:5px 0}.quiz-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quiz-card{background:white;border-radius:16px;padding:15px;border:1px solid #dfe8e1}.quiz-card.correct{border-color:#78b898;background:#fbfffc}.quiz-card h4{font-size:12px;line-height:1.45;margin:0 0 11px}.quiz-option{display:flex;align-items:flex-start;gap:7px;font-size:10px;color:#5f6870;margin:7px 0;cursor:pointer}.quiz-option input{accent-color:var(--green);margin:1px 0 0}.quiz-card button{width:100%;border:0;border-radius:9px;background:var(--ink);color:#fff;padding:8px;margin-top:8px;cursor:pointer;font-size:10px}.quiz-card.correct button{background:var(--green)}.badge-shelf{display:flex;align-items:center;gap:28px;margin-top:27px;padding:21px 24px;background:#263140;color:#fff;border-radius:19px}.badge-shelf .eyebrow{color:#a9dbbd}.badge-list{display:flex;gap:12px;flex-wrap:wrap}.badge{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:#344253;font-size:11px}.badge.locked{opacity:.42;filter:grayscale(1)}.badge span{font-size:20px}.lesson-dialog{max-width:520px}.lesson-dialog-inner{padding:34px;position:relative}.lesson-dialog-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;background:var(--green-soft);font-size:28px;margin-bottom:18px}.lesson-dialog h2{margin:0 0 18px}.lesson-body{font-size:14px;line-height:1.75;color:#515b68}.lesson-body strong{color:var(--green)}.lesson-body .lesson-example{padding:14px 16px;border-radius:13px;background:#f2f6f3;margin:15px 0}.lesson-body ul{padding-left:20px}.lesson-dialog .primary-action{margin-top:19px}
@media(max-width:1000px){.lesson-grid{grid-template-columns:repeat(2,1fr)}.quiz-zone{grid-template-columns:1fr}.quiz-list{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.learning-section{padding:25px 18px;margin-top:60px}.learning-head{display:block}.xp-card{width:100%;margin-top:18px}.lesson-grid{grid-template-columns:1fr 1fr}.quiz-list{grid-template-columns:1fr}.badge-shelf{align-items:flex-start;flex-direction:column}.profile{display:none}}
.account-link.linked{background:#eef8f3}
@media(max-width:430px){.lesson-grid{grid-template-columns:1fr}}
.badge strong,.badge small{display:block}.badge small{font-size:8px;color:#aeb8c4;margin-top:2px}
.quiz-intro button{border:1px solid #b9cec0;background:transparent;color:var(--green);border-radius:9px;padding:7px 10px;font-size:9px;cursor:pointer;margin-top:6px}.quiz-intro button:hover{background:white}.quiz-category{display:inline-block;color:var(--green);background:var(--green-soft);border-radius:7px;padding:3px 6px;font-size:8px;margin-bottom:8px}
