diff --git a/webapp/index.html b/webapp/index.html
new file mode 100644
index 0000000..73fe7aa
--- /dev/null
+++ b/webapp/index.html
@@ -0,0 +1,319 @@
+
+
+
+
+AnA Character Sheet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Character Info
+
+
+
+
+
+
+
+
+
+ Ability Scores
+
+
+
+
+
+
+
+
+
+
+
+
+ Actions & Abilities
+
+
+
+
+
+
+
+
+
+ Inventory & Currency
+
+
+
+
+
+
+
+
+
+ Spells
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webapp/styles.css b/webapp/styles.css
new file mode 100644
index 0000000..d2e517b
--- /dev/null
+++ b/webapp/styles.css
@@ -0,0 +1,111 @@
+body{
+ margin:0;
+ font-family:'IM Fell English', serif;
+ background:#e8d8b0;
+ color:#3b2f1b;
+}
+
+header{
+ background:#5a3e1b;
+ color:#f5e6c8;
+ padding:15px;
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ font-family:'Cinzel', serif;
+}
+
+.title{
+ display:flex;
+ align-items:center;
+ gap:15px;
+}
+
+.last-saved{
+ font-size:12px;
+ opacity:0.85;
+ font-style:italic;
+}
+
+button{
+ background:#7a5c2e;
+ border:none;
+ color:#f5e6c8;
+ padding:6px 12px;
+ cursor:pointer;
+}
+
+button:hover{
+ background:#a67c3b;
+}
+
+.container{
+ padding:25px;
+ max-width:1100px;
+ margin:auto;
+}
+
+.section{
+ background:#f5e6c8;
+ border:2px solid #5a3e1b;
+ padding:20px;
+ margin-bottom:25px;
+ border-radius:8px;
+ box-shadow:4px 4px 8px rgba(0,0,0,0.2);
+}
+
+.section h2{
+ cursor:pointer;
+ margin-top:0;
+ border-bottom:1px solid #5a3e1b;
+}
+
+.grid{
+ display:grid;
+ gap:22px;
+ grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
+}
+
+.field{
+ display:flex;
+ flex-direction:column;
+}
+
+label{
+ font-size:13px;
+ margin-bottom:4px;
+ font-family:'Cinzel', serif;
+}
+
+input, textarea, select{
+ padding:8px;
+ background:#fff8e7;
+ border:1px solid #5a3e1b;
+ border-radius:4px;
+}
+
+textarea{
+ min-height:220px;
+ width:98%;
+}
+
+.ability-grid{
+ display:grid;
+ grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
+ gap:25px;
+}
+
+.ability-card{
+ background:#fff8e7;
+ border:2px solid #5a3e1b;
+ text-align:center;
+ padding:15px;
+ border-radius:6px;
+}
+
+.action-item{
+ border:1px solid #5a3e1b;
+ padding:18px;
+ margin-bottom:15px;
+ background:#fff8e7;
+}