=== Codex ===
Contributors: you
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

A minimalist, highly customizable resume + portfolio theme for IT and software
professionals. Codex pairs generous whitespace and editorial typography with a
technical, terminal-inspired accent. The home page features an animated, fully
optional canvas hero (drifting "constellation" or breathing "grid"), a
terminal-style role rotator, dark/light mode, and a built-in Portfolio post type.

== Installation ==

1. In WordPress, go to Appearance > Themes > Add New > Upload Theme.
2. Choose codex.zip and click Install Now, then Activate.
3. (Recommended) Go to Settings > Reading and set "Your homepage displays" to
   "A static page", then pick any page as the Homepage. Codex will automatically
   render the single-page portfolio layout there via front-page.php.
4. Go to Appearance > Customize > Codex Theme Options to set up your content.

== First-time setup (5 minutes) ==

1. SITE IDENTITY
   - Appearance > Customize > Site Identity: set your name/site title and add a
     logo if you have one (otherwise the text title is used).

2. CONTENT (Appearance > Customize > Codex Theme Options)
   - Hero: your name, rotating roles (one per line or pipe-separated), tagline,
     two call-to-action buttons, and three headline stats.
   - About: short bio, a portrait image, and three quick facts.
   - Skills: three categories, each a comma-separated list of skills.
   - Portfolio: section title and how many projects to show.
   - Experience: intro text, an uploaded CV/resume file, and up to four roles
     entered as: Period | Role | Company | Description
   - Contact: heading, message, your email, and social profile URLs.
   - Each section has an on/off toggle so you can show only what you need.

3. DESIGN (Customize > Codex Theme Options > Design)
   - Accent color, light/dark default scheme, one of four typography presets,
     corner roundness, base font size, and content width — all live-previewed.

4. PORTFOLIO PROJECTS
   - A "Portfolio" menu appears in the admin sidebar after activation.
   - Add a project, set a Featured Image, write a description, optionally assign
     "Tech" terms (your stack), and fill the Live URL / Source URL fields in the
     Project Details box. Use the "Order" attribute to control card order.

5. MENUS (optional)
   - Appearance > Menus: create a menu and assign it to "Primary". If you don't,
     the header shows smart in-page links (About / Work / Experience / Contact).

== The animated hero ==

The canvas hero is pure vanilla JavaScript (no libraries). It is GPU-light,
pauses when scrolled off-screen, adapts to the device pixel ratio, and fully
respects the visitor's "reduce motion" setting. Choose Constellation, Grid,
a static Glow, or None in Customize > Codex Theme Options > Hero.

== Accessibility & performance ==

- Keyboard-friendly navigation, skip link, and visible focus styles.
- Honors prefers-reduced-motion (animations disable themselves).
- No external JS/CSS frameworks; only Google Fonts are loaded (swappable preset).
- Dark/light preference is remembered per visitor.

== Changelog ==

= 1.6.2 =
* New: "Underline hyperlinks in content" option (Customize > Codex Theme Options
  > Design). On by default; turn it off to remove underlines from links inside
  pages, posts, and projects.
* Fix: button-styled links (the theme's .btn and the block editor's Button) are
  no longer underlined when placed in content — e.g. a download button linking to
  an .html file now renders cleanly without an underline, regardless of the
  setting above.

= 1.6.1 =
* New: "Use the hero gradient on all pages" option (Customize > Codex Theme
  Options > Home - Hero). When enabled, the home page's accent gradient glow is
  applied as a background to every page, project, and post — existing and new —
  while the animated visual stays on the home page only. It follows each entry's
  accent colour, including per-entry accent overrides.

= 1.6.0 =
* New: a "Codex Display Options" panel when editing any post, page, or project,
  giving per-entry customization without touching code:
  - Embed a file: pick or upload a .pdf (shown in an inline viewer) or .html file
    (rendered in a sandboxed frame), with a caption, before/after-content
    position, and adjustable height. Other file types show an open/download
    button.
  - Accent colour override for that entry (colour picker).
  - Heading and body font overrides (Sora, Hanken Grotesk, JetBrains Mono,
    System, or Serif).
  - Content width (Standard, Wide, or Full).
  - Option to hide the page header/title block.
* New: the block editor now exposes the theme's full type system — a font-family
  picker (Display, Body, Mono, System, Serif) plus weight, style, letter-spacing,
  text-transform, line-height, and drop-cap controls — alongside the existing
  Codex colour palette and font sizes, so colours and fonts can be set per block.
* Fix: corrected an invalid theme.json key that disabled the line-height control
  in the editor.

