@font-face{font-family:ChronoType;src:url(/assets/fonts/ChronoType.woff)format("woff");font-display:swap}:root{color:#f4eec4;font-synthesis:none;background:#172f30;font-family:ChronoType,monospace;font-size:clamp(17px,1.2vw,19px)}*{box-sizing:border-box}body{background:#172f30 url(/assets/images/campfire-reference.webp) 50%/cover no-repeat fixed;min-width:320px;min-height:100vh;margin:0}body:before{content:"";z-index:0;pointer-events:none;background:#172f3085;position:fixed;inset:0}#root{z-index:1;position:relative}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}.loading{color:#ffca56;place-items:center;min-height:100vh;font-size:1.25rem;display:grid}.eyebrow{color:#dbb65b;letter-spacing:.12em;margin:0 0 .35rem;font-size:.82rem}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400;line-height:1.12}.primary,.secondary,.text-button,.icon-button{border:0;border-radius:6px;transition:transform .15s,filter .15s}.primary:hover,.secondary:hover,.icon-button:hover{filter:brightness(1.15);transform:translateY(-1px)}.primary{color:#201208;background:#f4bb44;padding:.8rem 1rem;box-shadow:inset 0 -3px #bd6929,0 3px #06141e}.secondary{color:#f4e8ba;background:#18364b;border:1px solid #527079;padding:.75rem 1rem}.text-button{color:#f4bb44;background:0 0;padding:.25rem;text-decoration:underline}.icon-button{color:#f7db91;background:#153247;width:2rem;height:2rem;font-size:1.4rem}.login-scene{background:linear-gradient(#09121073,#172f30b3),url(/assets/images/campfire-reference.webp) 50%/cover no-repeat;place-items:center;min-height:100vh;padding:1rem;display:grid;position:relative;overflow:hidden}.login-scene:after{content:"";filter:blur(12px);background:radial-gradient(#ffdc69,#e67528 45%,#0000 70%);border-radius:50%;width:260px;height:120px;position:absolute;bottom:-50px}.ember{background:#ffca56;width:5px;height:5px;animation:5s ease-in infinite rise;position:absolute;box-shadow:0 0 12px 3px #f17a28}.ember-one{bottom:12%;left:38%}.ember-two{animation-delay:2s;bottom:15%;right:35%}@keyframes rise{to{opacity:0;transform:translateY(-420px)translate(55px)}}.login-card{z-index:1;background:linear-gradient(145deg,#0a2535f7,#04141cfa);border:2px solid #c49d50;border-radius:14px;width:min(100%,390px);padding:2rem;box-shadow:0 0 0 5px #092131,0 20px 50px #020a10}.login-card h1{color:#ffe18a;font-size:2.25rem}.campfire-line{color:#a8c9bd;margin-bottom:1.75rem;line-height:1.5}.login-card small{color:#81a99a;text-align:center;margin-top:1rem;font-size:.78rem;display:block}label{color:#d8d9ad;gap:.38rem;margin:0 0 1rem;font-size:.95rem;display:grid}label span{color:#819e90;font-size:.78rem}input,textarea,select{color:#f9eec8;background:#0c2936;border:1px solid #5a786e;border-radius:5px;outline-color:#f4bb44;width:100%;padding:.7rem}textarea{resize:vertical;min-height:74px}.login-card .primary{width:100%}.error{color:#ff9a8c;font-size:.8rem}.app-shell{width:min(1140px,100% - 2rem);margin:0 auto;padding:1.5rem 0 4rem}header{border-bottom:1px solid #315567;justify-content:space-between;align-items:center;padding-bottom:1.5rem;display:flex}.brand{align-items:center;gap:.7rem;display:flex}.brand h1{color:#ffe18a;margin:0;font-size:1.55rem}.brand-mark{color:#ffcb52;text-shadow:0 0 15px #f1732e;font-size:2rem}.user-menu{color:#a8c9bd;align-items:center;gap:1rem;font-size:.85rem;display:flex}.sound-toggle{color:#9bb3ab;background:#0a1f41;border:1px solid #355560;border-radius:4px;padding:.42rem .6rem;font-size:.72rem}.sound-toggle[aria-pressed=true]{color:#f4eec4;border-color:#cdb047}.hero{justify-content:space-between;align-items:end;gap:1rem;padding:3.25rem 0 1.75rem;display:flex}.hero h2{color:#f4e8ba;margin-bottom:.4rem;font-size:clamp(1.8rem,5vw,3.2rem)}.hero p:not(.eyebrow){color:#9cc1b0;margin-bottom:0}.promise-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1rem;display:grid}.promise-card{text-align:left;min-height:230px;color:inherit;background:linear-gradient(145deg,#163d49,#0a2836);border:1px solid #567568;border-radius:10px;padding:1.2rem;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0a1b25,0 8px 16px #0003}.promise-card:after{content:"";opacity:.13;background:#ff9e37;border-radius:50%;width:80px;height:80px;position:absolute;bottom:-42px;right:-40px}.promise-card.overdue{border-color:#e16d59}.card-top{color:#e9d594;justify-content:space-between;align-items:center;font-size:.84rem;display:flex}.status{color:#071c2b;background:#8fc9a3;border-radius:4px;padding:.25rem .45rem;font-size:.76rem;display:inline-block}.status-draft{background:#a1b3b0}.status-failed{background:#ec8775}.status-canceled{background:#879d9d}.promise-card.overdue .status{background:#ef8372}.promise-card h3{margin:1.3rem 0 .55rem;font-size:1.3rem}.date,.progress-label{color:#a3c0ad;font-size:.86rem}.progress{background:#c4d3ae;border:2px solid #081c27;border-radius:3px;height:11px;margin-top:1.3rem}.progress span,.large-progress span{background:linear-gradient(90deg,#84c898,#f6c654);border-radius:1px;height:100%;display:block;box-shadow:0 0 6px #f6c654}.progress-label{margin:.55rem 0 0}.empty{text-align:center;color:#aac6b5;border:1px dashed #4a6b69;border-radius:10px;grid-column:1/-1;padding:4rem 1rem}.empty span{font-size:2rem}.empty h3{color:#f7df91}.page-error{border:1px solid #bd5d53;border-radius:5px;padding:.8rem}.overlay{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020c12c7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.promise-form{background:#102f3d;border:1px solid #d5ae57;border-radius:10px;width:min(100%,620px);max-height:calc(100vh - 2rem);padding:1.5rem;overflow:auto;box-shadow:0 15px 60px #01080c}.form-heading,.form-actions,.field-row,.check-actions,.detail-actions{gap:.75rem;display:flex}.form-heading{justify-content:space-between}.form-heading h2{color:#ffe18a;margin-bottom:1.3rem}.field-row>*{flex:1}fieldset{border:1px solid #416660;border-radius:5px;margin:0 0 1rem;padding:1rem}legend{color:#dbb65b;font-size:.75rem}.toggle{margin-bottom:.8rem;display:flex}.toggle button{color:#accabc;background:#0c2936;border:1px solid #54766c;padding:.5rem .8rem}.toggle .selected{color:#162d35;background:#c5d6a8}.hint{color:#a8c9bd;font-size:.7rem}.checkbox{grid-template-columns:auto 1fr;align-items:center;gap:.5rem;display:flex}.checkbox input{width:auto}.form-actions{justify-content:flex-end;margin-top:1rem}.detail-panel{z-index:10;background:#0d2b39;border-left:2px solid #c79e50;width:min(100%,425px);height:100vh;padding:2rem;position:fixed;top:0;right:0;overflow:auto;box-shadow:-20px 0 40px #00000059}.close-detail{float:right}.detail-panel h2{color:#ffdf87;margin:0 2rem 1rem 0;font-size:1.55rem}.detail-panel section{border-bottom:1px solid #315a61;padding:1.2rem 0}.detail-panel section h3{color:#d6e2b7;margin-bottom:.8rem}.large-progress{background:#091e2a;border-radius:3px;height:15px;margin-bottom:.6rem;overflow:hidden}.detail-panel section p{color:#a9c5b3;font-size:.75rem;line-height:1.5}.check-actions{flex-wrap:wrap}.paid{color:#112b31;background:#91cc9c;border-radius:3px;padding:.2rem .35rem;font-size:.6rem}.detail-actions{padding-top:1.5rem}.detail-header-actions{float:right;gap:.45rem;margin:0 0 .5rem .75rem;display:flex}.detail-header-actions .icon-button{place-items:center;padding:0;display:grid}.confirm-overlay{z-index:30;background:#091210cc;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.confirm-dialog{background:#0d2758;border:1px solid #b88f1f;border-radius:8px;width:min(100%,360px);padding:1.4rem;box-shadow:0 16px 50px #091210}.confirm-dialog h3{color:#f4eec4;font-size:1.35rem}.confirm-dialog p:not(.eyebrow){color:#f4eec4;font-size:.88rem;line-height:1.5}.confirm-actions{justify-content:end;gap:.65rem;margin-top:1.2rem;display:flex}.danger{color:#f4eec4;background:#63523b;border:1px solid #b88f1f;border-radius:6px;padding:.8rem 1rem;box-shadow:inset 0 -3px #091210}.mini-calendar{background:#091f23c2;border:1px solid #416660;border-radius:7px;padding:.8rem}.calendar-header{color:#e8d35a;text-transform:capitalize;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.86rem;display:flex}.calendar-header .icon-button{place-items:center;width:1.8rem;height:1.8rem;padding:0;display:grid}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.28rem;display:grid}.calendar-weekdays{color:#cdb047;text-align:center;margin-bottom:.3rem;font-size:.7rem}.calendar-day,.calendar-empty{aspect-ratio:1;min-width:0}.calendar-day{color:#f4eec4;background:#102c71;border:1px solid #355560;border-radius:3px;place-items:center;padding:0;font-size:.72rem;display:grid}.calendar-day:hover:not(:disabled){filter:brightness(1.2);border-color:#e8d35a}.calendar-day.completed{color:#091210;background:#e8d35a;border-color:#e8d35a;box-shadow:inset 0 -2px #b88f1f}.calendar-day.unavailable{color:#668080;opacity:.52;background:#172f30;border-color:#1d3b40}.calendar-hint{align-items:center;gap:.4rem;display:flex;color:#cdb047!important;margin:.8rem 0 0!important;font-size:.7rem!important}.calendar-key{background:#102c71;border:1px solid #355560;border-radius:2px;width:.65rem;height:.65rem;display:inline-block}.calendar-key.completed-key{background:#e8d35a;border-color:#e8d35a;margin-left:.1rem}.calendar-instruction{color:#cdb047!important;margin:.7rem 0 0!important;font-size:.78rem!important}@media (width<=540px){.app-shell{width:min(100% - 1.25rem,412px);padding-top:1rem}.user-menu span{display:none}.hero{flex-direction:column;align-items:flex-start;padding:2.2rem 0 1.4rem}.hero .primary{width:100%}.promise-grid{grid-template-columns:1fr}.promise-card{min-height:190px}.detail-panel{width:100%;padding:1.4rem}.field-row{flex-direction:column;gap:0}.form-actions .primary,.form-actions .secondary{flex:1}.login-card{padding:1.5rem}}.app-shell{width:min(1400px,100% - 3rem)}.brand h1{font-size:clamp(1.8rem,3vw,2.5rem)}.hero{align-items:center;padding:2rem 0 1.25rem}.hero h2{margin:0}.promise-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.promise-card{background:linear-gradient(160deg,#284f9a 0%,#132f70 48%,#081842 100%);border:3px solid #b9c7d2;border-radius:5px;min-height:210px;box-shadow:inset 0 0 0 2px #263d62,inset 0 0 0 4px #e7e9df,4px 5px #07111f,0 10px 18px #0006}.promise-card:hover,.promise-card:focus-visible{filter:brightness(1.18);outline-offset:3px;outline:2px solid #ffe18a}.promise-card:after{display:none}.promise-card h3{color:#fff8da;text-shadow:2px 2px #091632;overflow-wrap:anywhere}.card-percent{color:#fff5bf;text-shadow:2px 2px #091632;font-size:1.65rem}.lifespan{background:linear-gradient(145deg,#173d7a,#0a1c46);border:2px solid #b9c7d2;border-radius:5px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding:1.1rem 1.3rem;display:flex;box-shadow:inset 0 0 0 2px #243c60,4px 5px #07111f}.lifespan p{margin-bottom:.5rem}.lifespan-value strong{color:#ffe18a;font-size:1.8rem}.lifespan-value span,.lifespan small{color:#b9ceca}.lifespan small{font-size:.7rem}.lifespan-bar{background:#071632;border:1px solid #9caec0;max-width:35rem;height:.55rem;margin:.7rem 0}.lifespan-bar span{background:#e8c95b;height:100%;display:block}.birth-form{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.birth-form label{margin:0}.birth-form input{min-width:11rem}.birth-form .error{flex-basis:100%}@media (width<=540px){.app-shell{width:calc(100% - 1.25rem)}.hero{align-items:flex-start}.lifespan{margin-top:1.3rem}.birth-form{width:100%}.birth-form label{flex:1}}.app-shell>header{grid-template-columns:1fr auto 1fr;gap:1rem;display:grid}.app-shell>header .brand{text-align:center;grid-column:2;justify-content:center}.app-shell>header .user-menu{grid-column:3;justify-self:end}.lifespan{text-align:center;justify-content:center;position:relative}.lifespan>div:first-child{width:min(100%,35rem)}.lifespan-bar{margin-left:auto;margin-right:auto}.lifespan>.text-button{position:absolute;right:1.3rem}.birth-form{justify-content:center}.hero{text-align:center;flex-direction:column;align-items:center}@media (width<=760px){.app-shell>header{grid-template-columns:1fr}.app-shell>header .brand,.app-shell>header .user-menu{grid-column:1;justify-self:center}.lifespan>.text-button{position:static}}@media (width<=540px){.hero{align-items:center}}.lifespan-clickable{cursor:pointer}.lifespan-chart-trigger{color:#ffe18a;background:0 0;border:0;margin:.65rem auto 0;padding:.2rem;text-decoration:underline;display:block}.lifespan-dialog{color:#f4eec4;background:linear-gradient(145deg,#173d7a,#0a1c46);border:3px solid #b9c7d2;border-radius:5px;width:min(100%,850px);max-height:calc(100vh - 2rem);padding:1.5rem;overflow:auto;box-shadow:inset 0 0 0 2px #243c60,0 15px 60px #01080c}.lifespan-dialog-header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.lifespan-dialog-header h2{color:#ffe18a;font-size:1.7rem}.lifespan-dialog>p strong{color:#ffe18a;font-size:1.4rem}.lifespan-chart-hint,.lifespan-chart-note{color:#b9ceca;font-size:.8rem;line-height:1.4}.lifespan-chart-note{margin:1rem 0 0}.lifespan-dots{background:#091b40;border:1px solid #aebfcb;grid-template-columns:repeat(36,minmax(0,1fr));gap:clamp(2px,.5vw,6px);padding:1rem;display:grid}.lifespan-dots span{aspect-ratio:1;background:#e8c95b;border:1px solid #ffe18a;border-radius:50%}@media (width<=540px){.lifespan-dialog{padding:1rem}.lifespan-dots{gap:2px;padding:.5rem}.lifespan-dots span{border-width:0}}.detail-panel .motivation-section{background:#163d55;border:1px solid #cdb047;border-left:4px solid #f4bb44;border-radius:5px;margin-top:1.3rem;padding:1.15rem}.detail-panel .motivation-section h3{color:#ffe18a;font-size:1.15rem}.detail-panel .motivation-section p{color:#fff4cf;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1.05rem;line-height:1.55}.lifespan-dots span.lived,.lifespan-legend i.lived{background:#7894be;border-color:#a9bfdd}.lifespan-legend{color:#d7e4da;justify-content:center;gap:1.5rem;margin:.8rem 0;font-size:.8rem;display:flex}.lifespan-legend span{align-items:center;gap:.4rem;display:flex}.lifespan-legend i{background:#e8c95b;border:1px solid #ffe18a;border-radius:50%;width:.75rem;height:.75rem;display:inline-block}.promise-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;padding:1.2rem;display:grid}.promise-form>.form-heading,.promise-form>.error,.promise-form>.form-actions{grid-column:1/-1}.promise-form>label,.promise-form fieldset{margin:0}.promise-form .form-heading h2{margin-bottom:.3rem}.promise-form textarea{min-height:60px}.promise-form fieldset{padding:.6rem}.promise-form .toggle{margin-bottom:.5rem}.promise-form .toggle button{padding:.35rem .65rem}.promise-form .form-actions{margin-top:.15rem}@media (width<=540px){.promise-form{grid-template-columns:1fr;gap:.45rem;padding:.8rem}.promise-form textarea{min-height:48px}.promise-form input,.promise-form textarea{padding:.5rem}.promise-form .form-heading h2{margin-bottom:0}.promise-form fieldset{padding:.4rem}.promise-form .toggle{margin-bottom:.3rem}.promise-form .form-actions .primary,.promise-form .form-actions .secondary{padding:.55rem}}
