:root{--black:#070807;--coal:#0d0f0e;--bone:#d8d3c5;--ash:#8e908a;--line:rgba(216,211,197,.22);--blood:#831f1b;--ember:#c25338;--acid:#b9c79b;--sans:Inter,"Helvetica Neue",Arial,"PingFang SC",sans-serif;--serif:"Songti SC","STSong",serif}*{box-sizing:border-box}html{background:var(--black);color-scheme:dark}body{margin:0;min-width:320px;background:var(--black);color:var(--bone);font-family:var(--sans);font-size:16px}button,input{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,input:focus-visible{outline:2px solid var(--ember);outline-offset:3px}
.scene{position:fixed;z-index:0;inset:0;background:linear-gradient(90deg,rgba(7,8,7,.35),rgba(7,8,7,.72)),url('./cemetery-night.jpg') center/cover no-repeat;filter:saturate(.55);pointer-events:none}.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,5,5,.18),var(--black) 88%)}.vignette{position:absolute;inset:0;box-shadow:inset 0 0 220px 90px #000}.fog{position:absolute;width:110vw;height:32vh;left:-5vw;border-radius:50%;filter:blur(48px);background:rgba(190,200,197,.09);animation:fog 18s ease-in-out infinite alternate}.fog-a{top:21vh}.fog-b{top:53vh;animation-delay:-7s;opacity:.55}@keyframes fog{to{transform:translate3d(7vw,-2vh,0) scale(1.08)}}
.site-header{position:relative;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;padding:24px clamp(20px,3vw,52px);border-bottom:1px solid var(--line);background:rgba(7,8,7,.58);backdrop-filter:blur(16px)}.brand{display:flex;gap:14px;align-items:center;font-size:11px;letter-spacing:.12em}.brand span{padding-left:14px;border-left:1px solid var(--line);color:var(--ash)}.date-mark{margin:0;color:var(--ash);font-size:10px;letter-spacing:.18em}.agent-button{justify-self:end;display:flex;align-items:center;gap:11px;padding:10px 0;border:0;background:transparent;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.1em}.agent-button i,.connection-state i{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 15px var(--ember);animation:pulse 1.8s infinite}.agent-button b{font-size:16px;transition:transform .2s}.agent-button:hover b{transform:translate(3px,-3px)}@keyframes pulse{50%{opacity:.3;box-shadow:0 0 3px var(--ember)}}
.app-shell{position:relative;z-index:1}.hero{min-height:72vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.65fr);align-content:end;gap:36px;padding:clamp(90px,13vh,160px) clamp(20px,5vw,78px) clamp(55px,8vh,90px)}.eyebrow{grid-column:1/-1;margin:0 0 14px;color:rgba(216,211,197,.58);font-size:10px;font-weight:700;letter-spacing:.24em}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(94px,15vw,230px);font-weight:500;line-height:.7;letter-spacing:-.09em;text-shadow:0 6px 35px #000}.hero h1 span,.hero h1 em{display:block}.hero h1 em{margin-left:.36em;color:transparent;font-style:normal;-webkit-text-stroke:1px rgba(216,211,197,.66)}.hero-copy{align-self:center;margin:0;font-family:var(--serif);font-size:clamp(18px,2vw,28px);line-height:1.75;letter-spacing:.1em;text-shadow:0 2px 15px #000}.pulse-line{grid-column:2;display:flex;gap:13px;align-items:center;color:var(--ash);font-size:11px;letter-spacing:.12em}.pulse-line span{width:48px;height:1px;background:var(--ember);box-shadow:0 0 8px var(--ember)}
.ledger{min-height:100vh;padding:0 clamp(20px,4vw,66px) 90px;background:linear-gradient(180deg,rgba(7,8,7,.9),var(--black) 18%);border-top:1px solid var(--line)}.ledger-top{position:sticky;z-index:4;top:0;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);background:rgba(7,8,7,.88);backdrop-filter:blur(18px)}.view-tabs{display:flex;gap:3px}.view-tab{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 16px;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--ash);font-size:12px}.view-tab b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#242724;color:var(--bone);font-size:10px}.view-tab.is-active{border-color:var(--bone);background:var(--bone);color:var(--black)}.view-tab.is-active b{background:var(--blood);color:#fff}.connection-state{display:flex;gap:9px;align-items:center;color:var(--ash);font-size:10px;letter-spacing:.1em}.connection-state i{background:var(--acid);box-shadow:0 0 12px var(--acid)}
.view-panel{animation:rise .45s ease both}.view-panel[hidden]{display:none}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.panel-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);gap:40px;align-items:end;padding:clamp(70px,10vw,145px) 0 48px}.panel-intro span{display:block;margin-bottom:18px;color:var(--ember);font-size:10px;font-weight:700;letter-spacing:.22em}.panel-intro h2{margin:0;font-family:var(--serif);font-size:clamp(52px,7.5vw,112px);font-weight:500;line-height:1.08;letter-spacing:-.045em}.panel-intro>p{margin:0 0 8px;color:#a8a89f;font-family:var(--serif);font-size:16px;line-height:2.05;letter-spacing:.06em}
.task-composer{display:grid;grid-template-columns:minmax(0,1fr) 180px 170px;border:1px solid rgba(216,211,197,.58);background:rgba(12,14,13,.78);box-shadow:0 25px 70px rgba(0,0,0,.45);backdrop-filter:blur(12px)}.task-composer>input{height:72px;min-width:0;padding:0 22px;border:0;background:transparent;color:var(--bone);font-size:17px}.task-composer>input::placeholder{color:#6f716c}.date-field{display:flex;flex-direction:column;justify-content:center;padding:0 15px;border-left:1px solid var(--line)}.date-field span{color:var(--ash);font-size:9px;letter-spacing:.14em}.date-field input{width:100%;padding:5px 0 0;border:0;background:transparent;color:var(--bone);font-size:12px}.task-composer>button{border:0;border-left:1px solid var(--line);background:var(--blood);cursor:pointer;font-weight:700}.task-composer>button:hover{background:#a32820}.task-composer>button span{padding-left:8px}
.task-list{margin-top:54px;border-top:1px solid var(--line)}.task-row{--mx:50%;--my:50%;position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:18px;align-items:center;min-height:112px;padding:22px 18px;border-bottom:1px solid var(--line);overflow:hidden;transition:background .25s,transform .25s}.task-row::before{content:"";position:absolute;inset:0;opacity:0;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(194,83,56,.16),transparent 58%);transition:opacity .25s;pointer-events:none}.task-row:hover{background:rgba(255,255,255,.025);transform:translateX(4px)}.task-row:hover::before{opacity:1}.complete-button{position:relative;z-index:1;width:34px;height:34px;border:1px solid #777b74;border-radius:50%;background:rgba(0,0,0,.2);cursor:pointer;font-size:0}.complete-button::after{content:"✓";font-size:15px;opacity:0;transition:.2s}.complete-button:hover::after{opacity:1}.task-copy,.task-actions{position:relative;z-index:1}.task-copy h3{margin:0 0 10px;font-family:var(--serif);font-size:clamp(21px,2.2vw,32px);font-weight:500;letter-spacing:.02em}.task-meta{display:flex;flex-wrap:wrap;gap:7px}.task-meta span{padding:4px 7px;border:1px solid var(--line);color:var(--ash);font-size:10px;letter-spacing:.08em}.task-meta .overdue{border-color:rgba(194,83,56,.65);color:#d87a62}.task-actions{display:flex;gap:8px}.task-actions button,.revive-button{min-height:38px;padding:0 13px;border:1px solid var(--line);background:transparent;cursor:pointer;color:#b9bbb4;font-size:11px}.task-actions button:hover{border-color:var(--bone);color:var(--bone)}.task-actions .bury{border-color:rgba(131,31,27,.8);color:#d56554}.task-actions .bury:hover{background:var(--blood);color:#fff}.task-row.is-completing{opacity:.12;transform:translateX(40px);transition:.28s}.danger-mark{position:absolute;right:13px;top:0;padding:4px 7px;background:var(--blood);font-size:8px;letter-spacing:.15em}
.death-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.death-stats div{padding:22px 0}.death-stats div+div{padding-left:28px;border-left:1px solid var(--line)}.death-stats span,.death-stats small{display:block;color:var(--ash);font-size:9px;letter-spacing:.16em}.death-stats strong{display:block;margin:8px 0 2px;font-family:var(--serif);font-size:clamp(56px,7vw,104px);font-weight:400;line-height:.85}.graveyard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(24px,3vw,46px);padding:24px 8px 12px;perspective:1200px}.grave{--rx:0deg;--ry:0deg;position:relative;min-height:590px;padding:0 13px 40px;transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .14s;isolation:isolate}.grave-slab{position:relative;z-index:3;min-height:540px;padding:88px 30px 36px;border:1px solid rgba(204,205,192,.38);border-bottom-color:rgba(99,104,94,.8);border-radius:50% 50% 7px 7px / 76px 76px 7px 7px;background:linear-gradient(108deg,rgba(73,77,70,.86),rgba(31,34,31,.96) 38%,rgba(14,16,15,.98) 76%),radial-gradient(circle at 22% 34%,rgba(210,218,199,.1),transparent 24%);box-shadow:inset 1px 0 rgba(255,255,255,.05),inset -18px -25px 45px rgba(0,0,0,.38),inset 0 0 70px rgba(184,194,169,.035),0 34px 70px rgba(0,0,0,.48);overflow:hidden;transition:border-color .3s,filter .3s}.grave-slab::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(168deg,transparent 0 47px,rgba(218,222,207,.025) 48px,transparent 49px 92px),radial-gradient(ellipse at 18% 18%,rgba(191,202,176,.07),transparent 18%),radial-gradient(ellipse at 82% 72%,rgba(0,0,0,.3),transparent 27%);mix-blend-mode:screen;opacity:.75;pointer-events:none}.grave-slab::after{content:"";position:absolute;inset:-1px;background:radial-gradient(360px circle at var(--mx,50%) var(--my,25%),rgba(185,199,155,.17),transparent 56%);opacity:.55;pointer-events:none;transition:opacity .3s}.grave:hover .grave-slab{border-color:rgba(216,211,197,.66);filter:brightness(1.07)}.grave:hover .grave-slab::after{opacity:1}.grave-plinth{position:absolute;z-index:2;right:3px;bottom:25px;left:3px;height:30px;border:1px solid rgba(179,182,167,.32);border-radius:2px;background:linear-gradient(180deg,#30332f,#171917 70%,#0a0b0a);box-shadow:0 16px 24px rgba(0,0,0,.65)}.grave-ground{position:absolute;z-index:1;right:-5%;bottom:0;left:-5%;height:34px;border-radius:50%;background:radial-gradient(ellipse,rgba(47,50,42,.92),rgba(7,8,7,.35) 64%,transparent 72%);filter:blur(2px)}.grave-cross{position:absolute;z-index:2;top:23px;left:50%;color:#aeb994;font-family:var(--serif);font-size:31px;text-shadow:0 1px 0 #000,0 0 12px rgba(185,199,155,.2);transform:translateX(-50%)}.grave-index{position:relative;z-index:1;margin:0 0 34px;color:#777b73;font-size:9px;letter-spacing:.18em;text-align:center}.grave h3{position:relative;z-index:1;margin:0;text-align:center;font-family:var(--serif);font-size:clamp(27px,2.6vw,40px);font-weight:400;line-height:1.13;text-shadow:0 2px 3px #000}.epitaph{position:relative;z-index:1;min-height:3.6em;margin:25px 0 28px;color:#aeb994;text-align:center;font-family:var(--serif);font-size:14px;line-height:1.75}.epitaph::after{content:"·  †  ·";display:block;margin-top:18px;color:#656b5e;font-family:var(--sans);font-size:10px;letter-spacing:.32em}.grave-meta{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;padding:20px 5px 0;border-top:1px solid rgba(216,211,197,.18);font-size:10px}.grave-meta span{color:#73766f}.grave-meta strong{display:block;margin-top:4px;color:#bfc0b9;font-weight:500}.revive-button{position:relative;z-index:1;display:block;margin:27px auto 0;border-color:#657055;color:var(--acid)}.revive-button:hover{background:var(--acid);color:var(--black)}
.empty-state{display:grid;min-height:300px;place-content:center;text-align:center;color:#777a74}.empty-state>span{font-family:var(--serif);font-size:55px}.empty-state h3{margin:15px 0 8px;color:#aaa99f;font-family:var(--serif);font-size:24px;font-weight:400}.empty-state p{margin:0;font-family:var(--serif);line-height:1.7}.ritual-dialog,.agent-dialog{width:min(650px,calc(100vw - 30px));padding:0;border:1px solid #52554f;background:#0a0c0b;color:var(--bone);box-shadow:0 35px 120px #000}.ritual-dialog::backdrop,.agent-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(12px)}.ritual-dialog form>header,.ritual-dialog form>footer,.agent-card>header{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;border-bottom:1px solid var(--line)}.ritual-dialog header span,.agent-card header>div>span{font-size:9px;letter-spacing:.18em}.ritual-dialog header button,.agent-card header>button{border:0;background:none;cursor:pointer;font-size:30px}.dialog-body{padding:35px 24px}.dialog-body>p{margin:0 0 10px;color:var(--ember);font-size:10px;letter-spacing:.14em}.dialog-body h2{margin:0;font-family:var(--serif);font-size:36px;font-weight:400}.dialog-body fieldset{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:32px 0 0;padding:0;border:0}.dialog-body legend{margin-bottom:12px;font-size:11px}.dialog-body label input{position:absolute;opacity:0}.dialog-body label span{display:block;padding:12px;border:1px solid var(--line);cursor:pointer;font-size:12px}.dialog-body label input:checked+span{border-color:var(--ember);background:rgba(131,31,27,.34)}.ritual-dialog form>footer{justify-content:flex-end;gap:9px;border-top:1px solid var(--line);border-bottom:0}.ritual-dialog footer button{min-height:43px;padding:0 16px;border:1px solid var(--line);background:transparent;cursor:pointer}.ritual-dialog footer .bury-confirm{border-color:var(--blood);background:var(--blood)}
.agent-card{padding-bottom:24px}.agent-card>header{align-items:flex-start}.agent-card h2{margin:10px 0 0;font-family:var(--serif);font-size:40px;font-weight:400;line-height:1}.agent-intro{margin:24px;color:#999b95;font-family:var(--serif);line-height:1.75}.agent-step{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:12px;align-items:center;margin:0 24px;padding:16px 0;border-top:1px solid var(--line)}.agent-step>b{color:var(--ember);font-size:10px}.agent-step span{display:block;margin-bottom:5px;color:#777a74;font-size:9px;letter-spacing:.12em}.agent-step code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c9c7bd;font-size:11px}.agent-step button,.config-block button{border:1px solid var(--line);background:transparent;cursor:pointer;font-size:10px}.agent-step button{padding:8px 10px}.config-block{margin:18px 24px 0;border:1px solid var(--line);background:#050605}.config-block>div{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-bottom:1px solid var(--line);font-size:9px;letter-spacing:.13em}.config-block button{padding:6px 8px}.config-block pre{margin:0;padding:15px;overflow:auto;color:var(--acid);font-size:11px;line-height:1.7;white-space:pre-wrap}.token-warning{margin:16px 24px 0;color:#72756f;font-size:10px;line-height:1.6}
.loading-veil{position:fixed;z-index:20;inset:0;display:grid;place-content:center;background:#050605;text-align:center;transition:opacity .5s,visibility .5s}.loading-veil span{width:38px;height:38px;margin:auto;border:1px solid #333;border-top-color:var(--ember);border-radius:50%;animation:spin 1s linear infinite}.loading-veil p{margin-top:18px;color:#777a74;font-size:10px;letter-spacing:.18em}.loading-veil.is-hidden{opacity:0;visibility:hidden}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:30;right:24px;bottom:24px;max-width:360px;padding:13px 16px;border:1px solid #5a5d56;background:#111411;box-shadow:0 14px 50px #000;font-size:12px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.is-visible{opacity:1;transform:none}
@media(max-width:950px){.hero{min-height:68vh;grid-template-columns:1fr}.hero h1{font-size:clamp(100px,23vw,190px)}.hero-copy{justify-self:end}.pulse-line{grid-column:1;justify-self:end}.graveyard{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.site-header{grid-template-columns:1fr auto;padding:17px 18px}.date-mark{display:none}.agent-button span{display:none}.hero{min-height:620px;padding:110px 18px 60px}.hero h1{font-size:clamp(92px,29vw,132px)}.hero h1 em{margin-left:.15em}.hero-copy{justify-self:start;font-size:17px}.pulse-line{justify-self:start}.ledger{padding:0 18px 60px}.ledger-top{display:block}.view-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.view-tab{justify-content:center;padding:0 6px;font-size:11px}.connection-state{margin-top:13px;justify-content:flex-end}.panel-intro{grid-template-columns:1fr;gap:20px;padding:64px 0 34px}.panel-intro h2{font-size:56px}.panel-intro>p{font-size:14px}.task-composer{grid-template-columns:1fr 125px}.task-composer>input{grid-column:1/-1;height:62px;border-bottom:1px solid var(--line)}.date-field{height:55px;border-left:0}.task-composer>button{border-left:1px solid var(--line)}.task-row{grid-template-columns:40px 1fr;padding:20px 0}.task-actions{grid-column:2}.task-actions button{flex:1}.death-stats div+div{padding-left:11px}.death-stats strong{font-size:50px}.graveyard{grid-template-columns:1fr;padding-right:4px;padding-left:4px}.grave{min-height:570px;padding-right:7px;padding-left:7px}.grave-slab{min-height:520px;padding:84px 24px 34px}.dialog-body fieldset{grid-template-columns:1fr}.agent-card h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.fog{display:none}}
