@charset "UTF-8";
:root{--ink:#203b36;--muted:#7b847b;--green:#235448;--light:#e6ede2;--paper:#f7f5ed;--line:#e0e3d8;--gold:#bb8b49;--red:#b65849;font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink);background:#eeeee6;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button,input,select{min-height:44px}button{border:1px solid var(--line);border-radius:12px;padding:10px 15px;background:#fffef9;color:var(--ink);font-weight:650;transition:background .18s,transform .18s}button:hover{background:#edf2e9}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#32675b}button.ghost{background:transparent;border:0;color:var(--muted)}button.small{font-size:12px;padding:8px 10px}input,select,textarea{width:100%;border:1px solid #d8dfd3;border-radius:10px;padding:12px;background:#fffefb;color:var(--ink)}textarea{min-height:140px;resize:vertical}label{font-size:12px;color:var(--muted);display:block;margin:12px 0 7px}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-1.4px;line-height:1.3}h2{font-size:23px;letter-spacing:-.8px}h3{font-size:15px}p{line-height:1.8}small,.muted{color:var(--muted);font-size:12px;line-height:1.7}.eyebrow{font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold);font-weight:800}.serif{font-family:Georgia,"Batang",serif}.app-shell{max-width:1320px;margin:auto;min-height:100dvh;background:var(--paper);display:grid;grid-template-columns:195px 1fr}.rail{padding:36px 23px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:35px;position:sticky;top:0;height:100dvh}.logo{font-size:23px;letter-spacing:-1px;font-family:Georgia,serif;font-weight:700}.logo span{color:var(--gold)}.logo small{display:block;letter-spacing:1.3px;font-size:9px;margin-top:8px}.rail nav{display:grid;gap:9px}.rail nav button{text-align:left;border:0;background:transparent;color:var(--muted);font-size:14px;padding:13px 15px}.rail nav button.active{background:var(--green);color:#fff}.nav-icon{display:inline-block;width:27px;font-size:18px}.rail-foot{margin-top:auto;font-size:11px;color:var(--muted);line-height:1.9}.main{padding:28px 34px 30px;min-width:0}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:10px}.date{font-size:18px;letter-spacing:1px}.badge{display:inline-block;font-size:10px;letter-spacing:.4px;color:var(--green);background:var(--light);padding:5px 9px;border-radius:20px}.top-right{font-size:11px;color:var(--muted);text-align:right}.headline{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.headline h1{font-size:27px;margin:6px 0}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:22px}.metric{padding:15px 18px;background:#fffef9;border:1px solid var(--line);border-radius:13px}.metric strong{display:block;font-size:21px;letter-spacing:-.6px;margin:5px 0}.metric small{font-size:10px}.content-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,1fr);gap:20px}.hero{height:335px;position:relative;border-radius:18px;overflow:hidden;background:#ddd3b8 url('assets/room.png') center/cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,43,34,.6),transparent 45%);pointer-events:none}.scene-label{position:absolute;top:15px;left:15px;background:#fffdebda;border-radius:8px;padding:8px 12px;font-size:11px;z-index:2}.hero-caption{position:absolute;bottom:19px;left:20px;right:20px;color:white;z-index:3}.hero-caption small{color:#ede8d4}.hero-caption h2{font-size:18px;margin-top:4px}.character{position:absolute;bottom:26px;left:calc(50% - 75px);width:150px;height:300px;background-image:url('assets/characters.png');background-size:600% 200%;mix-blend-mode:multiply;animation:breathe 4s ease-in-out infinite;filter:drop-shadow(3px 8px 8px #382a2140)}.character.closeup{left:auto;right:8%;bottom:-20px;width:200px;height:400px}.hero.modern{background-color:#b1c4c1;background-blend-mode:luminosity}.hero.office{background-color:#b9c8d5;background-blend-mode:luminosity}.hero.luxury{box-shadow:inset 0 0 0 5px #b6955380}.section-title{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.section-title h2{font-size:17px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action{padding:14px;text-align:left;min-height:95px;background:#fffef9}.action-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.action .symbol{font-size:23px;color:var(--green)}.action strong{font-size:13px;display:block;margin-bottom:4px}.action small{font-size:10px}.card{background:#fffef9;border:1px solid var(--line);border-radius:15px;padding:18px;margin-bottom:14px}.card.tinted{background:#e9eee3;border-color:#dbe3d3}.card.dark{background:var(--green);color:white;border:0}.card.dark small{color:#c4d8cc}.card.dark button{margin-top:14px;width:100%;background:#ffffff16;color:#fff;border-color:#ffffff44}.news-item{padding:13px 0;border-bottom:1px solid var(--line)}.news-item:last-child{border-bottom:0;padding-bottom:0}.news-item h3{margin:5px 0;font-size:12px}.news-item p{font-size:11px;color:var(--muted);line-height:1.75}.stat{display:grid;grid-template-columns:40px 1fr 25px;align-items:center;gap:9px;margin:12px 0;font-size:11px}.bar{height:5px;background:#e8e9e0;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:#5f8270;border-radius:5px}.foot-state{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:15px;font-size:10px;color:var(--muted)}.month-button{width:100%;margin-top:12px;padding:16px;font-size:14px}.bottom-nav{display:none}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.stack{display:grid;gap:10px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.tabs button{font-size:12px}.tabs .active{background:var(--green);color:white}.market-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.stock{text-align:left;padding:15px;min-width:0}.stock strong{font-size:13px}.stock .price{font-size:20px;margin:12px 0 4px}.up{color:#b45946}.down{color:#437b9b}.chart{width:100%;height:120px;display:block;margin:14px 0;background:linear-gradient(#f0f4ec,#fefdf7);border-radius:8px}.listline{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.listline:last-child{border:0}.hint{padding:12px 15px;background:#f0e9d8;border-radius:10px;font-size:11px;line-height:1.8;margin-bottom:14px}.empty{padding:35px;text-align:center;color:var(--muted);line-height:1.9}.onboarding{max-width:1060px;margin:30px auto;display:grid;grid-template-columns:1fr 1fr;min-height:calc(100dvh - 60px);background:var(--paper);border-radius:24px;overflow:hidden;box-shadow:0 25px 70px #2d453518}.cover{background:url('assets/room.png') center/cover;position:relative;min-height:400px;padding:48px 35px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.cover:before{content:"";position:absolute;inset:0;background:linear-gradient(#163a32a8,transparent 70%,#17382d80)}.cover>*{position:relative;z-index:1}.cover h1{font-size:47px;line-height:1.2}.cover .eyebrow{color:#e4ca91}.cover p{font-size:14px;color:#fff8de}.setup{padding:35px}.setup h2{margin:8px 0 20px}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.choice-grid button{font-size:12px;text-align:left;padding:12px 9px}.choice-grid button.selected{background:var(--light);border-color:var(--green)}.choice-grid small{font-size:10px;display:block;margin-top:4px}.setup .primary{width:100%;margin-top:22px}.cutscene{max-width:880px;margin:25px auto;padding:20px}.cutscene-art{height:55dvh;border-radius:20px;position:relative;background:url('assets/room.png') center/cover;overflow:hidden}.cutscene-art.past{filter:saturate(.4);background-color:#23423d;background-blend-mode:multiply}.cutscene-text{padding:28px 10px;min-height:170px}.cutscene-text h2{margin:10px 0}.cutscene-text p{font-size:16px}.progress-dots{display:flex;gap:5px;margin-top:15px}.progress-dots i{height:3px;flex:1;background:#d3d6c9}.progress-dots i.on{background:var(--gold)}dialog{border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);width:min(94vw,600px);max-height:90dvh;padding:24px;box-shadow:0 30px 90px #17382d44}dialog::backdrop{background:#152e2ac0;backdrop-filter:blur(3px)}dialog h2{margin:8px 0 16px}dialog .close{float:right}dialog p{font-size:13px}dialog .primary{width:100%;margin-top:12px}.table{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0}.table td,.table th{padding:12px 4px;border-bottom:1px solid var(--line);text-align:left}.table td:last-child{text-align:right}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);background:#173e35;color:white;padding:13px 20px;border-radius:12px;z-index:99;font-size:13px;box-shadow:0 5px 30px #0002;display:none;max-width:90vw}#toast.show{display:block}.boot{text-align:center;padding:25vh 20px;line-height:3}.reduced *{animation:none!important}.reduced .character{animation:none}.save-error{color:var(--red)}.ending{text-align:center;padding:55px 20px}.ending h1{margin:18px 0 30px}.ending .card{max-width:600px;margin:20px auto;text-align:left}details summary{cursor:pointer;font-size:12px;padding:12px 0}pre{white-space:pre-wrap;word-break:break-all;font-size:12px}.mobile-date{display:none}
@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(min-width:1500px){.app-shell{margin-top:25px;margin-bottom:25px;border-radius:22px;overflow:clip;min-height:calc(100dvh - 50px)}.rail{height:calc(100dvh - 50px)}}
@media(max-width:1000px){.app-shell{grid-template-columns:150px 1fr}.rail{padding:30px 14px}.main{padding:25px 22px}.content-grid{grid-template-columns:1fr}.aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.aside .card{margin:0}.hero{height:360px}}
@media(max-width:650px){.app-shell{display:block}.rail{display:none}.main{padding:calc(17px + env(safe-area-inset-top)) 17px calc(95px + env(safe-area-inset-bottom))}.top{margin-bottom:19px}.date{font-size:15px}.top-right{font-size:10px}.headline h1{font-size:24px}.headline .eyebrow{font-size:9px}.metrics{gap:7px;margin-bottom:16px}.metric{padding:12px 10px;border-radius:11px}.metric strong{font-size:17px}.metric small{font-size:9px}.metric label{font-size:10px;margin:0}.hero{height:300px}.character{height:280px;width:140px;left:calc(50% - 70px)}.content-grid{gap:14px}.aside{display:block}.aside .card{margin-bottom:13px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#faf9f1f5;backdrop-filter:blur(15px);border-top:1px solid var(--line);padding:7px 8px calc(7px + env(safe-area-inset-bottom));z-index:10;justify-content:space-around}.bottom-nav button{border:0;background:none;padding:5px 12px;min-width:55px;font-size:10px;color:var(--muted);font-weight:500}.bottom-nav button.active{color:var(--green);background:var(--light)}.bottom-nav .nav-icon{display:block;font-size:20px;margin:auto auto 2px}.market-list{grid-template-columns:1fr}.onboarding{margin:0;border-radius:0;display:block}.cover{min-height:230px;padding:28px 25px}.cover h1{font-size:36px}.cover p{margin-top:25px;font-size:12px}.setup{padding:25px 20px calc(35px + env(safe-area-inset-bottom))}.cutscene{padding:16px;margin:0}.cutscene-art{height:48dvh}.cutscene-text{min-height:200px}.cutscene-text p{font-size:14px}.cutscene .row button{font-size:12px}.card{padding:16px}.character.closeup{right:3%;width:170px;height:340px}.table{font-size:11px}h2{font-size:21px}.row.tight{flex-wrap:nowrap}.small-print{font-size:10px}.headline{align-items:start}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.hero.office{background-image:url("assets/office.png");background-blend-mode:normal}.cutscene-art.past{background-image:url("assets/office.png")}
.character{background-image:url("assets/characters-alpha.png");mix-blend-mode:normal}
.character[data-hair="short"]{background-image:url("assets/hair-short.png")}
.character[data-hair="wave"]{background-image:url("assets/hair-wave.png")}
.character[data-look="calm"]{filter:saturate(.8) drop-shadow(3px 8px 8px #382a2140)}
.character[data-look="bright"]{filter:brightness(1.08) saturate(1.1) drop-shadow(3px 8px 8px #382a2140)}
.character.charm-3,.character.charm-4{filter:brightness(1.06) drop-shadow(0 0 8px #ffe3ac80)}
.eye-blink{position:absolute;top:var(--eye-y);left:47%;width:11%;height:1%;opacity:0;animation:blink 6s infinite}
.eye-blink:before,.eye-blink:after{content:"";position:absolute;width:32%;height:2px;background:#563e30;border-top:3px solid #e8bda2;border-radius:40%}
.eye-blink:after{right:0}
.hero{animation:arrive .5s ease-out}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.plan-grid label{font-size:11px}
.plan-grid input{margin-top:5px;min-width:0}
.milestone-art{height:220px;background-size:cover;background-position:center;border-radius:12px;margin:20px 0}
.cutscene-art{filter:none!important;animation:arrive .6s ease-out}
.cutscene-art .character{left:auto;right:6%}
.cutscene-art.scene-7 .character{right:28%}
.family-scene-tag{position:absolute;bottom:15px;left:15px;background:#fffbe5d9;padding:8px 12px;border-radius:8px;font-size:12px}
.scene-5{animation:rain 2s ease-in-out infinite}
@keyframes blink{0%,44%,47%,100%{opacity:0}45%,46%{opacity:1}}
@keyframes arrive{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes rain{0%,100%{filter:brightness(.9)}50%{filter:brightness(1.08)}}
@media(max-width:650px){.plan-grid{grid-template-columns:repeat(2,1fr)}.cutscene-art .character{right:4%}.milestone-art{height:180px}}

@media(max-width:650px){.hero>.character{bottom:12px;height:265px;width:132.5px;left:calc(50% - 66.25px)}.hero .scene-label{max-width:43%;font-size:10px;line-height:1.5;padding:6px 8px}}
.hero{background-size:auto 105%;animation:arrive .5s ease-out,scenery 18s ease-in-out infinite alternate}
@keyframes scenery{from{background-position:48% center}to{background-position:52% center}}
.character.charm-2,.character.charm-3,.character.charm-4{background-image:url("assets/charm-natural.png")}
.character[data-hair="short"].charm-2,.character[data-hair="short"].charm-3,.character[data-hair="short"].charm-4{background-image:url("assets/charm-short.png")}
.character[data-hair="wave"].charm-2,.character[data-hair="wave"].charm-3,.character[data-hair="wave"].charm-4{background-image:url("assets/charm-wave.png")}
.character.charm-1{filter:brightness(1.025) saturate(1.05) drop-shadow(3px 8px 8px #382a2140)}