= 1.5.7 =
* Fix: hardened the contact form against spam. The previous honeypot-only check
  let automated submissions through (bots that fill only the visible fields, or
  that POST directly to the server). The form now also requires proof that a real
  browser ran the page's JavaScript and a minimum dwell time before submitting,
  and uses a stronger honeypot field — together these block direct bot posts. The
  email subject is now "Contact form: <name> — <site>" so real messages are easy
  to tell apart at a glance. People without JavaScript still see the email link.
  If spam ever persists, pair the form with Akismet or a captcha service.

= 1.5.6 =
* New: the theme now ships with a ready-made "Codex Menu" containing the default
  in-page links (About, Work, Experience, Contact), created automatically and
  assigned to the header location. It appears under Appearance > Menus and in the
  Customizer, so you can add, reorder, or rename links on top of the existing set
  instead of building a menu from scratch — and assign the same menu to the
  footer if you like. An existing menu you have already assigned is never
  overridden, and in-page anchor links now also work from inner pages.
* New: an optional contact form in the contact section (Customize > Codex Theme
  Options > Home - Contact > "Show contact form"). It is shown in addition to the
  email link, styled to match the theme with floating labels, and submits without
  a page reload. Messages are emailed to the address you set in "Send messages
  to" (or the contact email if left blank). Includes spam honeypot protection and
  a no-JavaScript fallback.

= 1.5.5 =
* Removed: all inline PDF viewers and every option to embed one. This removes
  the interactive PDF preview from the Experience section, the "Show interactive
  inline PDF viewer" customizer option, the per-page/post/project "PDF Document
  (Codex)" meta box, and the [codex_pdf] shortcode. The "Downloadable CV (PDF)"
  upload and the "Download full CV" button in the Experience section remain — the
  CV is now offered only as a download, never embedded in the page.

= 1.5.4 =
* Fixed: page content could appear briefly and then fade away, leaving only the
  header. The scroll-reveal effect required 12% of a section to be on screen
  before showing it, which a section taller than the viewport (e.g. a long page)
  can never reach, so it stayed hidden. Content that is in view now reveals
  immediately and can no longer get stuck faded out; only sections still below
  the fold animate in on scroll.

= 1.5.3 =
* Fixed: a Page assigned as the blog "Posts page" (Settings > Reading) now shows
  the content you added to that Page above the post list. Previously the archive
  template rendered only the title and the list, so any intro content appeared
  to vanish. Regular Pages were unaffected and continue to display their content
  normally.

= 1.5.2 =
* Fix: the closed mobile dropdown menu no longer leaves a thin sliver of its
  background visible at the very top of the page (which overlapped the menu
  button and theme toggle). It now slides fully off-screen regardless of how
  many menu items it contains.

= 1.5.1 =
* New: a "PDF Document (Codex)" box on the editor for pages, posts, and
  projects embeds the inline PDF viewer on that entry (with a label and
  before/after-content position), alongside the existing Experience viewer
  and [codex_pdf] shortcode.
* Change: standardized the spacing rhythm across all front-page sections
  (eyebrow-to-title and title-to-content gaps) so they read as balanced as the
  hero, on both desktop and mobile.

= 1.5.0 =
* Change: menu items are now explicitly vertically centered within the header
  bar, with a tightened link box (the previously inherited large line-height
  made them sit slightly loose in the taller bar).

= 1.4.9 =
* Change: rebalanced the hero vertical spacing — tighter, even spacing for the
  greeting/name/role cluster, and equal space above and below the button row so
  it sits symmetrically between the tagline and the stats.

= 1.4.8 =
* Change: nudged the hero action buttons ("View my work" / "Download CV") down
  by 5mm.

= 1.4.7 =
* Change: the header bar is now 50% taller, with the logo, color-scheme toggle,
  and menu item text scaled up proportionally. Anchor scroll offset and the
  mobile dropdown position updated to match.

= 1.4.6 =
* New: fixed side rails on large screens (>=1280px) place your social links and
  contact email in the left/right margins with a thin framing line, giving the
  empty space purpose and drawing focus to the central content. Hidden on
  mobile and tablet.
* Change: tighter spacing on the single project template — less gap between the
  project title and its content, and between the "All projects" link and footer.

= 1.4.5 =
* Change: reduced the empty space above the hero greeting (less vertical
  centering air and a smaller top padding), bringing the intro closer to the
  header.

= 1.4.4 =
* Change: tighter header — the bar now hugs the logo (reduced height), with the
  sticky-anchor offset and mobile dropdown position adjusted to match.
* Fix: the Experience "Download full CV" button now downloads the file instead
  of opening it in a new tab.
