*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0e0c0a;--parchment:#f5f0e8;--cream:#faf7f2;--dust:#e8e0d0;--shadow:#c4b99a;--ember:#c45c2a;--ember-dim:#9a3e18;--ember-glow:#6b3a2a;--smoke:#6b6358;--forest:#3a7a4a;--forest-dim:#2d6b3d;--crimson:#a32d2d;--crimson-dim:#791f1f;--ghost:rgba(14,12,10,.06);--font-serif:"Cormorant Garamond","Noto Sans Khmer",Georgia,serif;--font-mono:"DM Mono","Noto Sans Khmer","Courier New",monospace;--radius:2px;--transition:.2s ease}html[data-theme=dark]{--ink:#f0ece3;--parchment:#1c1916;--cream:#141210;--dust:#2e2a25;--shadow:#6b6050;--ember:#d4703a;--ember-dim:#b85c2e;--smoke:#a89880;--ghost:hsla(42,30%,92%,.06);color-scheme:dark}html{font-size:16px;scroll-behavior:smooth}.page-enter-active{animation:pageIn .35s ease both}.page-leave-active{animation:pageOut .15s ease forwards;pointer-events:none}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pageOut{0%{opacity:1}to{opacity:0}}body{background-color:var(--cream);color:var(--ink);font-family:var(--font-serif);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}body:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='4' stitchTiles='stitch' type='fractalNoise'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath d='M0 0h300v300H0z' filter='url(%23a)' opacity='.03'/%3E%3C/svg%3E");content:"";top:0;right:0;bottom:0;left:0;opacity:.4;pointer-events:none;position:fixed;z-index:9999}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:300;letter-spacing:-.01em;line-height:1.2}a{color:var(--ember);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--ember-dim)}input,textarea{background:var(--parchment);border:1px solid var(--dust);border-radius:var(--radius);color:var(--ink);font-family:var(--font-serif);font-size:1rem;outline:none;padding:.75rem 1rem;transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,textarea:focus{border-color:var(--ember);box-shadow:0 0 0 2px #c45c2a12}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--shadow);font-style:italic}input::placeholder,textarea::placeholder{color:var(--shadow);font-style:italic}button{border:none;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;transition:all var(--transition)}::-webkit-scrollbar{height:3px;width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--dust);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--shadow)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes flicker{0%,to{opacity:1}50%{opacity:.82}}.fade-up{animation:fadeUp .5s cubic-bezier(.22,1,.36,1) forwards}.fade-in{animation:fadeIn .4s ease forwards}.splash{background:#0e0c0a;flex-direction:column;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:99999}.splash,.splash-inner{align-items:center;display:flex}.splash-inner{animation:splashIn .6s cubic-bezier(.22,1,.36,1) forwards;gap:.75rem}.splash-mark{animation:splashPulse 1.5s ease-in-out infinite;color:var(--ember);font-size:1.8rem}.splash-name{color:#f5f0e8;font-family:var(--font-serif);font-size:2.2rem;font-weight:300;letter-spacing:.04em}@keyframes splashIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes splashPulse{0%,to{opacity:1}50%{opacity:.4}}.splash-leave-active{transition:opacity .4s ease}.splash-leave-to{opacity:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}
