@font-face{font-family:FieldNotes;src:url('/fonts/caveat-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Fell;src:url('/fonts/im-fell-english-sc.ttf') format('truetype');font-weight:400;font-display:swap}
/* A field notebook: warm paper, graphite borders, red pencil and marginalia. */
:root{color-scheme:light;--bg:#dcc7a0;--panel:#f4e8c9;--card:#f4e8c9;--ink:#30281f;--text:#30281f;--muted:#6b5943;--line:#aa9070;--accent:#783d2d;--accent2:#40372a;--danger:#923f32;--good:#365740;--warn:#795710;--radius:3px;--shadow:2px 4px 12px #41321e1b}
body{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.085' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(ellipse at 30% 5%,#fff5deaa,transparent 65%);color:var(--ink);font:16px/1.5 Georgia,'Times New Roman',serif}
header{background:#efe0bedd;border-bottom:2px solid #6f5741;box-shadow:0 3px 12px #5a412119;backdrop-filter:blur(8px)}h1,h2,h3{font-family:Fell,Georgia,serif;font-weight:400;color:var(--ink);letter-spacing:.035em}h1{font-size:clamp(28px,4vw,44px)}h2{font-size:27px;line-height:1.1;margin-bottom:14px}.title h1{font-family:Fell,Georgia,serif;font-size:clamp(26px,4vw,38px)}.label,.eyebrow,nav button{font-family:FieldNotes,Georgia,serif;letter-spacing:.02em}.eyebrow{color:var(--accent);font-size:18px}.tracker .label{font-size:24px;text-transform:none}.tracker .value{font-family:Fell,Georgia,serif;font-size:42px}.tracker .max{font-size:12px;line-height:1.4}
a{color:var(--accent)}.muted{color:var(--muted)}.card,.tracker,.char,.list-item{background:radial-gradient(ellipse at 15% 0%,#fff8e380,transparent 80%),var(--panel);border:1px solid var(--line);border-radius:3px 7px 2px 6px;box-shadow:var(--shadow);color:var(--ink)}.card{position:relative;border-top:2px solid #887255}.card:before{content:'';position:absolute;pointer-events:none;inset:4px;border:1px solid #a893701b;border-radius:3px 5px 7px 2px}.card h2{padding-bottom:8px;border-bottom:1px solid #a8937077}.tracker{border:1px solid #8f795e;border-bottom:2px solid #8f795e;padding:14px 9px 10px;text-align:center}.char{background:#ecdec1}.card,.tracker,.char{isolation:isolate}
input,textarea,select{background:#fff5d9!important;color:var(--ink)!important;border:1px solid #ae9575!important;border-radius:2px 5px 3px 2px!important;font:15px/1.5 'Courier New',monospace!important;box-shadow:inset 0 1px 3px #6a543011}input:focus,textarea:focus,select:focus{outline:2px solid #7a483d;outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:#783d2d}input[readonly]{background:#ece0c8!important;color:#69533a!important}textarea{background-image:repeating-linear-gradient(transparent 0 22px,#aa927122 22px 23px)!important}
button,.button,.iconbtn{font-family:Georgia,serif!important;border:1px solid #806c52!important;border-radius:3px 7px 3px 5px!important;background:#eee0c3;color:var(--ink);box-shadow:1px 2px 0 #876f4633;min-height:44px;cursor:pointer}.button.primary,button.primary,nav button.active{background:#783d2d;color:#fff1d2;border-color:#623b2a!important}.button:hover,button:hover{background:#dfcaa4;color:#30281f}.button.primary:hover,button.primary:hover,nav button.active:hover{background:#663126;color:#fff1d2}button:disabled{opacity:.45;cursor:not-allowed}.danger{color:var(--danger)!important;border-color:#a75b4c!important}nav button{font-family:FieldNotes,Georgia,serif!important;font-size:21px;border-radius:2px!important;background:transparent}.pill{background:#e8d8b5;color:var(--ink);border-color:#b79a73}.rule,.divider{border-color:#b9a181}table th{background:#e5d3ae;color:#46382a}tr,td,th{border-color:#bfa682}.save-state{font-family:FieldNotes,Georgia,serif;font-size:19px;color:#68533d}
:focus-visible{outline:2px solid #783d2d;outline-offset:3px}[hidden]{display:none!important}.dossier-strip{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}.portrait-card{width:140px;padding:0;align-self:start}.portrait-card p{font-size:11px;margin:4px 0}.portrait-card p:empty{display:none}.portrait-frame{position:relative;width:140px;aspect-ratio:4/5;overflow:hidden;padding:6px;background:#f8ebca;border:1px solid #8e7858;box-shadow:3px 4px 0 #79604426;transform:rotate(-1deg)}.portrait-frame img{width:100%;height:100%;object-fit:cover;filter:sepia(.12)}.portrait-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #aa9374;background:radial-gradient(ellipse,#e6d6b4,#f3e6c7);font:48px Fell,Georgia,serif;color:#7b674e}.portrait-placeholder small{font:12px Georgia,serif;letter-spacing:.08em}.portrait-upload{position:absolute;right:9px;bottom:9px;width:44px;min-height:44px;padding:0!important;background:#fff0cd!important;color:#6a3c2a!important;font-size:25px;box-shadow:1px 2px 3px #50331844}.tracker-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.tracker-controls{gap:5px;flex-wrap:wrap;justify-content:center}.luck-open{width:100%;font-size:12px;padding:6px!important;margin-top:2px}.library-portrait{width:100%;height:180px;object-fit:cover;border:6px solid #faf0d6;box-shadow:1px 2px 4px #745f3b44;margin-bottom:14px}
summary{cursor:pointer;min-height:44px;list-style-position:inside;padding:10px 0}details.equipment{padding:12px;margin-bottom:10px}summary b{font-family:FieldNotes,Georgia,serif;font-size:24px}summary .summary-detail{font:13px/1.5 Georgia,serif;color:var(--muted);padding-left:20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:3.2em}details.equipment[open] summary{border-bottom:1px solid var(--line);margin-bottom:12px}.quick-ledger{margin-top:14px;border-top:1px dashed #8d7759;padding-top:12px}.quick-ledger p{margin:8px 0}.thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.thresholds>div{border:1px solid #b19a76;padding:10px;text-align:center;background:#f9edcf}.thresholds b{display:block;font-family:Fell,Georgia,serif;font-size:25px}.compact-fields{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.compact-fields>label{flex:1;min-width:130px}.compact-fields input,.compact-fields select{width:100%;padding:9px}
dialog{color:var(--ink);background:radial-gradient(ellipse at 20% 0%,#fff7dda0,transparent 70%),var(--panel);border:2px solid #806748;border-radius:5px 2px 6px 3px;width:min(94vw,620px);max-height:90vh;padding:24px;box-shadow:5px 8px 40px #1c160b66}dialog::backdrop{background:#37291499;backdrop-filter:blur(3px)}.skill-wheel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;padding:20px 10px;border:1px dashed #92744b;border-radius:80px;background:radial-gradient(ellipse,#ccb28344,transparent 75%)}.skill-wheel button{border-radius:40px!important;min-height:90px;padding:10px;font-family:FieldNotes,Georgia,serif!important;font-size:25px}.skill-wheel button[aria-pressed=true]{background:#783d2d;color:#fff1d2}.skill-wheel small{display:block;font:13px Georgia,serif}.dialog-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.luck-console{margin:auto}.luck-console h2{font-family:FieldNotes,Georgia,serif;font-size:35px}.login-screen main{width:min(100%,410px);border:1px solid #8e7654;border-radius:5px 2px 7px 2px;background:var(--panel);box-shadow:4px 7px 0 #614c2926;padding:34px}.login-screen h1{font-family:Fell,Georgia,serif;font-size:35px;text-align:center;margin:0 0 24px}.login-screen label{font-family:FieldNotes,Georgia,serif;font-size:25px}.login-screen button{background:#783d2d;color:#fff1d2}.login-screen input{letter-spacing:.28em}.login-screen p:empty{display:none}.status:empty{display:none}footer{color:var(--muted)}
@media(max-width:900px){.tracker-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-strip{gap:12px}.tracker{padding:10px 8px}.tracker .value{font-size:36px}}
@media(max-width:480px){.dossier-strip{grid-template-columns:120px minmax(0,1fr);gap:10px}.portrait-card,.portrait-frame{width:120px}.tracker-row{gap:8px}.tracker .label{font-size:21px}.tracker .max{font-size:11px}.tracker .tiny{font-size:10px}.iconbtn{min-width:32px!important;width:32px!important;padding:2px!important}.thresholds{gap:5px}.thresholds>div{padding:8px 3px}.thresholds b{font-size:22px}.skill-wheel{padding:15px 4px}.skill-wheel button{font-size:20px}.compact-fields>label{min-width:100%}dialog{padding:18px}.tracker .value{font-size:32px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:paper-open .15s ease-out}@keyframes paper-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}

/* Match the ruled paper to one text line, including the top inset. */
textarea{--writing-line:24px;--writing-inset:10px;line-height:var(--writing-line)!important;padding:var(--writing-inset) 12px!important;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--writing-line) - 1px),#aa92713d calc(var(--writing-line) - 1px),#aa92713d var(--writing-line))!important;background-size:100% var(--writing-line)!important;background-position:0 var(--writing-inset)!important;background-origin:padding-box!important;background-attachment:local!important}

/* A shared height keeps the portrait proportional and the resource cards aligned. */
.dossier-strip{--dossier-height:220px;--portrait-height:var(--dossier-height);grid-template-columns:calc(var(--portrait-height) * .8) minmax(0,1fr);align-items:start}
.portrait-card{width:100%;align-self:start;display:flex;flex-direction:column;min-height:0}
.portrait-frame{width:100%;height:var(--portrait-height);aspect-ratio:4/5;flex:none;min-height:0;transform:none}
.portrait-frame img,.portrait-placeholder{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
.portrait-frame img{object-fit:contain}
.dossier-strip .tracker-row{height:var(--dossier-height);min-height:0}
.dossier-strip .tracker{min-width:0;padding:10px 6px}
.dossier-strip .tracker .label{font-size:22px;line-height:1.1}
.dossier-strip .tracker .value{font-size:32px;margin:4px 0;line-height:1.1}
.dossier-strip .tracker-controls{margin-top:6px;gap:4px}
.dossier-strip .iconbtn{width:32px;height:32px;min-width:32px;padding:2px;font-size:20px}
.dossier-strip .luck-open{font-size:12px;line-height:1.1;padding:5px!important;margin-top:0}
@media(max-width:900px){.dossier-strip{--dossier-height:320px}.dossier-strip .tracker-row{grid-template-rows:repeat(2,minmax(0,1fr));gap:8px}}
@media(max-width:600px){.dossier-strip{--portrait-height:calc((var(--dossier-height) - 8px) / 2);gap:10px}.dossier-strip .tracker .label{font-size:20px}.dossier-strip .tracker .value{font-size:30px}}

.quick-item{padding:8px 0;border-top:1px dashed #aa927166}
.quick-item b,.quick-item span{display:block}.quick-item span,.quick-effects{white-space:pre-wrap;overflow-wrap:anywhere}.quick-item span{font-size:13px;line-height:1.45;margin-top:3px}.quick-ledger h3{margin:16px 0 6px}
.portrait-upload{width:29px;min-height:29px;height:29px;font-size:16px;right:8px;bottom:8px;z-index:2}
.portrait-expand,.portrait-expand:hover{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);background:transparent;border:0!important;border-radius:0!important;min-height:0;padding:0;cursor:zoom-in;box-shadow:none}
.portrait-expand:active{transform:none}
.portrait-viewer{position:fixed;inset:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;padding:48px 16px 16px;border:0;border-radius:0;background:#16120ff5;box-shadow:none;overflow:hidden}
.portrait-viewer[open]{display:flex;justify-content:center;align-items:center;animation:none}
.portrait-viewer img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.portrait-viewer-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:40px;height:40px;border:1px solid #eadbbc;background:#32271e;color:#fff4d7;font:30px Georgia,serif;cursor:pointer}
body.viewing-portrait{overflow:hidden}