* Fix: hero buttons no longer render a dead link if their URL field is cleared.
* New: a "Back to main page" button (matching the site's button style) on the
  Projects archive and project category pages.

= 1.4.3 =
* New: "Background animation opacity" and "Side animation opacity" controls
  under Customize > Hero, each on a 0–100% scale.
* Change: the hero side animation is now visible on mobile — placed as a quiet
  accent in the hero's upper-right corner, behind the copy and out of the text
  flow, so it never crowds the content.

= 1.4.2 =
* Change: the header bar background is now your accent color (translucent —
  15% more opaque than the hero corner glow), keeping the frosted blur.
* New: "Show menu on all pages" toggle under Customize > Header & Menu. On by
  default, so the navigation appears everywhere including posts and projects;
  turn it off to limit the menu to the front page.

= 1.4.1 =
* New: a "Codex sections" box on the Menus screen (Appearance > Menus) adds
  About, Work, Experience, and Contact as one-click in-page links to any menu.
* New: "Side animation color" control under Customize > Hero recolors the hero
  side animation independently (empty = follow the theme accent).
* Fixed: footer social icons stayed visible on hover — they were turning the
  same color as the hover background and disappearing.

= 1.4.0 =
* Fixed: the default menu items (About, Work, Experience, Contact) now use
  relative in-page anchors on the front page, so they reliably scroll to their
  sections instead of being lost to a redirect.
* New: "Side animation" option under Customize > Hero — choose Orbit, Pulse, or
  Wireframe cube. It appears to the right of the intro on desktop, sits above
  the background visual without conflicting with it, and is hidden on mobile.

= 1.3.8 =
* Changed: constellation connecting lines are 5% bolder (thicker stroke).

= 1.3.7 =
* New: the hero accent glow is now mirrored on the left side as well.
* New: [codex_pdf] shortcode renders the inline PDF viewer anywhere — any page,
  post, project, or the About/Contact text on the home page. Attributes:
  url, height, title, download. Falls back to the CV set under Experience.
* Changed: constellation nodes (the dots at the ends of the lines) are 15% larger.

= 1.3.6 =
* Fixed: adding menu items no longer hides the others. The menu now wraps to a
  second row instead of being clipped, keeps up to six on one line on desktop,
  and lists vertically on mobile; the header grows to fit.
* Improved: the hero glow now scales responsively (vmax-based) so it fills the
  view from desktop down to phones instead of being cut off on small screens.

= 1.3.5 =
* The hero's accent glow is now a fixed, full-page backdrop that stays in view
  as you scroll, and its opacity was increased by 10%.

= 1.3.4 =
* The Experience section now answers to both #experience (matching its label)
  and #resume, so custom menu links to either anchor work.

= 1.3.3 =
* Fixed: clicking a menu anchor now lands just below the sticky header instead
  of behind it (added scroll offset), so navigation points to the right place.

= 1.3.2 =
* Fixed: a malformed comment above the SVG sanitiser left codex_kses_svg()
  undefined, causing a fatal error (HTTP 500) on the front page. Restored the
  comment terminator so the function is defined and pages render again.

= 1.3.1 =
* The "Menu layout" chooser now lives in its own "Header & Menu" section under
  Customize > Codex Theme Options, with instant live preview while you pick.

= 1.3.0 =
* New: "Menu layout" option in Customize > Codex Theme Options > Design — choose
  Split, Centered, Right, Left, or Stacked navigation on desktop.
* Improved: the menu keeps up to 6 items on a single line on desktop by
  automatically tightening the spacing as items are added; the dropdown lists
  them vertically on mobile. Items no longer collapse when one is added.
* Changed: the project placeholder now scales to fill its entire tile.
* Changed: hero background animations (constellation, grid, glow) are 7.5%
  larger and ~5% more opaque.

= 1.1.1 =
* Fixed: social icons (GitHub, LinkedIn, etc.) rendered as empty circles because
  the SVG markup was being stripped on output; they now display correctly in the
  contact section and footer.
* Improved: social buttons get a filled accent hover state.

= 1.1.0 =
* Fixed: dark/light toggle no longer breaks when a background color is set
  (removed the conflicting WordPress custom-background control; the background
  is now governed solely by the Light/Dark scheme so the toggle is reliable).
* Fixed: bumped asset version so updated styles (section bands) are no longer
  hidden behind cached CSS after re-installing.
* Changed: trimmed ~5mm of empty space between sections for a tighter rhythm.
* New: optional interactive inline PDF viewer in the Experience section, with a
  download link (Customize > Codex Theme Options > Experience).

= 1.0.0 =
* Initial release.
