/* Morning room creation: common offline UI for browser and Android. */
body.creation-mode{background:#f2efe5;color:#23364b}body.creation-mode:before{content:none}
.morning-page{max-width:1440px;padding:calc(27px + env(safe-area-inset-top)) 44px calc(25px + env(safe-area-inset-bottom));margin:auto}
.morning-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.morning-logo{font-size:29px;letter-spacing:-1.5px;font-weight:850;color:#263b54;display:block}.morning-logo span{display:block;font-size:8px;letter-spacing:2.4px;color:#72847e;margin-top:7px}.morning-header p{font-size:12px;line-height:1.8;color:#7b827a;margin:12px 0 0}.morning-header p b{font-weight:500;color:#415748}
.creation-tools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.creation-tools button{background:#fffdf6;border-color:#d8ded3;color:#526659;font-size:12px;min-height:44px;padding:8px 15px}.creation-tools .resume-top{background:#326d64;color:white;border-color:#326d64}.resume-summary{font-size:12px;color:#326d64;background:#e6eddf;border-radius:10px;padding:12px 17px;margin-bottom:17px}
.morning-layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(350px,1fr);gap:30px;align-items:start}.portrait-column{position:sticky;top:22px;min-width:0}.portrait-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 13px;font-size:11px;color:#60756e}.framing-buttons{display:flex;gap:3px;border:1px solid #d3dbce;border-radius:10px;padding:3px;background:#eaece2}.framing-buttons button{background:transparent;border:0;font-size:11px;padding:7px 12px;min-height:38px;border-radius:7px;color:#7a867c}.framing-buttons button[aria-pressed=true]{background:#fffef8;color:#305e56;box-shadow:0 2px 4px #263b5410}
.morning-room{height:480px;position:relative;border-radius:22px;background:linear-gradient(90deg,#fffae244,#fffbec33),url('assets/room.png') center/cover;overflow:hidden;border:1px solid #c9d2bc;touch-action:pan-y;isolation:isolate}.morning-room:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#293f4355,transparent 30%);z-index:1}.room-note{position:absolute;top:21px;left:22px;padding:13px;background:#fffdf1eb;border-radius:3px;box-shadow:0 5px 15px #22394b16;transform:rotate(-3deg);font-size:9px;letter-spacing:1px;color:#66816f;z-index:2;text-align:center}.room-note strong{display:block;font-size:24px;color:#31495c;letter-spacing:0}.room-note span{display:block;font-size:8px;letter-spacing:0;margin-top:6px}
.morning-figure{position:absolute;inset:0;overflow:hidden}.morning-figure .avatar{height:var(--avatar-full);width:calc(var(--avatar-full) / 2);left:50%;bottom:0;transform:translateX(-50%);animation:none;background-size:600% 200%;filter:drop-shadow(3px 7px 7px #26394633)}.morning-figure[data-framing=bust] .avatar{height:var(--avatar-bust);width:calc(var(--avatar-bust) / 2);bottom:-310px}
.avatar{background-size:600% 200%;mix-blend-mode:normal;animation:none!important}.avatar[data-look=warm]{filter:sepia(.04) saturate(.98) drop-shadow(3px 5px 6px #302d2222)}.avatar[data-look=calm]{filter:saturate(.75) contrast(.97) drop-shadow(3px 5px 6px #302d2222)}.avatar[data-look=bright]{filter:brightness(1.06) saturate(1.08) drop-shadow(3px 5px 6px #302d2222)}.avatar[data-base=active]{filter:contrast(1.07) saturate(1.12) drop-shadow(3px 5px 6px #302d2222)}
.age-arrow{position:absolute;top:46%;width:46px;height:55px;min-height:55px;border-radius:15px;background:#fffef2e8;border:1px solid #fff9;color:#35574f;font-size:35px;line-height:1;padding:0;z-index:3;box-shadow:0 4px 15px #263b5420}.age-arrow.prev{left:14px}.age-arrow.next{right:14px}.age-arrow:disabled{opacity:.35}.portrait-name{position:absolute;bottom:21px;left:20px;right:20px;text-align:center;color:#fffef0;font-size:13px;z-index:3;text-shadow:0 1px 6px #0009}.age-strip{display:flex;justify-content:space-between;align-items:center;margin:18px 3px 10px}.age-strip>div{display:flex;gap:11px;align-items:baseline}.age-strip span{font-size:13px;color:#849084}.age-strip strong{font-size:20px;color:#2c4850}.age-timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:16px 0}.age-timeline span{text-align:center;font-size:10px;color:#929a8f;border-top:3px solid #dce2d5;padding-top:9px}.age-timeline .current{border-color:#387669;color:#387669;font-weight:800}.preview-notice{text-align:center;font-size:11px;color:#8b9387;line-height:1.8;margin-top:20px}.preview-notice b{font-weight:500;color:#5a7265}
.creation-panel{background:#fffdf7;border:1px solid #e0e3d6;border-radius:20px;padding:26px;box-shadow:0 10px 30px #33493505;min-width:0}.panel-heading>span{font-size:20px;font-weight:750;letter-spacing:-.7px}.panel-heading small{display:block;font-size:11px;color:#8a9489;margin-top:7px}.creation-tabs{display:flex;gap:6px;margin:22px 0 24px;border-bottom:1px solid #e3e8dc;padding-bottom:10px}.creation-tabs button{flex:1;border:0;background:#f2f3e9;color:#8a9588;font-size:13px;border-radius:9px;min-height:44px}.creation-tabs [aria-selected=true]{background:#346f65;color:#fff}
.creation-panel label{font-size:12px;font-weight:650;color:#3f5659;display:block;margin:0 0 9px}.creation-panel label small{font-size:10px;color:#939b8d;font-weight:400;margin-left:5px}.creation-panel input,.creation-panel select{width:100%;min-height:48px;background:#f8f8ef;border:1px solid #dce3d3;color:#31484b;border-radius:10px;padding:12px;font-size:13px;outline:none}.creation-panel input:focus,.creation-panel select:focus{border-color:#548e7e;box-shadow:0 0 0 3px #548e7e18}.creation-panel input[aria-invalid=true]{border-color:#bb6a57}.field-error{font-size:11px;min-height:17px;margin:5px 0 13px;color:#ac5e4c}.gender-buttons{display:flex;gap:9px}.gender-buttons button{flex:1;background:#f4f5ec;border-color:#e0e5d9;color:#8c978b;font-size:12px;min-height:46px}.gender-buttons [aria-pressed=true]{background:#e3eee5;border-color:#7caa91;color:#2e6455}.appearance-selects{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:20px 0 14px}.appearance-selects select{padding:10px 8px;font-size:12px}.preset-note{background:#f4f3e9;padding:10px 12px;border-radius:9px;display:flex;flex-direction:column;align-items:start;gap:6px}.preset-note>span{font-size:10px;color:#8c9286}.reset-look{font-size:10px;min-height:35px;background:transparent;border:0;padding:4px 0;color:#4f796a;text-decoration:underline;text-underline-offset:4px}.panel-intro{font-size:11px;line-height:1.9;color:#899385;margin:0 0 14px}
.talent-options,.family-options{display:grid;gap:8px}.talent-option{display:flex;align-items:center;text-align:left;gap:13px;min-height:64px;background:#fafaf1;border:1px solid #e2e6da;padding:12px 14px;color:#4b6060}.type-symbol{display:grid;place-items:center;width:33px;height:33px;background:#ecefe2;border-radius:10px;color:#75917d;font-size:23px}.talent-option>span:nth-child(2){flex:1}.talent-option strong{font-size:13px;display:block}.talent-option small{display:block;font-size:10px;font-weight:400;color:#939c8e;margin-top:5px}.talent-option i,.family-option i{opacity:0;font-style:normal;color:#347263}.talent-option[aria-pressed=true],.family-option[aria-pressed=true]{background:#eff5e9;border-color:#6a9e82}.talent-option[aria-pressed=true] i,.family-option[aria-pressed=true] i{opacity:1}.family-option{display:flex;align-items:start;gap:11px;text-align:left;padding:16px 12px;background:#fafaf1;border:1px solid #e2e6da;color:#4d6560}.family-number{font-size:10px;color:#91a08d;padding-top:3px}.family-option>div{flex:1}.family-option strong{display:block;font-size:14px}.family-option div>span{font-size:10px;display:block;margin:8px 0;color:#477166;line-height:1.7}.family-option small{display:block;font-size:11px;line-height:1.8;color:#919b8c;font-weight:400;word-break:keep-all}
.creation-summary{border-top:1px solid #e6e9de;margin-top:22px;padding-top:20px}.summary-title{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:650;color:#4d6562}.ap-badge{font-size:10px;color:#4c7b68;border:1px solid #d4e2cb;background:#f0f5e8;padding:6px 9px;border-radius:8px;white-space:nowrap}.initial-stat{display:grid;grid-template-columns:35px 1fr 24px;gap:9px;align-items:center;margin:14px 0;font-size:11px;color:#738675}.initial-stat>div{height:6px;background:#edf0e5;border-radius:6px;overflow:hidden}.initial-stat i{display:block;background:#769f85;height:100%;border-radius:6px}.initial-stat b{color:#355b52;text-align:right}.creation-summary strong{font-size:11px;color:#48685c;line-height:1.7}.creation-summary p{font-size:11px;line-height:1.85;color:#8d9989;margin:6px 0 0;word-break:keep-all}
.starting-funds{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;border-top:1px solid #e5e9db;padding-top:16px}.starting-funds span{display:block;font-size:10px;color:#939c8c}.starting-funds strong{display:block;font-size:17px;letter-spacing:-.5px;margin-top:7px;color:#385e55}#start-summary{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0 13px;font-size:11px;color:#7a8e7b}#start-summary strong{color:#3f6057}#start-summary b{display:block;flex-basis:100%;font-size:10px;font-weight:400;color:#929c8c;margin-top:3px}.start-life{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:55px;background:#326f65;color:#fff;border:0;padding:15px 18px;font-size:14px;border-radius:11px}.start-life:hover{background:#285d54}.start-life span{font-size:22px}.creation-footnote{font-size:9px;color:#a1aa99;text-align:center;line-height:1.8;margin:13px 0 0}.creation-footer{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#98a08e;margin:25px 0 0}.creation-footer span{letter-spacing:2px}
.creation-mode [hidden]{display:none!important}.creation-mode button:focus-visible{outline:3px solid #77a290;outline-offset:3px}.creation-mode dialog{background:#fffdf6}.event-portrait{position:relative;height:165px;margin-bottom:15px;background:#e5ece0;border-radius:12px;overflow:hidden}.event-portrait .avatar{bottom:-90px;left:calc(50% - 75px)}.biography{display:flex;gap:25px;align-items:center}.biography-portrait{position:relative;width:140px;height:240px;flex-shrink:0;overflow:hidden;background:#edf0e5;border-radius:12px}.biography-portrait .avatar{bottom:0}.ending-portrait{height:310px;position:relative;max-width:600px;margin:auto;background:#e9eee1;border-radius:18px;overflow:hidden}.ending-portrait .avatar{bottom:0}
@media(min-width:1500px){.morning-room{height:550px}}
@media(max-width:900px){.morning-page{padding-left:22px;padding-right:22px}.morning-layout{gap:18px;grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr)}.creation-panel{padding:20px}.morning-room{height:450px}.room-note{left:15px;top:15px;padding:8px}.room-note span{display:none}}
@media(max-width:700px){.morning-page{padding:calc(18px + env(safe-area-inset-top)) 16px calc(22px + env(safe-area-inset-bottom))}.morning-header{align-items:start;gap:10px;margin-bottom:17px}.morning-logo{font-size:23px;letter-spacing:-1px}.morning-logo span{font-size:6px;letter-spacing:1.5px}.morning-header p{font-size:10px;margin-top:10px;line-height:1.8}.creation-tools{max-width:130px;gap:4px}.creation-tools button{font-size:10px;padding:6px 8px;min-height:40px}.morning-layout{display:flex;flex-direction:column;gap:21px}.portrait-column{position:static;width:100%}.portrait-heading{font-size:9px;margin-bottom:10px}.framing-buttons button{font-size:10px;min-height:36px;padding:6px 10px}.morning-room{height:410px;border-radius:17px}.morning-figure[data-framing=bust] .avatar{bottom:-350px}.room-note{font-size:7px;padding:8px;left:12px;top:12px}.room-note strong{font-size:17px}.age-arrow{width:40px;height:50px;min-height:50px;border-radius:12px;font-size:32px}.age-arrow.prev{left:9px}.age-arrow.next{right:9px}.portrait-name{font-size:11px;bottom:15px}.age-strip{margin:14px 2px 8px}.age-strip strong{font-size:18px}.age-strip span{font-size:11px}.age-timeline{margin:12px 0}.age-timeline span{font-size:9px}.preview-notice{font-size:10px;margin:14px 0 0}.creation-panel{width:100%;padding:23px 20px;border-radius:17px}.panel-heading>span{font-size:19px}.appearance-selects{gap:9px}.creation-panel select{font-size:12px}.creation-summary p{font-size:12px}.starting-funds strong{font-size:17px}.creation-footer{font-size:8px}.biography{gap:12px}.biography-portrait{width:110px}.biography h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.avatar{--look-tone:sepia(.04) saturate(.98);--base-tone:brightness(1);filter:var(--look-tone) var(--base-tone) drop-shadow(3px 5px 6px #302d2222)!important}
.avatar[data-look=calm]{--look-tone:saturate(.75) contrast(.97)}.avatar[data-look=bright]{--look-tone:brightness(1.06) saturate(1.08)}.avatar[data-base=active]{--base-tone:contrast(1.07) saturate(1.12)}
@media(max-width:700px){.morning-figure[data-framing=full] .avatar{height:calc(var(--avatar-full) * .88);width:calc(var(--avatar-full) * .44)}}
.morning-room{--frame-height:480px}.morning-figure{--display-height:calc((var(--frame-height) - 48px) / var(--body-ratio))}
.morning-figure .avatar,.morning-figure[data-framing=full] .avatar{--display-height:calc((var(--frame-height) - 48px) / var(--body-ratio))}
.morning-figure[data-framing=bust] .avatar{--display-height:calc((var(--frame-height) - 48px) / var(--body-ratio) * 1.65)}
.morning-figure .avatar,.morning-figure[data-framing=bust] .avatar,.morning-figure[data-framing=full] .avatar{height:var(--display-height)!important;width:calc(var(--display-height) / 2)!important;top:calc(24px - var(--head-ratio) * var(--display-height));bottom:auto!important}
@media(min-width:1500px){.morning-room{--frame-height:550px}}@media(max-width:900px){.morning-room{--frame-height:450px}}@media(max-width:700px){.morning-room{--frame-height:410px}}

/* 0.3.1: surrounding page only; original room artwork and its treatment preserved. */
body.creation-mode{min-height:100dvh;background:linear-gradient(145deg,#dff3ff 0%,#f7fcff 44%,#e1faf1 100%);background-attachment:fixed;color:#18334e}
.creation-panel{background:#fff;border-color:#c5dfe5;box-shadow:0 12px 36px #295c7712}
.morning-logo,.panel-heading>span{color:#18334e}.morning-header p,.morning-header p b,.morning-logo span,.portrait-heading,.age-strip span,.preview-notice,.preview-notice b,.panel-heading small,.panel-intro,.creation-panel label small,.preset-note>span,.creation-summary p,.starting-funds span,#start-summary,#start-summary b,.creation-footnote,.creation-footer{color:#4c6578}
.creation-tools button,.creation-panel input,.creation-panel select,.framing-buttons button[aria-pressed=true]{background:#fff;border-color:#bfd9e1;color:#244459}
.framing-buttons,.preset-note{background:#edf8fa;border-color:#c6e0e6}.creation-tabs button,.gender-buttons button{background:#edf7fa;color:#34576a;border-color:#cee1e7}
.creation-tabs [aria-selected=true],.start-life,.creation-tools .resume-top{background:#087e83;border-color:#087e83;color:#fff}.start-life:hover{background:#06686d}.gender-buttons [aria-pressed=true]{background:#e1f8f5;border-color:#087e83;color:#08696c}
.age-timeline span{color:#526e7b;border-color:#c9e1e8}.age-timeline .current{color:#087e83;border-color:#087e83}.initial-stat{color:#45616e}.initial-stat>div{background:#e6f2f5}.initial-stat i{background:#188b91}.ap-badge{background:#e7f8f5;border-color:#b7e0d9;color:#146b66}
.talent-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.talent-option{display:flex;flex-direction:column;align-items:stretch;position:relative;gap:0;overflow:hidden;padding:0;background:#fff;border:1px solid #c9dde5;box-shadow:0 3px 9px #284d6610;min-width:0}.talent-portrait{display:block;position:relative;height:180px;background:linear-gradient(140deg,#eff9ff,#e2f5ef);overflow:hidden;isolation:isolate}.talent-portrait .avatar{height:calc(230px / var(--body-ratio));width:calc(115px / var(--body-ratio));top:calc(12px - var(--head-ratio) * 230px / var(--body-ratio));bottom:auto;left:50%;transform:translateX(-50%)}.talent-option>span:nth-child(2){padding:12px;flex:1}.talent-option strong{color:#193b52;font-size:14px}.talent-option small{color:#4c6878;font-size:11px;line-height:1.6;word-break:keep-all}.talent-option i,.family-option i{position:absolute;right:8px;top:8px;border-radius:50%;background:#087e83;color:white;width:25px;height:25px;display:grid;place-items:center}.talent-option[aria-pressed=true],.family-option[aria-pressed=true]{background:white;border:2px solid #087e83;box-shadow:0 0 0 2px #087e8318}.talent-option[aria-pressed=true] .talent-portrait{height:179px}
.family-options{gap:13px}.family-option{display:grid;grid-template-columns:118px minmax(0,1fr);position:relative;padding:0;gap:14px;background:#fff;border-color:#c9dde5;overflow:hidden;box-shadow:0 3px 9px #284d6610}.family-image{width:118px;height:100%;min-height:160px;object-fit:cover}.family-option>div{padding:15px 15px 15px 0}.family-option strong{color:#193b52}.family-option small{color:#4c6878}.family-option div>span{color:#086d73;font-size:11px}
/* Reduce needless oversampling of a 256x512 character cell while retaining a large bust. */
.morning-figure[data-framing=bust] .avatar{--display-height:calc((var(--frame-height) - 48px) / var(--body-ratio) * 1.4)}
@media(min-width:1300px){.talent-options{grid-template-columns:repeat(3,minmax(0,1fr))}.talent-portrait{height:165px}.talent-option[aria-pressed=true] .talent-portrait{height:164px}}
@media(max-width:360px){.family-option{grid-template-columns:85px minmax(0,1fr);gap:10px}.family-image{width:85px}.family-option>div{padding-right:10px}.creation-panel{padding:20px 15px}}

body.creation-mode{background-attachment:scroll;background-color:#e7faf5}

/* Subtle edge reconstruction is scoped to character pixels, never the room or page. */
.avatar{filter:url(#portrait-detail) var(--look-tone) var(--base-tone) drop-shadow(3px 5px 6px #302d2222)!important}
/* Reference portraits use lossless individual originals and generated age artwork.
   No atlas expansion, opacity, sharpening, blur, or colour filter. */
.avatar.reference-portrait{background:none!important;filter:none!important;opacity:1!important;mix-blend-mode:normal!important;overflow:hidden;border-radius:12px;animation:none!important;box-shadow:0 5px 22px #09232c25}
.reference-portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center top;filter:none;opacity:1;image-rendering:auto;background:#102a2c}
.morning-figure .avatar.reference-portrait,.morning-figure[data-framing=bust] .avatar.reference-portrait,.morning-figure[data-framing=full] .avatar.reference-portrait{top:12px!important;bottom:12px!important;left:50%!important;transform:translateX(-50%)!important;height:calc(100% - 24px)!important;width:min(72%,460px)!important}
.morning-figure[data-framing=bust] .reference-portrait img{object-fit:cover;object-position:center top}
.talent-portrait .reference-portrait{inset:0!important;transform:none!important;width:100%!important;height:100%!important;border-radius:0;box-shadow:none}
.talent-portrait .reference-portrait img{object-fit:cover;object-position:center top}
.hero .reference-portrait,.cutscene-art .reference-portrait,.ending-portrait .reference-portrait{top:10px;bottom:10px;left:50%;transform:translateX(-50%);width: min(60%,320px);height:calc(100% - 20px)}
.biography-portrait .reference-portrait,.event-portrait .reference-portrait{inset:0;transform:none;width:100%;height:100%}.event-portrait .reference-portrait img{object-fit:contain}.portrait-error{padding:20px;background:#fff;color:#922b37;line-height:1.8}
@media(max-width:700px){.morning-figure .avatar.reference-portrait,.morning-figure[data-framing=bust] .avatar.reference-portrait,.morning-figure[data-framing=full] .avatar.reference-portrait{width:76%!important}.room-note{z-index:3;opacity:1}}
/* Original strips are tall: size cards for full faces plus upper bodies. */
.talent-portrait,.talent-option[aria-pressed=true] .talent-portrait{height:250px}
.talent-portrait .reference-portrait img{object-fit:cover;object-position:center 12%}
@media(min-width:1300px){.talent-portrait,.talent-option[aria-pressed=true] .talent-portrait{height:245px}}
@media(max-width:360px){.talent-portrait,.talent-option[aria-pressed=true] .talent-portrait{height:225px}}
.morning-figure[data-framing=bust] .avatar.reference-portrait[data-original=true]{width:min(72%,340px)!important}.morning-figure[data-framing=bust] .reference-portrait[data-original=true] img{object-position:center 12%}
.hero:has(.reference-portrait),.cutscene-art:has(.reference-portrait){animation:none!important;opacity:1!important;filter:none!important}
